Google Assistant e la riformulazione contestuale
Grazie al processo di riformulazione contestuale, Google Assistant è in grado dare risposte a domande dell'utente correlate a quella principale. Ed è anche in grado di suggerire domande correlate attraverso il display. Come avviene tale elaborazione?
Quando le persone dialogano tra loro, il contesto e i riferimenti sottintesi sono fondamentali per una comunicazione efficiente.. o meglio, possiamo dire che le conversazioni tra esseri umani sono come le conosciamo proprio grazie a tali elementi.
Ad esempio, se una persona chiede "in che regione si trova Padova?", e dopo aver ottenuto una risposta continua chiedendo "..e quali sono le attrazioni più interessanti", è chiaro che continua a riferirsi a Padova, senza bisogno di esplicitarlo nuovamente. Inoltre, dopo aver ottenuto una risposta potrebbe continuare ancora dicendo "..e per quanto riguarda Verona?"; anche in questo caso è abbastanza chiaro che il riferimento è relativo alle attrazioni.
Un assistente virtuale non in grado di gestire in modo affidabile il contesto e i riferimenti, costringerebbe gli utenti ad adattarsi ad un limite della tecnologia andando a compensarla ripetendo le informazioni implicite nel contesto nelle loro domande di follow-up (ovvero che seguono le precedenti).
Come fa Google Assistant a mantenere il contesto della conversazione?
Come si vede nel video, Google Assistant, riesce a mantenere il contesto della conversazione, consentendo di rendere le richieste più fluide, avvicinandosi ad una conversazione naturale.
La tecnologia che permette di ottenere tale risultato si basa su un sistema di Machine Learning che riformula la richiesta di follow-up dell'utente in modo che contenga le informazioni di contesto mancanti. Questo trasforma la nuova domanda in una in una "query autonoma".
Sebbene ci siano altri modi per gestire il contesto, ad esempio applicando regole che determinano intenti ed argomenti, il vantaggio dell'approccio di riformulazione è la semplicità. Infatti opera orizzontalmente a livello di stringa in qualsiasi risposta alle domande.
Come si vede nell'immagine precedente, lo smart display offre all'utente anche dei suggerimenti per effettuare domande di follow-up.
L'architettura del sistema di riformulazione
Ad alto livello, il principio di funzionamento è semplice: il sistema di riformulazione genera dei "candidati" utilizzando diversi generatori. Ogni candidato alla riformulazione viene quindi valutato in base ad un set di segnali e viene selezionato quello con il punteggio più alto.
La generazione dei candidati
Per generare candidati per la riformulazione, viene utilizzato un approccio ibrido composto da diverse tecniche, che possono essere divise in tre categorie.
- Generatori basati sull'analisi della struttura linguistica delle query, che utilizzano regole grammaticali e morfologiche per eseguire operazioni specifiche, ad esempio la sostituzione di pronomi o altri tipi di locuzioni referenziali.
- Generatori basati sui termini che compongono le richieste, sulla statistica che regola le correlazioni.
- Generatori basati su tecnologie "Transformer", come MUM, che imparano a produrre sequenze di parole in base a una serie di campioni di addestramento. Questi sistemi, partendo da una query e dal suo contesto, possono apportare le modifiche al testo per trasformare le query di input in un candidato per la riformulazione.
La scelta dei candidati
Nel momento in cui vengono generati i candidati, per ognuno viene estratta una serie di segnali processati da algoritmi di Machine Learning che hanno il compito di stabilire un ranking, e quindi di effettuare una scelta. Alcuni dei segnali dipendono solo dalla query principale e dal suo contesto, mentre altri dipendono dal candidato stesso.
Recentemente, i nuovi segnali generati dai modelli BERT e MUM hanno migliorato significativamente le prestazioni della scelta del candidato, riducendo gli errori e i falsi positivi (ovvero le riformulazioni su richieste che non ne avevano bisogno).
Conclusioni
Quella che ho descritto è una soluzione che riformula automaticamente le query di follow-up in modo da renderle richieste indipendenti, in maniera da non costringere l'utente ad adattarsi al mezzo.
Data la varietà di contesti derivanti dalla varietà del linguaggio naturale, viene adottato un approccio ibrido che combina regole linguistiche, stime basate sui dati storici e modelli di Machine Learning all'avanguardia.
Generando dei candidati per la riformulazione delle query e il relativo contesto, valutandoli e classificandoli utilizzando una serie di segnali, Google Assistant può riformulare e quindi interpretare correttamente una grande varietà di query contestuali.
Tutti questi sforzi sono orientati a rendere la conversazione con gli assistenti virtuali più fluida, annullando la macchinosità dei "cambi di turno" nella comunicazione. Per la lingua inglese, per aumentare ulteriormente la fluidità esiste l'opzione della "conversazione continua", che consente di effettuare query di follow-up senza dover pronunciare la wake-word "Hey Google" per ogni richiesta.