Scopri tutti gli articoli e le iniziative nelle varie sezioni del portale

Più consultati


Tags

Text Mining e Intelligenza Artificiale

15/12/2016


Tim Open ospita oggi Francesco Tarasconi, Data Scientist presso CELI Language Technology, azienda leader nello sviluppo di tecnologie di Natural Language Processing. Nel terzo appuntamento con la rubrica Open to Guest ci parla di Text Mining e Artificial Intelligence.

Verso la Comprensione del Linguaggio

La crescente importanza dell’interazione umana nell’uso delle tecnologie moderne (pensiamo a Siri o a comandi vocali per auto) richiede tecniche sempre più accurate per decifrare un fenomeno complesso come il linguaggio naturale. Infatti il margine di errore va riducendosi, mentre le aspettative si alzano.

In questo breve articolo daremo una panoramica su temi legati alla comprensione del linguaggio e all’analisi del testo scritto in forma libera e in particolare di come questi problemi stiano venendo affrontati nel contesto dell’Intelligenza Artificiale.

Il Data Mining è un’applicazione di tecniche statistiche attraverso strumenti informatici che si occupa di individuare strutture in grandi molti di dati, spesso senza formulare ipotesi a priori. E’ vicino e usa strumenti provenienti dal campo del Machine Learning.

Una branca del Data Mining è il Text Mining, volto a rappresentare come variabile numerica un dato testuale non strutturato, con l'obiettivo di recuperare informazioni di alta qualità dal testo.

Esplorare il mondo del Text Mining ci consentirà di muovere qualche passo verso il tema più ampio di tradurre significati complessi ad un sistema informatico.

Topic Detection: di cosa stiamo parlando


Strumenti sofisticati nascono frequentemente da esigenze reali. Ad esempio, un motore di ricerca che proceda per aree tematiche è senz'altro più versatile di uno che usi semplici parole chiave. Cercare “cucina creativa” fornirebbe con alta priorità risultati inerenti “cake design” e “ricette per stupire”.

Per fare ciò, la ricerca nel Machine Learning ha prodotto efficaci algoritmi di Probabilistic Topic Modeling, capaci di annotare automaticamente grandi archivi di documenti con informazioni tematiche. Si tratta di metodi statistici basati sulle frequenze delle parole nella collezione di documenti. E' importante sottolineare che si tratta di tecniche non supervisionate, che non richiedono cioè alcun dataset precedentemente annotato o scelta di etichette da assegnare ai documenti.

Ecco come appare un documento elaborato attraverso Probabilistic Topic Modeling (esempio fatto puramente a scopo illustrativo):

In questi grafici a torta sono rappresentati i valori nutrizionali (percentuali) delle torte che hanno ottenuto il maggior numero di like, secondo le ricette che potete trovare nell'apposita sezione del nostro sito.

Topic identificati:

  • Statistica e matematica
  • Cucina e alimentazione
  • Web e social network

La medesima parola (es. torta) può essere generata da più topic: in questo senso si tratta di modelli capaci di affrontare il problema della polisemia, cioè di singole parole aventi significati diversi in contesti diversi. Un documento può potenzialmente avere gli stessi topic di altri, ma con proporzioni (probabilità) diverse.

La versatilità dei topic model può essere sfruttata sia per assegnare a documenti etichette multiple, che come base per classificazioni univoche (clustering), di cui parleremo sotto. Una volta che un topic model è stato generato, esso può venire utilizzato su nuovi documenti, anche presi singolarmente o provenienti da un flusso continuo. Se il modello generato non è in prima battuta convincente, può comunque fornire una prima panoramica di grandi dataset.


Cluster Analysis: capire Punti di Contatto e di Differenza

