Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è...

69
Machine Learning Come dare senso ai dati Mirko Lai [email protected] Mercoledì 5 Dicembre 2018

Transcript of Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è...

Page 1: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Machine Learning

Come dare senso ai dati

Mirko Lai [email protected]

Mercoledì 5 Dicembre 2018

Page 2: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Cos’è il machine learningIl machine learning (o apprendimento automatico) è una branca

dell’intelligenza artificiale (Artificial Intelligence) che consente ai sistemi

informatici di migliorare le proprie prestazioni, senza essere esplicitamente

riprogrammati, apprendendo automaticamente dall’esperienza.

Questa tecnologia ci può aiutare ad affrontare problemi complessi e ad

elaborare grosse moli di dati.

Page 3: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Machine Learning MethodsLe tre principali categorie dell’apprendimento automatico

1. Apprendimento supervisionato

2. Apprendimento non supervisionato

3. Apprendimento per rinforzo

Page 4: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Machine Learning MethodsApprendimento supervisionatoIl sistema riceve degli esempi etichettati in base all’output che si vuole

ottenere e, a partire da questi dati di training, deve estrarre una regola

generale che associ ad ogni nuovo input l’etichetta corretta.

Page 5: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Machine Learning MethodsFrom: Profolan Object: Il miglior rimedio contro le calvizie

From: 7Slim Object: Come perdere peso?

From: News-info Object: Pubblicazione bandi

From: EasyChair Object: CLiC-it 2018 submission

From: Nicoin Object: Il modo più semplice di smettere di fumare

Spam o E-mail?

Es. Classificazione tramite l’utilizzo degli alberi decisionali

Page 6: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Machine Learning MethodsApprendimento non supervisionatoNon esistono dati etichettati, è il sistema che, a partire dagli input, deve

trovare una struttura nei dati.

Page 7: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Machine Learning MethodsEs. Raggruppamento tramite clustering

Page 8: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Machine Learning Methods

Page 9: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Machine Learning Methods

Page 10: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Machine Learning Methods

Page 11: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Machine Learning MethodsApprendimento con rinforzoIl sistema riceve input dall’ambiente e attua delle azioni. Il sistema

prova ad attuare delle azioni allo scopo di ricevere delle ricompense. Il

sistema cercherà di attuare le azioni che ottimizzano la ricompensa a

seconda dello stato dell’ambiente circostante.

Page 12: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Machine Learning MethodsAzioni Penalità Ricompensa

Ambiente

Page 13: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

L’apprendimento nell’informaticaModelli predittivi Modelli Descrittivi

Apprendimento supervisionato

ClassificazioneRegressione

Ricerca sottogruppi

Apprendimento non supervisionato

Clustering predittivo

Clustering descrittivoRicerca regole di associazione

Page 14: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

L’apprendimento nell’informaticaModelli predittivi Modelli Descrittivi

Apprendimento supervisionato

ClassificazioneRegressione

Ricerca sottogruppi

Apprendimento non supervisionato

Clustering predittivo

Clustering descrittivoRicerca regole di associazione

Page 15: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

L’apprendimento nell’informaticaModelli predittivi Modelli Descrittivi

Apprendimento supervisionato

ClassificazioneRegressione

Ricerca sottogruppi

Apprendimento non supervisionato

Clustering predittivo

Clustering descrittivoRicerca regole di associazione

Oggi vedremo laClassificazione Testuale

Page 16: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Terminologia1. Feature: è il formalismo utilizzato per rappresentare un oggetto (negli esempi che

vedremo oggi l’oggetto è un testo)2. Task: è il problema che si vuole affrontare e risolvere (per esempio, la

classificazione di E-mail tra ‘Spam’ e ‘E-mail regolari’)3. L'algoritmo di apprendimento: è un metodo matematico/statistico/logico

utilizzato per creare un modello4. I dati di training: sono i dati che vengono utilizzati da un algoritmo di

apprendimento per creare un modello5. Il modello: è l’output di un algoritmo di apprendimento ottenuto addestrandolo

con un determinato set di dati di training

Page 17: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Il flusso dei dati

Caratteristiche (feature)

Testi da classificare

Modello

Algoritmo di

apprendimento

Testi classificatimanualmente

(train set)

Dati Output

Task

Apprendimento automatico

Page 18: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

TerminologiaI dati di training (train set) sono un set di testi classificati (solitamente da degli annotatori manuali) discernendo tra due o più classi.

L’input di un task di classificazione testuale è un set di testi (test set) che si vuole classificare discernendo tra due o più classi (le stesse classi utilizzate nel training set).

l’output un predizione automatica della classe di appartenenza di ogni elemento del test set.

