Estimating Online Influence Needs Causal Modeling! Counterfactual Analysis of Misinformation Engagement on Social Media
This repository contains implementations of CITRUS that incorporate external signals (such as Google Trends data) through different mechanisms.
-
Setup Environment ```bash ./setup.sh pip install -r requirements.txt ```
-
Generate External Signal Data ```bash python scripts/generate_external_data.py --num-samples 10000 --output data/external_signals.npy ```
-
Run Quick Test ```bash ./run_experiments.sh quick_test ```
-
Train Specific Model ```bash ./train_model.sh --model-type mamba --variant adapter --epochs 100 ```
- Token Augmented: External signals as additional tokens
- Attention Head Augmented: Dedicated attention for external signals
- Selection Augmented: External signals modulate selection mechanism
- Adapter Augmented: Lightweight adapters for external signals
- Token Augmented: External signals with type embeddings
- Attention Head Augmented: Dedicated attention heads
- Selection Augmented: Attention weight modulation
- Adapter Augmented: Adapter modules at each layer
Run comprehensive hyperparameter search: ```bash ./hyperparam_search.sh grid ```
Key parameters:
- `--model-type`: mamba or transformer
- `--variant`: token, attention_head, selection, adapter
- `--external-dim`: Dimension of external signal
- `--epochs`: Number of training epochs
- `--lr`: Learning rate
- `--batch-size`: Batch size
See `./train_model.sh --help` for all options.