Chatbot Student@Work: lessons learned

Posted on: 12/06/2018 by: Bert Vanhalst

Een tijdje geleden gingen we aan de slag met een chatbot platform om een FAQ chatbot te bouwen voor studenten. We deelden toen onze eerste ervaringen.

Sedert eind maart is de chatbot effectief beschikbaar voor studenten via Facebook Messenger, zowel in het Nederlands als het Frans. Studenten die via de Facebookpagina van Student@Work een vraag stellen, of zich naar de contactpagina begeven van de Student@Work website, krijgen de suggestie om hun vraag eens aan de virtuele assistent voor te leggen. In deze blogpost delen we enkele lessen die we hierbij geleerd hebben.

Ga vroeg live om feedback te verzamelen

De chatbot is vroeg live gebracht. Na enkele interne testen hebben we ervoor gekozen om de chatbot meteen open te stellen naar studenten. Een snelle introductie levert waardevolle feedback op over het effectieve gebruik van de bot. Zo komen we onder andere te weten welke vragen er het meest gesteld worden en op welke manier de vragen gesteld worden. We stellen hierbij vast dat er weinig dialect wordt gebruikt. Spelfouten zijn dan weer wel veel aanwezig. De studenten blijven wel beleefd tegen de bot (op één uitzondering na, zonder ze hier expliciet te vermelden); ze herformuleren hun vraag dikwijls als de bot ze niet begrepen heeft. Meestal wordt de vraag vrij kort geformuleerd, maar hier en daar zijn er toch vragen die lang uitgesponnen zijn. Bepaalde vragen zijn heel complex en bevatten eigenlijk verschillende vragen.

Vragen die niet correct beantwoord worden door de bot zijn prima kandidaten om even van dichterbij te bekijken: bij een foutieve intent-classificatie kunnen we bijsturen door de correcte intent aan te duiden. Indien de bot de vraag totaal niet begrepen heeft is de kans reëel dat die vraag gewoonweg ontbreekt in de knowledge base. In dat geval kunnen we dan beslissen om die vraag al dan niet toe te voegen aan de knowledge base. Zo merkten we dat bepaalde vragen die relatief veel gesteld werden nog niet behandeld worden door de bot. We moeten er in die gevallen wel op letten om voldoende voorbeeldzinnen toe te voegen zodat deze bijkomende vraag in de toekomst goed herkend wordt.

Van bij het begin van de publieke testfase is de mogelijkheid voorzien om in de conversatie feedback te geven onder de vorm van een score (0 tot 5) en eventuele vrije opmerkingen. In de praktijk zijn er slechts heel weinig gebruikers die effectief feedback geven. Toch blijven we die mogelijkheid bieden zodat gebruikers hun positieve en minder positieve ervaringen kunnen meegeven. Elke input is een opportuniteit voor verbetering.

Trainen - trainen - trainen

Het bijtrainen van de bot is cruciaal voor de kwaliteit. In de praktijk komt dat neer op het toevoegen van voorbeeldzinnen aan intents. Die voorbeeldzinnen vinden we enerzijds terug in de echte conversaties die studenten voeren met de bot. Maar dat volstaat niet. Zeker voor vragen die minder vaak gesteld worden moeten we zelf voorbeeldzinnen verzinnen. Concreet hebben we dit intern aangepakt, door zowel in workshop als individueel voorbeeldzinnen toe te voegen. Het blijkt moeilijker dan gedacht om zomaar voldoende voorbeeldzinnen te verzinnen, maar het is een must voor het verhogen van de kwaliteit en accuraatheid van de bot. Momenteel doen we hierrond een bijkomende inspanning. Het doel is om voor elke intent minimaal 20 voorbeeldzinnen te hebben. Een aantal zitten hier al ver boven, maar heel wat intents hebben er nog te weinig.

Voorbeeldzinnen worden best kort geformuleerd. Irrelevante delen, zoals "Beste, mijn naam is Jan Janssens en ik heb een vraagje: ...", worden best weggelaten zodat de bot enkel getraind wordt op relevante woorden en zinnen.

Fallback en human hand-over

