Deep Learning: in cosa consiste e come funziona

Deep Learning. Abbiamo già parlato del Natural Language Processing, ma ho pensato di scrivere un approfondimento su questo topic per capire meglio come funzioni e come possa essere sviluppato per diventare sempre più efficiente.

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.

Tassonomia dei modelli

Retrevial Vs. Generative Models

Retrieval models: usano repository di risposte predefinite per fornire una risposta appropriata basata sugli input e sul contesto.

  • Pro: essendo costituiti su risposte già compilate, non corriamo il pericolo di avere errori grammaticali;
  • Contro: può accadere che il sistema non sia in grado di rispondere alle domande perché la risposta non è presente nella repository.

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).

  • Pro: questo tipo di modello è “più intelligente”: simula con più facilità ed efficacia una conversazione umana.
  • Contro: difficile da allenare (richiede una enorme quantità di dati) e commette più facilmente errori grammaticali (specialmente in frasi lunghe).

Deep Learning Models

Nel sistema di produzione attuale sono molto più utilizzati i Retrieval models.

Long Vs. short conversations

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.

Open Domain Vs. Close Domain

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.

Sfide comuni

Comprensione del contesto

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.

Coherent Personality

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.

Evaluation of models

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

 

 

Deep Learning: in cosa consiste e come funziona ultima modifica: 2017-09-06T10:50:03+00:00 da Emanuele Pucci