2015-04-22 17 views
11

Sto cercando di capire perché Latent Dirichlet Allocation (LDA) funziona male in ambienti di testo brevi come Twitter. Ho letto A biterm topic model for short text, tuttavia, ancora non capisco "la scarsità di parole co-occorrenze".Qual è lo svantaggio della LDA per i testi brevi?

Dal mio punto di vista, la parte di generazione di LDA è ragionevole per qualsiasi tipo di testo, ma ciò che causa risultati errati nei testi brevi è la procedura di campionamento. Immagino che la LDA campiona un argomento per una parola basata su due parti: (1) argomenti di altre parole nella stessa doc (2) assegnazioni di argomenti di altre occorrenze di questa parola. Dal momento che la (1) parte di un breve testo non può riflettere la vera distribuzione di esso, ciò causa una scarsa assegnazione dell'argomento per ogni parola.

Se hai trovato questa domanda, non esitare a postare la tua idea e aiutami a capirlo.

risposta

14

I modelli probabilistici come LDA sfruttano l'inferenza statistica per scoprire modelli di dati latenti. In breve, deducono i parametri del modello dalle osservazioni.Ad esempio, c'è una scatola nera contenente molte palle con colori diversi. Tiri fuori alcune palle dalla scatola e poi deduci le distribuzioni di colori delle palle. Questo è un tipico processo di inferenza statistica. L'accuratezza dell'inferenza statistica dipende dal numero delle tue osservazioni.

Consideriamo ora il problema della LDA su testi brevi. LDA modella un documento come una miscela di argomenti e quindi ogni parola viene tratte da uno dei suoi argomenti. Puoi immaginare che una scatola nera contenga tonnellate di parole generate da un tale modello. Ora hai visto un breve documento con solo poche parole. Le osservazioni sono troppo poche per dedurre i parametri. È il problema di sparsità dei dati che abbiamo menzionato.

In realtà, oltre alla mancanza di osservazioni, il problema deriva anche dalla eccessiva complessità del modello. Di solito, un modello più flessibile richiede più osservazioni da dedurre. Il Biterm Topic Model tenta di semplificare l'inferenza di argomento riducendo la complessità del modello. Innanzitutto, modella l'intero corpus come una miscela di argomenti. Dal momento che dedurre la miscela di argomenti sul corpus è più semplice che inferire la miscela di argomenti su un breve documento. Secondo, suppone che ogni biterm sia disegnato da un argomento. Sottolineare l'argomento di un biterm è anche più facile che dedurre l'argomento di una singola parola in LDA, poiché viene aggiunto più contesto.

Spero che la spiegazione abbia senso per voi. Grazie per aver menzionato la nostra carta.

4

Facendo un po 'di scavo, Hong and Davison (2010) si è presentato come un ottimo esempio di questi non funziona bene sulla classificazione dei tweet. Sfortunatamente, non danno davvero molte informazioni sul perché non funziona.

Sospetto che ci siano due motivi per cui la LDA non funziona bene per i documenti brevi.

Prima di tutto, quando si lavora su documenti più piccoli, il livello dell'argomento aggiuntivo non aggiunge nulla alla classificazione e ciò che non aiuta probabilmente fa male. Se si dispone di documenti molto brevi, come i tweet, è davvero difficile suddividere i documenti in argomenti. Dopotutto, in un tweet non c'è molto spazio per altro che un argomento. Poiché il livello dell'argomento non può contribuire molto alla classificazione, fa sì che si verifichi un errore nel sistema.

Secondo, dal punto di vista linguistico, gli utenti di Twitter preferiscono eliminare il "inutile fluff" durante il tweeting. Quando si lavora con documenti completi, ci sono caratteristiche - parole, collocazioni di parole, ecc. - che sono probabilmente specifici, comuni e spesso ripetuti all'interno di un genere. Quando tweeting, però, questi elementi comuni vengono eliminati prima perché ciò che è interessante, nuovo e più perplesso è ciò che rimane quando viene rimosso il fluff.

Per esempio, diamo un'occhiata a myowntweets perché credo nella sfacciata auto-promozione:

Progressbar.py is a fun little package, though I don't get 
a chance to use it too often. it even does ETAs for you 
https://pypi.python.org/pypi/progressbar … 

From a capitalist perspective, the social sciences exist so 
idiot engineers don't waste money on building **** no one needs. 

Abstract enough to be reusable, specific enough to be useful. 

La prima riguarda Python. Se stai analizzando gli URL, lo otterrai - e anche la .py lo darebbe a te. Tuttavia, in un mezzo più espressivo, probabilmente avrei messo la parola "Python" da qualche parte. Anche la seconda è legata alla programmazione, ma un po 'più alla fine aziendale. Non una volta nemmeno menziona qualcosa di specifico per la programmazione, però. Anche l'ultimo è legato alla programmazione, ma si lega maggiormente all'arte della programmazione, esprimendo una sorta di programmatore a doppio vincolo affrontato durante la codifica. È difficile come il secondo, in termini di funzionalità.

In entrambi gli ultimi due esempi, se non avessi scritto un post di microblog, questi sarebbero stati immediatamente seguiti da esempi che sarebbero stati molto utili per un classificatore, o se stessi includevano più dati. Twitter non ha spazio per quel genere di cose, però, e il contenuto che dovrebbe caratterizzare il genere a cui appartiene un tweet è spogliato.

Quindi, alla fine, abbiamo due problemi. La lunghezza è un problema per LDA, perché gli argomenti aggiungono un grado di libertà extra e non necessario ei tweets sono un problema per qualsiasi classificatore, poiché le funzionalità tipicamente utili nella classificazione vengono rimosse selettivamente dagli autori.

+0

D'accordo con la tua idea che il livello argomento del documento di LDA non è necessario per i testi brevi. Vuoi ancora ulteriori spiegazioni, magari una procedura di ADL che va storta nel testo breve, o spiegarla in teoria? –

Problemi correlati