Marco Riformetti | Ricerca sociale e campo giornalistico tra nuovi media e big data. Topic models (1)
Da Marco Riformetti, Ricerca sociale e campo giornalistico tra nuovi media e big data, Tesi di laurea in Sociologia e ricerca sociale (quasi completata, ma non presentata), Unipi, 2021, Pisa
Immaginiamo di dover analizzare una grande massa di documenti – poniamo, i tweet (come nel nostro caso) o i post pubblicati nell’ultimo anno da un leader politico o da una testata giornalistica – e di voler capire di quali argomenti si è occupato (e magari con quale intensità e con quali esiti in termini di engagement). Come abbiamo già detto, non possiamo certo analizzare manualmente tutti i dati; e non solo perché questa operazione potrebbe essere lunghissima, ma anche perché potremmo voler ripetere periodicamente lo stesso tipo di analisi utilizzando dati relativi ad una finestra temporale mobile. Oppure potremmo voler applicare lo stesso modello di analisi ad un numero molto ampio di esponenti politici. E così via.
La nostra ricerca muove dall’intenzione di capire se esiste la possibilità di raggruppare (in topic) i termini di cui si compongono i documenti in oggetto (i tweet). Questo problema, che viene definito di clusterizzazione, in genere viene affrontato attraverso algoritmi non supervisionati ovvero algoritmi che non sono addestrati a svolgere il proprio compito, ma che devono essere in grado di scoprire autonomamente i topic [1].
Una delle tecniche che si propongono di offrire una risposta a questo genere di problema è, lo abbiamo già accennato, quella dei cosiddetti topic model
“I topic models forniscono un modo semplice per analizzare grandi volumi di testo unlabeled. Un topic consiste di un insieme (cluster) di parole che ricorrono frequentemente [e] in modo associato” [2]
In modo più specifico David Blei si riferisce all’obbiettivo di scoprire la struttura topica che soggiace ad una certa collezione (corpus) di documenti ovvero di “inferire la struttura topica sottostante” (Blei [2009]). Ovviamente l’obbiettivo di “inferire la struttura topica sottostante” di un certo corpus di documenti ha senso solo se si ipotizza che una tale struttura effettivamente esista ed anzi se si può pensare che il corpus si costituisca proprio a partire da tale struttura (ovvero, come vedremo, se possiamo immaginare che ogni singolo termine del corpus sia concepibile come distribuzione probabilistica di topic). La base teorica di questa assunzione è fornita dai principi della statistica bayesiana grazie ai quali possiamo operare la cosiddetta “inversione della probabilità” ovvero pensare la distribuzione a posteriori (che possiamo osservare) come se fosse ricavata sulla base di (distribuzioni di) probabilità a priori (di cui non disponiamo e che consideriamo latenti).
Il Teorema di Bayes, infatti, afferma che
dove P(A|B) è la probabilità a posteriori dell’evento A, condizionata dal verificarsi dell’evento B; in sostanza, si tratta della probabilità che A sia vero se B è vero. P(B|A) è invece la probabilità – intesa come verosimiglianza (likelihood) – che si dia B se si dà A ed è, ovviamente, qualcosa da massimizzare.
Il teorema di Bayes può essere anche espresso in una forma che ci tornerà utile nel seguito
Probabilità a posteriori ~ Verosimiglianza · Probabilità a priori
Nella statistica bayesiana il concetto di probabilità è sostanzialmente analogo a quello che usiamo nel linguaggio comune ovvero una sorta di stima della plausibilità di qualcosa (un evento, un’affermazione…); questa stima è strettamente condizionata dalla quantità e dalla qualità delle informazioni che possediamo e questo vuol dire che al variare di tali informazioni varia anche la probabilità che inferiamo.
Facciamo un esempio applicato al rapporto tra le condizioni meteorologiche e il periodo dell’anno
Se P(Meteo) è la probabilità del bel tempo e P(Meteo|Mese) [3] è la probabilità del bel tempo in funzione del mese dell’anno possiamo ipotizzare che la probabilità del bel tempo sia alta ad agosto e bassa a gennaio [4], il che è coerente con la nostra conoscenza storica secondo cui il tempo è generalmente bello in estate e generalmente brutto in inverno (anche se, come insegna David Hume, un conto è la possibilità, finanche la probabilità, e tutt’altro altro conto è la necessità [5]).
A questo punto è chiaro che P(Mese|Meteo) è la probabilità che ci si trovi in un certo periodo dell’anno quando ci si trova in una certa condizione metereologica (ad esempio, che sia agosto se il tempo è buono o che sia gennaio se il tempo è cattivo). Dal momento che in genere il tempo è buono in estate e il tempo è cattivo in inverno dovendo ipotizzare, sulla base del tempo, qual è il mese/periodo dell’anno tutti tenderemmo ad ipotizzare che sia estate se il tempo è buono e che sia inverno se il tempo è cattivo (anche se, non c’è bisogno di dirlo, ci sono giorni di bel tempo in inverno e giorni di cattivo tempo in estate).
Sarà proprio il processo di variazione delle ipotesi – con l’obbiettivo di arrivare a quella ottimale (ovvero a quella per cui risulta massima la funzione di verosimiglianza) – che sta alla base dell’algoritmo di topic modeling che assumeremo come punto di riferimento: Latent Dirichlet Allocation (LDA) (Blei, Ng e Jordan [2003]).
Secondo tale algoritmo ogni documento [6] è una miscela (mixture) di topic e ogni topic è una collezione di parole [7] che possono essere raggruppate in un certo modo. Ogni documento viene dunque pensato come distribuzione sull’insieme di topic relativo all’intero corpus [8] e tale insieme ovviamente si distribuisce in modo diverso documento per documento.
Il punto essenziale è questo: mentre i documenti – e la distribuzione su di essi delle parole – sono qualcosa che possediamo (sono le variabili manifeste) i topic sono qualcosa che non possediamo e che possiamo solo ipotizzare (sono le variabili latenti).
Il compito degli algoritmi di topic modeling è quello di ricavare da un corpus manifesto di documenti il set latente di topic.
Note
[1] In questo senso talvolta gli algoritmi di topic modeling vengono considerati (con una piccola forzatura) esempi di machine learning.
[2] Mallet (MAchine Learning for LanguagE Toolkit), Topic Modeling, University of Massachusetts Amherst, 2018.
[3] A = bel tempo; B = periodo dell’anno.
[4] P(bel tempo|agosto) > P(bel tempo|gennaio).
[5] Non possiamo affermare con certezza che la prossima estate il tempo sarà bello perché di qui ad allora un meteorite potrebbe aver colpito la terra (sebbene tutti riteniamo – o, per meglio dire, speriamo – che la probabilità che questo accada sia estremamente bassa).
[6] «A document is a sequence of N words denoted by w = (w1,w2,…, wN), where wN is the Nth word in the sequence» (Blei, Ng e Jordan [2003]).
[7] «A word is the basic unit of discrete data, defined to be an item from a vocabulary indexed by {1,…,V}. We represent words using unit-basis vectors that have a single component equal to one and all other components equal to zero. Thus, using superscripts to denote components, the Vth word in the vocabulary is represented by a V-vector w such that wv = 1 and wu = 0 for u?v» (Blei, Ng e Jordan [2003]).
[8] «A corpus is a collection of M documents denoted by D = (w1,w2,…, wM)» (Blei, Ng e Jordan [2003]).