FISSION: Label Augmentation for Bot Detection
Organizations: Yale University, IC3 · Staples High School
Abstract
Bot accounts and coordinated influence operations are often discovered via heuristic methods, leaving a dearth of reliable ground-truth labels for training detection systems. To address this challenge, we study a natural question: can we generate labels to assist in learning embeddings in which bots and accounts from the same coordinated operation are close? We present FISSION, a method to generate labels by splitting each account's activity into positively labeled sub-accounts. Given this label source, we train detection models which preserve behavioral regularities recurring across positive sub-accounts. We evaluate FISSION and show it outperforms prior methods in detecting Wikipedia sockpuppets and Twitter/X bots.
Figures & tables
| Approach | AUROC | AUPRC / AP | F1-Score | F0.5-Score | Accuracy | Precision | Recall |
| Random [RD25] | |||||||
| Majority [RD25] | - | - | - | - | - | - | |
| RoBERTa [RD25] | |||||||
| Standard Enc. [RD25] | |||||||
| Pre-trained Enc. [RD25] | |||||||
| Reptile Enc. [RD25] |
| Method | Accuracy | F1-score |
| [ 27 ] | 97.45( 0.23) | 96.87( 0.43) |
| [ 36 ] | 96.84( 0.13) | 97.44( 0.74) |
| [ 16 ] | 97.15( 0.32) | 97.78( 0.24) |
| [ 19 ] | 96.52( 0.71) | 97.30( 0.53) |
| [ 32 ] | 98.35( 0.24) | 98.71( 0.18) |
| [ 35 ] | 98.50( 0.00) | 98.82( 0.00) |
| Dataset | Positive Class | Positive | Negative | Total | View Eligibility |
| Cresci15 | Bot | 3,351 | 1,950 | 5,301 | At least 20 events |
| Wikipedia Active | Sockpuppet | 66,247 | 95,357 | 161,604 | At least 10 edits |
| Wikipedia Full | Sockpuppet | 132,890 | 3,179,197 | 3,312,087 | Routed by edit count |
| Stage | Information Used for Fitting |
| Feature Transforms | Complete histories in outer fold training portion, no task labels |
| Encoder Pretraining | Eligible fissioned training views, no task labels |
| Classifier Selection | Representations of labeled training accounts and inner-fold validation labels |
| Outer Evaluation | Complete held-out histories and labels used only for scoring |
| Contrast | Quantities Held Fixed |
| Raw vs. One Encoder | Accounts, input features, logistic classifier, folds, and threshold rule |
| One Fixed vs. Three Adaptive | Base features and classifier family, view rule and number of encoder-classifier pairs change |
| Fixed vs. Adaptive Views | Accounts, encoder count, features, and classifier |
| Raw vs. FISSION RBF | Accounts, input features, kernel classifier, folds, and threshold rule |
| Feature Removal | Protocol and architecture, one input family is removed |
| Label Budget | Representation, folds, and paired labeled subset, only label count changes |
| Dataset | Model | Accuracy (%) | Positive (%) | ROC-AUC (%) |
| Wikipedia Full | FISSION -Distill | |||
| Cresci15 | Raw Features + Logistic | |||
| FISSION , Three Encoders + Logistic | ||||
| Raw Features + RBF SVM | ||||
| FISSION , Three Encoders + RBF SVM | ||||
| FISSION + Profile Fallback (full cohort) | — |
Appendix figures & tables20 assets
Supplementary material from the paper’s appendix.
Appendix
| Cohort | Positive | Negative | Total |
| Cresci15 Event Cohort | 3,202 | 1,946 | 5,148 |
| Cresci15 Full Profile Cohort | 3,351 | 1,950 | 5,301 |
| Wikipedia Supplied Summary | 116,846 | 3,195,242 | 3,312,088 |
| Wikipedia Full Scoring | 132,890 | 3,179,197 | 3,312,087 |
| Wikipedia Active Cohort | 66,247 | 95,357 | 161,604 |
| Dataset | Train | Positive Test | Negative Test |
| Cresci15 | 4,118-4,119 | 640-641 | 389-390 |
| Wikipedia | 129,283-129,284 | 13,249-13,250 | 19,071-19,072 |
| Dataset | Behavioral Groups | Lexical | Total |
| Cresci15 | Hour 24, Day 7, Scalars 8 | 50 | 89 |
| Wikipedia | Hour 24, Magnitude 3, Rhythm 3 | 50 | 80 |
| Component | Cresci15 | Wikipedia |
| Eligibility | At least 20 events to form views, all accounts evaluated | Cohort and view eligibility require at least 10 edits |
| Views | Adaptive , fixed ten-way comparison, all unordered pairs | Adaptive views for the complete model, fixed ten-way views for the single-encoder comparison |
| Input | 39 behavioral + 50 lexical dimensions | 30 behavioral + 50 lexical dimensions |
| Text Transform | Outer-training TF-IDFwith 5,000 terms and minimum document frequency 5, followed by a 50-dimensional truncated SVD. | |
| Encoder / Projector | -128-128-64 encoder with BN, ReLU, and normalized output, training-only 64-128-32 projector with ReLUand normalization. | |
| Contrastive Fit | Adam, learning rate , 50 epochs, 256 pairs (512 views), temperature , single-positive pairs, and diagonal masking. | |
| Approach | AUROC | AUPRC / AP | F1-Score | F0.5-Score | Accuracy | Precision | Recall |
| Reptile Enc. [RD25] | |||||||
| Our Work (Active) | |||||||
| Our Work (Full) |
| Dataset | Contrast | Acc. | 95% CI |
| Wikipedia | Raw One Encoder | ||
| One Three Adaptive | |||
| Fixed Adaptive Views | |||
| Remove Rhythm | |||
| Remove Text | |||
| Cresci15 | Raw One Encoder |
| Views | Classifier | Accuracy (%) | Bot (%) |
| Fixed Ten-Way | Logistic | ||
| Count-Adaptive | Logistic | ||
| Fixed Ten-Way | RBF SVM | ||
| Count-Adaptive | RBF SVM |
| Variant | Acc. (%) | (pp) | 95% CI | Holm |
| All Features | - | - | - | |
| Without Hour | 99.211 | 0.73 | ||
| Without Day | 99.180 | 0.50 | ||
| Without Scalars | 99.176 | 0.73 | ||
| Without Text | 97.296 | |||
| Text Only | 99.083 | - |
| Variant | Accuracy (%) | Change (pp) | 95% CI (pp) |
| All Features | 95.314 | - | - |
| Without Rhythm | 84.902 | ||
| Without Text | 94.765 | ||
| Text Only | 77.991 |
| Classifier | Search Grid and Fixed Settings |
| Logistic Regression | , ordinary or balanced class weights, LM-BFGS, at most 1,000 iterations |
| RBF SVM | , , Platt map fit to inner out-of-fold decision values |
| XGBoost | trees , depth , learning rate |
| LightGBM | trees , depth , learning rate |
| MLP | one hidden layer of width 32 or 128, , LM-BFGS, at most 1,000 iterations |
| Random Forest | 500 trees, maximum features or |
| Classifier and Layout | Accuracy (%) | Acc. (pp) |
| TabPFN, Per Encoder | 99.219 | |
| RBF SVM, Per Encoder | 99.219 | |
| TabPFN, Joint | 99.207 | |
| RBF SVM, Joint | 99.200 | |
| XGBoost, Per Encoder | 99.184 | |
| Logistic, Joint (Reference) | 99.157 |
| Budget | Labels per Fold | Input | Accuracy (%) | Positive (%) | ROC-AUC (%) |
| 1% | 41 | Raw | |||
| FISSION | |||||
| 2% | 82 | Raw | |||
| FISSION | |||||
| 5% | 206 | Raw | |||
| FISSION |
| Budget | Labels per Fold | Input | Accuracy (%) | Positive (%) | ROC-AUC (%) |
| 1% | 1,293 | Raw | |||
| FISSION | |||||
| 2% | 2,586 | Raw | |||
| FISSION | |||||
| 5% | 6,464 | Raw | |||
| FISSION |
| Budget | Labels per Fold | Input | Accuracy (%) | Positive (%) | ROC-AUC (%) |
| 1% | 41 | Raw | |||
| FISSION | |||||
| 2% | 82 | Raw | |||
| FISSION | |||||
| 5% | 206 | Raw | |||
| FISSION |