martedì 1 novembre 2016

Macchine che imparano #2: l'importanza dei vicini



Ricordate il problema della determinazione del genere di un autore? Ne avevo parlato nel primo post di questa serie dedicata alle tecniche di apprendimento automatico (in inglese, machine learning), interrotta sul nascere per molti mesi, che da oggi riprenderà tuttavia a camminare con maggiore regolarità.
Qualche volta vi sarà forse capitato di leggere un articolo, un racconto, o un qualsiasi testo, e non conoscendo nome e cognome dell'autore, vi sarete chiesti perlomeno se si tratti di un uomo o di una donna. Certo, questa attribuzione può diventare banale qualora il testo contenga indicazioni autoreferenziali: se a un certo punto si legge qualcosa come "il tale giorno mi sono recata nella tale città" è evidente che a scrivere è una donna e non un uomo. Ma in molti altri casi è molto più difficile determinare il sesso dell'autore, e per farlo ci si deve basare su elementi poco oggettivi e di dubbia interpretazione, come lo stile, la frequenza di certe parole, l’utilizzo di costrutti sintattici.

Può sembrare strano, ma c’è chi si è occupato in modo scientifico di questo tipo di determinazioni. Da alcuni studi, condotti su diverse lingue (non soltanto l'inglese ma, per esempio, anche lo spagnolo), risulta per esempio che gli uomini utilizzano le preposizioni in misura maggiore rispetto alle donne. Una spiegazione psicologica che viene fornita a supporto di questo dato è che gli uomini hanno più bisogno di categorizzare gerarchicamente gli oggetti all'interno dell'ambiente. Viceversa, le donne sembrano adoperare più interiezioni, più pronomi, più determinanti (cioè articoli, pronomi dimostrativi e in certe lingue come l'inglese e il francese anche i possessivi) rispetto agli uomini, probabilmente perché sono più interessate alle relazioni sociali.
Alcune ricerche suggeriscono che le donne si esprimono mediante un linguaggio più emotivamente connotato, e per questo impiegano più aggettivi e più avverbi degli uomini. Inoltre sembra che gli uomini commettano più errori grammaticali delle donne e si servano più spesso di quantificatori. Un paio di articoli su questa area della ricerca sono questo e questo.

Mi piace l’idea di utilizzare il curioso problema della determinazione del genere di un autore come esempio di applicazione delle tecniche di apprendimento automatico. Supponiamo di avere una raccolta di 50 racconti: dei primi 49 conosciamo con certezza il genere dell’autore, ma per il cinquantesimo no. Come possiamo affrontare il problema? Potremmo provare a concentrarci su un insieme ristretto di indicatori che riteniamo significativi per il nostro compito di attribuire un genere all’autore misterioso. Immaginiamo di considerarne soltanto due, per esempio il numero di aggettivi e il numero di determinanti ogni 1000 parole.
A ognuno dei 49 racconti già classificati possiamo assegnare una coppia di numeri, corrispondenti agli indicatori che abbiamo scelto. Per esempio, il primo racconto potrebbe essere costituito complessivamente da 5450 parole, e contenere 409 aggettivi e 703 determinanti. Ciò significa che, mediamente, questo testo contiene circa 75 aggettivi e 129 determinanti ogni 1000 parole. La coppia di numeri da attribuire al primo racconto è quindi (75, 129). 

Potrebbe venire quasi spontaneo, a questo punto, pensare di rappresentare ciascuno dei racconti come un punto sul piano cartesiano, le cui coordinate (x, y) corrispondono ai due numeri caratterizzanti. Il risultato sarà un diagramma costellato di 49 punti, uno per ogni racconto già classificato. Potremmo pensare di rappresentare gli autori maschili come pallini gialli e le scrittrici come pallini viola. A questo punto analizziamo il cinquantesimo racconto, quello scritto dall'autore senza volto, e determiniamo i due indicatori. Il punto che disegneremo sul piano cartesiano avrà una collocazione ben precisa, ma non possiamo sapere se sia un pallino giallo o un pallino viola: il nostro obiettivo è proprio decidere il colore di questo cinquantesimo pallino.

