Questo è un post di blog di accompagnamento al mio intervento alla conferenza REWORK del 28 aprile 2021. Le diapositive dell’intervento sono disponibili
qui
.
La comprensione del linguaggio naturale (NLU) è un componente chiave di qualsiasi sistema di intelligenza artificiale (AI) per conversazioni. Solitamente, in un sistema di dialogo orientato alle attività, la NLU è costituita da classificatori che identificano l’intento dell’utente e gli slot o le entità presenti. Il gestore del dialogo utilizza questo output per selezionare lo stato appropriato del dialogo e intraprendere le azioni corrispondenti per soddisfare la richiesta dell’utente. In alcuni casi, potrebbe non essere possibile definire chiaramente un intento o semplicemente la conoscenza dell’intento e delle entità presenti nella richiesta dell’utente potrebbero non fornire informazioni sufficienti da consentire al gestore del dialogo di eseguire l’azione ottimale. Ad esempio, considera la seguente interazione di un utente con un bot per un sito Web di abbigliamento al dettaglio:
L’utente inizia l’interazione con una formula di saluto, seguita da una richiesta per trovare un prodotto specifico. In entrambi questi casi, l’intento identificato e gli slot sono sufficienti per il bot per rispondere in modo intelligente e fornire correttamente un consiglio pertinente all’utente. Il problema sorge quando l’utente risponde al consiglio con la propria idea del prodotto. A quale intento devono essere associate tali query e quali entità devono essere rilevate? Solitamente, gestiremmo tali situazioni con una richiesta all’utente per reindirizzare la conversazione su qualcosa di eseguibile, come “Hmm, non ho capito. Per vedere altre opzioni, pronuncia “mostrami altro”.
Sebbene questa non sia una pessima esperienza utente, possiamo rendere più intelligente il bot aggiungendo un modulo classificatore aggiuntivo al sistema NLU per identificare atti linguistici o atti di dialogo.
Cosa sono gli atti linguistici?
Un atto linguistico acquisisce il contesto e l’intento dell’utente in ogni espressione di una conversazione. Questi intenti sono diversi dagli intenti di dialogo regolare perché sono più generali per natura. Ad esempio, “Quanto costa?” e “Com’è il tempo oggi?” possono appartenere rispettivamente agli intenti “GET_COST” e “GET_WHEATHER”, ma l’atto linguistico è lo stesso: “QUESTION” o se desideri più granularità, “WH-QUESTION”. Esistono diverse tassonomie di atti linguistici definite in letteratura e possiamo usare il sottogruppo che funziona per la nostra applicazione. Per avere un’idea migliore del significato di questi tag, fare riferimento alla tassonomia SWBD-DAMSL, che fornisce un set completo di 42 tag.
Atti linguistici per gestione del dialogo
Nell’esempio del bot utente presentato prima, potremmo avere le etichette di atti linguistici “GREETING” (o “CONVENTIONAL-OPENING”), “QUESTION” e “OPINION-NEGATIVE” per le tre query utente. Ora che sappiamo che alla fine l’utente ha espresso un’opinione negativa sul marchio (contrassegnata come appartenente al tipo di entità “category”), il gestore del dialogo può filtrare l’elenco consigliato per escludere le opzioni della categoria non gradite.
Atti linguistici per identificare elementi su cui eseguire azioni in conversazioni
Un’altra interessante applicazione di atti linguistici che stiamo sperimentando consiste nell’uso di tali atti per estrarre elementi di rilievo di una riunione. Anziché riassumere articoli di giornale, problema ben studiato, fornire una sintesi estrattiva di una riunione (ossia, elementi di rilievo della riunione) è difficile perché i dati annotati sono difficili da trovare. L’identificazione di un elemento di rilievo può essere molto soggettiva. Ad esempio, un tecnico potrebbe concentrarsi sui dettagli di implementazione discussi nella riunione, mentre un gestore prodotti potrebbe non avere bisogno dei dettagli tecnici. Questa soggettività, insieme alla natura sensibile dei dati della riunione, rende difficile ottenere dati annotati per creare un modello.
Letteratura e sondaggi interni hanno dimostrato che se esiste qualcosa su cui le persone concordano, è che le azioni e i follow-up devono essere parte dei punti chiave di una riunione. Partendo da questo presupposto, ci concentriamo sull’identificazione degli elementi eseguibili delle riunioni. Di seguito gli esempi di cosa intendiamo per elementi eseguibili. Sembrano esistere due categorie generali di elementi eseguibili: un oratore promette un’azione e un oratore emette un comando. Questa osservazione rende gli atti linguistici un metodo perfetto per risolvere il problema.
Definiamo la nostra tassonomia di atti linguistici per l’attività come segue:
- Impegni[COM]: un oratore promette di fare qualcosa
- “Invierò un’e-mail con i dettagli”
- “Organizzerò una riunione con Jerry lunedì”
- Direttive[DIR]: l’oratore chiede all’interlocutore di fare qualcosa come risposta
- “Puoi sincronizzarti con loro domani?”
- “Cosa ne pensi di questo progetto?”
- Elaborazione[ELB]: l’oratore aggiunge altre informazioni a un COM o una DIR
- “Organizzerò una riunione con Emma oggi. L’argomento principale in agenda è discutere questo progetto con lei per maggiore chiarezza.” (COM seguito da ELB)
- “Dovresti iniziare a lavorare sulla documentazione. In questo modo, il processo di condivisione sarà più facile.” (DIR seguito da ELB)
- Conferma[ACK]: l’oratore conferma qualcosa
- “Sì, buona idea”
- “Per me va bene”
Alcuni impegni e direttive non sono necessariamente punti chiave perché l’ambito delle azioni è limitato alla durata della riunione. Ad esempio: “Lasciami condividere lo schermo” oppure “Riesci a vedere la mia finestra Chrome?” Per gestire tali casi, dividiamo ulteriormente COM e DIR nelle classi “in riunione” (IM, In-Meeting) e dopo riunione (PM, Post-Meeting). Frasi classificate come COM-PM o DIR-PM sono quelle che ci interessa acquisire per l’utente come azioni eseguibili.
Sintonizziamo un modello pre-addestrato RoBERTa (una variante trasformatore) su 50.000 frasi di riunioni annotate con questi tag. Il modello ha una precisione di circa l’82% in termini di previsione dell’atto linguistico corretto quando testato su un set di 3000 frasi. Per valutare l’obiettivo finale dell’identificazione dei punti chiave delle riunioni, abbiamo chiesto a due annotatori esperti di annotare 12 riunioni con etichette binarie per indicare se ogni frase nella riunione deve essere evidenziata o meno. Il modello ha restituito una precisione alta dell’88%, ossia 88 di 100 elementi di rilievo previsti dal modello erano corretti. Tuttavia, il richiamo è 42%, il che significa che oltre il 50% degli elementi di rilievo non sono stati rilevati dal modello o non rientrano in questo schema di impegni o direttive. Sebbene questo sia ancora da migliorare, la precisione alta è molto incoraggiante.
Altre applicazioni
Abbiamo condiviso solo due applicazioni in cui gli atti linguistici sono utili, ma esistono molti casi d’uso nel mondo reale. Gli atti linguistici aiutano a comprendere la struttura complessiva di una conversazione, che può essere utile nell’analisi dei registri delle conversazioni di un call center. Una recente pubblicazione che mirava a rendere le frasi automaticamente educate utilizzava un classificatore di atti linguistici per identificare frasi non educate ed effettuare le correzioni necessarie. Esistono anche alcuni set di dati aperti che puoi esplorare, come Switchboard corpus e ICSI Meeting Recorder corpus, con conversazioni annotate con un’ampia gamma di tag di atti linguistici.
In Webex, la conversazione è presente in più forme: in applicazioni di chiamata, messaggi e riunioni nonché nelle soluzioni per contact center. Abbiamo solo iniziato ad affrontare il problema di come modelli NLP basati su atti linguistici possano aiutare i nostri clienti a estrarre informazioni utili dai propri dati. Rimani sintonizzato per maggiori informazioni su questo argomento nei prossimi mesi.
Vuoi unirti al team MindMeld? Invia un’e-mail a mindmeld-jobs@cisco.com!
Info sull’autore
Varsha Embar è un Senior Machine Learning Engineer del team MindMeld di Cisco e si occupa dello sviluppo di interfacce conversazionali a livello di produzione. Lavora per migliorare la piattaforma NLP (Natural Language Processing, Elaborazione linguaggio naturale), che include funzioni e algoritmi per impostazioni con basse risorse e affronta problemi difficili, quali sintesi e rilevamento di azioni in trascrizioni di riunioni rumorose. Prima di MindMeld, Varsha ha conseguito la laurea magistrale in Machine Learning and Natural Language Processing presso la Carnegie Mellon University.
Visita la nostra home page o contattaci direttamente per assistenza.
Fai clic qui per ulteriori informazioni sulle offerte di Webex e per eseguire l’iscrizione a un account gratuito.