La cluster analysis (o clustering) (https://en.wikipedia.org/wiki/Cluster_analysis) è un insieme di metodi di Data Mining e Machine Learning per costruire una classificazione informativa di un insieme di dati inizialmente non classificato. I cluster sono insiemi di elementi simili, e diversi da altri cluster. Si tratta di tecniche non supervisionate, che non richiedono dati precedentemente annotati, e che quindi si prestano ad un'analisi esplorativa di grandi dataset.

Al contrario, il problema della classificazione testuale presuppone di avere già chiare le categorie in esame e di poter fornire all'algoritmo degli esempi da cui inferire regole generali (metodi supervisionati).

Il dato di partenza è tipicamente testo non strutturato, dal quale una prima fase di Natural Language Processing (tecniche per l’elaborazione del linguaggio naturale) estrae features di interesse, ovvero le frequenze, per ogni documento, di termini significativi (la cosiddetta bag-of-words).

In particolare, i topic ottenuti per via probabilistica, come descritto sopra, sono delle features con un livello di astrazione maggiore rispetto ai termini originali, estremamente utili nel determinare quali documenti siano effettivamente simili fra di loro.

Aspetto importante legato alla cluster analysis è l’individuazione di outlier, cioè elementi particolarmente diversi da tutti gli altri, ma non necessariamente simili fra di loro.

Il clustering di documenti testuali presenta l'interessante sfida di spiegare cosa i cluster effettivamente contengano. Siccome le variabili in esame sono tante (i termini nella bag-of-words) non si tratta di un compito banale.

Ad esempio è possibile impiegare algoritmi di domain keyword extraction e generare per via statistica termini descrittivi per ogni cluster. Un approccio comunemente usato si basa sul fatto che parole caratteristiche non debbano essere solo frequenti in un cluster (ad esempio articoli e preposizioni), ma rare negli altri.

Intelligenza Artificiale e Deep Learning

Anche se si è molto lontani dalla realtà presentata in film di fantascienza come 2001 Odissea nello Spazio ed Ex Machina, un programma basilare di Intelligenza Artificiale è ad esempio in grado di cogliere il senso di un linguaggio semplice e rispondere ad alcune domande, ma è limitato spesso ad una interpretazione "letterale" (o statica) delle parole, espressioni, frasi. Un computer può conoscere cioè la definizione di una parola e il significato di una espressione, ma spesso non "comprende" e non "conosce" i significati diversi che nascono all'interno dei diversi contesti in cui queste espressioni sono usate. Nelle lingue naturali il significato si modifica, perché dipende dall'uso. Per fare fronte a queste limitazioni, la ricerca prosegue, appoggiandosi a tecniche di topic detection e clustering che abbiamo visto, e andando oltre le stesse.

Recentemente molti temi di Machine Learning, come quelli descritti, sono stati declinati all’interno del filone di Deep Learning, una serie di algoritmi che tentano di rappresentare astrazioni di alto livello dei dati. Talvolta impropriamente, tali rappresentazioni sono frequentemente paragonate al funzionamento del sistema nervoso umano e chiamate, appunto, Reti Neurali.

Applicazioni di successo di queste tecnologie si sono recentemente avute nei campi del riconoscimento del linguaggio vocale, del riconoscimento di immagini, dell’elaborazione del linguaggio naturale, ma anche nella creazione di sistemi di raccomandazioni (come DSSTNE di Amazon). A Marzo di quest’anno, per la prima volta un programma di computer, AlphaGo di Google DeepMind, ha battuto un giocatore professionista di Go di nono dan (su nove dan possibili); questo risultato è stato giudicato una pietra miliare nel campo del Machine Learning, a ulteriore supporto dell’efficacia di Deep Learning.

Il Deep Learning da solo non rappresenta una forma di Intelligenza Artificiale, ma è al momento un elemento importante nella creazione di potenti sistemi di Intelligenza Artificiale, come Watson di IBM.

In conclusione

In questa panoramica abbiamo visto come è possibile generare una rappresentazione emergente dai dati testuali per “insegnare” concetti, più complessi dei singoli termini, ad una macchina. Tale rappresentazione di topic può servire come base per generare cluster o classificazioni dei dati… Come distinguere oggetti testuali diversi fra loro. Per risolvere problemi di Intelligenza Artificiale, intesa anche in senso debole, l’idea che va consolidandosi è che siano necessarie astrazioni di più alto livello dei dati. E in questo senso prosegue la ricerca, applicata e non, nel campo del Deep Learning.

Le applicazioni sono state fino ad ora promettenti. Rimane però la convinzione che non sia un singolo modello o algoritmo, più o meno sofisticato, a essere sufficiente per risolvere il problema del linguaggio, ma servano più parti sapientemente messe insieme.

Bio:

Francesco Tarasconi, Data Scientist presso CELI - Language Technology, azienda leader nello sviluppo di tecnologie di Natural Language Processing, è laureato in Matematica all'Università degli Studi di Torino e vincitore, presso la ISI Foundation di Torino, della borsa Lagrange per la Ricerca Applicata su Sistemi Complessi. I suoi attuali interessi di ricerca includono Social Network Analysis e Machine Learning supervisionato e non supervisionato.

Per saperne di più e per continuare la conversazione con Francesco e i suoi colleghi: https://www.celi.it/