Each account is a node in a social graph. A graph neural network (GNN) smooths a sentiment signal across the edges every frame โ this is the same message-passing idea behind real sentiment models for Twitter/X streams. A separate classifier scores each account's synthetic engagement pattern to flag likely bots, and an independent-cascade model predicts how far a post goes viral once it starts spreading.
GNN message passing (per edge update):
h_i(t+1) = h_i(t) + ฮฑ ยท ( mean_{jโN(i)} h_j(t) โ h_i(t) ) ยท dt
h_i โ [-1, 1] (node sentiment: red = negative, green = positive)
Virality cascade (independent-cascade model):
P(i infects neighbor j) = clamp( p_base ยท boost_bot(i), 0, 1 )
boost_bot(i) = 1.6 if i is a bot account, else 1.0
Bot classifier:
score_i = engagement_pattern_i + noise_i
flagged if score_i > 0.6
- Network size โ how many accounts (nodes) are active in the graph; edges only connect active nodes.
- Bot accounts โ target share of accounts whose synthetic engagement pattern matches spammy bot-like behaviour; the classifier tries to recover this set from the pattern alone.
- Sentiment bias โ nudges freshly injected sentiment toward positive or negative before the GNN smooths it across neighbours.
- Trigger viral post โ seeds a random account and runs the cascade model outward through the graph, tracking what share of the network it reaches.
- Bot detection โ toggles the classifier's highlight overlay on flagged accounts.