Sgombriamo il campo da un dubbio: la tecnica che descriverò può sperare di risolvere il problema della determinazione del genere, ma è soggetta all'errore. Non c'è alcuna certezza nel successo di questo algoritmo, perché si tratta di una metodologia di predizione incerta per definizione.
L'idea è la seguente: si traccia una circonferenza attorno al pallino senza colore, in modo da comprendere al suo interno un numero prestabilito k di pallini colorati, ovvero di racconti di autore noto. La nostra predizione deve basarsi sul genere prevalente presente tra i k pallini racchiusi dalla circonferenza.
Per esempio, considerando la figura a fianco, con k = 3, abbiamo due pallini viola e un pallino giallo, cioè prevalgono le autrici. In base alla tecnica descritta, dobbiamo prevedere che l'autore del cinquantesimo racconto sia una donna. Che l'algoritmo sia per definizione incerto è dimostrato dal fatto che scegliendo, in alternativa, k = 6, i pallini considerati diventano 4 gialli e 2 viola: elementi che ci guiderebbero ad azzardare una predizione maschile per il cinquantesimo racconto.
Dove sta l'apprendimento automatico in questa procedura? Nella fase di acquisizione delle informazioni relative ai 49 punti associati ai racconti di autore noto: l'algoritmo, infatti, apprende, per ciascuno di questi punti, il genere dell'autore, e questi dati divengono la base di conoscenza su cui si basa la predizione relativa al cinquantesimo racconto. Si dice anche che questi 49 punti sono esempi noti che l'algoritmo utilizza per addestrarsi, in modo da costruire una sua descrizione interna (cioè un modello) del fenomeno, e quindi formulare predizioni.

L'esempio mostrato in figura ci fa osservare che lo stesso algoritmo può portare a predizioni diverse a seconda del valore scelto di k. Variando di poco il valore di k, infatti, cambia totalmente la predizione. Tale fenomeno si verifica perché sono stati scelti, per semplicità, valori molto bassi di k, mentre è evidente che, nella maggior parte dei casi, valori più alti di questo parametro possono garantire accuratezze migliori.
Inoltre, il problema scelto è un problema di classificazione binaria, perché la predizione può consistere esclusivamente in due opzioni: autore maschio o autore femmina. In problemi di tal genere, quando la predizione cambia, cambia di brutto (nel nostro esempio, da maschio a femmina, o viceversa), mentre in problemi di classificazione a più valori i cambiamenti possono essere meno radicali.

Altri due elementi molto importanti per il successo dell'algoritmo sono il numero di indicatori utilizzati e la quantità di dati di esempio impiegati per la fase di addestramento.
Utilizzando più di due indicatori, o, come si dice nel gergo tecnico, features, si può sperare di ottenere predizioni più accurate. Questo non è assicurato, tuttavia, perché se si includono nel modello features non significative, cioè grandezze che non influenzano il valore che si vuole predire, allora l'aumento del numero di features non aumenta la qualità delle predizioni. Aumentare il numero di features significa muoversi non più sul piano cartesiano, ma su un iperspazio a n dimensioni, dove n è il numero delle features selezionate.
Poter disporre di un numero il più alto possibile di esempi già classificati da cui apprendere, invece, è quasi sempre buona cosa. Non a caso il mondo dell'apprendimento automatico è strettamente imparentato con quello dei cosiddetti big data: questo non significa che avere grandi moli di dati sia di per sè sufficiente per costruire modelli vincenti grazie agli algoritmi di machine learning, ma che, al contrario, quasi mai si riesce a predire con buona precisione quando i dati a disposizione sono pochi.
Per inciso, l'algorimo che ho descritto si chiama "k-Nearest Neighbors" (kNN), ed è uno dei più famosi nel campo delle tecniche di classificazione basate sull'apprendimento automatico. Nel prossimo articolo della serie scopriremo un altro algoritmo che può essere impiegato per risolvere problemi simili.

Nessun commento:

Posta un commento