Skip to content

Latest commit

 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Comparación de modelos de difusión de información en redes sociales

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.


Dataset

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.


Estructura del repositorio

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/

Formato de los datos procesados

Los modelos utilizan los siguientes archivos en data/processed/:

  • seed_nodes.csv

  • users.csv

    • user_id
  • edges.csv

    • src_user_id
    • dst_user_id
  • cascades.csv

    • item_id
    • user_id
    • timestamp
  • items.csv

    • item_id
    • topic_vector
  • user_topics.csv

    • user_id
    • interest_vector

Flujo de trabajo

  1. Exploración del dataset (00_dataset_exploration.ipynb)
  2. Preprocesamiento y generación de CSV (01_preprocessing.ipynb)
  3. Modelado de tópicos con LDA, K=20 (02_topic_modeling.ipynb)
  4. Split train/test y selección de semillas (00_data_split.ipynb, 00_seeds.ipynb)
  5. 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
  6. Comparación final (04_evaluation_comparison.ipynb)

Evaluación

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

Requisitos

Instalar dependencias:

pip install -r requirements.txt

Dependencias principales: numpy, pandas, scikit-learn, python-igraph, joblib, matplotlib, gensim


Referencias

  • 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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages