DevelopmentPersonaliseer de gebruikerservaring in uw chatbot

Sinds de introductie van de iPhone in 2007 is één van mijn favoriete quotes “Design is not just what is looks and feels like. Design is how It works”. Deze uitspraak is veelzeggend voor de huidige markt voor chatbots in het bedrijfsleven. Veelal zien bots er qua UI goed verzorgd, maar functioneel kunnen ze vaak alleen gestelde vragen beantwoorden.

PersonalizerIn mijn eerdere blog Bots bouwen met het microsofts bot framework 2.0 noemde ik al een aantal nieuwe ontwikkelingen waarmee het mogelijk wordt om chatbots ‘echtere’ antwoorden te laten geven. Zoals adaptieve dialogen, skills en meer tools voor developers. Dit is natuurlijk mooi! Meer functionele mogelijkheden betekent ook dat er meer verwachtingen zullen ontstaan omtrent de gebruikerservaring. Om hierop in te spelen is het van belang om dit proces continu te monitoren. Eén van de mogelijkheden die Microsoft hiervoor biedt is de Personalizer, een cloud service in de cognitive services library die beschikbaar is via de Azure Portal. Naast het bot framework kan deze Artifical Intelligence API-service ook prima worden gebruikt in andere toepassingen!

De werking van de Personalizer API

In de figuur hieronder wordt de werking goed weergeven. De manier waarop de Personalizer aanbevelingen doet in uw chatbot is vergelijkbaar met de werkwijze van Netflix. In het geval van Netflix kijk je een film of tv-serie. Op basis hiervan doet Netflix een aanbeveling en drukt dit uit in een percentage. Hoe relateert dit voorbeeld dan aan de Personalizer?

Personalizer API
Figuur 1: De werking van de Personalizer API (vereenvoudigd)

Reinforced learning

Zowel Netflix als de Personalizer maakt gebruik van het principe van reinforced learning. Dit houdt in dat er informatie wordt verzameld en op basis hiervan een aanbeveling wordt gedaan. Indien dit de “juiste” aanbeveling is, wordt het gebruikte datamodel “beloond” en daardoor getraind.

De Personalizer API draait op de achtergrond en verzamelt informatie over de conversatie tussen de gebruiker en bot. Hierbij valt te denken aan informatie over de gestelde vragen, gegeven antwoorden en de gemaakte keuzes van een gebruiker. Om te bepalen welke actie vervolgens moet worden uitgevoerd door je chatbot, bijvoorbeeld het tonen van een bepaalde afbeelding of geven van een antwoord, doet de Personalizer door een keuze aan te bevelen uit een lijstje van opties middels een call naar de Rank service. Deze service maakt gebruik van een vooraf gedefinieerd context-model en een learning policy.

Het context-model is een JSON file waarin meerdere objecten beschreven worden aan de hand van eigenschappen. Hierbij kun je denken aan een eend. Een eend heeft als eigenschappen dat hij kwaakt, man of vrouw is, veren heeft enzovoort. De wijze waarop deze context wordt geïnterpreteerd door de bot wordt bepaald door een learning policy. Dit is een configuratiebestand waarin verschillende opties zijn vastgelegd over hoe de chatbot met de verzamelde data moet omgaan. Op basis van de configuratie creëert de API een zelflerend algoritme voor de interpretatie.

Om terug te koppelen aan de API of het algoritme ook functioneert in de geïnterpreteerde context, wordt de Reward functie gebruikt. Hiermee wordt een score tussen de -1 en 1 teruggestuurd. Op basis van deze score wordt het algoritme getraind en weet deze hoe te reageren indien de situatie zich nogmaals voordoet. Hierbij geldt dat bij een score hoger dan 0 de API een actie aanbeveelt die hij als “beste” beschouwt uit een lijstje van mogelijkheden. Bij lagere scores kijkt de API eerder naar alternatieve mogelijkheden om uit te voeren. De service “straft” het datamodel tevens op deze manier door eventueel een andere optie aan te bevelen dan wordt verwacht.

De effectiviteit van de bot verbeteren

Hoewel dit zeer slim is van deze service, zorgt het ook voor het probleem dat u als gebruiker van de service de effectiviteit wil verbeteren van hoe uw chatbot steeds hiermee kan omgaan. Via de Azure portal biedt Microsoft twee soorten evaluaties aan, namelijk offline en feature evaluations, waarmee resultaten van de learning policy kunnen worden beoordeeld. Een offline evaluation kan worden ingesteld om te bepalen hoe efficiënt uw gedefinieerde learning policy is geweest over een bepaalde periode. Hierbij valt te denken aan hoe vaak  bezoekers van uw bedrijfswebsite hebben gepraat/gezocht op bepaalde gerelateerde content van uw belangrijkste producten. Daarnaast kunt u met een feature evaluation nog specifieker de details van de reacties van de API beoordelen.

Een overweging: marketing

Hoewel de Personalizer prima gebruikt kan worden om gebruikerservaring te verrijken, kan deze ook worden ingezet voor marketingdoeleinden. Door de API te combineren met de ‘suggested actions feature’ van het bot framework, kan worden bepaald dat je bot specifieke bedrijfscontent aanbeveelt als actie. Bijvoorbeeld een verwijzing naar een blog of de belangrijkste producten van het bedrijf, omdat hij op basis van zijn gedrag hier met grote waarschijnlijkheid in geïnteresseerd is.

Microsoft Bot FrameworkConclusie

De combinatie van Microsoft’s Bot Framework en machine learning kan organisaties interessante mogelijkheden bieden. Met het personaliseren van uw website en een chatbot kunt u effectiever uw doel bereiken door klanten de juiste content aan te bieden.

Wij helpen u graag om samen met u het voortouw te nemen om deze technieken ook in uw organisatie in te zetten. Mocht u naar aanleiding van deze blog benieuwd zijn naar de mogelijkheden van een chatbot voor uw organisatie? Neemt u dan vrijblijvend contact op met ons. Of neem in geval van vragen over mijn blog met mij contact op via gideonk@delta-n.nl.

Gideon Kuijpers – Software Developer