Zo werkt Deep Learning in de praktijk
Zo werkt Deep Learning in de praktijk
"Het begrijpen van taal is de sleutel naar het ontsluiten van informatie", zegt Jakub Zavrel, oprichter en directeur van Textkernel. Dit Nederlandse bedrijf ontwerpt de lerende software die wordt gebruikt in zogeheten Application Tracking Systems. Wervingsbureaus gebruiken deze software om CV's te filteren. Aan de hand hiervan legt hij uit hoe Deep Learning precies in zijn werk gaat.
Parameters ontwerpen
Als je een programma vroeger iets wilde laten zoeken, dan voerde je als programmeur parameters in. Dan hield software zich enkel aan de geprogrammeerde opties. Inmiddels zijn we zover dat programmatuur een hoop inputs bij elkaar veegt, patroonherkenning toepast en een interpretatie kan maken van wat er wordt bedoeld.
Het programma wordt daardoor beter in staat om niet alleen fragmenten van bijvoorbeeld tekst in kaart te brengen, maar ze ook in de juiste context te plaatsen. "Wat betekent die plaatsnaam die wordt genoemd? Is dat de woonplaats van de kandidaat, de locatie van de vorige werkgever of iets anders?" noemt Zavrel als voorbeeld. Met technieken uit Machine Learning achterhaalt de software de betekenis.
Peren en bananen vergelijken
Machine Learning is bepaald geen nieuwe technologie. Toen Zavrel twintig jaar geleden begon met Kunstmatige Intelligentie en Machine Learning, verlieten toepassingen meestal de wetenschappelijke omgeving niet. "Toen was het voornamelijk research en nu zie je het mainstream gaan." Maar hoe 'leert' een machine eigenlijk? Het draait allemaal om het structureren van gegevens in een representatieve weergave.
Als simpel voorbeeld noemt de Textkernel-directeur het verschil tussen een peer en een banaan. Software kan die op eigenschappen scheiden om patronen te ontdekken en geeft hier een weergave van door eigenschappen te clusteren. "Je ziet bijvoorbeeld dat wanneer 'lengte' en 'gewicht' worden gepakt, dat die clusters door elkaar lopen." Er zijn dan te veel overeenkomsten: een peer met hetzelfde gewicht als een banaan neemt ongeveer dezelfde positie in de weergave in als die banaan. Daar schiet een computer dus niets mee op als hij onderscheid wil aanbrengen.
Een voorbeeld van zo'n cluster aan informatie uit de toegepaste CV-parsing: Hetzelfde woord kan in twee clusters voorkomen, maar kunnen in de context iets heel anders betekenen. Door de plaats in het cluster leert de machine bepalen welke betekenis een woord heeft.
Op de volgende pagina: Hoe Google's kunstmatige intelligentie katten leerde herkennen."Het wordt met het onderscheid tussen banaan en peer anders als 'kleur' en 'vorm' als eigenschappen worden gebruikt", vertelt Zavrel. Dat vormt twee heel verschillende clusters, waardoor een duidelijker onderscheid zich begint af te tekenen. Dit zie je dan bijvoorbeeld in een grafische weergave zoals op de vorige pagina. Dat is de basis van Machine Learning. "Het gaat om de vraag hoe je eigenschappen definieert. Waar trekt de software die grenzen?"
Machines als mensen
Daarbij wordt er aan de machine nog verteld wat die grens-eigenschappen ongeveer zijn. De doorontwikkeling van dat concept wordt Deep Learning genoemd. "Het wordt voor een ontwikkelaar te complex om al die grenzen te definiëren. Bij Deep Learning bepaalt de software die grenzen zelf." Software lijkt in sommige opzichten op wat er bij de ontwikkeling van onze hersenen gebeurt: de visuele cortex registreert informatie en deze informatie wordt georganiseerd.
Als dat concept je bekend voorkomt, kan dat kloppen. Deze tak van Machine Learning noemden we voorheen neurale netwerken: het idee dat een computersysteem werkt als een zenuwstelsel. "Basisprincipes van de informatietechnologie zijn geïnspireerd op de mens, een voorbeeld van een lerend systeem. Mensen doen voorspellingen op basis van context en Deep Learning doet hetzelfde."
Katten herkennen
Dat betekent overigens wel dat er behoorlijk wat rekenkracht nodig is. Niet geheel verwonderlijk komt dan een van de grootste doorbraken van Google, dat enorme serverparken beschikbaar heeft. Bij Google's researchafdeling Google X leerde een systeem uit zichzelf katten herkennen uit een lading YouTube-video's. Dus niet uit gedefinieerde eigenschappen, maar door hem een aantal voorbeelden te laten zien van een kattenvideo, waarna het systeem zelf onderscheidende factoren leert herkennen.
Dat klinkt misschien niet zo spectaculair, omdat je net zo goed een machine kunt vertellen: 'als aan eigenschap X, Y en Z wordt voldaan, is het voorwerp een kat'. Dat is een vorm van Machine Learning die meer lijkt op klassiek programmeren, waarbij informatie van tevoren wordt gelabeld - ook wel Supervised Learning genoemd.
Maar het resultaat van Google is vergelijkbaar met het omhooghouden van een kaartje met een afbeelding van een kat voor een peuter, herhalen: 'dit is een kat, een kat zegt "miauw"', waarna de peuter bij een heel ander plaatje van een kat ziet dat het ook hier om een kat gaat. Daarbij wordt geen (bewust) gedefinieerde formule gehanteerd als '4 poten + snorharen + miauw = kat'.
Andrew Ng, een van de ontwerpers van het Google X-project over Supervised Learning.
Op de volgende pagina: De lessen van Deep Learning toegepast op praktijksoftware.
Een kind leert zulke patronen zelf herkennen en Deep Learning zit nu in deze fase - zoals het kattenproject van Google laat zien. "We staan nog aan het begin van deze ontwikkeling. Ik hoor niet bij de massa doemdenkers die zeggen dat machines mensen voorbij beginnen te streven. Maar de versnelling in de ontwikkeling die we de afgelopen jaren hebben meegemaakt, is indrukwekkend."
Context op CV
De lessen van Deep Learning leiden tot inzichten die bijvoorbeeld worden gebruikt om CV's te filteren. Software die op striktere parameters scheidt, loopt tegen problemen aan als bijvoorbeeld CV's niet exact dezelfde opmaak hebben. Het programma moet uit een berg ongestructureerde data kunnen destilleren wat de juiste context is. De ingevoerde vorm moet geen factor zijn; de software bepaalt zelf welke fragmenten welke betekenis hebben.
De software leert bijvoorbeeld alternatieve functietitels en schrijfwijzen herkennen. Zo moet het niet uitmaken of een alternatieve spellingswijze wordt gehanteerd: de programmatuur plaatst het zelf in de juiste context, zonder dat de varianten afzonderlijk worden geprogrammeerd. Op deze manier 'leest' het programma daadwerkelijk de aangeleverde documenten, hoewel het natuurlijk een interpretatie is die (nog) niet zo foutloos zal zijn als wanneer een menselijke lezer ze bekijkt.
Headhunting voor de massa
Het is niet zo dat de software CV's wegfiltert, maar de software zorgt ervoor dat bepaalde CV's boven op de stapel komen te liggen, legt Zavrel uit. Het parsen van deze informatie is nog maar één stap. Deze toepassing van Deep Learning kan uiteindelijk veel meer voor ons betekenen dan simpelweg CV's selecteren en op een aanvullende gebieden is Textkernel dan ook al bezig met praktijktoepassingen.
"Software leert bijvoorbeeld op basis van sociale profielen ook de context bepalen en kan suggesties doen welke kandidaten binnen een functieprofiel passen", aldus de directeur. "De software gaat actief op zoek: zie het als 'headhunting voor de massa'."