Een veel voorkomende stap bij het bouwen van een bot is het definiëren van "intents".
Een intentie kan zijn "reset mijn wachtwoord", "boek een vlucht" of "neem contact op met support". De botontwikkelaar moet meerdere zinnen in de software invoeren die allemaal dezelfde betekenis hebben als de intentie. Bijvoorbeeld, "Ik wil naar Parijs vliegen" zou zo'n zin zijn voor de intentie "een vlucht boeken".
Over het algemeen vragen botontwikkelingsplatforms gebruikers om veel zinnen in te voeren voor een bepaalde intentie. Deze zinnen zijn trainingsgegevens voor het NLP-algoritme (Natural Language Processing).
Het NLP-algoritme is een machine-learning algoritme dat zichzelf traint op de gegevens om zinnen met dezelfde betekenis maar verschillende woorden (ten opzichte van de trainingsgegevens) te kunnen herkennen.
Het NLP algoritme gebruikt de intentiegegevens die door de botontwikkelaar zijn verstrekt plus een enorm corpus aan gegevens over de taal (waar het al eerder op is getraind) om zijn interne model te kalibreren zodat het nieuwe zinnen kan herkennen.
Hoe meer voorbeelden de chatbot-ontwikkelaar aan het NLP-algoritme geeft, hoe nauwkeuriger het in staat zal zijn om dezelfde betekenis te herkennen in andere zinnen met andere bewoordingen. Dat is tenminste de boodschap die aan botontwikkelaars wordt gegeven.
Het probleem is dat niet alle trainingsgegevens gelijk zijn. De kwaliteit van de gegevens is net zo belangrijk als de kwantiteit.
Stel bijvoorbeeld dat ik een intentie wil maken met de naam "reset mijn wachtwoord".
Een bot-auteur zou de volgende zinnen kunnen maken:
Mijn wachtwoord opnieuw instellen
Ik ben mijn wachtwoord vergeten
Mijn wachtwoord werkt niet
Nieuw wachtwoord alstublieft
Probleem met wachtwoord
Enz.
Het probleem met het bovenstaande is dat alle zinnen hetzelfde woord "wachtwoord" gebruiken. Dit betekent dat wanneer het algoritme zichzelf traint op deze gegevens, het de regel onderscheidt dat als het woord "wachtwoord" in de zin voorkomt, de intentie "reset mijn wachtwoord" is. Dit is natuurlijk fout. Mensen kunnen veel andere zinnen zeggen zonder het woord "wachtwoord" erin die dezelfde betekenis hebben als "reset mijn wachtwoord". Er zijn ook veel zinnen met het woord "wachtwoord" erin die niet "reset mijn wachtwoord" betekenen.
In de wereld van algoritmen heet dit probleem overfitting naar de trainingsgegevens. Het algoritme heeft zich te veel aangepast aan het woord "wachtwoord" en "gelooft" daarom dat elke zin met het woord "wachtwoord" erin "reset mijn wachtwoord" betekent.
Er zijn andere voorbeelden voor hetzelfde doel. De botontwikkelaar zou bijvoorbeeld de volgende zinnen kunnen invoeren:
Mijn referenties werken niet
Mijn login werkt niet
Mijn wachtwoord werkt niet
Mijn gebruikersnaam werkt niet.
Enz.
Dit is natuurlijk een extremer voorbeeld van het probleem, maar het patroon komt vaak voor bij het maken van trainingsgegevens. Dit zorgt er opnieuw voor dat het algoritme te veel past bij de gegevens, maar deze keer bij de zin "werkt niet".
De oplossing ligt nu hopelijk voor de hand. Elke zin in de trainingsgegevens moet zo verschillend mogelijk zijn van de andere zinnen in de gegevensset. Bijvoorbeeld:
Mijn referenties werken niet.
Ik moet mijn wachtwoord opnieuw instellen.
Hoe los ik mijn aanmeldingsprobleem op?
Wie kan me helpen met aanmelden in het systeem?
Enz.
Natuurlijk kost het meer moeite om een dataset zoals hierboven te maken. Het kan zelfs helpen om een thesaurus open te houden om synoniemen te vinden en zo ideeën voor zinnen te stimuleren.
De andere manier waarop botontwikkelaars dit probleem overwinnen, is door toegang te hebben tot chatgegevens van de klantenservice die veel voorbeelden geven van alle manieren waarop een echte klant dezelfde vraag zou stellen. Deze gegevens kunnen zeer waardevol zijn.
Er is een vraag over wanneer NLP algoritmen in staat zullen zijn om goed te presteren op slechts een kleine trainingsdataset. Het zou zeker beter zijn om de bot perfect te laten werken met slechts een kleine dataset. Dit is zeker iets waar onderzoekers aan werken, omdat het niet alleen de tijd en moeite die nodig is om chatbots te maken zou verminderen, maar ook hun kwaliteit enorm zou verbeteren.
Het NLP-algoritme is voor de meeste botontwikkelaars een zwarte doos. Het is echter belangrijk dat ze de basisprincipes van de werking van het algoritme begrijpen, zodat ze weten welke trainingsgegevens (intentiedata) ze aan het algoritme moeten verstrekken om de beste resultaten te krijgen.
Deel dit op:
Bouw gratis je eigen gepersonaliseerde AI-chatbot
Begin met het bouwen van een gepersonaliseerde GPT bot met onze intuïtieve drag & drop interface.
Begin - het is gratis! 🤖Geen creditcard nodig
Blijf op de hoogte van het laatste nieuws over AI chatbots