Copyright All Rights Reserved © 2019 Salves

Machine Learning in chatbots

8 juli '19
  • Deel dit bericht
  • linkedin icon

Machine Learning in chatbots

In mijn laatste reeks over chatbots heb ik iets proberen mee te geven over de complexiteit van het testen van chatbots; wat valt er te kiezen, hoe bouw je een chatbot op en natuurlijk hoe test je een chatbot. Het wordt echter nog interessanter als je artificial intelligence (AI) en machine learning toevoegt aan de chatbot zelf. Wat is eigenlijk een AI chatbot en wat betekent dit voor testen?

Het algemene beeld van chatbots met AI is vaak dat ze ingevoerde teksten van de gebruiker volledig verwerken tot live samengestelde antwoorden op maat. Zo geavanceerd is het echter zelden of nooit. De huidige stand van de techniek is nog te onvoorspelbaar om het grootschalig toe te passen, denk aan de Microsoft Twitter-bot Tay en de Facebook bots. Toch zijn er genoeg manieren om AI wél effectief toe te passen.

Dit gedeelte heb ik vooral geschreven naar aanleiding van de presentatie van Muriël Serrurier Schepper op de Chatbot Conference. De technieken die ik hieronder noem, zijn op dit moment vooral beschikbaar in de grotere chatbot platforms, zoals IBM Watson Assistant en Nuance.

Train de interacties

Om machine learning te gebruiken, begin je met het bedenken van alle ‘intents’, ofwel de doelen die een gebruiker kan hebben tijdens de interactie met de chatbot. Bij geprogrammeerde chatbots moet je vervolgens specificeren welke woorden en woordcombinaties een gebruiker zou kunnen gebruiken om tot een bepaalde intent te komen. Dit zijn de zogeheten ‘utterances’ ofwel uitingsvormen.

In het geval van machine learning geef je geen exacte woorden, maar een set korte voorbeeldzinnen op. De machine learning traint vervolgens om te voorspellen welke uitingen tot welke intent behoren. Dit kun je dus later aanvullen als blijkt dat klanten andere uitingen gebruiken. Het zorgt er wél voor dat je de exacte match tussen intent en utterance loslaat en kiest voor een voorspelde match. Zeker iets om te testen!

Een belangrijk concept om de AI trainbaar te houden, is het loskoppelen van een algemene entiteit (zoals ‘bestemming’) en de voorbeelden van een entiteit (zoals ‘Frankrijk’ of ‘Spanje’). Je traint dan op een tekst zoals “Ik wil op vakantie naar ”. Op die manier blijven er voldoende trainingsvoorbeelden beschikbaar en gaat het trainen veel sneller, omdat je niet ieder land hoeft te herkennen.

Standaard sets

Daar zie je het voordeel van een standaard chatbot platform zoals Watson of Nuance: deze entiteiten zijn vaak al voorgedefinieerd. Bovendien zijn er intents met allerlei uitingsvormen vooraf getraind, in allerlei talen. Het kan echter zijn dat jouw doelgroep net weer andere uitingen gebruikt, dus ook dit maatwerk (of eigenlijk localisatie) is zeker een test waard.

Zekerheidsscores

De uitingen van de gebruiker geven zekerheidsscores op bepaalde intents. Bijvoorbeeld: “Ik wil deze zomer in Spanje iedere avond paella eten.”

Dit zou een score van 76% kunnen geven op “Wil_op_vakantie” en 82% op “Zoekt_restaurant”. Als je het voldoende zeker weet, dan geef je het antwoord dat hoort bij de intent. Als je het niet zeker weet, laat dan bijvoorbeeld de drie hoogste scores aan de gebruiker zien en vraag om een keuze te maken. Dit zorgt er ook voor dat je bent voorbereid op spelfouten. De zekerheidsscore zal daar wel iets door dalen, maar het zorgt er niet meteen voor dat de chatbot het in het geheel niet meer herkent.

Een typische test die je hier kunt uitvoeren, is het nagaan van de keuze voor de zekerheidsgrens. Een te lage zekerheidsgrens zorgt ervoor dat de AI het verkeerde antwoord ‘gokt’, een te hoge grens zorgt dat een AI vrijwel niets meer herkent. Beide zijn niet fijn, maar het ene bedrijf zal het gokken willen voorkomen en het andere juist te lage herkenning.

Teksten opknippen

Een ander probleem dat met machine learning kan worden opgelost; het feit dat sommige gebruikers lange teksten intypen om hun verhaal kwijt te kunnen. Traditionele chatbots proberen lange teksten om te zetten naar één intent, maar machine learning kan op zoek gaan naar meerdere intents en daar het juiste antwoord bij zoeken. Dit opknippen van teksten had volgens één van de sprekers op de Chatbot Conference een mooie naam, dialogue learning.

Het is een erg complex proces dat, zeker in het begin, veel handmatige controle nodig heeft. Het is semi-zelflerend dus; de mens stuurt het automatische leerproces continu bij. Toch blijkt het uiteindelijk goed te werken. Rule based chatbots komen bij deze lange zinnen tot een correcte herkenning van 35%, daar waar ML tot maar liefst 70% komt.

Ook hier kunnen we dus constateren dat AI veel kan bijdragen. Mits goed getraind. En goed getest!

Mee in de slipstream? Download ons magazine.

De ontwikkelingen van testen, agile werken, scrum en AI gebundeld