Ervaringen met een corona chatbot.

Een chatbot waar gebruikers terecht kunnen met hun vragen over het coronavirus. Op vrijdag 28 februari werd de eerste besmetting gemeld in ons land. In de week daarna zagen we al veel onzin over het virus op sociale media verschijnen. Tijd dus om mensen te helpen in hun zoektocht naar betrouwbare informatie over de virus uitbraak. De technologie was er en binnen een dag was de eerste versie dan ook gereed.

De chatbot werkte vanaf dag één prima en werd regelmatig gebruikt. En omdat het aantal bronnen met betrouwbare informatie dagelijks toenam had de bot de kans zichzelf dagelijks bij te scholen: het recept voor een succesvolle bot. Tenminste, dat was het plan. In de praktijk zagen we al snel dat gebruikers met regelmaat geen goed antwoord konden vinden op hun prangende vraag.  Hoe was dat mogelijk? De technologie die was gebruikt was niet de minste. Waarom dan toch niet direct succesvol?

Een succesvolle chatbot moet je trainen, trainen en nog eens trainen.

Chatbots worden getraind door ze te voeden met vragen en de bijbehorende antwoorden. Deze vragen en antwoorden worden opgeslagen in een database waarna een gebruiker vragen kan stellen aan de getrainde bot. Een Natural Language Processing (NLP) dienst vertaalt de vraag van de gebruiker in iets bruikbaars en Machine Learning (ML) zorgt er vervolgens voor dat het meest waarschijnlijke antwoord (of antwoorden) wordt getoond aan de gebruiker.

Een betrouwbaar mechanisme dat zijn werk al jaren zo doet. Maar toch zagen we gebruikers worstelen met de antwoorden die werden gegeven op hun vragen. Waar ging dat dan mis?

Meest gestelde vraag na eerste twee weken: Hoe weet ik of ik het coronavirus heb?

Een goede training

Naast de kwaliteit van de NLP en ML algoritmen is de kwaliteit van de training-data één van de meest belangrijkste succesfactoren voor een dergelijke chatbot. Het is dus zaak deze data goed in te richten en bij te houden.

Houd het simpel

Een chatbot  moet de intentie van de gebruiker begrijpen. Snapt het algoritme de vraag van de  gebruiker. Daarvoor is het, onder andere, belangrijk om meerdere varianten van een vraag te gebruiken maar ook om de vragen kort en simpel te houden. Je kan de bot trainen met een vraag als: “Zou je mij misschien kunnen vertellen hoe laat het is?” De kans dat een gebruiker de vraag precies op die manier formuleert is echter vrij klein. Beter is het om de vraag te formuleren als “Hoe laat is het”. Het algoritme zal dan waarschijnlijk ook begrijpen wat je bedoelt met “Weet je hoe laat het is” of “Kan je me vertellen hoe laat het is”.

Gebruik varianten

Bij het trainen van een chatbot wordt altijd gevraagd om meerdere varianten van een vraag in te voeren. Dus niet alleen “hoe laat is het?”, maar bijvoorbeeld ook: “Wat is de tijd” en weet je hoe laat het is?”. Door op een slimme manier varianten toe te voegen zal het algoritme ook andere variaties op de vraag begrijpen. De beste varianten komen van de gebruikers zelf. Daarom is het zo belangrijk de chathistorie te gebruiken om een bot bij te scholen.

Train met regelmaat

De beste resultaten krijg je als je een bot met regelmaat opnieuw traint op basis van input van de gebruikers. Al dan niet automatisch. Vragen uit de praktijk vormen namelijk de beste voeding voor een chatbot. Niet beantwoorde vragen zorgen er zo voor dat de bot elke dag beter wordt.

Meest gestelde vraag na vier weken: Wanneer gaan de scholen weer open?

En in de praktijk?

De corona chatbot was zoals gezegd snel in de lucht. Betrouwbare vragen en antwoorden werden automatisch van de websites gehaald van het RIVM en andere betrouwbare (semi)overheidsinstellingen. Door dit met regelmaat te herhalen zou de kennis van de chatbot actueel blijven. Vervolgens zou de chatbot beter moeten worden door de bot bij te scholen op basis van de daadwerkelijk gestelde vragen over het coronavirus door gebruikers.Dat was het plan. 

