Trabajo Fin de Grado en Matemáticas Computacional
Autora: Mar Iborra Granel
Este repositorio implementa y compara cinco modelos de difusión de información en redes sociales sobre un dataset real de Twitter con hashtags:
- IC — Independent Cascade (Kempe et al., 2003): baseline clásico, difusión solo por aristas del grafo
- TIC — Topic-aware IC (Barbieri et al., 2013): extiende IC con probabilidades por tópico y arista
- NSTI-IC — Neighbor Structure & Topic-aware Interest IC (Zhang et al., 2020): incorpora estructuras topológicas locales y afinidad temática del receptor
- AIR — Authoritativeness-Interest-Relevance (Barbieri et al., 2013): difusión global por autoridad temática, sin restricción al grafo de follows
- NSTI-IC+AIR — modelo híbrido propuesto en este TFG: combina la estructura local de NSTI-IC con la autoridad global de AIR mediante Noisy-OR
El objetivo es analizar cómo influyen la estructura local del grafo, los tópicos de los ítems y la autoridad temática de los usuarios en la propagación de hashtags en Twitter, y determinar qué componentes son determinantes en un dataset donde el 91.3% de las activaciones ocurren fuera del grafo de follows.
Se utiliza el dataset de difusión de información en Twitter disponible en:
https://ieee-dataport.org/documents/information-diffusion-dataset-twitter-user-tweets
Características principales:
- ~44.000 nodos (usuarios), ~485.000 aristas (follows)
- ~40.000 cascadas de hashtags, ~1.9M activaciones
- Solo el 8.7% de activaciones consecutivas ocurren entre usuarios conectados en el grafo
El repositorio trabaja con una versión procesada del dataset adaptada al formato necesario para los modelos.
TFG_MAIS_CODE/
│
├── README.md
├── requirements.txt
│
├── data/
│ ├── raw/ # Datos originales del dataset
│ └── processed/ # Datos transformados en formato CSV
│
├── notebooks/
│ ├── 00_dataset_exploration.ipynb
│ ├── 01_preprocessing.ipynb
│ ├── 02_topic_modeling.ipynb
│ │
│ ├── 03_models/
│ │ ├── 00_seeds.ipynb
│ │ ├── IC.ipynb
│ │ ├── TIC.ipynb
│ │ ├── AIR.ipynb
│ │ ├── NSTI_IC.ipynb
│ │ └── NSTI_IC_AIR.ipynb
│ │
│ ├── 04_evaluation_comparison.ipynb
│ │
│ └── 05_experiments/
│ ├── experiment1/
│ │ ├── exp1_01_subgraph_construction.ipynb
│ │ └── exp1_02_subgraph_models.ipynb
│ ├── experiment2/
│ │ ├── exp2_01_subgraph_construction.ipynb
│ │ └── exp2_02_subgraph_models.ipynb
│
├── src/ # Código reutilizable
│ ├── results.py
│ ├── ic/
│ │ └─ model.py
│ ├── tic/
│ │ └─ model.py
│ ├── air/
│ │ └─ model.py
│ ├── nsti_ic/
│ │ └─ model.py
│ └── nsti_ic_air/
│ └─ model.py
│
└── results/
│ └── models/
│ └── ic/
│ └── tic/
│ └── air/
│ └── nsti_ic/
│ └── nsti_ic_air/Los modelos utilizan los siguientes archivos en data/processed/:
-
seed_nodes.csv -
users.csvuser_id
-
edges.csvsrc_user_iddst_user_id
-
cascades.csvitem_iduser_idtimestamp
-
items.csvitem_idtopic_vector
-
user_topics.csvuser_idinterest_vector
- Exploración del dataset (
00_dataset_exploration.ipynb) - Preprocesamiento y generación de CSV (
01_preprocessing.ipynb) - Modelado de tópicos con LDA, K=20 (
02_topic_modeling.ipynb) - Split train/test y selección de semillas (
00_data_split.ipynb,00_seeds.ipynb) - Entrenamiento y evaluación de modelos:
- IC — EM para probabilidades por arista
- TIC — EM con responsabilidades por tópico
- NSTI-IC — EM para estructuras + descenso de gradiente
- AIR — GEM para autoridad temática
- NSTI-IC+AIR — EM + GD + GEM combinados
- Comparación final (
04_evaluation_comparison.ipynb)
Se utilizan dos protocolos de evaluación:
MSE/AUC (Zhang et al., 2020) — métrica principal:
- Para cada cascada test: nodos activos reales (y=1) + 50 inactivos muestreados (y=0)
- Simulaciones MC o cálculo analítico → P(u activo)
- Métricas: MSE, AUC-ROC, Accuracy por umbral
Evaluación por cascada — métrica secundaria:
- Muestra estratificada de 300 cascadas test (75 por cuartil)
- Top-3 nodos más tempranos como semilla
- Métricas: MAE, ratio sim/real, correlación
Instalar dependencias:
pip install -r requirements.txt
Dependencias principales: numpy, pandas, scikit-learn, python-igraph, joblib, matplotlib, gensim
- Kempe, D., Kleinberg, J., & Tardos, É. (2003). Maximizing the spread of influence through a social network. KDD 2003.
- Barbieri, N., Bonchi, F., & Manco, G. (2013). Topic-aware social influence propagation models. TKDE.
- Zhang, C., Yin, Y., & Liu, Y. (2020). NSTI-IC: An independent cascade model based on neighbor structures and topic-aware interest. APWeb-WAIM 2020.