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, ,