Page 19: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Il flusso dei dati

Caratteristiche (feature)

Testi da classificare

Modello

Algoritmo di

apprendimento

Testi classificatimanualmente

(train set)

Dati Output

Task

Apprendimento automatico

Page 20: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Fermiamoci un attimo

E vediamo un esempio pratico

Page 21: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Facciamo Machine learningAbbiamo bisogno di:

1. Definire un task da risolvere2. Raccogliere un dataset di testi3. Creare un train set di testi annotati4. Rappresentare i testi tramite feature5. Scegliere un algoritmo di machine learning 6. Creare il modello7. Valutare il modello8. Annotare testi per i quali non è stata definita un’etichetta

Page 22: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

1: Definiamo un taskLo hate speech – espressione tradotta normalmente in italiano come “discorsi d’odio” o

“espressioni d’odio” o “linguaggio d’odio” – consiste in una specifica forma di discriminazione che si estrinseca non attraverso azioni o omissioni, ma mediante deprecabili modalità di

manifestazione del pensiero. Diffuse e reiterate attraverso Internet, tali forme espressive hanno l’effetto di alimentare i pregiudizi, consolidare gli stereotipi e rafforzare l’ostilità di taluni gruppi

di persone, solitamente in maggioranza o in posizione di dominanza in un determinato contesto sociale, nei confronti di altri gruppi con diverse caratteristiche, in genere minoritari.

https://www.agendadigitale.eu/cultura-digitale/le-strategie-di-contrasto-allodio-online-nellunione-europea-46113/

Hate Speech Detection

Page 23: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Facciamo Machine learningAbbiamo bisogno di:

1. Definire un task da risolvere2. Raccogliere un dataset di testi3. Creare un train set di testi annotati4. Rappresentare i testi tramite feature5. Scegliere un algoritmo di machine learning 6. Creare il modello7. Valutare il modello8. Annotare testi per i quali non è stata definita un’etichetta

Page 24: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

