Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Elaborato finale in Basi di dati
Tecniche di Social Network Analysis
Anno Accademico 2014/2015
Candidato:
Carmen Cristiana Baruffini
matr. N46/2716
Ad Alberto, che ha avuto la pazienza di aspettarmi
e la costanza di aiutarmi;
a Laura Chiara, che con gioia e ironia,
mi ha accompagnato durante l’ultimo e più difficile
tratto di questo percorso;
a tutti gli amici, che mi hanno incoraggiato,
ma anche sopportato:
grazie!
Indice
Tecniche di Social Network Analysis ...................................................................................................... I Indice ...................................................................................................................................................................... III Introduzione .......................................................................................................................................................... 4 Capitolo 1: Concetti fondamentali .................................................................................................................. 6 1.1 Social network e social media .............................................................................................................................. 6 1.2 Social Network Analysis ......................................................................................................................................... 8 Capitolo 2: Rappresentazione dei dati di un Social Network ................................................................ 9 2.1 L’approccio ai dati della Social Network Analysis ........................................................................................... 9 2.2 Matrice delle adiacenze ............................................................................................................................................ 10 2.3 Grafo sociale .................................................................................................................................................................. 11 Capitolo 3: Processo di Social Network Analysis ..................................................................................... 13 3.1 Estrazione dei dati ...................................................................................................................................................... 13 3.2 Pre-­‐processing ............................................................................................................................................................. 13 3.3 Generazione del grafo sociale ed analisi delle caratteristiche del network ...................................... 15 3.3.1 Definizione dei confini del network da analizzare .................................................................................................. 16 3.3.2 Misure relazionali .................................................................................................................................................................. 17 3.3.3 Misure Strutturali ................................................................................................................................................................... 17 Capitolo 4: La SNA “al lavoro” ......................................................................................................................... 22 4.1 Software di SNA ........................................................................................................................................................... 22 4.2 Strumenti per l’estrazione dei dati e la costruzione del data set ........................................................... 26 4.2.1 REST API .................................................................................................................................................................................... 26 4.2.2 JSON .............................................................................................................................................................................................. 27 4.2.3 OAuth ........................................................................................................................................................................................... 27 4.2.4 Un esempio: Facebook ......................................................................................................................................................... 28 4.3 Strumenti per la memorizzazione dei dati: i database NoSQL ................................................................ 30 4.4 Una proposta architetturale ................................................................................................................................... 31 Conclusioni ........................................................................................................................................................... 34 Bibliografia ........................................................................................................................................................... 38 Introduzione
Centinaia di milioni di persone trascorrono ore sui social networks per condividere,
comunicare, connettersi, interagire e creare dati ad un ritmo senza precedenti. La
possibilità di potersi connettere anche con dispositive mobili genera la
movimentazione di un’enorme massa di dati. Per tale motivo, i social networks
costituiscono un’innovativa e ricchissima fonte di informazioni, i Big Data più
interessanti per tutti gli analisti di tutti i settori.
In essi ogni individuo si relaziona con gli altri e tale interazione plasma e modifica
il comportamento suo e degli altri. Lo scopo principale della Social Network
Analysis (SNA) è appunto quello di individuare e analizzare tali legami tra gli
individui.
Gli strumenti a disposizione per l’analisi delle reti sociali analizzano ed effettuano
delle comparazioni tra i flussi informativi esistenti all’interno di una rete,
visualizzando attraverso diagrammi, grafi e mappe più o meno complesse le varie
relazioni e comunicazioni che intercorrono fra i vari componenti della rete.
Sono moltissime le aziende che avvertono l’esigenza di analizzare e comprendere
questo nuovo tipo di dati, per trarne informazioni utili sulle abitudini e i
comportamenti dei loro potenziali clienti e fare “marketing digitale”; il giornalismo
basato sui dati ne fa uso per verificare notizie, cercare nuovi casi da approfondire,
raccontare storie significative basate su dati concreti, in grado di coinvolgere
intellettualmente ed emozionalmente il pubblico; l’informatica forense li utilizza
nell’ambito di indagini legali, analizzando i comportamenti di determinati profili di
utenti o di utenti specifici; la politica ne trae vantaggio, in quanto può trarre
4
informazioni sulle distribuzioni delle opinioni su specifici argomenti, clusterizzate
secondo criteri differenti (localizzazione, sesso, età, stato civile, etc.). ; ulteriore
ambito applicativo è anche l’Open Source Intelligence (OSINT) in ambito sia
commerciale che militare.
Il presente lavoro innanzitutto introduce i concetti fondamentali della SNA, ne
descrive il processo dettagliandone la sequenza di attività, introduce alle principali
metriche utilizzate per l’analisi delle relazioni del network sotto esame.
Successivamente illustra la SNA dal punto di vista operativo, delineando i
fondamentali strumenti che le tecnologie attuali mettono a disposizione,
proponendo un possibile modello di integrazione di alcuni componenti per una
sperimentazione.
Infine viene rivolto uno sguardo agli scenari in cui tali metodologie si
contestualizzano e ai possibili sviluppi futuri.
5
Capitolo 1: Concetti fondamentali
1.1 Social network e social media
Social network e social media sono due concetti di cui si fa uso e abuso
continuamente, spesso confondendoli. Il social network è infatti una struttura
sociale, un reticolo di persone che decidono di costruire una community, intorno ad
interessi che desiderano condividere. Si tratta quindi di un concetto teorico, che
nasce nell’ambito delle scienze sociali e che preesiste alle tecnologie
dell’informazione. I social media invece sono «un gruppo di applicazioni basate
sul web e costruite sui paradigmi (tecnologici ed ideologici) del web 2.0 che
permettono lo scambio e la creazione di contenuti generati dagli utenti »1. Il social
media è quindi lo strumento che rende possibile l’interazione, costituito da un
insieme di servizi informatici on line che permette la realizzazione di reti sociali in
un contesto digitale.
Premesso ciò, dal punto di vista operativo, da questo momento in poi, ci si riferirà
al social network per indicare quel particolare tipo di rete sociale che si sviluppa in
Internet come forma evoluta di comunicazione in rete, come tentativo (peraltro
riuscito) di violare la cosiddetta regola dei 1502, la rete di relazioni sociali che un
popolo di utenti che abbraccia praticamente ogni fascia d’età3, tesse ogni giorno, in
maniera più o meno casuale, nei vari ambiti della propria vita.
I principali social network sono: Facebook,
1
MySpace, Instagram,
Twitter,
Andreas Marcus Kaplan, docente di Marketing alla ESCP Europe Business School.
150: numero di Dunbar è una quantificazione numerica del limite cognitivo teorico che concerne il numero di persone
con cui un individuo è in grado di mantenere relazioni sociali stabili, ossia relazioni nelle quali un individuo conosce
l'identità di ciascuna persona e come queste persone si relazionano con ognuna delle altre.
3
Coloro i quali usufruiscono maggiormente dei social network – la cosiddetta “Net Generation” - si collocano in una
fascia d’età che varia tra i 18 ed i 45 anni.
2
6
Google+, LinkedIn, Pinterest, Meetup, YouTube, Spotify. I più usati al mondo
sono senza dubbio Facebook e Twitter.
Le principali funzionalità che un social network operativamente mette a
disposizione sono:
• la creazione di un profilo personale;
• la funzione di connessione/amicizia/relazione tra gli utenti;
• la possibilità di scambiarsi messaggi privati (chat) o pubblici (wall) ;
• la possibilità di caricare, organizzare e archiviare contenuti multimediali;
• la possibilità di “aggiornare il proprio stato” con messaggi di vario genere;
• la possibilità di geolocalizzarsi;
• la possibilità di commentare, votare, recensire o ricondividere contenuti propri o
altrui;
• la possibilità di creare gruppi di interesse o attività, avviare discussioni, creare
eventi e liste di amici;
• la possibilità di “importare” i propri amici da altri servizi di social networking o da
servizi e-mail;
• la possibilità di cercare informazioni internamente al network, creare oggetti o
applicazioni di cui usufruire all’interno network stesso;
• la possibilità di usare le credenziali di accesso al servizio per usufruire di altri
servizi online;
• la possibilità di “esportare” e ripubblicare il contenuto sul proprio sito web
attraverso widget, social box o altri strumenti..
Sulla base del contenuto su cui sono centrati, si distinguono :
• Social Networks generalisti : caratterizzati dall’assenza di un tema specifico o uno
scopo ben preciso, se non quello di far “socializzare” i propri iscritti (es. Facebook,
Twitter) ;
• Social Networks tematici : caratterizzati da uno scopo specifico (es. Linkedin,
dedicato a tematiche professionali e di business).
• Social Networks funzionali : generalisti per quanto attiene la natura dei contenuti,
7
si distinguono per il fatto di trattarne un tipo specifico (es. YouTube per i video,
Flickr per le foto).
Ciò che determina il successo di un social network è la sua utilità pratica percepita
da parte degli iscritti, che si sentono invogliati a tornare spesso e volentieni ad
utilizzarne i servizi e a convincere i loro amici ad iscriversi a loro volta per
servirsene insieme.
1.2 Social Network Analysis
La social network analysis (SNA) è una metodologia di analisi delle relazioni
sociali che si è sviluppata a partire dai contributi di Jacob Levi Moreno, il
fondatore della sociometria.
Nella teoria delle reti sociali la società è vista e studiata come rete di relazioni, più
o meno estese e strutturate. Il presupposto fondante è che ogni individuo (attore) si
relaziona con altri e questa interazione plasma e modifica il comportamento suo e
degli altri. L’assunto fondamentale è che l'uomo è un essere sociale interagente,
capace di manipolare gli altri così come di essere manipolato dagli altri; pertanto le
relazioni sociali, all’interno di una comunità, ne influenzano il comportamento
collettivo. Basandosi sul principio ideologico secondo il quale le relazioni sociali
strutturate sono un mezzo più potente di spiegazione sociologica di quanto non lo
siano gli attributi personali dei membri di un sistema, la SNA propone quindi un
punto di vista alternativo di analisi dei comportamenti umani.
Sulla base di questi presupposti, si può affermare che lo scopo principale SNA è
quello di individuare, rappresentare, caratterizzare e analizzare i legami tra gli
individui.
Per fare ciò, la SNA fa ampio uso di temi, concetti e strumenti di una branca della
matematica nota come teoria dei grafi, unitamente a diverse classi di misure,
rivolte alla caratterizzazione di una rete nel suo complesso, alla ricerca di sottoreti
specifiche, di somiglianze fra reti, etc.
8
Capitolo 2: Rappresentazione dei dati di un Social Network
Dal momento che ci riferiamo al Social Network come insieme di attori e legami
tra di essi, compito degli analisti di Social Network è quello di modellare tali
relazioni e disegnare la struttura del network, per potere successivamente studiare
l’impatto della struttura sul funzionamento del gruppo di attori nel suo complesso e
sui comportamenti individuli all’interno del gruppo.
La Social Network Analysis, nello studiare le relazioni che si instaurano tra attori,
considera le caratteristiche delle unità sociali come emergenti dalle strutture o dai
processi relazionali, mettendo in secondo piano gli attributi degli attori. Gli
strumenti utilizzati per rappresentare e studiare le relazioni fanno riferimento alla
teoria dei grafi che offre un’efficace traduzione dei dati contenuti in matrici in
concetti i che possono essere direttamente rapportati ai caratteri essenziali delle reti
sociali.
2.1 L’approccio ai dati della Social Network Analysis
Secondo l’approccio convenzionale della ricerca sociale, il comportamento
individuale viene fatto derivare da un set di attributi che ciascun attore possiede,
indipendentemente dagli altri.
L'attenzione focalizzata sull’attore, conduce ad una rappresentazione in forma di
matrice rettangolare, in cui, sulle righe si ritrovano gli attori e sulle colonne gli
9
attributi.
Tale approccio si basa su una logica atomistica e compositiva che vede il sistema
come semplice insieme di individui indipendenti.
La Social Network Analysis propone invece un approccio alternativo, spostando
l’attenzione sulle relazioni fra gli attori. I valori che vengono associati alle
relazioni ne misurano il grado di intensità, oppure di frequenza, di simmetria, di
reciprocità. Questo modo di operare conduce ad una rappresentazione in forma di
matrice quadrata, in cui si ritrovano gli attori sia sulle righe che sulle colonne.
L’approccio si fonda pertanto su una logica strutturale, olistica e sistemica, che
vede il sistema fortemente condizionato dalle interazioni.
2.2 Matrice delle adiacenze
Secondo l’approccio dell SNA, i dati relazionali vengono rappresentati in una
matrice quadrata n x n, dove n è il numero degli attori che costituiscono il network
in esame. Tale matrice è denominata matrice delle adiacenze: per convenzione le
righe indicano gli attori sorgenti (da cui « parte » la relazione) e le colonne gli
attori riceventi (a cui « arriva » la relazione). Una relazione è simmetrica quando
A[i][j]= A[j][i]. Normalmente la diagonale principale della matrice è vuota e non
è presa in considerazione nelle computazioni.
Gli elementi della matrice possono essere valori binari o misure di vario tipo
(nominali, ordinali o scalari). Nel primo caso, il valore 1 indica la presenza di una
relazione e
il valore 0 la sua assenza. Nel secondo caso il valore può indicare il tipo di
relazione (es. amico, parente, etc), o una misura della relazione riferita ad una scala
di valori.
10
Nel caso in cui si debbano descrivere diversi tipi di relazioni, le stesse sono
rappresentate ognuna attraverso una propria matrice di adiacenza – ognuna con il
medesimo ordinamento di righe e colonne – a loro volta « sovrapposte », in modo
da creare una struttura a strati, detta « multiplex ». Un caso particolare di matrici
multiple è costituito dalla matrice Cognitive Social Structure (CSS), una matrice
cubica n x n x n, in cui vengono registrate le rispettive percezioni che i singoli
attori hanno delle relazioni con gli altri nodi della rete (es. « Marco pensa che
Silvia si farà condizionare da Laura nella scelta delle proprie letture »).
2.3 Grafo sociale
Il grafo sociale o sociogramma è una rappresentazione grafica bidimensionale
della mappa di attori e relazioni. I concetti fondamentali alla base della sua
costruzione sono :
• L’attore: entità sociali oggetto di analisi (individui, imprese, collettività, unità
organizzative etc.) rappresentate dai nodi.
• Il legame relazionale: collegamento tra due attori rappresentato da un arco che
collega i due nodi.
• La relazione: costrutto che riunisce l’insieme dei legami relazionali facente capo ad
una stessa tipologia, presenti tra i membri di un gruppo (amicizia, transazione
economica, associazione, autorità, parentela, etc.) . Dato un gruppo, possono essere
rappresentate una o più relazioni ognuna delle quali formata da un insieme di
legami relazionali.
• La diade: coppia di attori e potenziali legami che li uniscono.
• La triade: sottoinsieme di tre attori e potenziali legami che li uniscono.
• Il gruppo: insieme finito di attori che per motivi concettuali, teorici o empirici sono
considerati come un insieme di individui su cui effettuare misure.
• Il Social Network: insieme finito di attori e delle relazioni che li uniscono.
Nella sua definizione più ampia un grafo G = {N,L} è un reticolo dato dagli
insiemi finiti:
N = n1, n2, ni, nn nodi del grafo
11
L = l1, l2, lj, lm legami del grafo
I legami possono essere diretti o indiretti, orientati o non orientati, dicotomici o
valorizzati.
La rappresentazione più semplice è quella in cui i le connessioni sono espresse in
forma binaria (presenti/non presenti), tipicamente reso con una disposizione
casuale dei nodi, con distanze relative che non hanno significato analitico (spazio
arbitrario).
Se invece si vogliono rappresentare eventuali differenze di attributi dei nodi, si
possono utilizzare caratteristiche percettive quali il colore, la forma e la
dimensione, corrispondenti a misure nominali, ordinali o scalari. Anche le relazioni
possono essere oggetto di specifica visualizzazione, applicando differenti colori o
spessori. Ci riferiamo al caso in cui i legami non sono binari ma sono caratterizzati
da valori appartenenti ad una scala (nominale o numerica) ; in tale ipotesi, agli
archi viene associato un « peso » e il grafo viene denominato « grafo pesato ».
Una modalità sofisticata di rappresentazione è il Multi Dimensional Scaling
(MDS), secondo il quale la rete viene disposta nello spazio tridimensionale in
modo che le distanze assumano un significato, che deve essere accuratamente
interpretato.
In alcuni casi si perviene invece volontariamente a rappresentazioni semplificate,
per ottener una struttura della rete più facilmente interpretabile graficamente:
si può scegliere ad esempio di eliminare i nodi “isolati” e/o i nodi “pendenti”
o enfatizzare parti di rete che godono di particolari proprietà (blocchi, clique,
cluster, etc.).
Una particolare rappresentazione di network è, ancora, la ego-network, che si basa
su un nodo focale (“ego”), dai nodi a cui esso è direttamente connesso ( “alter”) e
dai legami, se esistono, tra gli alter.
Non esiste a priori un modo “giusto” di rappresentare un network: ogni
configurazione può essere ottimale con specifico riferimento ad un obiettivo e ad
una motivazione.
12
Capitolo 3: Processo di Social Network Analysis
3.1 Estrazione dei dati
L’estrazione dei dati da un SN è sicuramente l’aspetto più delicato di tutto il
processo. L’obiettivo è quello di estrarre possibilmente un campione significativo
della realtà che si intende studiare, senza perdere troppo tempo e senza
introduzione di “rumore (es. duplicati, errori di importazione, etc.).
L’estrazione può essere manuale (l’operatore interagisce con l’interfaccia grafica
del social media, copia i dati e li incolla in un file, ma non interessa ai fini del
presente lavoro) oppure automatica (mediante utilizzo componenti software).
L’estrazione automatica consente di reperire molti dati in breve tempo nonché di
controllare i duplicati, di memorizzare i dati recuperati. Spesso tuttavia si ricorre a
soluzioni miste, soprattutto per l’affinamento finale, prima del pre-processing dei
dati.
3.2 Pre-processing
Può darsi che la matrice di adiacenza inizialmente costruita sulla base dei dati
estratti non si presti al tipo di elaborazioni da svolgere e richieda delle
trasformazioni. Quelle più comunemente messe a disposizione dai più utilizzati
software di SNA sono:
• Permutazioni: modificando l'ordine delle colonne, vengono maggiormente
evidenziate particolari relazioni fra i dati. Tipicamente (in maniera particolare se la
matrice di partenza è simmetrica), viene effettuata la permutazione delle colonne in
13
analogia alla permutazione delle righe, in modo da mantenere la coerenza interna
della matrice.
• Partizione: la matrice viene suddivisa in blocchi (cioè in reti di dimensione minore)
sulla base di criteri diversi (es. uniformità o somiglianza di attributi fra gli attori)
allo scopo di ottenere una nuova matrice di adiacenza, in cui agli attori originari
(che graficamente si renderanno con « nodi » di un grafo) vengono sostituiti con
blocchi (« super nodi »); questo tipo di manipolazione serve ad agevolare
l’esecuzione di operazioni effettuabili su particolari tipi di matrici. La ratio della
partizione viene definita a piacere dall'analista, e per questo differisce dalla
clusterizzazione, che viene invece definita attraverso applicazione di algoritmi ad
hoc.
• Collassamento : è un'operazione che porta a « fondere » due o più righe/colonne in
un'unica riga/colonna, attraverso l'applicazione di operatori quali somma, media,
valore massimo o minimo. Ha lo scopo di semplificare la matrice, riducendo il
numero dei nodi. Come nel caso della partizione, la ratio è definibile a piacere
dall'analista.
• Trasposizione. Confrontando la matrice di origine con la sua trasposta si ottengono
si valuta in modo sintetico il grado di simmetria delle relazioni fra attori.
• Dicotomizzazione: una qualunque scala di misura viene ricondotta ad una misura
binaria, attraverso la fissazionedi un cut point. Questa operazione tipicamente
precede l'esecuzione di algoritmi utilizzabili solo su matrici binarie. Scegliendo
differenti cut point, si possono generare diverse matrici da quella originaria,
ciascuna rappresentativa di un differente livello di analisi.
• Simmetrizzazione. Viene “forzata” la simmetria di una matrice di adiacenza,
imponendo un valore ad uno o ad entrambi gli elementi della coppia simmetrica. Il
valore imposto può essere il risultato di una funzione (massimo, minimo, media,
somma, differenza, etc.), oppure la copia speculare lungo la diagonale principale;
la scelta dipende da cosa si intende enfatizzare, dal punto di vista sociologico, della
relazione che la coppia di elementi simmetrici rappresenta.
14
• Normalizzazione: i valori degli elementi della matrice vengono espressi in forma
percentuale, rispetto ad un valore di riferimento (totale di riga, di colonna, somma
dei valori della matrice, media di riga/colonna, valore massimo di un elemento di
riga/colona, etc.). Anche in questo caso, è bene avere ben chiaro il significato
sociologico (o comunque analitico) delle operazioni sui dati ; la scelta
dell'algoritmo di normalizzazione influenza decisivamente i risultati.
• Trasformazione di attributi in relazioni: vengono ridefinitele relazioni a partire
dal rapporto fra gli attributi degli attori in rispettiva relazione. E’ possibile
utilizzare differenti funzioni di confronto fra attributi (somma, prodotto, differenza,
differenza assoluta, ...), in ragione del senso che si intende dare all'analisi.
• ·Trasformazione di relazioni in attributi:la matrice di adiacenza originaria viene
trasformata in una nuova matrice che contiene nelle righe gli attori e nelle colonne
le diverse relazioni che formano la rete. Questa nuova matrice, viene definita
matrice di incidenza (e dà luogo graficamente ad un ipergrafo) e prevede in genere
una scala di misura ordinale, del tipo “-1, 0, 1”, dove il segno positivo indica che il
legame parte dal nodo ed il segno negativo che è ricevuto dal nodo (lo 0 indica che
il nodo non è coinvolto nella relazione).
3.3 Generazione del grafo sociale ed analisi delle caratteristiche del network
Alla matrice di adiacenza ottenuta a valle del pre-processing, si fa corrispondere un
grafo, che consente di trarre conclusioni sulle caratteristiche del network in forma
visuale, più immediata.
Un network così rappresentato può essere analizzato secondo due prospettive
diverse:
• osservandone le relazioni
• osservandone la struttura
A seconda della prospettiva scelta, si potrà disporre di un opportuno insieme di
metriche.
15
3.3.1 Definizione dei confini del network da analizzare
Prima di iniziare un aspetto di non poca criticità è la definizione del dominio
dell’analisi, cioè dei confini del sottografo o dei sottografi che si vogliono
osservare. Si tratta di un problema riconducibile al più generale problema del
campionamento. La scelta dipende dall’obiettivo ed influenza fortemente il
risultato.
Il tipo di analisi più semplice che si possa effettuare nell’ambito della SNA è
quella sulla diade. La relazione insiste tra soli due attori ed è caratterizzata da due
sole proprietà : la presenza e la reciprocità.
La triade analizza le relazioni tra tre attori ed è il più piccolo network che viene
utilizzato nelle analisi. Il sottografo è una parte del grafo di partenza (grafo
madre) ; non presenta tutti gli attori e i legami del grafo madre, ma solo un
sottoinsieme di essi di essi, generato dai nodi o dai legami.
Nel caso di sottografo generato dai nodi si scelgono gli attori del network di
partenza da considerare e si escludono tutti gli altri: i legami relazionali da
considerare sono solo quelli tra gli attori selezionati (es : N = { n è una persona di
età inferiore ai 30 anni}).
Nel caso di sottografo generato dai legami, si scelgono i legami del network di
partenza da considerare e si escludono tutti gli altri. In questo caso i nodi da
considerare sono solo quelli incidenti con i legami considerati (es : L = { l è un
legame che parte da una persona di età inferiore a 30 anni}).
Un network può sempre essere visto come un insieme di networks più piccoli fra
loro connessi. L'identificazione di gruppi è una fra le parti fondamentali della
SNA, e consente di generare vettori di attributi di appartenenza dei singoli attori, a
loro volta utili per approfondire le misure che si intendono effettuare.
Molto utilizzato nella SNA è il concetto di clique. Una clique (letteralmente
« cricca ») è un insieme di attori fra loro connessi in modo più stretto di quanto lo
sia in generale il network complessivo di cui essi fanno parte. In termini più
formali, una clique è il massimo numero di attori che hanno tutti i possibili legami
16
che possono teoricamente esistere fra loro stessi, cioè costituiscono un sottografo
completo e massimo.
3.3.2 Misure relazionali
Le relazioni possono essere valutatesecondo tre parametri il contenuto, l’oggetto e
la natura.
Contenuto di una relazione
Sulla base del contenuto, le relazioni possono essere distinte in due macro
categorie:
•
Relazioni di scambio (beni, servizi, informazioni, gradimento, etc), che si
caratterizzano per un trasferimento (materiale o immateriale);
•
Relazioni associative, nelle quali non è escluso lo scambio ma è prevalente il
concetto di azione comune per il raggiungimento di uno scopo.
Oggetto di una relazione
L’oggetto di una relazione indica le finalità che con essa si intendono perseguire
(es. lo svolgimento di un gioco in rete) e può essere valutato sulla base:
•
del raggio d’azione (numerosità e complessità degli aspetti da prendere in
considerazione)
•
dell’incertezza (raggiungibilità dell’obiettivo, tempi necessari, conoscenza
delle azioni da intraprendere)
•
del volume (impegno necessario)
Natura di una relazione
La natura di una relazione può essere analizzata attraverso :
•
la numerosità dei legami che intercorrono tra i soggetti (intensità)
•
la forza dei legami (per similitudine, specificità, intimità, etc. rendendo il
legame resistente al cambiamento e duraturo nel tempo).
3.3.3 Misure Strutturali
Le misure strutturali sono grandezze i cui valori sono in grado di esprimere
importanti indicazioni quantitative sui comportamenti del network. Di seguito
17
vengono riportate quelle più comunemente utilizzate e messe a disposizione dai
tool di analisi, riconducibili a due categorie :
1. Misure di connettività
2. Misure di centralità
3.3.3.1 Misure Strutturali di connettività
Il primo gruppo di misure riguarda l’aspetto della connettività della rete che si
intende analizzare. A questo gruppo appartengono quelle di seguito indicate.
Ampiezza
Viene espressa in termini di numero dei nodi (N). Si tratta di un valore che non ha
un particolare significato analitico, se non per il fatto che maggiore è l'ampiezza,
maggiore è la probabilità di ogni singolo attore abbia una percezione “limitata”
della rete complessiva.
Raggiungibilità
Indica se un attore è raggiungibile da un altro, indipendentemente dalla lunghezza
del percorso e tenendo in conto l'orientamento dei legami. Naturalmente in caso di
matrici non simmetriche può darsi che che “A” sia raggiungibile da “B”, ma non il
contrario. Ciò può avere un significato rilevante in termini di influenzabilità
reciproca tra i due attori.
Inclusività
Se N è la dimensione della rete (numero di nodi presenti) e Nc è il numero dei nodi
connessi, si definisce indice di inclusività il rapporto
I=
Nc
N
Un valore inferiore all’unità indica la presenza di nodi isolati. Il nodo isolato
spesso viene escluso dalle analisi che hanno come finalità la valutazione della
propagazione di un messaggio sulla rete.
Densità
Descrive il livello generale dei legami fra i punti in un grafo. Più sono numerosi i
18
nodi direttamente collegati fra loro, più un grafo è denso. Si calcola come rapporto
tra il numero di legami osservato e il numero di tutti i legami possibili tra i nodi,
data la numerosità dei nodi. Se il grafo non è orientato
D=
l
n(n −1) / 2
Se invece il grafo è orientato
D=
l
n(n −1)
Un grafo molto denso denota la capacità di una rete di diffondere messaggi con
grande rapidità ed affidabilità, potendo realizzare anche percorsi alternativi per
raggiungere uno stesso nodo.
Connettività
Complementare della raggiungibilità, esprime il numero di nodi che dovrebbero
essere cancellati per disconnettere due attori. In generale, maggiore è il numero,
maggiore è la possibilità dell'attore di ricevere/trasmettere informazioni; operare
scambi, etc., soprattutto se i nodi sono dati dalla sommatoria di diversi percorsi.
Distanza
Può essere definita facendo riferimento a tre diverse logiche di misura, a mano a
mano più restrittive.
Nel caso delle reti non orientate :
•
cammino (walk) cioè numero dei passi che occorrono per passare da un nodo
ad un altro, senza restrizioni.
•
tragitto (trail), restrizione di cammino, che impone di non utilizzare le relazioni
più di una volta.
•
percorso (path), ulteriore restrizione di cammino, che impone di non utilizzare
né le relazioni né i nodi più di una volta.
Nel caso di reti orientate, si tiene conto della direzione dei legami e sono in uso le
denominazioni di “semi-walk”, “semi-trail” e “semi-path”.
Distanza geodetica
19
Percorso di minor lunghezza (e quindi maggiormente efficiente) che unisce due
nodi. Nel caso di reti a legame binario, è pari semplicemente al numero dei legami
che costituiscono il percorso. Nel caso invece di reti con legame valorizzato, si
parla di « distanza generalizzata », ed occorre interpretare il significato del valore
attribuito al legame, per massimizzare o minimizzare, a seconda dei casi, la somma
dei valori.
Eccentricità e diametro
L'eccentricità è la lunghezza del maggior percorso geodetico che lega un nodo di
tipo ego ad un altro nodo della rete. Il diametro invece è la lunghezza del maggior
percorso geodetico che vi è in assoluto nella rete; tale valore definisce di fatto la
profondità dell’analisi, ovvero il numero di passi di percorso che vengono presi in
considerazione.
Coefficiente di clustering
E’ la densità dei nodi con cui un nodo ego ha relazioni, che si traduce nella
possibilità che ha quell’attore di agire in rete. Se infatti il nodo ego è legato a pochi
nodi, ma ognuno di essi è molto ricco di connessioni con il resto del grafo, può
essere in una situazione migliore del collegamento molti nodi poveri di relazioni.
3.3.3.2 Misure Strutturali di centralità
Un secondo gruppo di misure riguarda l’aspetto della centralità degli attori e che,
con le dovute cautele, possono essere indicative del potere che ha quell’attore di
influenzare il comportamento collettivo. A questo gruppo appartengono le misure
di seguito indicate.
Grado di un nodo
Si misura con il numero di nodi appartenenti al vicinato, cioè il numero di nodi
adiacenti al nodo considerato. Il suo valore è compreso tra 0 e (n-1) ; un grado pari
a 0 significa che il nodo non è adiacente a nessun altro nodo (è isolato) ; un grado
pari a (n-1) significa che il nodo è adiacente a tutti gli altri nodi del grafo.
Un nodo di grado elevato è potenzialmente un nodo influente.
20
Prossimità
Si misura misura con la distanza (in termini di lunghezza dei percorsi geodetici)
dagli altri attori: una minore distanza viene letta come maggiore potere di essere
“punto di riferimento” per gli altri attori.
Betweenness
E’ la misura del ruolo di connettore di altri attori ed è proporzionale al potere
esercitato sul comportamento degli altri attori. Tale ruolo dipende dalla struttura
della rete e dalla posizione relativa dell’attore. In una a stella, l'attore che si trova
in posizione centro-stella gode del massimo valore di grado, della minor prossimità
e della maggior betweenness, visto che si presenta comune ad ogni coppia di altri
attori.
In una rete lineare, gli attori che si trovano agli stremi sono svantaggiati dal punto
di vista del grado, della vicinanza e della betweenness, mentre gli altri si trovano in
una situazione abbastanza equivalente, fatta eccezione per l’attore che si trova al
centro, che ha una posizione migliore sotto il profilo della distanza geodetica.
Infine in una rete circolare, ogni attore ha gli stessi attributi di grado, vicinanza e
betweenness. Il circolo è la forma di rete di maggior eguaglianza.
21
Capitolo 4: La SNA “al lavoro”
4.1 Software di SNA
Per fare Social Network Analysis esistono diversi software. Essi consentono di
rappresentare e visualizzare le reti, identificare gruppi, calcolare metriche,
effettuare simulazioni aggiungendo o rimuovendo nodi e archi.
I diversi tool elaborano i dati attraverso algoritmi di natura matematica e statistica
che vengono applicati al modello di network, per costruire rappresentazioni visuali
utili all’analisi.
La pagina in inglese di Wikipedia « Social network analysis software4 » mostra
una lista molto ricca di questi strumenti, consentendone una comparazione. Per
ciascuno di essi si specificano le principali funzionalità, i formati di input e output,
il sistema operativo supportato, il tipo di licenza e delle brevi note descrittive.
Negli ambienti accademici, molto utilizzato è il package UCINET6 che, secondo
la documentazione ufficiale, supporta reti fino a 2 milioni di nodi, anche se,
sempre secondo la documentazione, la velocità di esecuzione di alcune procedure
diventa estremamente lenta al di sopra dei 5000 nodi. Tipicamente viene utilizzato
insieme al package di visualizzazione NetDraw.
Una valida alternativa è il package freeware Pajeck.
Entrambi richiedono il sistema operativo Microsoft Windows.
Tra i software commerciali, il più accreditato sembra essere NetMiner, che
supporta efficientemente reti fino a 10 milioni di nodi, anche questo solo per
sistema operativo Microsoft Windows.
4
http://en.wikipedia.org/wiki/Social_network_analysis_software
22
Per elaborazioni contenute viene ampiamente utilizzato anche il pacchetto
NodeXL, un’estensione di Microsoft Excel, con il quale è possibile anche
importare dati da UCINET, visualizzare grafi, calcolare metriche.
Per il presente lavoro di tesi si è fatto uso, per alcune semplici sperimentazioni, del
software Social Network Visualizer, disponibile anche per piattaforma Mac OS.
Con riferimento alle licenze di tipo commerciale, esistono strumenti per ogni
piattaforma, multipiattaforma (JAVA based, es. EgoNet, per le analisi di reti
egocentriche), web based (es. Polinode) e cloud based (es. OrgMapper)
La caratteristica abbastanza comune di questi software è la capacità di offrire
all’utente il vantaggio di racchiudere in un’unica interfaccia grafica (GUI) la
possibilità di accedere all’apertura del file di dati, visualizzare il rispettivo grafo di
rete, effettuare vari tipi di analisi e ottenere report con i risultati descrittivi e
quantitativi. Alcuni di essi, particolarmente sofisticati, consentono di studiare in
profondità la configurazione di gruppi e sottogruppi, analizzandone la dinamica
interna, oppure le reti personali dei collegamenti di singoli individui (EgoNet).
La logica di funzionamento prevede che venga importato al loro interno un « data
set », cioè una matrice di incidenza : immediatamente il tool permette di
visualizzare il grafo, consentendone l’esplorazione e l’analisi.
Le funzionalità attinenti le attività propedeutiche all’analisi vera e propria in
genere possono riguardare:
•
la possibilità di produrre modifiche grafiche alla visualizzazione iniziale della
rete (zoom, drag and drop dei nodi, associazione di colori/simboli agli attributi,
direzione e intensità dei collegamenti, etc.) ;
•
la visualizzazione ed editing del data set, sotto forma di matrice (MatrixEditor)
o di documento testuale (Tex Editor)
•
le eventuali trasformazioni
da applicare alla matrice (simmetrizzazione,
dicotomizzazione, etc.)
•
la definizione di simboli/colori per la rappresentazione dei dati nel grafo.
Di seguito vengono indicate le principali analisi e misurazioni che gli strumenti
23
maggiormente diffusi mettono a disposizione.
Neighbor Analysis
La Neighbor Analysis è un’analisi che può essere svolta sia a livello globale che
locale. Nel primo caso, si esamina la rete nella sua globalità allo scopo di valutarne
l’indice di densità, nonché una serie di misure tese a valutarne l’integrità, quali
l’inclusività, il numero dei nodi isolati e dei nodi pendenti e la reciprocità degli
scambi, etc. Tutte le informazioni ottenute vengono mostrate in apposite finestre di
report.
Nel secondo caso, si va ad analizzare la struttura locale, a livello di un determinato
nodo. Ciò può avvenire focalizzando su un singolo soggetto e ricercando tutti i
collegamenti adiacenti ad esso (EgoNet Analysis), oppure individuando assenze di
connessioni tra aree della rete (Structural Holes) che producono posizioni di
vantaggio/svantaggio per alcuni attori.
Nella prima delle due immagini, i tre attori A, B e C si trovano in posizioni
equilibrate : ognuno ha le stesse potenzialità di comunicazione con gli altri due
attori. Nella seconda, invece, A si trova in posizione avvantaggiata, potendo
comunicare « senza filtri » sia con B che con C ; B, al contrario, non può
comunicare direttamente con C, ma può farlo nella misura in cui A glielo
consente ; identica ma speculare considrazione può farsi per C rispetto a B.
Connection Analysis
La Connettività misura di fatto la vulnerabilità dei collegamenti fra i nodi ed è
identificabile esplorando i bridge (connessioni che mettono in collegamento due
gruppi) ed analizzando i cutpoint (i valori di soglia al di sotto dei quali la
connessione viene ritenuta assente, in una dicotomizzazione). Questo tipo di analisi
è indicata anche per visualizzare i percorsi che legano due nodi all’interno della
24
rete : selezionando il nodo sorgente e il nodo destinazione si ottiene la catena delle
connessioni. Attraverso questo tipo di analisi di connettività è possibile evidenziare
gli attori che hanno connessioni fragili con il resto del gruppo e che, di
conseguenza, aumentano la vulnerabilità della rete.
Cohesion Analysis
L’analisi della coesione è tesa ad individuare sottogruppi coesi, composti da un
numero minimo di elementi stabilito nei paramentri definiti dall’utente (es. ricerca
di clique composte da almeno tre elementi). Una volt individuate, il report elenca
dettagliatamente il numero delle cliques e, per ciascuna di esse, la composizione
dei partecipanti (è quindi possibile individuare a quali cliques partecipano i singoli
membri).
Centrality Analysis
L’analisi di centralità di un nodo può essere espressa almeno in tre modi diversi
che
possono non coincidere : l’attore può essere più o meno centrale in dipendenza del
modo in cui viene intesa la centralità, cioè in base al grado, all’interposizione o alla
prossimità. Gli strumenti in questione consentono di valutare la centralità in tutti i
casi e di poterne effettuare una comparazione.
25
4.2 Strumenti per l’estrazione dei dati e la costruzione del data set
I dati dei Social Network offrono molte opportunità di ricerca e analisi.
L’estrazione di informazioni dai Social Network e la loro successiva analisi
consente di capire, ad esempio, quanto frequentemente un determinato utente
comunica con un altro, quanto è simmetrica la comunicazione fra gli utenti di una
rete, quali sono gli utenti più popolari e quindi più influenti sull’opinione
collettiva, quali sono gli argoment più discussi da un utente o da utenti di un certo
gruppo o di un certo territorio (i più importanti SN dispongono di funzionalità di
qual’è l’opinione di un utente o un insieme di utenti relativamente a un argomento,
etc.
L’estrazione dei dati richiede l’utilizzo di un’applicazione scritta un linguaggio di
programmazione in grado di agganciare le API (Application Programming
Interface, Interfaccia di Programmazione di un’Applicazione) messe ufficialmente
a disposizione dalla piattaforma.
I Social Network maggiormente utilizzati attualmente – Facebook e Twitter mettono a disposizione delle REST API con meccanismo di autenticazione OAuth.
Nel contesto Web, le API vengono sono di fatto un insieme di richieste HTTP che
restituiscono un messaggio di risposta con una struttura in formato JSON.
4.2.1 REST API
Con il termine REST (Representational State Transfer) si indica un’architettura,
finalizzata alla creazione di applicazioni di rete, basata su un protocollo di
comunicazione client-server senza stato.
L’approccio in esame consiste nell’utilizzo di un protocollo di comunicazione,
nello specifico HTTP, per far comunicare due host su una rete e compiere
operazioni CRUD (Create, Read, Update, Delete).
Principio fondamentale dell’architettura dell’architettura REST è il fatto che ogni
risorsa viene identificata mediante un URI univoco.
26
Le API rappresentano un’interfaccia di programmazione, che ha lo scopo di
permettere ad altre entità (librerie, software, utenti) di compiere un insieme di
azioni su una determinata piattaforma di cui non si conoscono i dettagli
implementativi.
Mettere a disposizione delle API di un software significa dare a terzi la possibilità
di interagire con la piattaforma.
Tutti i maggiori Social Network esistenti forniscono delle API.
Le API sono normalmente corredate da ufficiale documentazione, spesso solo in
lingua inglese. Servizi web di hosting per lo sviluppo di progetti software, come
ad esempio GitHub, consentono di reperire librerie di supporto per il linguaggio di
programmazione scelto.
Le librerie (SDK) vengono tipicamente fornite in linguaggio Phyton, PHP ed R.
4.2.2 JSON
JSON è un formato utilizzato per lo scambio di dati costituito da due sole strutture:
• una collezione di coppie (nome, valore) che ha il vantaggio di poter essere tradotta
facilmente in molti linguaggi in molti modi (i. e., un oggetto, un record, etc.)
• una lista ordinata di valori, rappresentabile in molti linguaggi come una lista, un
array, o una sequenza.
JSON è il formato maggiormente utilizzato per i messaggi di risposta dei servizi
Web, quindi anche delle API. Ha di fatto soppiantato il formato XML in tale ruolo
poiché è molto più leggero, anche se caratterizzato dallo stesso potere espressivo.
4.2.3 OAuth
Il protocollo aperto OAuth, (Open Authorization), con particolare riferimento al
caso in esame, permette la verifica delle identità delle entità coinvolte in una
comunicazione che richiederebbe un’autenticazione, senza scambi di credenziali
personali, consentendo l'accesso delegato ad un client specifico per determinate
risorse su un server per un tempo limitato, con possibilità di revoca.
Il meccanismo prevede l’utilizzo di un access token, un « gettone d’ingresso » con
27
cui gestire l’autenticazione presso il web server della piattaforma social, e
riconoscere ogni richiesta. Il gettone deve essere ottenuto dalla piattaforma prima
di avviare l’interazione mediante le API e può essere usato entro un certo limite di
tempo per varie interazioni, senza bisogno di ri-autenticarsi. Facebook, Google,
Twitter e altri social media lo richiedono per semplificare il lavoro dello
sviluppatore di software e garantire la protezione dei loro dati.
4.2.4 Un esempio: Facebook
Facebook è stato uno dei primo social network a fornire a software di terze parti la
possibilità di leggere dati prelevati da pagine e profili personali. Successivamente,
con l’introduzione delle Graph API 2.0 nel maggio 2015 è diventato molto
complicato ottenere informazioni.
Per poter utilizzare un’applicazione per l’estrazione dei dati occorre
1. registrarsi come sviluppatore
2. scegliere un web server;
3. registrare l’applicazione;
4. scaricare le librerie;
5. scrivere il codice;
6. eseguire l’applicazione.
Facebook richiede quindi innanzitutto che lo sviluppatore si registri come tale5 e
registri la propria applicazione6.
Il web server deve supportare l’esecuzione nel linguaggio di programmazione
scelto (es. PHP versione 5.4 o successive) e del protocollo HTTPS. Se
l’applicazione dovrà essere pubblica, viene richiesto che il server sia dotato di
certificato SSL, a garanzia di abusi o intrusioni.
Nella propria GUI, lo sviluppatore ritroverà le applicazioni sviluppate, ciascuna
associata ad un ID univoco e caratterizzata dalla versione delle API utilizzate per
5
https://developers.facebook.com/
https://apps.facebook.com/apps
l’applicazione avrà come URL https://apps.facebook.com/nome_applicazione
6
28
accedere ai dati.
Facebook tramite il servizio GitHub7 distribuisce le librerie (SDK) con le funzioni
in grado di accedere alla piattaforma; la loro attivazione deve essere inserita nelle
prime righe dell’applicazione. E’ disponibile anche un’ampia rassegna di esempi e
casi di studio.
Per accedere ai dati del grafo sociale di Facebook si fa uso delle Graph API
(attualmente giunte alla versione 2.5). Si tratta di API HTTP-based di basso livello
attraverso le quali è possibile interrogare i dati, inviare post, caricare foto etc.
(sempre che si abbiano i permessi8 per farlo).
Le richieste di informazioni su nodi e archi del grafo sociale sono del tipo HTTP
GET.
Le risposte assumono la forma
{
"fieldname": {field-value},
....
}
Ad esempio, si supponga di voler estrarre, utilizzando PHP SDK, gli ultimi 5 post
dell’utente correntemente loggato, la richiesta sarà :
$request = new FacebookRequest(
$session, 'GET', '/me',
array('fields' => 'id,name,posts.limit(5)'));
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */
La risposta sarà :
{
"id": "10204015932308434",
"name": "Carmen Cristiana Baruffini",
"posts": {
"data": [
{
"message": "Oggi lo Sciaraballo ha detto NO! Si opta per la metro",
"created_time": "2016-02-17T07:10:55+0000",
"id": "10204015932308434_10208858559651091"
},
{
"message": "Olivo della discordia",
"story": "Carmen Cristiana Baruffini at Cumana di Montesanto.",
"created_time": "2016-02-17T07:08:26+0000",
"id": "10204015932308434_10208858554810970"
},
{
"message": "Buongiorno per favore 88 caffè grazie",
"created_time": "2016-02-17T07:00:40+0000",
"id": "10204015932308434_10208858539810595"
},
{
"message": "Doccia, arachidi di Superpippo e...inizia la \"Grande Notte
della Social Network Analysis\".",
"created_time": "2016-02-16T18:14:35+0000",
7
8
https://github.com/facebook
https://developers.facebook.com/docs/facebook-login/permissions/
29
"id": "10204015932308434_10208854892919425"
},
{
"message": "NonSoloSciaraballo.
Invece di via Caracciolo stiamo percorrendo la Riviera di Chiaia. Nel bus si è
scatenato
il
panico.
Scendono
quasi
tutti.
Chi
non
scende
si
agita
compulsivamente.",
"created_time": "2016-02-16T16:56:49+0000",
"id": "10204015932308434_10208854421827648"
}
],
"paging": {
"previous":
"https://graph.facebook.com/v2.5/10204015932308434/posts?limit=5&since=1455693055&a
ccess_token=CAACEdEose0cBAAci4m4c8wJQh51N7wtZA7E2IvM2QYWHcEkGJuOTtk3dpAHd5XgwgNi8qF
qiW7BX5pbp5chkMX7Wpz7sxXjlKo13jlYbbN4ZAXo7OlywRW7ajyWXRDZBqOa8HLA9Xm2hsuOtZArVk3Q1H
Xq9hXyRey4Mm4ZBG9K5g9olLb1rFy9X1EwAF9zsDiuS6BUkjLZBnaumIUqfOnUHQx1BdnFXkZD&__paging
_token=enc_AdCCk7ZCvFLYF9ZBiPxGYtgqkZAEQqfx4zpx8H7njGhIZCD5Uy4bqlAwGOZAgLZBTOS9TR51
2R8tXy0iEyMGCo4IBZB8LZAZB&__previous=1",
"next":
"https://graph.facebook.com/v2.5/10204015932308434/posts?limit=5&access_token=CAACE
dEose0cBAAci4m4c8wJQh51N7wtZA7E2IvM2QYWHcEkGJuOTtk3dpAHd5XgwgNi8qFqiW7BX5pbp5chkMX7
Wpz7sxXjlKo13jlYbbN4ZAXo7OlywRW7ajyWXRDZBqOa8HLA9Xm2hsuOtZArVk3Q1HXq9hXyRey4Mm4ZBG9
K5g9olLb1rFy9X1EwAF9zsDiuS6BUkjLZBnaumIUqfOnUHQx1BdnFXkZD&until=1455641809&__paging
_token=enc_AdBNLIMex8LZAM9QhLdrIVHCYKQuZBp7ZAPsI6tVdNceuvQxQZAh7rQHGxHMiHahxtln2hZC
lRk0zDOrhsVCoEv0KB2qv"
}
}
}
La sintassi consente di effettuare richieste anche complesse, con criteri di
ordinamento e con vari livelli di innesto9.
4.3 Strumenti per la memorizzazione dei dati: i database NoSQL
In contesti come quello in esame, in cui occorre garantire velocità di esecuzione
nell’elaborazione di terabyte di dati senza uno schema fisso, scalabilità orizzontale
uniti ad un elevato livello di availability si riccorre a nuovi modelli di database non
relazionali, chiamati NoSQL. I dati, secondo questo nuovo paradigma non sono
conservati in tabelle, ma sono distribuiti in differenti strutture logiche, aggregati in
documenti la cui natura può essere di tipo Key-Value (che rappresenta la forma
primitiva di database NoSQL) o Document Store basati su semantica JSON. Ogni
documento aggregato raccoglie tutti i dati associati a un’entità, in modo che
qualsiasi applicazione possa trattare l’entità come oggetto e valutare in un’unica
operazione tutte le informazioni a essa correlate.
Fondamentali caratteristiche dei database NoSQL sono :
• la leggerezza computazionale: i database NoSQL non prevedono operazioni
di aggregazione sui dati, in quanto tutte le informazioni sono già raccolte in
9
https://developers.facebook.com/docs/graph-api/using-graph-api
30
un unico documento associato all’oggetto da trattare. Negli ambienti SQL
la complessità di queste operazioni, e quindi il peso computazionale, cresce
con l’ingigantirsi della base di dati, del numero di tabelle e delle
informazioni da trattare. Il NoSQL invece non ha limiti di dimensioni in
questo senso e consente di ottenere migliori prestazioni e performance
anche in contesti di Big Data.
• L’assenza di schema: i database NoSQL sono privi di schema in quanto il
documento JSON contiene tutti gli attributi necessari e i rispettivi valori,
senza necessità di definizione. In questo modo è possibile arricchire le
applicazioni di nuovi dati e informazioni, definibili liberamente all’interno
dei documenti JSON senza rischi per l’integrità dei dati. I database non
relazionali, a differenza di quelli SQL, si rivelano quindi adatti a inglobare
velocemente nuovi tipi di dati e a conservare dati semistrutturati o non
strutturati.
• Scalabilità orizzontale garantita: l’aggregazione dei dati e l’assenza di uno
schema definito a priori offre l’opportunità di scalare orizzontalmente i
database NoSQL senza difficoltà e senza rischi operativi.
Tra i database NoSQL che si prestano ad essere utilizzati per rappresentare i dati
delle reti sociali ritroviamo i Graph Database, basati appunto su modello a grafo. Il
prodotto leader, in questo momento, è Neo4j.
4.4 Una proposta architetturale
Di seguito viene modellata, senza fare uso di formalismi rigorosi, per esigenze di
sintesi ed immediatezza, una proposta architetturale per la gestione di processi di
Social Network Analysis.
L’architettura è articolata in 4 livelli, così costituiti :
1. Un livello interfaccia utente (GUI), attraverso il quale vengono inoltrate le richieste
di accesso ai dati contenuti nelle piattaforme social e progettate le query da
utilizzare per costitruire il data set per l’analisi.
31
2. Un livello di Business Logic, costituito da :
a. un server web integrato con un modulo interprete del linguaggio PHP e con
un modulo SSL per la gestione delle connessioni protette mediante
protocollo OAuth ;
b. apposite librerie per l’interazione con le piattaforme social tramite le API
ufficialmente distribuite (SDK) ;
c. un’interfaccia per la decodifica dei messaggi in formato JSON ;
d. un modulo query processor, che gestisce, sulla base delle richieste
dell’utente, le operazioni CRUD e mette a disposizione viste e snapshots
sui dati memorizzati nei DBMS in formato adeguato all’elaborazione da
parte dei componenti di analisi.
A questo livello viene dispiegata un’applicazione ad hoc, che utilizzando i
sopraelencati moduli e componenti, gestisce i token per l’accesso protetto ai dati
delle piattaforme social, attiva le connessioni, invia le richieste HTTP alla
piattaforma selezionata, riceve le risposte in formato JSON, che provvede a
decodificare e a processare per la memorizzazione opportuna dei dati in esse
contenuti ; provvede inoltre a gestire (creare e modificare) un pool di richieste,
personalizzabili dall’utente, al modulo di query processing per la costruzione dei
data-set.
3. Un livello di storage costituito da DBMS relazionali (per i dati strutturati) e NoSQL
(per i dati non strutturati)
4. Un livello di analisi e reporting, costituito da :
a. un tool di SNA che riceve i data-set, effettua eventualmente un preprocessing, esegue le analisi richieste ed invia i risultati sia al livello di
Storage che al componente di di visualizzazione e reporting ;
32
b. un componente di visualizzazione e reporting, che crea infografici per una
più rapida ed efficace comprensione dei risultati.
33
Conclusioni
Alcune idee, per quanto banali siano, si diffondano in modo virale tra la gente,
mentre altre ottime idee sono destinate a rimanere sconosciute alla maggior parte
di noi. Si è portati a credere che perché un contenuto diventi « virale » debba far
molto ridere, piacere, emozionare, o fortemente incuriosire o interessare. Ciò è
vero, ma solo in parte : in realtà, sfruttando le potenzialità connettive dei social
network, possono essere poste in essere vere e proprie strategie che si basano sulla
possibilità di propagare in maniera esponenziale la trasmissione di un messaggio.
Ci si è accorti che l’opinione su un’acquisto di un prodotto o di un servizio da parte
di un soggetto molto influente o comunque « seguito » su un social network, può
condizionare le scelte di acquisto di molti altri, attraverso il passaparola. Esistono
quindi strategie di marketing che si fondano sull’utilizzo della SNA allo scopo di
individuare attori
• che esprimano gradimento verso il prodotto/servizio da promuovere ;
• con elevato potenziale di influenza (la cui opinione è ritenuta autorevole, sulla base
del gradimento espresso su di essa dagli attori a lui connessi ;
• che abbiano elevata connettività asimmetrica, possibilmente ricorsiva.
In modo da concentrare su di essi le azioni di marketing, massimizzandone i
risultati di penetrazione e minimizzandone i costi. Queste strategie vengono sotto il
34
nome di «viral marketing» e di fatto si prefiggono lo scopo di promuovere un
prodotto/servizio « per contagio ». Uno dei primi e più riusciti esempi di viral
marketing è stato quello di Hotmail.com, che in poco più un anno riuscì ad
acquisire 12 milioni di abbonati investendo pochissimo in marketing e promozione.
Hotmail.com regalava infatti un servizio di email e aggiungeva, in coda ad ogni
messaggio inviato, un messaggio : « anche tu puoi ottenere il tuo indirizzo email
gratuito presso www.hotmail.com ».
I Social Network, per il semplice fatto di consentire la connessione di milioni di
persone, istituzioni ed imprese in maniera rapida, semplice ed economica, sono
diventati il luogo più adatto per la realizzazione di strategie di marketing virale di
successo .
Al di là del marketing, meccanismi di ottimizzazione degli effetti del passa-parola
sono potenzialmente applicabili in qualsiasi ambito in cui si desideri produrre un
grande risultato sociale con risorse limitate, come ad esempio una campagna
sociale o politica. Soggetti con elevata capacità di influenzare le opinioni altrui
« fanno tendenza », creano seguito, riescono a spostare e indirizzare l'opinione
degli utenti di un social network nel giro di pochi minuti, pilotando l'opinione e il
sentimento generale attorno ad un tema specifico. La SNA, in tale contesto,
sviluppa dei modelli probabilistici attraverso i quali è possibile stimare la
probabilità di diffusione di un’idea condivisa per la prima volta da un opinion
leader, cioè da un attore che ha un numero elevato di followers unito ad un elevato
valore di
Ratio Of Affection » (ROA), un indice proporzionale al numero di
followers che commentano i suoi post/tweet, esprimono gradimento (« like ») o,
meglio ancora, propagano il post/tweet sulla rete sociale. Questo genere di analisi
viene sotto il nome di « social influence analysis ».
Fino a poco tempo fa, tuttavia, l’analisi dei social network ha puntato l’attenzione
principalmente sugli utenti influenti o più attivi, e meno su uegli utenti che
vengono definiti « lurker », cioè individui che traggono benefici dalle
informazioni prodotte da altri senza a loro volta contribuire in maniera significativa
35
alla creazione e diffusione dell’informazione. Si tratta utenti che non forniscono
contributi tangibili come post, commenti o foto, ma che non sono affatto passivi,
perché si muovono sulla rete cercando le notizie di loro interesse, anche senza
pubblicare le proprie opinioni.
Ultimamente la ricerca è impegnata nel comprendere l’importanza di questo
fenomeno
e il peso che ha all’interno delle dinamiche proprie dei social network.
Per misurare l’impatto dei lurker all’interno di un social network, vengono
utilizzate tecniche di analisi e mining che valutano l’importanza dei nodi sulla base
della loro centralità e della struttura dei loro collegamenti, definendo procedure di
calcolo che quantificano il ranking, ossia il peso, degli utenti.
Tale analisi a condotto all’elaborazione di una regola che sembra funzionare
abbastanza, seppure indicativamente e con proporzioni diverse a seconda delle
comunità online, chiamata « legge dello 1:9:90 »: il 90% dei membri di un social
media osserva silenziosamente, il 9% vi contribuisce in maniera saltuaria alla
produzione e alla divulgazione di contenuti, la maggior parte deriva unicamente
dall’attività dell’1% ; ma tutti i membri, cioè il 100%, sono individui « veri »,
pertanto depositari della conoscenza fruita attraverso il social network. Individuare
dove sono i lurker e qual è il loro peso permetterà nel prossimo futuro di progettare
azioni mirate di « de-lurking » per questi utenti, considerati un tesoro nascosto per
il marketing sul Web che si auspica di poter trovare.
Un ulteriore aspetto interessante della SNA è quello che essa costituisce la
premessa per un’analisi qualitativa delle conversazioni in rete che mira a
comprendere lo stato d’animo degli utenti rispetto un particolare brand, prodotto,
tema, servizio. Questo tipo di analisi prende il nome di « sentiment analysis » e
consiste in un insieme si metodi, tecniche e strumenti per il recupero, la
comprensione e e la classificazione dei messaggi in rete ed appartiene al dominio
del Natural Language Processing (NLP).
Rispetto ai sondaggi telefonici o alle analisi di mercato che riguardano ristretti
36
focus group dove, la possibilità di ottenere opinioni “pilotate” è molto alto, la
sentiment analysis è in grado di fornire un’immagine molto più veritiera di una
reputazione o di un gradimento.
Gli strumenti che vengono utilizzati in questo ambito raccolgono dati da diverse
piattaforme prendendo in considerazione una o più porzioni di testo e
determinandone il tono (opinione positiva o negativa), l’intensità e l’emotività
(attraverso l’uso di aggettivi, punteggiatura, emoticons, ecc).
Infine, il contenuto generato dagli utenti dei social network ha dato vita ad una una
nuova era del Business Intelligence & Analytics (BI & A) centrato sull’analisi
testuale e dei contenuti non strutturati. Si ritiene infatti che la SNA rappresenti una
grande opportunità per le imprese di interazione bilateriale con il mercato, molto
più efficace delle tradizionali tecniche di marketing « one-way » rel tipo
« business-to-market ».
37
Bibliografia
[1]
TRECCANI, LA CULTURA ITALIANA,
http://www.treccani.it/enciclopedia/social-network/, 30/01/2016
[2]
Inside
Big
Data,
http://insidebigdata.com/2013/09/12/beyond-volume-
variety-velocity-issue-big-data-veracity, 31/01/2016
[3]
WIKIPEDIA, https://it.wikipedia.org/wiki/Rete_sociale, 30/01/2016
[4]
Analytic Technologies - Social Network Analysis Software || Cultural
Domain Analysis Software , http://www.analytictech.com/, 30/01/2016
[5]
Neo4j Blog - Social Networks in the Database: Using a Graph Database,
http://neo4j.com/blog/social-networks-in-the-database-using-a-graph-database/
,
06/02/2016
[6]
Mokabyte
-
Neo4j,
il
database
a
grafo,
http://www.mokabyte.it/2016/01/neo4j-1/ 06/02/2016
[7]
Andrea Tagarelli – Università della Calabria,
VINCOSBLOG – Cos’è la Sentiment Analysis, http://vincos.it/2012/08/30/cose-lasentiment-analysis/, 19/02/2016
http://uweb.deis.unical.it/tagarelli/tag/lurker-ranking/, 19/02/2016
[8]
WIRED - Ecco perché le aziende sono a caccia di big data. Il caso di Furla:
come i dati sui clienti, raccolti al punto vendita oppure online, stanno cambiando
strategie
e
rapporti
nel
settore
http://www.wired.it/commerciale/2015/03/25/perche-aziende-caccia-big-data
31/01/2016
38
retail,
,