In bepaalde gevallen moet de bot het antwoord op een vraag schuldig blijven. Ofwel is er geen relevante intent gevonden (de vraag werd totaal niet begrepen), ofwel is de bot niet zeker genoeg van het antwoord (te lage confidence score). In die gevallen moet de gebruiker de mogelijkheid krijgen om op een andere manier geholpen te worden. We hebben dit opgelost door in die gevallen door te verwijzen naar andere kanalen: email, telefoon of live chat via Facebook (indien er 3 maal hetzelfde, foutieve, antwoord wordt gegeven).

Overschakelen naar live chat was in het begin niet voorzien, met als gevolg dat alle conversaties van dichtbij moesten opgevolgd worden om de student in kwestie via live chat verder te helpen. Die taak werd opgenomen door de mensen van de RSZ Front Office. Aangezien één van de doelen van de chatbot net is om hun taak te verlichten, hebben we prioritair werk gemaakt van de human hand-over functie. Nu hebben de mensen onmiddellijk zicht op de gebruikers die een live chat vragen, zonder de volledige lijst met conversaties te moeten doorworstelen.

Bij het overschakelen naar live chat is het belangrijk om duidelijk mee te geven dat de conversatie niet meer in handen is van de bot. Ook het terug overschakelen naar de bot na de hand-over wordt best duidelijk aangegeven.

chat

Enkele cijfers

Om de accuraatheid van de chatbot te meten zijn we uitgegaan van een meting van het percentage succesvolle API calls (een API call komt overeen met een lijn ingetypt door een student). In dit percentage worden alle herformuleringen van de vraag meegerekend als de chatbot fout antwoordt,  maar met "smalltalk" zoals begroetingen, afscheid, etc wordt geen rekening gehouden. Dit is eigenlijk een pessimistische metriek en kan gezien worden als een ondergrens.De succesratio op basis van deze metriek bedraagt ± 65% voor de Nederlandstalige versie en ± 60% voor de Franstalige versie.

Wat uiteindelijk telt is of een student op het einde van de conversatie met de bot effectief geholpen werd, ondanks eventuele herformuleringen van de vraag. Daarom hebben we ook nagegaan wat het percentage succesvolle conversaties is. Die cijfers komen neer op ± 70% voor de Nederlandstalige versie en ± 65% voor de Franstalige versie; iets hoger dus dan de metriek op basis van API-calls.

Verder zien we dat de chatbot niet enkel tijdens de kantooruren gebruikt wordt, maar effectief ook 's avonds en tijdens het weekend. Studenten kunnen op die momenten ogenblikkelijk een antwoord krijgen via de chatbot en hoeven niet te wachten tot de volgende ochtend of maandagmorgen.

active user

Het aantal gebruikers is momenteel nog beperkt, maar er is dan ook (nog) geen grote communicatiecampagne gevoerd. Enkel studenten die al een vraag gesteld hebben via de live chat op Facebook en studenten die terechtkomen op de contactpagina van Studentatwork worden op het bestaan van de chatbot gewezen en gevraagd om die uit te proberen. Voor de Nederlandstalige versie maken op weekbasis gemiddeld 20 à 30 gebruikers op die manier gebruik van de chatbot. Voor de Franstalige versie zijn dat ongeveer 7 gebruikers per week.

Redesign

Om de chatbot nog te verbeteren kunnen we nadenken over een redesign van de dialogen. Momenteel  is de dialoogstructuur vlak: één vraag resulteert in één antwoord; er worden gen vervolgvragen gesteld. Een alternatief is om meer gelaagdheid te voorzien in de boomstructuur van de dialogen. Er kan een detectie gebeuren van het thema waarna de gebruiker verder begeleid kan worden door het stellen van bijvragen. Een dergelijke redesign is tijdsintensief om te realiseren, maar kan wel leiden tot een hogere gebruikerstevredenheid. Momenteel staat dit niet op de roadmap.

Conclusie

De publieke testfase heeft ons in staat gesteld om heel wat waardevolle feedback te verzamelen over hoe de chatbot effectief gebruikt wordt, buiten een labo-omgeving. De belangrijkste les is dat het bijtrainen van de chatbot cruciaal is om een aanvaardbaar kwaliteitsniveau te halen. Door snel live te gaan kan je waardevolle feedback verzamelen van échte eindgebruikers. Maar we mogen niet vergeten dat het opvolgen en bijsturen van de chatbot de nodige effort vraagt.