2.1. Raccogliamo un datasetTwitter è il social media più utilizzato dai ricercatori per le analisi sui social media perché fornisce una serie di API (Application programming interface) che consentono di raccogliere i post pubblici pubblicati dagli utenti di questa piattaforma (per saperne di più https://apps.twitter.com/ )Esistono librerie per i più diffusi linguaggi di programmazione che consentono di usare facilmente le API, e tanto codice pronto è reso liberamente disponibile dai programmatori: https://github.com/mirkolai/twitter-experiment

Page 25: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

2.2. Raccogliamo un datasetPotremmo interrogare le API di twitter chiedendo di ricevere solo tweet che contengono determinate parole chiave.Ad esempio, potremmo focalizzarci sull’analisi dell’hate speech online rivolto agli immigranti e analizzare i tweet che contengono almeno una di queste parole:

[ migrant*, immigrat*, clandestin* ,stranier*]

Page 26: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

2.3. Raccogliamo un datasetFormattiamo i dati nel modo che ci viene più semplice.Potremo, ad esempio, creare un file excel in cui, in ogni riga, è presente l’id di un tweet (il suo codice univoco) e il suo contenuto testuale.id testo

1046604997545414656

Nuova, ennesima, manifestazione pro #immigrati #clandestini a #Milano. Radical chic, buonisti, immigrazionisti, sindacati, coop, onlus, ong, Anpi con la regina degli anti italiani, la Boldrini.Come al solito a loro interessa solo il business dell'accoglienza. https://t.co/N2qiaDh64Y

1046620978544095233

Milano, migliaia in piazza contro razzismo e intolleranza. Anpi: “Vera minaccia non sono i migranti ma le mafie” https://t.co/YutiphXCrl via @fattoquotidiano

1046639560581685250

@giovanniproto67 @pdnetwork meno male che ci sono LORO che manifestano per" più MIGRANTI e più FORNERO per TUTTI..."

Page 27: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Facciamo Machine learningAbbiamo bisogno di:

1. Definire un task da risolvere2. Raccogliere un dataset di testi3. Creare un train set di testi annotati4. Rappresentare i testi tramite feature5. Scegliere un algoritmo di machine learning 6. Creare il modello7. Valutare il modello8. Annotare testi per i quali non è stata definita un’etichetta

Page 28: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

3.1. Creiamo un train setDobbiamo definire quali sono le classi (etichette) alle quali possono appartenere i tweet.Potremo optare per una classificazione binaria (ricordate Spam e E-mail? ).

Il tweet può contenere hate speech (uso l’etichetta YES) oppure no (uso l’etichetta NO).

Page 29: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

3.2. Creiamo un train setNon è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende dalla sensibilità di chi lo legge.

1. Bisogna fornire agli annotatori manuali delle linee guida che definiscono cosa sia l’hate speech ai fini del nostro task

2. Bisogna chiedere a più annotatori di annotare lo stesso tweet in modo da avere più pareri possibili

Page 30: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

3.3. Creiamo un train setEsempio di linee guida:

YES: il tweet ha l’effetto di alimentare i pregiudizi, consolidare gli stereotipi e rafforzare l’ostilità verso i migranti

NO: il tweet non alimenta i pregiudizi, non consolida gli stereotipi e non rafforzare l’ostilità verso i migranti

Page 31: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

3.4. Creiamo un train setProcuriamoci gli annotatori manuali:

1. Si può chiedere ai colleghi agli amici e conoscenti, ma non è facile trovare qualcuno disposto a dedicare il suo tempo ad annotare qualche migliaio di tweet.

2. Ci vengono in supporto piattaforme online dove, annotatori manuali, si rendono disponibili, previo pagamento, ad annotare i testi per noi. es. https://www.figure-eight.com/

Page 32: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

3.5. Creiamo un train setSe gli annotatori manuali etichettano in modo diverso lo stesso tweet si può scegliere di chiedere un ulteriore parere (un’altra annotazione) e di selezionare la classe più utilizzata.

1046604997545414656

Nuova, ennesima, manifestazione pro #immigrati #clandestini a #Milano. Radical chic, buonisti, immigrazionisti, sindacati, coop, onlus, ong, Anpi con la regina degli anti italiani, la Boldrini.Come al solito a loro interessa solo il business dell'accoglienza. https://t.co/N2qiaDh64Y

X

YES

X X X X

Page 33: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

3.6. Creiamo un train set

1047919240848838656@MaxBastoni @coccaclaudio Riprendiamoci la nostra città ripulita da clandestini ,abusivi, delinquenti, migranti, spacciatori e nigeriani e zingari YES

1048255760575152129

Lo dovete dare solo agli italiani!che schifo sti stranieri voglio sempre e solo tutto gratis!@luigidimaio non fare la cazzata di darlo a tutti dallo solo agli italiani nati in italia no stranieri!leggete ste merde straniere vogliono solo soldi facili!👇https://t.co/zanyD7Y0kL

YES

1053063253654409216

Non fare le piste ciclabili per far dispetto ai migranti è la versione razzista di tagliarselo per far dispetto alla moglie. https://t.co/zzovf3WwK2 NO

1055101652557094913

"Sciacallo!" gridano al Ministro dell'Interno, accorso per un omicidio, quelli che vanno in crociera a filmare immigrati. #desiree NO

Page 34: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Facciamo Machine learningAbbiamo bisogno di:

1. Definire un task da risolvere2. Raccogliere un dataset di testi3. Creare un train set di testi annotati4. Rappresentare i testi tramite feature5. Scegliere un algoritmo di machine learning 6. Creare il modello7. Valutare il modello8. Annotare testi per i quali non è stata definita un’etichetta

Page 35: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

4.1. Passare dai testi alle feature

I computer hanno difficoltà a lavorare con i testi, preferiscono avere a che fare con i numeri.

L’approccio più semplice in assoluto è creare una rappresentazione vettoriale di un testo.

L’unione di più testi creerà una matrice.

Page 36: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

4.2. Passare dai testi alle feature

Testi

Feature

Page 37: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

4.3. Passare dai testi alle feature

Oppure, immaginiamo la matrice come uno scaffale componibile Ikea

● Ogni piano orizzontale dello scaffale rappresenta un oggetto in forma vettoriale (in questo caso un tweet)

● Ogni pila verticale di cassetti rappresenta una caratteristica (feature).

Page 38: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

4.3. Passare dai testi alle feature

Testo 1Testo 2Testo 3Testo 4

Feature 1Feature 2Feature 3Feature 4

Page 39: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

4.4. Passare dai testi alle feature

id Parola 1

Parola 2

Parola 3

... Parola M

tweet 1

1 1 0 ... 1

...

Tweet N

0 0 1 ... 0

Il train set diventerà una matrice NxM (N righe, M colonne) con 1 riga per ogni tweet e 1 colonna per ogni parola contenuta nel dizionario (la lista delle parole in lingua italiana, o più semplicemente, la lista di tutte le parole presenti almeno in un tweet del train set).

Page 40: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

4.3. Passare dai testi alle feature

1047919240848838656@MaxBastoni @coccaclaudio Riprendiamoci la nostra città ripulita da clandestini ,abusivi, delinquenti, migranti, spacciatori e nigeriani e zingari YES

1055101652557094913

"Sciacallo!" gridano al Ministro dell'Interno, accorso per un omicidio, quelli che vanno in crociera a filmare immigrati. #desiree NO

Bag of word (BoW), una feature per ogni parola

id città migranti omicidio ... delinquenti immigrati

etichetta

1047919240848838656

1 1 0 ... 1 0

YES

... ... ... ... ... ... ......

1055101652557094913

0 0 1 ... 0 1

NO

Page 41: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Facciamo Machine learningAbbiamo bisogno di:

1. Definire un task da risolvere2. Raccogliere un dataset di testi3. Creare un train set di testi annotati4. Rappresentare i testi tramite feature5. Scegliere un algoritmo di machine learning 6. Creare il modello7. Valutare il modello8. Annotare testi per i quali non è stata definita un’etichetta

Page 42: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

5.1. Algoritmo di Machine LearningLa scelta dell'algoritmo di machine learning più adatto per affrontare un determinato task dipende da tanti fattori.Nonostante alcuni fattori possano essere valutati prima della sperimentazione, valutare quale sia il più prestante è fondamentale (vedremo in seguito come si misurano le prestazioni di un modello).

Page 43: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

5.2. Algoritmo di Machine LearningLa scelta dell'algoritmo di machine learning più adatto per affrontare un determinato task dipende da tanti fattori.Nonostante alcuni fattori possano essere valutati prima della sperimentazione, valutare il comportamento di diversi algoritmi di machine learning per un determinato task è fondamentale (vedremo in seguito come si misurano le prestazioni di un modello.

Ricordiamo che il modello è l’output dell’algoritmo di machine learning.

Page 44: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

5.3. Algoritmo di Machine LearningGli algoritmi di machine learning che possono essere utilizzati per classificare possono essere divisi in base ai loro output:

● Modelli geometrici (per esempio Support Vector Machine)● Modelli probabilistici (per esempio Naïve Bayes)● Modelli logici (per esempio gli alberi decisionali)● Basati su reti neurali

Nella lezione di laboratorio entreremo più in dettaglio su questo punto.

Page 45: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Facciamo Machine learningAbbiamo bisogno di:

1. Definire un task da risolvere2. Raccogliere un dataset di testi3. Creare un train set di testi annotati4. Rappresentare i testi tramite feature5. Scegliere un algoritmo di machine learning 6. Creare il modello7. Valutare il modello8. Annotare testi per i quali non è stata definita un’etichetta

Page 46: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

6.1. Creare il modelloPer creare un modello bisogna dare “in pasto” all’algoritmo di machine learning la rappresentazione vettoriale di un train set. Nella lezione di laboratorio faremo pratica su questo punto.

Page 47: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

6.2 Creare il modello1047919240848838656

@MaxBastoni @coccaclaudio Riprendiamoci la nostra città ripulita da clandestini ,abusivi, delinquenti, migranti, spacciatori e nigeriani e zingari YES

... …. ...

1055101652557094913

"Sciacallo!" gridano al Ministro dell'Interno, accorso per un omicidio, quelli che vanno in crociera a filmare immigrati. #desiree NO

Modello

Algoritmo di

apprendimento

Apprendimento automatico

train set

1 1 0 ... 1 0

YES

... ... ... ... ... ......

0 0 1 ... 0 1

NO

Rappresentazione vettoriale del train set

Page 48: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Facciamo Machine learningAbbiamo bisogno di:

1. Definire un task da risolvere2. Raccogliere un dataset di testi3. Creare un train set di testi annotati4. Rappresentare i testi tramite feature5. Scegliere un algoritmo di machine learning 6. Creare il modello7. Valutare il modello8. Annotare testi per i quali non è stata definita un’etichetta

Page 49: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.1. Valutare il modelloL’etichetta assegnata del modello viene chiamata predizione.

L’etichetta assegnata dall’annotatore umano viene chiamata gold label.

Il modello deve “azzeccare” (predirre) l’etichetta (classe) assegnata ad un testo avvicinandosi il più possibile alle scelte operate dall'annotatore umano (la gold label).

...Ma non possiamo predire i tweet che sono stati usati per addestrare l’algoritmo. Sarebbe come se durante la lezione mi venissero date le risposte delle domande dell’esame...

Page 50: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.2. Valutare il modelloK-fold validation

5-fold validation (in ogni fase uso 4 parti per addestrare l’algoritmo di apprendimento TRAIN e 1 parte per valutare il modello TEST)Train set Fase 1 Fase 2 Fase 3 Fase 4 Fase 5

Page 51: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.3. Valutare il modello

Modello

Algoritmo di

apprendimento

Dati Output

Task

Apprendimento automatico

Train

Test

Train set

Predizione Gold

Fase 1

vs

Page 52: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.3. Valutare il modello

Modello

Algoritmo di

apprendimento

Dati Output

Task

Apprendimento automatico

Train

Test

Train set

Predizione Gold

Fase 2

vs

Page 53: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.3. Valutare il modello

Modello

Algoritmo di

apprendimento

Dati Output

Task

Apprendimento automatico

Train

Test

Train set

Predizione Gold

Fase 3

vs

Page 54: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.3. Valutare il modello

Modello

Algoritmo di

apprendimento

Dati Output

Task

Apprendimento automatico

Train

Test

Train set

Predizione Gold

Fase 4

vs

Page 55: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.3. Valutare il modello

Modello

Algoritmo di

apprendimento

Dati Output

Task

Apprendimento automatico

Train

Test

Train set

Predizione Gold

Fase 5

vs

Page 56: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.4. Valutare il modelloPredizione Gold

vsSi tratta di valutare quanto la predizione del modello sia “simile” all’annotazione manuale

Due misure comuni sono:

● Accuracy

● F-measure

Page 57: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.4. Valutare il modelloPredizione Gold

vsL’accuracy misura il numero di volte che il modello ha azzeccatoPredizione

YES

NO

Gold

+

Accuracy

7/(7+3)=0,7

Page 58: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.4. Valutare il modelloPredizione Gold

vsL’F-Measure è invece una misura più complessa e si calcola come rapporto (media armonica) tra precision e recall

F_YES= 2 (precision_YES*recall_YES)/(precision_YES+recall_YES)

F_NO= 2 (precision_NO*recall_NO)/(precision_NO+recall_NO)

F_AVG= (F_YES+F_NO)/2

Tutti i valori sono compresi tra 0 e 1

Page 59: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.4. Valutare il modelloPredizione Gold

vs

La precision sulla classe YES misura il numero di volte che il modello ha “azzeccato” la classe YES diviso il numero di volte che il modello ha predetto YES

PredizioneYES

NO

Gold

+

Precision_YES

1/(1+1)=0,5

Page 60: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.4. Valutare il modelloPredizione Gold

vs

La recall sulla classe YES misura il numero di volte che il modello ha “azzeccato” la classe YES diviso il numero di volte che il modello avrebbe dovuto predire YES

PredizioneYES

NO

Gold

+

Precision_YES

1/(1+2)=0,3

Page 61: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.4. Valutare il modelloPrecision = quante anatre ho colpito/quanti colpi ho sparato

Recall = quante anatre ho colpito/quante anatre hanno sorvolato il prato

F-measure = media armonica tra precision e recall

Page 62: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

7.4. Valutare il modelloPredizione Gold

vsPredizione

YES

NO

Gold

+

F_YES/2=0,1875

*Precision_YES Recall_YES

Precision_YES Recall_YES

+

*0,5 0,3

0,5 0,3

F_YES=0,375

Page 63: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Facciamo Machine learningAbbiamo bisogno di:

1. Definire un task da risolvere2. Raccogliere un dataset di testi3. Creare un train set di testi annotati4. Rappresentare i testi tramite feature5. Scegliere un algoritmo di machine learning 6. Creare il modello7. Valutare il modello8. Annotare testi per i quali non è stata definita un’etichetta

Page 64: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Modello

8. Annotare nuovi testi

Testi da classificare

Algoritmo di

apprendimento

Testi classificatimanualmente

(train set)

Output

Task

Apprendimento automatico

Testi predetti

Page 65: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Facciamo Machine learningAbbiamo bisogno di:

1. Definire un task da risolvere2. Raccogliere un dataset di testi3. Creare un train set di testi annotati4. Rappresentare i testi tramite feature5. Scegliere un algoritmo di machine learning 6. Creare il modello7. Valutare il modello8. Annotare testi per i quali non è stata definita un’etichetta

Page 66: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Progetto in corso

Page 67: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Anteprima del sito controlodio.it

Page 68: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

Versione beta: http://beta.controlodio.it/

Questionario sull’usabità: https://docs.google.com/forms/d/10V6dJN771SqL6jLlq53tvS6HFEsNf-WM

Fc7DzwDgmlA/edit?ts=5c01261d

Page 69: Learning Machine Come dare senso ai daticena/materiale/GestioneDB/Machine Learning.pdf · Non è assolutamente facile decidere se un tweet contiene hate speech o no. Spesso dipende

L’importanza dell’apprendimentoIl caso della vespa Sphex