In questo articolo:
In questo periodo sempre più aziende stanno entrando nel mercato dei chatbots, dichiarando di poter fornire interazioni basate su NLP e Deep Learning per rendere la conversazione identica a quella che l’utente avrebbe con un umano. Ma è davvero possibile? E come facciamo a distinguere chi riesce davvero ad apportare valore aggiunto in questo mare di soluzioni molto simili tra loro? Sicuramente avere una conoscenza più approfondita dell’argomento aiuta.
Il Deep Learning è una branchia dell’informatica che cerca di costruire architetture “profonde”, che permettono alla macchina di comprendere e analizzare fenomeni: per fare ciò l’intelligenza artificiale si basa su più livelli di rappresentazione. Questi livelli sono organizzati in modo gerarchico, seguendo un ordine che va dal più basso al più alto.
Questo articolo è quindi pensato per darvi maggiori informazioni su questo settore, su come si articola e sulle differenze che troviamo tra un modello e l’altro.
Come? Esplorando prima la tassonomia dei modelli Deep Learning, e dopo le sfide comuni.
Retrieval models: usano repository di risposte predefinite per fornire una risposta appropriata basata sugli input e sul contesto.
Generative models: non hanno repository con risposte predefinite, generano nuove risposte. Sono tipicamente basati su modelli di traduzione: la “traduzione” non avviene da lingua a lingua ma da input (la richiesta) ad output (la risposta).
Nel sistema di produzione attuale sono molto più utilizzati i Retrieval models.
Più lunga è la conversazione, più difficile è automatizzarla. Da una parte ci sono le conversazioni breve, dove l’obiettivo è creare una singola risposta per ogni input: una domanda, una risposta. Dall’altra troviamo le conversazioni lunghe, dove abbiamo più interazioni e quindi la necessità di tracciare la conversazione. Un esempio tipico per questo tipo è la normale conversazione di un’assistenza cliente.
In un dialogo Open Domain l’utente non ha restrizioni: può portare la conversazione dove vuole. Un esempio tipico è quello dei social network come Twitter. Il numero praticamente infinito di topic in cui una conversazione può evolvere rendono la generazione di buone risposte molto difficile.
In una conversazione Closed Domain, invece, input e output sono “circoscritti” in quanto il sistema è stato scritto ed ideato per risolvere un problema (o raggiungere uno scopo) specifico. Di nuovo, i customer care assistant sono un esempio perfetto. Questi sistemi non hanno bisogno di essere in grado di affrontare temi filosofici o politici: è indispensabili che siano efficienti nel risolvere i problemi degli utenti.
Per essere in grado di fornire risposte coerenti il sistema deve essere in grado di comprendere sia il contesto linguistico che quello spazio-temporale. In lunghe conversazioni le persone tengono traccia di quello che è stato detto precedentemente: questo è un esempio di contesto linguistico. Il metodo più comune per affrontare questa challenge è quello di incorporare la conversazione in un vettore dal quale andare a “ripescare” le informazioni, ma facendo ciò diventa difficile gestire le conversazioni molto lunghe. Vi sono studi che stanno cercando di costruire modelli più efficienti, come quello sui Sistemi di Dialogo End-to-End che utilizzano modelli di reti neurali generativi basati su gerarchie.
Il sistema deve generare risposte significative a domande poste in modo differente, ma con lo stesso significato. Per esempio, “quanto costa la spedizione?” o “a quanto ammontano le spese di spedizione?” richiedono la stessa risposta. Questo è ancora oggi un punto critico: molti sistemi possono generare risposte efficaci, ma non sono in grado di affrontare questa challenge.
Il modo ideale per valutare l’efficienza e l’efficacia del sistema è misurarne la capacità di risoluzione dei tasks. Ciò ovviamente richiede capitale umano e molto lavoro necessario per effettuare le necessarie misurazioni. In qualche caso, come nei sistemi open-domain, non abbiamo un obiettivo specifico e non possiamo quindi misurarlo. Ad oggi, il principale problema è che nessuno dei sistemi di valutazione comune tiene in considerazione le metriche che sono realmente collegate con il giudizio umano.
Come potete vedere, ad oggi il sistema è in piena evoluzione e sono ancora molti i punti da migliorare, ma le potenzialità ci sono tutte. Noi di Awhy abbiamo deciso di scommettere e ce la stiamo mettendo tutta per creare un sistema che sia il più completo ed efficiente possibile, siamo sicuri che ce la faremo!
A presto,
Emanuele
Fonte: Denny Britz su WildML
Emanuele