Natural Language Understanding (NLU) is het vakgebied dat zich bezig houdt met het interpreteren van de betekenis van menselijke taal door computers.
Waar Natural Language Processing (NLP) zich met name richt op het puur verwerken van natuurlijke tekst zoals het ontleden van zinnen en het detecteren van namen en voorwerpen, richt Natural Language Understanding (NLU) zich op het achterhalen van de daadwerkelijke betekenis of doel van tekst.
Complexiteit van onze taal voor computers
Natural Language Understanding (NLU) is een complex vakgebied waar computers tot nu toe slechts in beperkte mate in staat tot zijn. Een belangrijke reden hiervoor is het beperkte begrip van computers van de werking van onze fysieke wereld (onze realiteit). In tegenstelling tot mensen kunnen computers niet zelf op pad gaan om de wereld te ontdekken en moeten deze leren puur aan de hand van de teksten en video’s die mensen van de wereld hebben gemaakt. Computers kunnen daardoor alleen iets leren als iets digitaal vastgelegd is en dat brengt meerdere complexiteiten met zich mee.
Taal begrijpen vanuit alleen tekst is lastig
Mensen starten met het leren van de wereld direct na de geboorte als baby, nog voor dat we taal leren. Dit doen we door te zien, te proeven, te voelen, te ruiken en te horen. Al kruipend leren we eerst de fundamentele basisprincipes van onze wereld, nog voor we enig woord kunnen begrijpen. Zo leren we bijvoorbeeld dat vallen pijn kan doen. En we leren ook dat de vloer geen pijn heeft van jouw val. We leren dat je als je een bal alleen kan stoppen in een opbergbox als de opbergbox groot genoeg is. We leren ook wat realiteit is in onze wereld; Zo leren we dat mensen bijvoorbeeld een liedje kunnen zingen, maar planten dat niet doen. We leren ook ruimtelijk inzicht; Als papa of mama in een andere kamer zijn, kan je ze niet zien, maar zijn ze er natuurlijk nog steeds!
Hoe elementair deze principes ook zijn, ze zijn enorm belangrijk om uiteindelijk te kunnen redeneren en de taal goed te begrijpen. Taal is een toepassing op de fysieke wereld. Begrijp je de fysieke wereld, dan begrijp je ook sneller de woorden waarmee we de voorwerpen benoemen. Maar hoe leg je een computer dit uit als deze zelf niet de wereld kan ontdekken?
Computers zijn afhankelijk van de digitale teksten en databases die door mensen zijn opgesteld. Waar een computer wel gemakkelijk een abstracte relatie tussen woorden zoals bijvoorbeeld de zee en oceaan kan vaststellen, zal de mens begrijpen, interpreteren, relateren en redeneren -al dan niet uit eigen ervaring of opgedane kennis- dat een zee bestaat uit zout water, dat je in de zee kan zwemmen, dat je zeewater (beter) niet kan drinken, en de zee erg groot is. Ook kunnen we logisch redeneren dat ‘Een zee van ideeën’ niet letterlijk bestaat, maar beeldspraak is voor ‘Heel veel ideeën’ omdat we gezond verstand (common sense) toepassen op deze fysieke wereld.
Het ‘missende tekst’-probleem
De algemene kennis die mensen hebben van de fysieke wereld, maakt dat mensen met elkaar kunnen communiceren op een zodanig efficiënte manier dat we er vanuit gaan dat als we iemand iets vragen, bepaalde kennis reeds aanwezig is bij de ontvanger. Een vraag als “Ik heb mijn glas omgestoten, heeft u toevallig een doekje?” zal bij de ontvanger direct begrepen worden dat de tafel nat is, zonder dat we dit letterlijk beschrijven. We gaan ervan uit dat de ontvanger al logischerwijs snapt dat de tafel nat is.
In de NLU-wereld spreken we ook wel van het “missende tekst”-probleem voor computers. Dat wil zeggen dat als we met elkaar communiceren, we niet alles volledig benoemen of uitschrijven in tekst. Die kennis is bij de ontvanger namelijk reeds aanwezig.
De context van een gesprek, de omgeving, de verwachte kennis en ervaring van de ontvanger maakt dat we minder woorden nodig hebben en gebruiken in veel situaties. Hoe beter mensen elkaar kennen, hoe minder woorden vaak nodig zijn om met elkaar te communiceren. Voor computers is het zeer lastig om alleen uit tekst alle concepten van de fysieke wereld te leren. Immers staan deze concepten meestal niet beschreven. De huidige generatie Large Language Models (LLMs) zijn AI-taalmodellen getraind op bijna alle tekst van het hele internet (en daarmee een eigenlijk onmenselijke hoeveelheid data) om tot hun huidige prestaties te komen. En zelfs daarmee missen ze nog steeds belangrijke basisprincipes.
Intents in chatbots zijn geen NLU
Veel chatbotsystemen in de markt werken op dit moment met zogeheten intents. Een intent is de intentie (doel of wens) van een gebruiker die met een aantal voorbeeldzinnen aan de chatbot wordt opgegeven als trainingsdata. Een chatbot “leert” zo aan de hand van deze voorbeeldzinnen, dat als iemand een vergelijkbare vraag stelt, de vraag wordt gekoppeld aan het antwoord. Dankzij machine learning-technieken en taalmodellen kunnen ook anders gestelde vragen worden gerelateerd aan de eerder opgegeven voorbeeldzinnen. Hierdoor hoeft de maker van de chatbot niet letterlijk alle mogelijke vraagstellingen op te geven.
Toch is het belangrijk om te beseffen dat training van intents niet werkelijk het trainen van taalbegrip is en eigenlijk geen Natural Language Understanding mag heten. Door voorbeeldzinnen aan computer op te geven leert een computer in basis slechts vragen te koppelen aan een vooraf bepaald antwoord. De computer wordt niet aangeleerd te begrijpen of te redeneren wat de vraag betekent of waarom het antwoord gegeven moet worden. De computer leert slechts een vergelijkbare voorgeprogrammeerde vraag op te zoeken. En dit kan zelfs gebeuren zonder enige vorm van begrip van taal en communicatie.
Natural Language Understanding in Botprof
Binnen het Botprof platform is Natural Language Understanding het proces waarbij we uit taal fundamentele kenmerken proberen te extraheren die essentieel zijn in wederkerig begrip tijdens verbale communicatie. Denk hierbij bijvoorbeeld aan wat in een gesprek de communicatierichting is, welke voorwerpen worden besproken, wat acties zijn, wie de voorwerpen heeft (bezit), of iemand iets wel of niet wil (ontkenning) en of iemand überhaupt een vraag stelt of een reactie geeft. Hiermee kunnen onze chatbots o.a. beter het verschil tussen ‘jij’ en ‘ik’ herkennen of wanneer iemand iets ‘wel’ of ‘niet’ wil. Vrij essentieel om miscommunicatie te voorkomen. Door de robot op deze fundamenten te trainen, heeft de robot basiskennis die toepasbaar is op ieder willekeurige zin. Dit helpt ons systemen te ontwikkelen die minder afhankelijk zijn van grote hoeveelheden trainingsdata.