progetto e realizzazione di un sistema per la generazione automatica di recensioni tramite reti...

44
UNIVERSIT ` A DEGLI STUDI DI TRIESTE Dipartimento di Ingegneria e Architettura Corso di Laurea in Ingegneria Informatica Tesi di Laurea Magistrale Progetto e realizzazione di un sistema per la generazione automatica di recensioni tramite reti neurali LAUREANDO RELATORE Dennis MORELLO prof. Alberto BARTOLI CORRELATORI prof. Eric MEDVET dott. Andrea DE LORENZO Anno Accademico 2014/2015

Upload: universita-degli-studi-di-trieste

Post on 12-Apr-2017

133 views

Category:

Internet


2 download

TRANSCRIPT

UNIVERSITA DEGLI STUDI DI TRIESTE

Dipartimento di Ingegneria e Architettura

Corso di Laurea in Ingegneria Informatica

Tesi di Laurea Magistrale

Progetto e realizzazione di unsistema per la generazione

automatica di recensioni tramitereti neurali

LAUREANDO RELATORE

Dennis MORELLO prof. Alberto BARTOLI

CORRELATORI

prof. Eric MEDVETdott. Andrea DE LORENZO

Anno Accademico 2014/2015

Ai miei cari

Indice

1 Introduzione 1

2 Dataset vere recensioni 3

2.1 Panoramica . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2 Analisi statistica . . . . . . . . . . . . . . . . . . . . . . . 3

3 Generazione delle recensioni 7

3.1 Addestramento della rete neurale . . . . . . . . . . . . . . 7

3.2 Algoritmo di generazione . . . . . . . . . . . . . . . . . . 8

3.3 Esempi di recensioni generate . . . . . . . . . . . . . . . . 9

4 Classificazione delle recensioni 11

4.1 Classificazione per tag . . . . . . . . . . . . . . . . . . . . 11

4.1.1 Addestramento . . . . . . . . . . . . . . . . . . . . 11

4.1.2 Valutazione delle prestazioni . . . . . . . . . . . . 12

4.2 Classificazione per rating . . . . . . . . . . . . . . . . . . 14

4.2.1 Addestramento . . . . . . . . . . . . . . . . . . . . 14

4.2.2 Valutazione delle prestazioni . . . . . . . . . . . . 15

5 Generazione mirata delle recensioni 17

5.1 Idoneita di una recensione generata . . . . . . . . . . . . . 17

6 Valutazione delle recensioni 19

6.1 Vere recensioni . . . . . . . . . . . . . . . . . . . . . . . . 19

6.2 False recensioni . . . . . . . . . . . . . . . . . . . . . . . . 20

6.3 Valutazione estrinseca . . . . . . . . . . . . . . . . . . . . 22

6.3.1 Risultati della valutazione estrinseca . . . . . . . . 23

6.4 Valutazione intrinseca . . . . . . . . . . . . . . . . . . . . 26

6.4.1 Risultati della valutazione intrinseca . . . . . . . . 27

v

INDICE vi

7 Conclusioni 317.1 Sviluppi futuri . . . . . . . . . . . . . . . . . . . . . . . . 31

A Tecnologie software utilizzate 33

Capitolo 1Introduzione

Sempre piu servizi web si sono dotati negli anni della possibilita di inse-rire recensioni di prodotti e servizi redatte dagli utenti stessi, e semprepiu utenti fanno riferimento ad esse nella valutazione di un acquisto.Visto l’ingente potenziale economico che le recensioni costituiscono nelveicolare le intenzioni d’acquisto, nel tempo si sono diffuse false recen-sioni scritte da utenti, gruppi di utenti o aziende vere e proprie al fine discreditare prodotti/aziende concorrenti per favorire un particolare pro-dotto/esercizio commerciale oppure per esaltare positivamente la qualitadi un prodotto o, ancora, per invogliare gli utenti a recarsi in un de-terminato esercizio commerciale piuttosto che in altri. Tale situazione eillustrata in [1], dove si stima che 1/3 di tutte le recensioni presenti su In-ternet siano false. Le implicazioni economiche di tale fatto sono notevoli:da un lato, i soggetti che vendono false recensioni ottengono guadagnisempre maggiori, dall’altro le aziende che utilizzano le false recensioniper farsi pubblicita positiva vedono incrementare il proprio bacino d’u-tenza.

L’obiettivo di questo lavoro e di progettare e realizzare un sistema perla generazione automatica di recensioni di ristoranti, in modo tale cheogni recensione generata dipenda dal ristorante stesso e dal rating desi-derato (che secondo la convenzione adottata da molti siti di e-commercee espresso su una scala discreta da 1 a 5). L’output del sistema e unarecensione in lingua inglese conforme agli input.

L’importanza di un tale sistema e apprezzabile considerando che lefalse recensioni che gia abbondano in rete condividono la caratteristica diessere scritte da operatori umani, con le limitazioni che cio comporta siain termini di tempo necessario alla loro stesura, sia in termini quantitati-vi (intendendo il numero di recensioni prodotte da un singolo operatore).

1

1. Introduzione 2

Pertanto, avere a disposizione uno strumento che generi false recensioniin modo autonomo aprirebbe un problema potenziale enorme, in quantosarebbe possibile generarle su larga scala in modo sistematico, contami-nando potenzialmente tutti i flussi di valutazione di moltissimi ristoranti– nel caso limite, tutti.

Quello affrontato appartiene ad un problema piu ampio: la genera-zione automatica di testo (che in letteratura e noto come NLG – Natu-ral Language Generation). Qui si e voluto investigare sulla possibilitadi generare automaticamente false recensioni di ristoranti, andando adesplorare un terreno ancora quasi totalmente sconosciuto: tale problemapresenta, infatti, una sfida in piu rispetto alla mera generazione di testo,in quanto esso deve trasmettere all’utente un giudizio, una valutazioneche lo influenzi nella scelta di recarsi o meno in un dato ristorante.

L’apporto innovativo di questo lavoro di tesi e dunque l’inserimentoall’interno del testo generato del giudizio da esso espresso: come accadeper le vere recensioni, quelle qui generate sono in grado di esprimere unavalutazione sul ristorante a cui fanno riferimento. Un ulteriore aspettoinnovativo, non meno importante del primo, riguarda l’estesa ed appro-fondita valutazione sperimentale che e stata condotta, cosa non moltocomune nelle tecniche di NLG.

Il processo che ha portato al raggiungimento dell’obiettivo e statosuddiviso nelle seguenti fasi:

1. Raccolta di un dataset di vere recensioni di ristoranti;

2. Addestramento di una rete neurale con training set estratto daldataset di partenza;

3. Generazione casuale di false recensioni per mezzo della rete neuraleaddestrata;

4. Addestramento di due tipi di classificatori (per tipo di ristorante eper rating), usando come training set un sottoinsieme del datasetdi partenza;

5. Classificazione delle recensioni generate per tipo di ristorante e perrating;

6. Valutazione sperimentale delle recensioni generate.

Capitolo 2Dataset vere recensioni

2.1 Panoramica

Il punto di partenza e stato il reperimento di un dataset di vere re-censioni in lingua inglese riguardanti ristoranti situati nelle 15 citta diBarcellona, Berlino, Chicago, Istanbul, Londra, Los Angeles, Madrid,Milano, Monaco di Baviera, New York, Parigi, Sydney, Trieste, Valenciae Washington.

Per ogni ristorante, gli attributi considerati sono la citta di apparte-nenza, il nome, i tipi di cucina e le recensioni che lo riguardano.

Ogni recensione e a sua volta un oggetto avente come attributi ilrating (giudizio numerico espresso su una scala discreta di valori da 1 a5), il titolo ed il testo vero e proprio.

2.2 Analisi statistica

La cardinalita del dataset e notevole: 66 700 ristoranti per un totale di2 169 264 recensioni. Il rating medio delle recensioni e pari a 4,1 e lalunghezza media di una recensione e di 297 caratteri.

La distribuzione delle recensioni per rating e la seguente:

1 2 3 4 5

111 218 111 833 245 896 671 610 1 028 707

Tabella 2.1: Numero di recensioni per rating.

3

2. Dataset vere recensioni 4

1 2 3 4 5

0.2

0.4

0.6

0.8

1

·106

Rating

#R

ecen

sion

i

Come si vede nella tabella 2.1, le recensioni che esprimono un giudiziopositivo sono preponderanti rispetto a quelle che esprimono un giudizionegativo.

Il numero totale di tipi di cucina, d’ora in poi chiamati tag, sono 32,e ogni ristorante puo averne 0, 1 o piu. La distribuzione dei ristorantisecondo i tag e la seguente:

5 Analisi statistica

Tag # Ristoranti Tag # Ristoranti

spanish 11 162 indian 1 619mediterranean 10 622 cafe 1 605

italian 8 725 barbecue 1 358french 7 733 delicatessen 1 332pizza 7 099 steakhouse 1 030asian 6 413 vegetarian 1 005

american 5 941 greek 908pub 4 829 vietnamese 780

japanese 4 518 south american 762chinese 4 384 middle eastern 747

european 3 875 soups 444british 3 348 african 261german 2 680 caribbean 254seafood 2 292 irish 232

thai 2 086 eastern european 82sushi 1 741 cajun & creole 78

Tabella 2.2: Numero di ristoranti per tag.

Se invece consideriamo la distribuzione dei tag sulle recensioni, lasituazione e questa (sono riportati solo i 10 tag piu frequenti poiche sonoquelli di interesse):

Tag # Recensioni

french 346 175spanish 334 429italian 310 816

american 306 499pizza 239 311

mediterranean 238 141british 224 719asian 178 640pub 169 564

european 169 362

Tabella 2.3: Numero di recensioni per tag.

2. Dataset vere recensioni 6

fren

ch

span

ish

ital

ian

amer

ican

piz

za

med

iter

ran

ean

bri

tish

asia

n

pu

b

euro

pea

n

2

2.5

3

3.5

·105#

Rec

ensi

oni

Per quanto riguarda la lunghezza delle recensioni, l’82% delle recen-sioni e costituita da meno di 500 caratteri, mentre il 16% ha una lun-ghezza compresa tra i 500 e i 1 000 caratteri; il restante 2% e piu lungadi 1 000 caratteri.

Il solo testo delle recensioni ha un’occupazione di memoria pari a 680MB.

Capitolo 3Generazione dellerecensioni

La generazione delle false recensioni e stata fatta usando una rete neu-rale di tipo LSTM [2], che risulta particolarmente indicata per svolgerequesto compito (come mostrato in [3] e [4]). L’implementazione soft-ware scelta per questo lavoro e disponibile su GitHub nel repositorykarpathy/char-rnn [5].

A partire da un training set testuale, char-rnn (abbreviazione dicharacter recurrent neural network) genera un modello che, una voltaaddestrato, e in grado di produrre testo simile agli esempi presenti neltraining set. La generazione del testo avviene carattere per carattere, edi volta in volta, la rete cerca di predire quale sia il carattere successivo,secondo il modello linguistico appreso.

3.1 Addestramento della rete neurale

La rete neurale e costituita da 3 strati nascosti, ed ogni strato com-prende 700 blocchi LSTM (per un totale di 2 100 blocchi). Tali parame-tri sono stati fissati secondo quanto specificato nella documentazione dichar-rnn, in cui e spiegato che per dimensioni del training set superioria 100 MB e necessario aumentare il numero di strati nascosti e anche ilnumero di blocchi LSTM per ciascuno strato.

Per l’addestramento e stato predisposto un training set di 500 000recensioni estratte in modo casuale dal dataset originale, col vincolo diavere 100 000 recensioni per classe di rating.

Durante l’addestramento della rete, char-rnn suddivide il trainingset in 2 parti: la prima viene effettivamente impiegata come training set,la seconda (detta validation set) viene impiegata per valutare la bonta

7

3. Generazione delle recensioni 8

di adattamento del modello al training set (espressa come indice dellacapacita della rete di generare testo piu o meno simile a quello presentenel training set).

Ogni 1 000 iterazioni d’addestramento viene prodotto un modello in-termedio (detto checkpoint) caratterizzato da una specifica bonta d’a-dattamento al training set. Dopo poco piu di un mese di addestramentocontinuo su una macchina virtuale1 appositamente configurata su un ser-ver del Machine Learning Lab, si e tenuto solamente il checkpoint chemeglio si adattasse al training set.

3.2 Algoritmo di generazione

char-rnn consente di specificare la parte iniziale del testo generato (colparametro primetext) ed un seed numerico (col parametro seed) perl’inizializzazione del generatore testuale.

Il modo con cui sono state generate le false recensioni e il seguente:

1. Si fissa N , il numero minimo di recensioni desiderate

2. Si esegue il seguente ciclo per N iterazioni:

(a) Scelta a caso di una vera recensione r dal training set impie-gato nell’addestramento della rete neurale

(b) Estrazione della prima frase f di r avente lunghezza l

(c) Calcolo del seed s da passare alla rete neurale, pari ad unnumero intero casuale nell’intervallo [0, l)

(d) Esecuzione di char-rnn in modalita generativa, usando il mo-dello addestrato2 e passando i parametri primetext=f e seed=s

(e) Vengono prodotte 5 recensioni, di cui la prima inizia con f ,e l’ultima e spesso incompleta; pertanto, si tengono solo lerecensioni intermedie

3. Al termine, le recensioni cosı prodotte vengono salvate in un file ditesto, disposte una per riga e separate da una riga vuota.

La generazione di recensioni duplicate e evitata con elevata probabilitadalla doppia casualita presente nel ciclo: una nella scelta di r nel passo2a) e l’altra nell’estrazione del seed s nel passo 2c).

1Alla macchina virtuale sono stati assegnati una CPU a 4 core, 4 GB di RAM e 20GB di spazio di archiviazione.

2Costituito dal checkpoint descritto poche righe sopra.

9 Esempi di recensioni generate

3.3 Esempi di recensioni generate

Viene riportato qualche esempio di recensione generata:

• “I ordered the coffee and drinks, suited with closing places, £30excellent pastries and dessert. That’s available.”

• “Written this review for lunch and I thought it would be moreunpleasant. I visited the other reviews and ate dinner here. Wewent there with our show.”

• “We walked into this restaurant on our way to Timspaza.”

• “Pretty expensive for what everyone had. The food was very goodbut was still interesting.”

• “We visited the communal for Spanish food (really) as it was over-priced and its cold. Stew we paid $65. Nice!!!”

• “Eataly is ”3 small of the Tlairpy de Celeria style” away fromWhulgecy plan and seem korean for this place.”

Aldila del senso non sempre compiuto delle frasi generate, si noti comela rete abbia appreso il modello linguistico per produrre parole inglesi, ecome abbia imparato a bilanciare le parentesi.

Interessante inoltre notare che la coniugazione dei verbi avviene inmodo corretto, che gli importi (£30 e $65) sono espressi secondo la con-venzione anglosassone e che le frasi terminano con i simboli di punteg-giatura opportuni, seguiti dal carattere di spaziatura.

Capitolo 4Classificazione dellerecensioni

Al fine di filtrare le recensioni generate in modo da selezionare solo quellecompatibili con gli input del sistema (ristorante1 e rating desiderati), enecessario eseguire una loro classificazione. A tale scopo e stato utilizzatolo Stanford NLP Classifier [6], che implementa in Java diversi algoritmidi classificazione.

4.1 Classificazione per tag

Il primo passo e stato sviluppare i classificatori per tag. L’idea e quelladi costruire un classificatore binario per ogni tag considerato: per il clas-sificatore Ck, una recensione viene etichettata come 1 se possiede il tagk, altrimenti viene etichettata come 0.Per tale ragione, si e scelto di considerare solamente i 10 tag piu co-muni (che riguardano oltre il 70% delle recensioni); in tal modo si sonocostruiti 10 classificatori binari, ciascuno in grado di riconoscere se unadata recensione possegga o meno il tag per il quale e stato addestrato.

4.1.1 Addestramento

L’addestramento di ciascun classificatore per tag e stato ripetuto diver-se volte, al fine di ottenere il modello che presentasse l’accuracy maggiore.

Come primo passo, sono stati predisposti 3 diversi training set S1, S2, S3:il primo contiene 1 000 recensioni, il secondo 10 000 ed il terzo 100 000.Ciascun Si e un sottoinsieme del dataset iniziale, ed e stato estratto

1Un ristorante e individuato dai suoi tag, ovvero dai tipi di cucina.

11

4. Classificazione delle recensioni 12

in modo casuale da esso con l’unico vincolo di contenere solamente lerecensioni relative ai 10 tag piu frequenti (tabella 2.3).

Sono stati poi considerati due algoritmi di classificazione: il metodoQuasi-Newton (QB) ed il metodo Naive-Bayes (NB). Per ciascuno deidue metodi, e stato addestrato un classificatore binario su ogni Si, otte-nendo un totale di 6 modelli.

Durante l’addestramento di ogni modello, l’effectiveness corrispon-dente e stata valutata tramite una cross validation a 10 fold.

4.1.2 Valutazione delle prestazioni

Dall’analisi delle accuracy dei modelli, e emerso che l’addestramento colmetodo NB produce sempre accuracy maggiori; si riporta, ad esempio,la comparazione relativa a S2:

Tag Avg Acc QN Avg Acc NB

spanish 0,598 0,710mediterranean 0,559 0,674

italian 0,611 0,742french 0,658 0,746pizza 0,594 0,691asian 0,696 0,780

american 0,650 0,750pub 0,619 0,720

european 0,582 0,681british 0,652 0,768

Media 0,625 0,725

Tabella 4.1: Confronto tra le accuracy medie dei metodi QN e NB su S2.

13 Classificazione per tag

span

ish

med

iter

ran

ean

ital

ian

fren

ch

piz

za

asia

n

amer

ican

pu

b

euro

pea

n

bri

tish

0.55

0.6

0.65

0.7

0.75

0.8

Acc

ura

cy

QNNB

Confrontando poi le accuracy medie dei 3 modelli addestrati colmetodo NB sui 3 training set, i risultati sono i seguenti:

Tag Avg Acc S1 Avg Acc S2 Avg Acc S3

spanish 0,646 0,710 0,733mediterranean 0,622 0,674 0,707

italian 0,669 0,742 0,760french 0,681 0,746 0,769pizza 0,616 0,691 0,721asian 0,643 0,780 0,804

american 0,675 0,750 0,770pub 0,666 0,720 0,729

european 0,642 0,681 0,712british 0,727 0,768 0,786

Media 0,659 0,725 0,749

Tabella 4.2: Accuracy medie sui diversi training set usando il metodo NB.

4. Classificazione delle recensioni 14

span

ish

med

iter

ran

ean

ital

ian

fren

ch

piz

za

asia

n

amer

ican

pu

b

euro

pea

n

bri

tish

0.6

0.65

0.7

0.75

0.8

Acc

ura

cy

S1

S2

S3

Da quanto emerso, si e tenuto solamente il classificatore addestra-to col metodo NB sul training set S3: l’accuracy media tra i 10 tagconsiderati (pari a 0,749) e la piu alta tra tutti i modelli.

4.2 Classificazione per rating

Nella classificazione per rating, e stato costruito un unico classificatoremulticlasse (5 classi, una per rating) che, data una recensione, gli assegnal’etichetta k ∈ {1, 2, 3, 4, 5} se ritiene che il suo rating sia k.

4.2.1 Addestramento

Similmente a quanto fatto nell’addestramento dei classificatori per tag,sono stati considerati 3 diversi training set S1, S2, S3: il primo contiene5 000 recensioni (1 000 per classe), il secondo ne contiene 50 000 (10 000per classe) ed il terzo ne contiene 500 000 (100 000 per classe). CiascunSi e un sottoinsieme del dataset iniziale estratto in modo casuale da esso.

A differenza del caso precedente, qui si e considerato solamente Naive-Bayes come algoritmo di classificazione, in primo luogo perche fornisce

15 Classificazione per rating

accuracy maggiori, ed in secondo luogo perche richiede tempi di adde-stramento sensibilmente inferiori rispetto al metodo Quasi-Newton – inparticolare con i training set S2 e S3.

Di nuovo, durante l’addestramento di ogni modello, l’effectiveness deivari classificatori e stata valutata traminte una cross validation a 10 fold.

4.2.2 Valutazione delle prestazioni

Analizzando le accuracy medie dei 3 modelli (relativi ai 3 training set), eemerso che l’accuracy media e maggiore nel caso di S2, anche se di pocorispetto ad esempio a S3:

Avg Acc S1 Avg Acc S2 Avg Acc S3

0,496 0,514 0,503

Tabella 4.3: Accuracy medie sui diversi training set.

Per maggiore completezza del training set, e per lo scarto trascurabiletra le accuracy, si e scelto di tenere solo il classificatore addestrato su S3.

Sono stati poi estratti 3 validation set R1, R2, R3, anch’essi sot-toinsiemi del dataset iniziale e aventi la stessa cardinalita e la stessadistribuzione delle recensioni rispetto ai rating di, nell’ordine, S1, S2, S3.Inoltre, Si ∩Ri = ∅ ∀i ∈ {1, 2, 3}.

Per ogni validation set Ri si e considerata la partizione {R(1)i , . . . , R

(5)i },

in cuiR

(k)i = {rij ∈ Ri : rating di rij = k, j = 1, . . . , |Ri|}

ovvero, ogni R(k)i e costituito da tutte le recensioni di Ri aventi rating

pari a k (si noti che, poiche nella sezione 3.1 si e detto che la distribuzio-

ne delle recensioni rispetto ai rating e uniforme, si ha che |R(k)i | = |Ri|/5).

Successivamente, e stata eseguita una classificazione degli R(k)i col

classificatore addestrato su S3, e si sono valutati gli errori medi assolutirelativi a ciascuna classe attesa k per ogni Ri, calcolati come segue:

Eik =1

|R(k)i |

|R(k)i |∑

j=1

|k − vij | ∀i ∈ {1, 2, 3}, ∀k ∈ {1, 2, 3, 4, 5}

dove |R(k)i | e la cardinalita di R

(k)i e vij e il rating osservato di rij (quello

attribuito dal classificatore).

4. Classificazione delle recensioni 16

I risultati sono riassunti nella tabella seguente:

k E1k E2k E3k

1 0,725 0,797 0,7972 0,636 0,680 0,6733 0,855 0,841 0,8474 0,577 0,580 0,5675 0,544 0,567 0,567

Media 0,668 0,693 0,691

Tabella 4.4: Errori medi assoluti sui diversi validation set.

1 2 3 4 5

0.55

0.6

0.65

0.7

0.75

0.8

0.85

k

Err

ore

Med

ioA

ssol

uto

E1k

E2k

E3k

Nella tabella 4.4, l’elemento (ik)-esimo rappresenta l’errore medio as-soluto che il classificatore addestrato su Si commette nel classificare unarecensione avente rating atteso k.

Da quanto emerso, e possibile notare che i classificatori addestratisbagliano, in media, meno di 1 nell’assegnare il rating ad una recensione,e che l’errore piu grande riguarda la classe attesa 3.

Capitolo 5Generazione mirata dellerecensioni

La generazione di recensioni specifiche per un dato ristorante (individua-to dai tag ad esso riferiti) e avente rating desiderato avviene in 2 fasidistinte:

1. Generazione casuale di N recensioni, come descritto nella sezione3.2;

2. Classificazione delle recensioni generate per i tag e per i ratingspecificati, utilizzando i classificatori addestrati nel capitolo 4.

I punti appena descritti vengono eseguiti iterativamente, fintantochevenga prodotta una recensione classificata come desiderato.

5.1 Idoneita di una recensione generata

Una recensione generata rg viene ritenuta idonea se sono soddisfatteentrambe le seguenti condizioni:

• La classificazione per tag attribuisce a rg almeno la meta dei tagdesiderati;

• Il classificatore per rating assegna a rg un rating che si discosta alpiu di 1 dal rating desiderato.

Una recensione vera tende ad essere relativa ad un ristorante avente tagtra loro compatibili – ad esempio, e molto frequente imbattersi in risto-ranti aventi tag {italian, pizza}, mentre e piuttosto infrequente che unristorante abbia tag {pub, asian}. Questo fatto e implicitamente noto ai

17

5. Generazione mirata delle recensioni18

classificatori per tag, poiche sono stati addestrati su vere recensioni. Puopero capitare che alle recensioni generate siano attribuiti combinazioni ditag poco frequenti tra le recensioni vere, oppure che si desideri generarerecensioni aventi combinazioni inusuali di tag, percio nella prima condi-zione si richiede che rg possieda almeno la meta dei tag desiderati, e nontutti.

La seconda condizione e invece giustificata dal fatto che il classifica-tore per rating presenti un errore medio assoluto limitato superiormenteda 1 (tabella 4.4), il che significa che, statisticamente, attribuisce piufrequentemente a rg un rating nell’intervallo [k− 1, k + 1] se k e il ratingeffettivamente espresso da rg.

La scelta di rilassare i vincoli di idoneita delle recensioni generatecome sopra specificato e ulteriormente giustificata dal tempo richiestodalle fasi iterative di generazione → classificazione, tempo direttamenteproporzionale (in modo non deterministico) al numero di tag richiesti.

Capitolo 6Valutazione delle recensioni

Per la fase di valutazione delle recensioni generate sono stati predisposti3 insiemi contenenti diversi tipi di recensioni, come di seguito specificato:

• Rv contiene vere recensioni di ristoranti scelti a caso;

• Rf contiene false recensioni generate senza vincoli particolari;

• Rf ′ ⊂ Rf contiene alcune delle false recensioni di Rf , classificateper tag e per rating.

Sono stati poi considerati 2 differenti approcci valutativi, descrittinelle sezioni successive.

E importante sottolineare che i valutatori non erano a conoscenzadelle finalita della valutazione e di nessun dettaglio relativo al contenutodei questionari o al loro metodo di costruzione. In particolare, non eranoa conoscenza del fatto che stessero valutando un sistema di NLG.

6.1 Vere recensioni

L’insieme Rv e stato costruito scegliendo a caso 2 000 ristoranti dal da-taset originale, e per ogni ristorante sono state estratte, sempre a caso,5 recensioni, una per classe di rating; il numero totale di recensioni checostituiscono Rv e dunque 5 · 2 000 = 10 000.

I ristoranti selezionati per la costruzione di Rv sono stati scelti inmodo da possedere uno o piu tra i 10 tag presi in considerazione nellatabella 2.3, e nessun altro.

Come ulteriore restrizione, sono stati considerati solo ristoranti aven-ti almeno una recensione per classe di rating, in modo da essere certi di

19

6. Valutazione delle recensioni 20

prenderne una per rating.

Premesso questo, Rv contiene 2 000 oggetti relativi a 2 000 diversiristoranti, aventi i seguenti attributi:

• name contiene il nome del ristorante;

• tags contiene la lista dei tag posseduti dal ristorante;

• reviews contiene una lista di 5 recensioni per quel ristorante, or-dinate per rating.

6.2 False recensioni

L’insieme delle false recensioni Rf e costituito da 13 057 recensioni1 gene-rate secondo il procedimento descritto nella sezione 3.2. Si e poi classifi-cata ogni recensione appartenente ad un sottoinsieme Rf ′ ⊂ Rf costituitoda 4 274 recensioni2 usando i classificatori per tag e per rating, ottenendola seguente distribuzione per tag:

Tag # Recensioni

american 1 559pizza 1 464pub 1 385

asian 1 111european 1 038

italian 1 027spanish 1 008

mediterranean 991british 815french 799

Tabella 6.1: Numero di recensioni di Rf ′ classificate per tag.

1Numero dovuto al particolare momento in cui e stato interrotto il processogenerativo, dopo circa due giorni di elaborazione.

2Numero dovuto al particolare momento in cui e stato interrotto il processo diclassificazione, dopo circa un giorno di elaborazione.

21 False recensioni

amer

ican

piz

za

pu

b

asia

n

euro

pea

n

ital

ian

span

ish

med

iter

ran

ean

bri

tish

fren

ch

800

1000

1200

1400

1600

#R

ecen

sion

i

Ovviamente, ogni recensione puo fare riferimento a piu tag – normal-mente compatibili tra loro, nel senso discusso a pagina 17.

La distribuzione secondo i rating e invece la seguente:

Rating # Recensioni

1 4732 6973 1 2874 1 0615 756

Tabella 6.2: Numero di recensioni di Rf ′ classificate per rating.

6. Valutazione delle recensioni 22

1 2 3 4 5400

600

800

1000

1200

Rating

#R

ecen

sion

i

Si noti che la maggior parte delle recensioni viene classificata conrating pari a 3; cio puo essere giustificato osservando che la rete neurale,nella fase di addestramento, ha sı appreso il modello linguistico (tradottoin un modello statistico della distribuzione dei caratteri), ma non riescea carpire il contenuto semantico delle recensioni.

6.3 Valutazione estrinseca

Nella valutazione estrinseca, sono stati predisposti N = 39 gruppi di 3questionari. Ogni questionario riguarda un ristorante r scelto a caso daRv e contiene recensioni relative allo stesso ristorante, proponendo intutto 3 recensioni prese dalla lista delle recensioni che riguardano r e daRf ′ , in modo che le recensioni estratte da quest’ultimo abbiano almeno lameta dei tag posseduti da r, ed in modo che in ogni questionario compaiaalmeno una recensione di r ed almeno una di Rf ′ – nessun vincolo e inveceposto sui rating.

Ogni gruppo di questionari propone dunque 9 recensioni afferenti a 3diversi ristoranti, e all’inizio di ogni recensione viene inoltre specificatoil relativo rating.

In ogni questionario, al valutatore si richiede di indicare se le recen-sioni proposte siano ritenute utili o meno e se, sulla base delle recensioni

23 Valutazione estrinseca

in esso presenti, si sia invogliati a recarsi nel ristorante indicato.

Vengono inoltre richieste le seguenti informazioni inerenti al valu-tatore: sesso biologico, eta e livello di conoscenza della lingua inglese(basso/medio/alto) – notare che, comunque, i questionari sono anonimi.

6.3.1 Risultati della valutazione estrinseca

I risultati della valutazione estrinseca dopo la compilazione degli N =39 gruppi di questionari sono riassunti nella tabella sottostante (3Nquestionari sono relativi in tutto alla valutazione estrinseca):

Utili Non Utili Σ riga

Vere 138 35 173False 51 127 178

Σ colonna 189 162 351

Tabella 6.3: Risultati della valutazione estrinseca.

Vere False0

50

100

150

200

#R

ecen

sion

i

Utili Non Utili

Come si evince dalla tabella 6.3 e successivo grafico, il 28,65% dellefalse recensioni proposte sono state ritenute utili, e il 20,23% di quellevere sono state ritenute non utili.

6. Valutazione delle recensioni 24

Per quanto riguarda la sintesi delle intenzioni di recarsi o meno neiristoranti indicati, si e proceduto nel modo seguente. Per ogni questiona-rio sono state calcolate le medie dei rating delle recensioni vere e di quellefalse. Successivamente, a ciascuno dei due valori medi e stata attribuitaun’etichetta: l’etichetta P (positivo) e stata attribuita ad un valor me-dio x ≥ 3, mentre l’etichetta N (negativo) e stata attribuita ad un valormedio x < 3.

Fatto cio, si e partizionato l’insieme dei questionari nei 4 sottoinsiemiPP, PN , NP, NN in cui la prima etichetta e relativa alle recensionivere e la seconda alle recensioni false; ad esempio, il sottoinsieme PNcontiene i questionari che hanno una media dei rating delle vere recensionipositiva e una media dei rating delle false recensioni negativa.

Infine, le risposte sono state raccolte nella seguente tabella:

Vere False Yes No Σ riga

P P 21 23 44P N 10 4 14N P 9 28 37N N 5 17 22

Σ colonna 45 72 117

Tabella 6.4: Sintesi dei giudizi sui ristoranti.

PP PN NP NN0

10

20

30

40

50

#Q

ues

tion

ari

Yes No

25 Valutazione estrinseca

La tabella 6.4 e successivo grafico mettono in evidenza che i valutatorisono stati invogliati piu spesso a recarsi nei ristoranti proposti quando vierano recensioni aventi rating medio positivo (i primi 3 sottoinsiemi), matale fenomeno non e – come ci si aspetterebbe – piu intenso in terminirelativi nel sottoinsieme PP (dove tutte le recensioni hanno rating mediopositivo), bensı in PN . Cio potrebbe essere dovuto al fatto che le falserecensioni tendano ad avere rating positivo (tabella 6.2) e dunque quellenegative sono in numero inferiore – non a caso i sottoinsiemi piu numerosisono PP e NP.

Il fatto piu importante da notare qui e che le false recensioni riesconoa sovvertire le intenzioni degli utenti rispetto alle vere recensioni nei casievidenziati nella tabella (sottoinsiemi PN e NP):

Vere False Yes No

P P 0,48 0,52

P N 0,71 0,29

N P 0,24 0,76

N N 0,23 0,77

Tabella 6.5: Rapporti delle risposte Yes e No.

Come si vede, nel 29% dei casi le false recensioni convincono l’utentea non recarsi nei ristoranti, mentre nel 24% dei casi le false recensioniconvincono l’utente a recarsi nei ristoranti.

Infine, come ci si aspetterebbe, il sottoinsieme NN presenta il piualto rapporto di astensione (#No/|NN |).

Si prenda ora in considerazione lo scatter plot del tipo di rispostaYes/No sulle variabili x = {Σ rating vere recensioni} e y = {Σ ratingfalse recensioni}:

6. Valutazione delle recensioni 26

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Σ rating vere recensioni

Σra

tin

gfa

lse

rece

nsi

oni

Yes No

Il generico punto di coordinate (x, y) rappresenta una risposta Yes/Norelativa a 3 recensioni aventi x come somma dei rating delle vere recen-sioni e y come somma dei rating delle false recensioni.

Questo grafico mette in evidenza la distribuzione delle risposte secon-do la combinazione dei rating delle recensioni.

Una prima considerazione riguarda l’assenza di recensioni aventi tutterating pari a 5, mentre vi sono recensioni aventi tutte rating pari a 1 –che corrispondono a una risposta di tipo No avente coordinate (1, 2).

Un’altra considerazione riguarda la distribuzione delle risposte perx = 1: in tal caso vi e una sola vera recensione di rating pari a 1,mentre quelle false hanno rating compreso tra 1 e 5, e i valutatori hannorisposto negativamente per le configurazioni (1, 2), (1, 3), (1, 5), (1, 6), po-sitivamente e negativamente per la configurazione (1, 4) e positivamenteper le configurazioni (1, 7) e (1, 8).

Per y = 1, invece, vi e una sola falsa recensione di rating pari a 1,mentre quelle vere hanno rating compreso tra 1 e 3, e i valutatori hannosempre risposto negativamente.

6.4 Valutazione intrinseca

Nella valutazione intrinseca, sono stati predisposti ulteriori N = 39 grup-pi di 4 questionari. Anche in questo caso, ogni questionario e relativo ad

27 Valutazione intrinseca

un ristorante r scelto a caso da Rv, ma propone in tutto 5 recensioni cosıcostituite:

• nvm ≥ 0 vere recensioni estratte dalla lista delle recensioni di r;

• nvc ≥ 0 vere recensioni estratte dalla lista delle recensioni di s 6= rrelative ad un altro ristorante estratto da Rv;

• nfm ≥ 0 false recensioni estratte da Rf ′ e aventi almeno la meta deitag posseduti da r (e dunque verosimilmente relative al ristoranter);

• nfc ≥ 0 false recensioni estratte da Rf .

Sulla composizione delle recensioni globalmente presenti in ogni gruppodi 4 questionari si e posto il vincolo di equidistribuzione nvm = nvc =nfm = nfc = 5; cio implica che nvm + nvc + nfm + nfc = 20.

In ogni questionario, al valutatore si richiede di indicare se, per ognirecensione proposta, egli ritenga sia stata scritta da un umano per il ri-storante indicato nel questionario oppure no.

Anche qui vengono inoltre richieste le informazioni relative al ses-so biologico, all’eta e al livello di conoscenza della lingua inglese delvalutatore.

6.4.1 Risultati della valutazione intrinseca

I risultati della valutazione intrinseca dopo la compilazione degli N = 39gruppi di questionari (4N questionari sono relativi in tutto alla valuta-zione intrinseca) sono riassunti nella tabella sottostante, dove (i pedicim e c stanno rispettivamente per mirata e casuale):

• Rvm e l’insieme delle vere recensioni prese da Rv relative ai ri-storanti riportati nei questionari (nel questionario Qi relativo alristorante ri ∈ Rv vengono proposte nvmi recensioni prese dallalista delle recensioni di ri – ne consegue che |Rvm|=

∑4Ni nvmi);

• Rvc e l’insieme delle vere recensioni prese da Rv relative a ristorantidiversi da quelli riportati nei questionari (nel questionario Qi re-lativo al ristorante ri ∈ Rv vengono proposte nvcj recensioni presedalla lista delle recensioni di un qualsiasi rj ∈ Rv con i 6= j – ne

consegue che |Rvc|=∑4N

j 6=i nvcj );

• Rfm e l’insieme delle false recensioni prese da Rf ′ relative ai ri-storanti riportati nei questionari (nel questionario Qi relativo al

6. Valutazione delle recensioni 28

ristorante ri ∈ Rv vengono proposte nfmirecensioni prese da Rf ′ ,

ciascuna avente almeno la meta dei tag di ri – ne consegue che|Rfm|=

∑4Ni nfmi

);

• Rfc e l’insieme delle false recensioni prese da Rf senza alcun vincolo(nel questionario Qi relativo al ristorante ri ∈ Rv vengono propostenfci recensioni prese da Rf – ne consegue che |Rfc|=

∑4Ni nfci).

Nessun vincolo e stato posto sui rating delle recensioni.

Ritenute vere Ritenute false Σ riga

Rvm 158 37 195Rvc 102 93 195Rfm 47 148 195Rfc 46 149 195

Σ colonna 353 427 780

Tabella 6.6: Risultati della valutazione intrinseca.

Rvm Rvc Rfm Rfc0

50

100

150

200

#R

ecen

sion

i

Ritenute Vere Ritenute False

Dalla tabella 6.6 si evince che non vi e differenza nella valutazionedegli insiemi Rfm e Rfc e cio suggerisce che la classificazione per tag siapressoche ininfluente per il tipo di valutazione preso in considerazione.

Prendendo come baseline il numero di vere recensioni di Rvm perce-pite come false (37), si e riusciti ad ingannare l’utente 47 > 37 volte su

29 Valutazione intrinseca

195 (relativamente all’insieme Rfc), cioe nel 24,10% dei casi. Cio mostrache una falsa recensione viene percepita come vera piu di quanto unavera recensione venga percepita come falsa.

Capitolo 7Conclusioni

La generazione automatica di testo in linguaggio naturale (NLG) e unproblema che solo di recente ha avuto un grande aumento di interessein ambito scientifico grazie alle tecniche basate sulle reti neurali. Qui sie voluto porre l’attenzione sul caso specifico della generazione automa-tica di recensioni di ristoranti, in modo tale che esprimano un giudiziopositivo, negativo o neutro.

Cio e stato ottenuto impiegando una rete neurale LSTM addestratasu vere recensioni di ristoranti, mediante la quale sono state generatetante recensioni fatte successivamente classificare dai classificatori pertag e per rating (preventivamente addestrati su vere recensioni).

L’uso sequenziale della rete generativa e dei classificatori ha consen-tito di ottenere recensioni mirate per tag e rating specifici.

Notare che l’elevata cardinalita dei training set impiegati (per l’ad-destramento sia della rete neurale che dei cassificatori) ha consentitodi ottenere risultati soddisfacenti nella qualita delle recensioni genera-te (tanto che circa 1/4 sono state ritenute autentiche nella valutazioneintrinseca).

7.1 Sviluppi futuri

Un’evoluzione del metodo qui considerato potrebbe consistere nell’au-mentare i tempi di addestramento della rete neurale, ottenendo cosı unmodello che generi testo piu simile agli esempi presenti nel training set.

Un altro aspetto che sarebbe bene approfondire e la valutazione,ricorrendo ad un campionamento stratificato per la compilazione deiquestionari, e confrontando i risultati per ogni tipologia di campione.

31

Appendice ATecnologie softwareutilizzate

La codifica software di quanto descritto in questo documento e statafatta principalmente nel linguaggio di programmazione Python [7], conqualche parte scritta in Java [8] e in JavaScript (interpretato su platformGoogle Apps Script [9]).

Nel dettaglio, il reperimento del dataset originale, la sua analisi sta-tistica, la costruzione dei training set per la rete neurale e per i classi-ficatori, la generazione mirata delle recensioni e la loro analisi statisticasono state effettuate mediante moduli scritti in Python.

Java e stato impiegato nella stesura del codice di interfacciamento aiclassificatori per tag e per rating.

JavaScript e stato utilizzato nella generazione programmatica deiquestionari di valutazione mediante Google Apps Script e nella sintesidei risultati; i questionari sono stati fisicamente implementati in modu-li Google Forms [10], i cui risultati sono stati salvati in fogli di calcoloGoogle Spreadsheet [11].

Infine, il presente documento e stato redatto in LATEX [12] e i graficisono stati disegnati usando la libreria pgfplots [13].

33

Bibliografia

[1] BrightLocal. 88% Of Consumers Trust Online Reviews As Much AsPersonal Recommendations. http://selnd.com/1xzy0Xb, 2014.

[2] Christopher Olah. Understanding LSTM Networks. http://colah.github.io/posts/2015-08-Understanding-LSTMs, 2015.

[3] Ilya Sutskever, James Martens, and Geoffrey E Hinton. GeneratingText with Recurrent Neural Networks. pages 1017–1024, 2011.

[4] Tomas Mikolov, Martin Karafiat, Lukas Burget, et al. RecurrentNeural Network based Language Model. pages 1017–1024, 2010.

[5] Adam Karpathy. Multi-Layer Recurrent Neural Networks (LSTM,GRU, RNN) for Character-Level Language Models in Torch. https://github.com/karpathy/char-rnn, 2015.

[6] The Stanford Natural Language Processing Group. Stanford NLPClassifer. http://nlp.stanford.edu/software/classifier.shtml, 2015.

[7] Python.org. Welcome to Python.org. https://www.python.org/,2016.

[8] Oracle. Java Software — Oracle. https://www.oracle.com/java, 2016.

[9] Google. Apps Script — Google Developers. https://developers.google.com/apps-script/, 2016.

[10] Google. Forms Service — Google Developers. https://developers.google.com/apps-script/reference/forms/, 2016.

[11] Google. Spreadsheet Service — Google Developers. https://developers.google.com/apps-script/reference/spreadsheet/, 2016.

35

BIBLIOGRAFIA 36

[12] LaTeX Project. LaTeX — A document preparation system. https://www.latex-project.org/, 2016.

[13] Christian Feuersanger. PGFPlots - A LaTeX Package to create plots.http://pgfplots.sourceforge.net/, 2016.

Ringraziamenti

Desidero ringraziare in maniera sentita il prof. Alberto Bartoliper avermi offerto la possibilita di far parte del suo laboratorio,concedendomi cosı di trascorrere un periodoa stretto contatto con il mondo della ricerca.Un grazie al prof. Medvet, o meglio Eric,che si e dimostrato sempre vulcanico e costruttivo.Un grazie ai dott. De Lorenzo e Tarlao,per noialtri Andrea e Fabiano, sempre disponibilia chiarire tutti i miei dubbi e senza i qualiquesto lavoro non sarebbe stato ne meno difficilene piu divertente :pUn ringraziamentoche non puo trovare lo spazio appropriatofra le ultime righe di questa tesi,lo devo ai miei amici,vecchi e nuovi,che hanno allietato il mio passato,che rendono unico il mio presente,e che spero continueranno a farmi donodella loro presenza nel mio futuro.Non mi sembra opportuno ringraziarli ad uno ad uno,perche sarebbe un elenco troppo lungoe soprattutto perche citare i loro nomiconferirebbe un ordine implicitoche non renderebbe giustiziae non rispecchierebbei miei sentimenti.Infine, il mio pensiero vaai miei genitorii quali mi hanno dato tutto

37

BIBLIOGRAFIA 38

un affetto senza limiti,una giusta educazione,un sostegno nei periodi di necessita. . . ai miei genitoriche hanno favorito le mie passionie che tuttora si prodigano in questa direzione.. . . ai miei genitoriperche credonon avrei potuto averne di migliori.