Antispam bayesiani

VaTown1
Salve a tutti,
sono uno studente a cui è stato assegnato un approfondimento di statistica riguardo alle tecniche bayesiane per la classificazione del testo e quindi il possibile utilizzo nell'ambito dello spam (antispam bayesiani).
Il problema che ho riscontrato è stato su questo pdf:
http://www.google.it/url?sa=t&rct=j&q=bayesian%20antispam%20multinomial&source=web&cd=2&ved=0CDoQFjAB&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.12.4413%26rep%3Drep1%26type%3Dpdf&ei=nWhOT4SkPIHsOYv0hL4C&usg=AFQjCNGVTdsg1c8__OE-0QPyjEGfrxYbGQ&sig2=tBf41mPqrP2t9uCI5RjCSQ&cad=rja
Purtroppo non riesco a comprendere fin dall'inizio le formule utilizzate per rappresentare il modello multi-variate bernulliano e quelle del modello multinomiale.
C'è qualcuno in grando di aiutarmi a capire i 2 modelli?
Grazie della disponibilità

Risposte
Deckard1
Che cosa non riesci a capire esattamente? Il significato delle formule mi sembra abbastanza autoesplicativo.

VaTown1
Si ciò che le formule producono è spiegato, il problema è che non riesco a capire come si arriva a quelle formule.

Rileggendo bene, Il problema più significativo che riscontro sta nel capire il funzionamento del mixture model dal quale viene generato il documento. Diciamo che da li in poi il parametro \theta non riesco proprio a comprenderlo (ne da dove arriva ne il suo scopo all'interno della formula).

Deckard1
$theta$ è il vettore di parametri delle distribuzioni di probabilità: ogni documento si assume venga generato prima scegliendo un componente del mixture model $c$ con probabilità $P(c|theta)$. $theta$ non è nient'altro che il parametro della distribuzione. Al componente $c$ è associata quindi una distribuzione $P(d|c; theta)$ che rappresenta la probabilità che il documento $d$ sia stato generato avendo scelto la componente del mixture $c$. $theta$ è un vettore, di conseguenza gli effettivi parametri utilizzati dalle varie distribuzione possono anche essere disgiunti.
A seconda del modello utilizzato questi parametri avranno significati diversi: ad es. nel modello bernulliano "multivarito" ci sarà un parametro per ogni parola del vocabolario che rappresenta la probabilità che quella parola venga estratta sapendo che è stata scelta la componente $c$.
Magari leggere queste lecture notes (il paragrafo su naive bayes in particolare) ti può aiutare.

VaTown1
Grazie, sto guardando il pdf che mi hai consigliato, proverò a leggerlo bene. Ancora non mi è chiaro bene il concetto di mixture model, probabilmente mi mancano le basi da questo punto di vista. Non è che potresti consigliarmi qualche lettura per colmare tale lacuna?
Grazie mille

Deckard1
Non saprei cosa consigliarti come testo perché in qualsiasi testo di machine learning vengono trattati i mixture model, però la definizione base viene spiegata molto brevemente. Comunque un testo standard è il Bishop.
Proverò a spiegarti brevemente (e informalmente) cos'è un mixture model: assumiamo esistano $k$ classi differenti $c_1, ... , c_k$ che possono generare il dato che andremo a misurare. La probabilità che un dato qualsiasi sia stato generato dalla classe $c_i$ la indichiamo con $P(c_i)$. Questa è una probabilità a priori, indica la probabilità che sia la classe $c_i$ a generare un qualunque dato. Ovviamente poiché si tratta di probabilità $P(c_i) in [0,1]$ e $sum_{i=1}^{k} P(c_i) = 1$ . Ogni classe $c_i$ ha poi una sua propria distribuzione di probabilità con cui generare un dato $x$; la indichiamo con $P(x | c_i)$.
Vogliamo quindi calcolare la probabilità di estrarre un dato $x$ dal mixture. Essa sarà: $P(x) = sum_{i=1}^{k} P(c_i)*P(x|c_i)$.
Di conseguenza è possibile considerare un mixture model come una combinazione lineare di distribuzioni di probabilità.
Non ho considerato parametri incogniti tanto per semplificare la notazione, ma normalmente le varie distribuzioni di probabilità non sono totalmente specificate: se ne conosce la forma ma è necessario stimarne i vari parametri.

VaTown1
Ok grazie, sei stato molto gentile.
Provo ad andare avanti dalle tue spiegazioni.
Ho letto altri testi sullo stesso argomento (forse un po' più semplici)dove però non viene mai presupposto che il documento venga generato. Questo concetto di dover "creare" il documento proprio non lo capisco.

VaTown1
ciao,
ho capito bene o male come viene generato un documento col modello bernulliano, non mi risulta però chiaro il significato della formula (7) dove viene generato il documento col modello multinomiale.
Come si arriva a tale formula? che criteri vengono utilizzati per arrivarci?
Grazie dell' aiuto!

Deckard1
È la funzione di distribuzione di una variabile multinomiale.

VaTown1
Grazie! avrei ancora qualche dubbio sull'argomento:
1)Perchè bisogna assumere all'inizio del paragrafo 2 di generare un documento? (in altre pubblicazioni non viene fatta quest' assunzione: http://www.ics.forth.gr/~potamias/mlnia/paper_2.pdf)
2)So che il training set dovrebbe "istruire" il filtro a riconoscere lo spam, dove è descritto questo passaggio?

Deckard1
"VaTown1":
Grazie! avrei ancora qualche dubbio sull'argomento:
1)Perchè bisogna assumere all'inizio del paragrafo 2 di generare un documento?

Non bisogna assumere di generare un documento, ma ogni documento sarà stato creato da qualcuno. Assumiamo che chi lo ha creato lo abbia fatto secondo un determinato modello probabilistico. Ovviamente non è così, ma visto che non possiamo conoscere la distribuzione reale dei documenti, è naturale cercare di definire un modello abbastanza semplice da poterlo sfruttare, ma che sia sufficientemente "realistico" per poter dare buoni risultati nelle predizioni.

"VaTown1":
2)So che il training set dovrebbe "istruire" il filtro a riconoscere lo spam, dove è descritto questo passaggio?

Il training set lo utilizzi per stimare i vari parametri (ad es. contando il n° di email spam e non spam, ecc). Come viene fatta la stima sarà sicuramente scritto nel tuo articolo; altrimenti nelle lecture notes che ti ho linkato c'è di sicuro.
Utilizzerai poi questi parametri per generare la predizione in accordo al modello scelto.

VaTown1
Grazie mille,
Un altro dubbio che mi è venuto riguarda le perfomance dei 2 modelli:
nell'introduzione viene detto che il multi-variate bernoulli ha performance migliori quando la grandezza del vocabolario è piccola, invece il modello multinomiale ha performance elevate quando il vocabolario è grande.
Come mai negli esperimenti (tabelle 2 e 3) avviene proprio il contrario?
In più non riesco a capire il valore P(|d[size=85]i[/size]|) in che cosa consiste e perchè viene utilizzato nella formula (7) .

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.