Fujitsu AI-NLP Challenge per Zinrai, a vincere sono tre studenti italiani

Tre studenti italiani sono i vincitori della challenge AI-NLP di Fujitsu.

Tre studenti italiani sono i vincitori della challenge AI-NLP di Fujitsu. Credits: ildenaro.it

Alessio Gravina, Silvia Severini e Federico Rossetto: questi i nomi dei tre vincitori del contest. Rispettivamente di Maratea, Jesi e Bassano del Grappa, i tre giovani studenti dell’UNIPI si sono aggiudicati i 20mila dollari in palio grazie alla rete neurale che hanno progettato.

L’idea è stata sviluppata nell’ambito del corso “Human Language Technologies”, della laurea magistrale in Informatica dell’università di Pisa. Il corso, tenuto dal professor Giuseppe Attardi, si occupa principalmente delle tecniche di Deep Learning, che negli ultimi anni hanno portato a progressi significativi nell’elaborazione del linguaggio naturale.

Esaminiamo nel dettaglio che cosa veniva richiesto, e poi lasciamo la parola ai vincitori.

Il destinatario del contest: Fujitsu Zinrai

Nato nel 2015, questo insieme di tecnologie unisce e sistematizza diverse aree di conoscenza e decision making per creare un sistema di consulenza che, utilizzando l’intelligenza artificiale, supporta consulenti e clienti per garantire innovazione e rispondere ai bisogni manageriali di questi ultimi.

Esso è composto da tre blocchi principali:

  • percezione e riconoscimento delle sensazioni umane, per identificare frodi informatiche e migliorare il customer service cercando di comprendere le emozioni degli utenti;
  • knowledge processing, un processo cognitivo che crea conoscenza per processi meccanici. Esempi sono supporto al decision-making nel campo medico e supervisione per la parte finanziaria;
  • supporto e decisioni, il blocco dedicato alle decisioni pubbliche o di business che si basa su un supercomputer. Esempi sono la mitigazione del traffico aereo e la simulazione di un’inondazione a causa di tsunami.
I blocchi di Zinrai, nel dettaglio.
I blocchi di Zinrai, nel dettaglio. Credits: fujitsu.com

Una delle API di questa piattaforma di servizi include una ricerca di FAQ. L’obiettivo di Zinrai, in questo caso, è quello di migliorare i tempi di risposta e l’accuratezza nei call center. La richiesta del contest consisteva nello sviluppare delle tecnologie innovative di Natural Language Processing per migliorare la ricerca delle FAQ. In termini tecnici, il problema da risolvere ricade nella categoria dell’ “Selection Question Answering“.

NLP e il problema della “Selection Question Answering”

Il “natural language processing” è un campo delle scienze informatiche che negli ultimi anni ha conosciuto degli importanti progressi e tecnologie. L’obiettivo è quello di riuscire a processare ed analizzare nel modo più accurato possibile i dati relativi al linguaggio naturale (si parla quindi di materiale testuale). Il termine “naturale” si utilizza per distinguere il linguaggio umano da quello “formale”, cioè quello delle macchine. L’NLP viene utilizzato ormai in una grande varietà di ambiti: nel riconoscimento vocale, per gli assistenti virtuali, nelle traduzioni, e anche per la cosiddetta “sentiment analysis”, che serve a estrapolare le opinioni di un gruppo di utenti riguardo uno specifico argomento. Quest’ultima applicazione è particolarmente utile per scopi politici o di marketing per identificare i trend dell’opinione pubblica sui social media.

La sfida dell’NLP sta nel fatto che il linguaggio naturale è estremamente complesso da analizzare. In molti casi sono presenti convenzioni e forme idiomatiche il cui significato è fortemente dipendente dal contesto. Inoltre, la comunicazione risulta spesso ridondante o ambigua, con alcune omissioni volute. Pensiamo poi a quando si fa dell’ironia: per una macchina risulta estremamente difficile capire il vero significato della frase.

I principali ambiti di applicazione del Natural Language Processing.
I principali ambiti di applicazione del Natural Language Processing. Credits: miro.medium.com

Un problema di cui si occupa l’NLP è anche la “Selection Question Answering“. L’obiettivo è quello di identificare tutte quelle frasi che contengono la risposta ad una data domanda, selezionandole da un set di risposte “candidate” ad essere quelle corrette. La difficoltà, in questo caso, sta nel fatto che in molti casi, soprattutto con domande articolate, il dominio di risposte corrette possibili è molto ampio. Inoltre, alcune risposte potrebbero rispondere alla domanda in maniera indiretta e contenere informazioni in eccesso che complicano l’analisi. La parte FAQ di Zinrai richiedeva proprio l’ottimizzazione della soluzione di questo problema.

Il contest

La competizione (i dettagli della quale possono essere letti qui), che coinvolgeva team da ogni nazione, richiedeva di sviluppare un algoritmo di Question Answering basato su un dataset già fornito. Esso conteneva esempi di QA relativi a vari argomenti, ottenuti da Wikipedia. Il set aveva inoltre una difficoltà aggiuntiva: le co-occorrenze delle parole tra domanda e risposta erano ridotte il più possibile. Ciò ha complicato di molto l’analisi semantica per la generazione dell’algoritmo.

Uno schema semplificato dei passaggi di risoluzione per il problema del Question Answering.
Uno schema semplificato dei passaggi di risoluzione per il problema del Question Answering. Credits: sciencedirect.com

Il contest richiedeva di calcolare la probabilità di correttezza per ogni frase nella domanda e il set di risposte correlate. Ad esempio, se per una domanda ci sono tre risposte e solo la seconda è quella corretta, idealmente il risultato sarebbe [0,1,0]. Sottolineiamo “idealmente” perché nella realtà più risposte potrebbero essere corrette, complicando quindi la scelta. Ciò che si ottiene realmente è una serie di risultati che descrivono una preferenza tra le risposte, ad esempio [0.1, 0.8, 0.2].

La parola ai vincitori

Abbiamo contattato per voi i vincitori, che si sono resi subito disponibili a raccontare la loro esperienza. Facciamogli i complimenti per la vittoria!

Abbiamo tutti e 3 studiato informatica alla triennale, frequentando università differenti. Quando si è trattato di scegliere cosa fare alla magistrale, l’interesse per l’intelligenza artificiale è nato principalmente come una curiosità, oltre al fatto che se ne sente parlare in ogni contesto ultimamente. Per alcuni di noi è stato inoltre un ambito che ha sempre affascinato e che volevamo approfondire.

L’esperienza è stata formativa e interessante. I lavori di gruppo sono sempre una sfida e una grande possibilità di apprendimento, soprattutto per imparare a collaborare per uno scopo comune. La scelta di partecipare è avvenuta in relazione al progetto del corso di Human Language Technologies, e onestamente non pensavamo assolutamente di vincere. Certo, il nostro algoritmo otteneva risultati ottimi, ma non ci aspettavamo certamente di raggiungere questo traguardo.

L’idea generale dell’algoritmo è un’applicazione delle reti neurali associata al Selection Question Answering, dove abbiamo creato una Convolutional Neural Network per assegnare uno score a delle coppie domanda – frase al fine di valutare la probabilità che la frase risponda alla domanda. I modelli fino a questo momento utilizzavano all’interno di questo sistema un meccanismo di “Attenzione” uni-direzionale dalla domanda alla risposta, mentre noi abbiamo provato a renderlo bi-direzionale“.