We are the robots: de intelligentie & taal van een chatbot.

10 min.

De twee grootste uitdagingen bij het creëren van een chatbot zijn de implementatie van een zekere intelligentie én de mogelijkheid tot communiceren op een natuurlijke (menselijke) manier. Met alle heisa rond AI (Artificiële Intelligentie) en NLP (Natural Language Processing) is door de bomen het bos niet meer te zien, maar via dit blogbericht gaan we hierin een beetje meer duidelijkheid scheppen. Dit blogartikel is een follow-up bij het eerder geschreven "We are the robots!". Wil je je kennis over bots dus eerst even opfrissen? Dan kan je hier klikken om de inleiding tot ons botverhaal nog eens nader te bekijken.

De basis: retrieval & generative

'Retrieval' en 'generative' zijn twee modellen, waarvan een bot gebruikt maakt om beter en doelgerichter te communiceren met de gebruiker. Bots die putten uit een lijst van vooraf bepaalde antwoorden teren op het retrieval model. De antwoorden worden dan min-of-meer speculatief gekozen op basis van de input. De veronderstellingen kunnen geheel gebaseerd zijn op een systeem zoals een 'decision-tree' (beslissingsboom), waarbij men werkt met een paar simpele, lineaire regels om snel tot een resultaat te komen. Zo zal het merendeel van de messenger bots, die volgens dit systeem werken, optimaal gebruik maken van de Facebook API. Deze laat immers toe de chatbubbles te personaliseren en te voorzien van knoppen, dynamische sliders, enz. Wat zorgt voor een bepaalde laagdrempeligheid die de foutmarge kan limiteren tot een minimum. 

Natuurlijk hebben de meer gelimiteerde bots hun beperkingen. Door bijvoorbeeld machine learning te implementeren kan de bot de vragen beter begrijpen en vooral doelgerichter antwoorden. Deze manier van werken genereert geen nieuwe tekst, maar analyseert het antwoord door middel van bepaalde algoritmes en kiest dan een repliek uit een lijst van mogelijkheden.

Machine learning is een onderdeel van de eerder genoemde AI (kunstmatige intelligentie). De focus ligt hier op de ontwikkeling van algoritmes en technieken, waarmee computers uit zichzelf zaken kunnen aanleren. Er zijn natuurlijk verschillende manieren waarop dit kan toegepast worden, maar een van de zaken die we gebruiken is de toepassing van machine learning via neurale netwerken. Om bijvoorbeeld de betekenis van een vraag te begrijpen en een passend antwoord te formuleren, zijn die netwerken van toepassing – de bot leert uit de data hij krijgt. 

Binnen een retrieval based systeem is het niet mogelijk om te verwijzen naar eerder vermelde zaken, zoals een naam, datum of een vraag. Generatieve modellen zijn daarin intelligenter en kunnen antwoorden formuleren en refereren naar bepaalde entiteiten. Zo kunnen ze nog beter de illusie wekken dat je daadwerkelijk aan het communiceren bent met een persoon. 

Deze generatieve modellen zijn ook afhankelijk van vooraf bepaalde antwoorden, maar kunnen vanuit het niks antwoorden genereren. Dit model is gebaseerd op Machine Translation-technieken. In plaats van zaken te vertalen van de ene taal naar de andere, 'vertaalt' de applicatie hier van input naar output. 

Deep learning kan gebruikt worden bij zowel retrieval als generative modellen; hierbij zullen het aantal lagen in een neuraal netwerk worden opgetrokken, wat hiërarchisch leren op verschillende niveaus mogelijk maakt. Dit laat bots onder andere toe problemen constructief op te lossen voor zaken, waarvoor deze niet ontworpen zijn – out-of-the-box denken voor bots als het ware.

The best way to predict the future is to create it.

Peter Drucker

Conversatielengte

Hoe langer een conversatie, hoe intensiever het is om ze te automatiseren en de data te verwerken. Chatbots werken volgens het vraag-en-antwoord-systeem. De doornsee gebruiker rekent dan ook niet op inhoudsloze en soms ellenlange gesprekken.

Enerzijds heb je ‘short text’ conversaties, die doorgaans overzichtelijker zijn en waar het doel is om één enkel antwoord te formuleren op één enkele vraag. De openingsuren van een bepaalde winkel, de prijs van een product ... om maar een paar voorbeelden op te sommen.

Anderzijds heb je ‘long text’ gesprekken, waarin alternerend door middel van vraag en antwoord verschillende data wordt vergaard én tevens wordt begrepen door de achterliggende AI, typisch zijn bijvoorbeeld 'custom support threads’, die wel heel lang en gecompliceerd kunnen worden.

Open- en closed domain conversaties

Net zoals in een gesprek tussen twee personen kan een conversatie plots een volledig andere wending nemen. Een bijna oneindig aantal onderwerpen kunnen aangesneden worden en daardoor is het extra moeilijk om geloofwaardige antwoorden te formuleren door de AI ingebakken in de bot.

Men kan een conversatie limiteren en recht voor het doel gaan. Denk maar aan support- en shopping asistants. Je bot hoeft niet mee te kunnen praten over de kleur van het vers gestreken communiehemd van Jani Kazaltzis, wanneer je wil weten welk weer we morgen boven Duo mogen verwachten.

We mogen niet uit het oog verliezen dat we meer en meer service georiënteerd gaan ontwikkelen en dat mensen gericht op zoek zijn naar diensten. Natuurlijk kunnen gebruikers de conversatie proberen in een andere richting duwen maar de AI is niet verplicht om daarop in te gaan, daarenboven verwachten gebruikers dat ook niet.

Social media is not about the exploitation of technology but service to community. 

Simon Mainwaring

Waar moeten we op letten én wat bepaald het kostenplaatje?

  1. Keuze tussen het retrieval- of generative model en hun verschillende gradaties van uitwerking.
  2. Conversatie: lineair of implementatie van NLP?
  3. De lengte/complexiteit van de conversatie.
  4. Limiteren van de ‘kennis’: open- of closed domain.

De kostprijs van een bot wordt doorgaans bepaald door de bovenstaande punten. Gaan we voor een bot die heel lineair een vragenlijst afloopt en via voorgedefinieerde vragen ja/nee-gewijs een conclusie trekt. Of laten we de bot toe een vrije antwoorden te interpreteren en daaruit af te leiden welk antwoord het beste past bij de vraag? Of gaan we zowaar nog een stap verder en laten we de bot zelf een antwoord formuleren? En, moet de bot leren uit de antwoorden? Moet hij, bijvoorbeeld, een sentiment detecteren? Limiteren we de kennis van de bot; of juist niet? 

Een ding staat als een paal boven water: de ontwikkeling van een bot moet met de nodige zorg en analyse gebeuren. 

Meer weten over bots? Bij Duo ben je steeds aan het goede adres. Aarzel dus zeker niet om ons te contacteren want wij helpen je – natuurlijk via menselijke communicatie – met plezier verder!

We are the robots: de intelligentie & taal van een chatbot.