L'analisi dei social network studia le strutture sociali utilizzando le reti e la teoria dei grafi. Questo articolo introduce i data scientist alla teoria dei social network e fornisce una breve introduzione alla teoria dei grafi e alla diffusione delle informazioni. Si tuffa nel codice Python, con NetworkX che crea e implica social network da set di dati reali.
(Questo articolo è una versione scritta di un discorso di Pycon 2019. Puoi guardare il seguente video e controllare il repository di codice Github.)
Iniziamo con una breve introduzione ai componenti di base della rete: nodi e bordi.
nodo(nell'esempio A, B, C, D, E) di solito rappresentano entità nella rete e possono contenere proprietà proprie (come peso, dimensione, posizione e qualsiasi altro attributo) e proprietà basate sulla rete (come ad es.).Laureato- Numero di vicini oGrappolo- un componente connesso a cui appartiene il nodo, ecc.).
Latirappresentano le connessioni tra i nodi e possono contenere anche proprietà (ad esempio il peso, che rappresenta la forza della connessione, la direzione nel caso di una relazione asimmetrica o il tempo se applicabile).
Questi due elementi di base possono descrivere diversi fenomeni, come ad esempio B.connessioni sociali, rete di routing virtuale, reti elettriche fisiche, rete stradale, rete relazionale biologicae molte altre relazioni.
reti reali
Le reti reali, e le reti sociali in particolare, hanno una struttura unica che spesso le distingue dalle reti matematiche casuali:
- IL fenomeno dimondo piccolodescrive che una rete reale ha spesso percorsi molto brevi (in termini di numero di salti) tra i membri della rete connessi. Questo vale per i social network reali e virtuali (la teoria delle sei strette di mano) così come per le reti fisiche come gli aeroporti o l'elettricità dagli instradamenti del traffico web.
- Scala Reti gratuitecon Le distribuzioni dei gradi della legge di potenza hanno una popolazione distorta con alcuni nodi fortemente connessi (ad esempio influenze sociali) e molti nodi debolmente connessi.
I nodi altamente centralizzati svolgono un ruolo chiave in una rete, fungendo da hub per diverse dinamiche di rete. Tuttavia, la definizione e il significato di centralità possono differire da caso a caso e possono riferirsi a diverse misure di centralità:
- Laureato- il numero di vicini del nodo
- EigenVector / PageRank- Gruppi di iniziativa dei vicini
- Vicinanza- il grado di prossimità a tutti i nodi
- Nel frattempo- l'insieme del cammino breve passante per il nodo
Le reti possono essere costruite da diversi insiemi di dati fintanto che possiamo descrivere le relazioni tra i nodi. Nell'esempio seguente, creiamo e visualizziamo la rete elettorale dell'Eurovision 2018 (basata su dati ufficiali) utilizzando ilPitoneretex-Pacchetto.
Noii datidal file Excel in aPanda-Leggi i frame di dati per ottenere una rappresentazione tabulare dei voti. Poiché ogni riga rappresenta tutti i voti di ciascun paese,scioltocontrolliamo il set di dati per assicurarci che ogni riga sia una singola voce (Kanté) tra due paesi (nodo) rappresenta.
Quindi creiamoun grafico orientatoconretexdall'elenco dei bordi abbiamo come dataframe dei panda. Infine, proviamo il metodo generico pervisualizzazione, come mostrato nel codice seguente:
visualizzazione
Purtroppo l'installazioneprocesso di disegnoporta a una figura molto incomprensibile. Il metodo tenta di disegnare un grafico fortemente connesso, ma senza utili "suggerimenti" non può avere molto senso dai dati. miglioreremo la figura,in qualeabbiamo diversi aspetti visivi della trama con una preconoscenza delle entitàdividere e conquistare:
- Posizione -Ogni paese è assegnato in base alla sua posizione geografica
- Stile- ogni paese è riconosciuto dalla sua bandiera e dai colori della bandiera
- Misurare- La dimensione dei nodi e dei bordi indica il numero di punti
Il nuovo numero è un po' più leggibile e ci offre una rapida panoramica dei voti. Come nota a margine generale, disegnare reti è spesso difficile e richiede un attento compromesso tra la quantità di dati presentati e il messaggio trasmesso. (Puoi provare ad esplorare altri strumenti di visualizzazione della rete come Gephi, Pyvis o GraphChi.)
Il processo di diffusione delle informazioni può assomigliare a una diffusione virale di una malattia che segue una dinamica contagiosa del salto da un individuo ai suoi vicini sociali. Per descrivere il processo vengono spesso utilizzati due modelli di base popolari:
La soglia linearedefinisce un comportamento basato sulla soglia in cui l'influenza si accumula da più vicini del nodo, che viene attivato solo quando l'influenza cumulativa supera una certa soglia. Tale comportamento è tipico dei consigli sui film, in cui un consiglio di uno dei tuoi amici potrebbe convincerti a guardare un film dopo averne sentito parlare molto.
Io sonoIl modello Cascade indipendente haciascuno dei vicini attivi del nodo ha una possibilità probabilistica e indipendente di attivare il nodo. Questo è simile a una diffusione virale come in Covid-19, in cui qualsiasi interazione sociale potrebbe innescare l'infezione.
Esempio di flusso di informazioni
Per illustrare un processo di diffusione delle informazioni, usiamo la rete Storm of Swords basata sui personaggi dello show di Game of Thrones. La rete è stata costruita sulla base dell'apparizione congiunta nei "libri delle Cronache del ghiaccio e del fuoco".
Utilizzando il modello a cascata indipendente, cercheremo di tracciare le dinamiche di diffusione delle voci prevalenti in questo show.
Allarme spoiler!Presunto,Jon Snownon sa nulla all'inizio del processo, mentre i suoi due fedeli amiciBran StarkESamwell Tarleyconoscere un segreto molto importante sulla sua vita. Vediamo come la voce sotto ilCascata indipendente-Modello comune:
La voce raggiunge Jon at = 1, si propaga ai suoi vicini nelle seguenti fasi temporali e si diffonde rapidamente in tutta la rete, risultando di dominio pubblico:
Queste dinamiche dipendono fortemente dai parametri del modello, che possono portare il processo di diffusione a modelli diversi.
Il problema della massimizzazione dell'influenzadescrive una configurazione di marketing (ma non solo) in cui l'obiettivo del marketer è raggiungere un insieme limitato di nodi nella rete (insieme di semina) in modo tale che l'influenza sia naturalmente distribuita su quanti più nodi possibile. Ad esempio, considera di invitare un numero limitato di influencer a un prestigioso evento di lancio di un prodotto per spargere la voce al resto della loro rete.
Tali influenzatori possono essere identificati utilizzando numerose tecniche, come le misure di centralità sopra menzionate. Ecco i nodi più centrali nelGame of Thrones-Rete secondo diverse scale:
Come possiamo vedere, alcuni dei personaggi stanno riapparendo in prima linea in varie azioni e sono noti anche per la loro influenza sociale nello show.
Simulando la selezione della maggior parte dei nodi centrali, scopriamo che selezionando un singolo nodo della rete, è possibile ottenere circa il 50% della copertura della rete: ecco quanto potrebbero essere importanti gli influenzatori sociali.
D'altra parte, ilDifficile massimizzare l'influenza. In effetti, si chiamaProblema NP-difficile considerato. Molte euristiche sono state sviluppate per trovare il miglior insieme di seeding in un calcolo efficiente. Il tentativo di un metodo di forza bruta per trovare la migliore coppia di seeding nella nostra rete ha comportato la spesa di 41 minuti e il raggiungimento del 56% di copertura (selezionandoRoberto BaratheonEKhal Drogo) - un risultato che sarebbe difficile da ottenere con l'euristica della centralità.
L'analisi della rete è uno strumento complesso e utile per vari campi, specialmente nei social network in rapida crescita. Le applicazioni di questa analisi includonoMarketingioMassimizzazione dell'influenza, rilevamento delle frodiOsistemi di raccomandazione. Esistono diversi strumenti e tecniche che possono essere applicati ai set di dati di rete. Tuttavia, devono essere scelti con cura, tenendo conto delle caratteristiche uniche del problema e della rete.
Codice e dati:
- Il record di Game of Thrones @jeffreylancaster
- Tutorial di rete @MridulS
- Immagini delle bandiere @linssen
- Date dell'Eurovisione
- Il tempismo è importante: massimizzare l'influenza nei social network attraverso il seeding pianificato - D. Goldenberg et al.
- Marketing virale attivo: incorporare continui sforzi di seeding attivo nel modello di diffusione - A. Sela et al.
- Massimizzare la distribuzione dell'influenza su un social network - E. Tardos et al.
- Massimizzazione efficiente dell'influenza nei social network - W. Chen et al.
- Cascata indipendente e modelli a soglia lineare - P. Shakarian et al.
Contattami con domande e idee tramitePostao Linkedin.
Interessato al mio lavoro su Booking.com? Visita il nostro blog sulla scienza dei dati di Booking.com.