De praktijk bleek echter iets weerbarstiger. Met name praktische uitdagingen zorgden ervoor dat een chatbot met een antwoord op alle vragen over het virus nog ver weg is. Welke uitdagingen zijn we dan zoal tegengekomen?

Structuur overheid websites

Om ervoor te zorgen dat de chatbot dagelijks wordt bijgewerkt met actuele kennis van betrouwbare websites, is het van belang dat de structuur van die websites niet (teveel) wijzigt. Waar we begonnen met een verwijzing naar korte lijstjes met vragen op de website van het RIVM en de Rijksoverheid, waren we al snel gedwongen om dagelijks alle verwijzingen bij te werken. 

Met name de structuur van de website van de Rijksoverheid wijzigde regelmatig. Dat moest ook wel want er kwamen dagelijks grote hoeveelheden vragen en antwoorden bij. Je kan je afvragen waarom de Rijksoverheid niet zelf een chatbot heeft ingericht. Misschien iets voor de toekomst.

Wijzigende inhoud

We leren elke dag meer over het virus en de manier waarop we ermee om willen gaan. Ook de vragen uit de de samenleving wijzigen daarmee dagelijks. Daar waar de eerste weken bijvoorbeeld de vragen meestal gingen over gezondheid (“Hoe weet ik of ik het coronavirus heb”), zijn de vragen de laatste tijd meer gericht op het versoepelen van de verschillende maatregelen.

Dit heeft tot gevolg dat de inhoud van de vragen en de antwoorden op de verschillende websites met regelmaat wijzigt. Waar de chatbot begon met een kort lijstje met vragen over gezondheid bij het RIVM, haalt deze nu informatie uit meer dan 10 betrouwbare bronnen met  meer dan 1400 vraag- antwoordparen  over allerhande onderwerpen rondom de virus uitbraak.

Een chatbot over het virus die niet dagelijks wordt getraind, is dan ook al snel verouderd. Het risico van verouderde informatie adresseren we nu door dagelijks de bot opnieuw te trainen en altijd een bron te vermelden bij het gegeven antwoord.

Kwaliteit vragen over het coronavirus

Een goede vraag stellen is een kunst op zich. We zien dan ook grote verschillen tussen de vragen over het coronavirus op websites van (semi)overheden en die van (bijvoorbeeld) grote dagbladen. Je merkt dat partijen verschillen in het aanvoelen van de vragen die leven in de samenleving.

Zoals eerder aangegeven is het van belang dat een chatbot wordt getraind met simpele vragen en varianten van die vraag. Als je man klachten heeft en je maakt je daarover zorgen, dan vraag je waarschijnlijk niet: “Ik ben huisgenoot van iemand die luchtwegklachten en koorts heeft”. Toch staan de websites van betrouwbare instanties vol met dergelijke formuleringen.

Dit betekent dat variaties op de vragen handmatig moeten worden toegevoegd of automatisch op basis van de input van gebruikers. Dit is tot nu toe lastig gebleken omdat de chatbot regelmatig opnieuw wordt getraind (alle oude kennis eruit en nieuwe erin).

Conclusie

De technologie en kennis om succesvolle (vraag- en antwoord) chatbot te realiseren zonder al teveel handwerk is voor iedereen beschikbaar. Voor een succesvolle chatbot dient echter wel aan een aantal randvoorwaarden te worden voldaan.

Zo dienen de structuur en de inhoud van de bronnen die worden geraadpleegd om de bot te trainen, zoveel mogelijk constant te blijven. Pas dan kan aandacht worden besteed aan het optimaliseren van de bot door bijvoorbeeld varianten op vragen toe te voegen. Al dan niet op basis van de chathistorie van gebruikt. Een chatbot die automatisch wordt getraind, altijd up-to-date is en zichzelf optimaliseert op basis van de input van gebruikers, is bij een onderwerp als het coronavirus voorlopig een utopie.

Tot die tijd betekent dat veel extra handwerk. Wat we met plezier hebben gedaan.

Ik hoop in elk geval dat het vaccin er eerder is dan die perfecte bot.

Facebook
Twitter
LinkedIn