Opdracht: Data labelen

Doel van de opdracht:

Bij deze opdracht leer je hoe je kennis van experts in een AI systeem kan stoppen. Zo maak je dus uiteindelijk een soort van virtuele expert die je vakgebied en domein kan "begrijpen". Het begrijpt dus de terminologie, concepten en entiteiten en de verbanden hiertussen.

Het resultaat is een systeem/model dat gebruikt kan worden bij ondersteuning van experts, bij het automatisch geven van antwoorden of oplossingen op vragen, of bij het zoeken en verkennen van patronen in grote verzamelingen data.

Experts trainen het systeem op basis van voorbeelden die zij het systeem geven (in dit geval het annoteren/markeren van voorbeeld documenten).

Op basis van voorbeelden van experts train je het model vervolgens op de overige/volledige dataset. 

Hierna kan het systeem nieuwe informatie analyseren, classificeren en duiden.

Voorbeelden van toepassingen met deze technologie zijn: een systeem dat arbeidsvoorwaarden of cao's kan analyseren (op bijvoorbeeld onwettige passages of voorwaarden), een automatische analyse van profielen/cv's kan uitvoeren of beoordelingsgesprekken kan analyseren of repeterend werk kan afhandelen.

Je gaat aan de slag met cognitieve technologie van IBM, namelijk Watson Knowledge Studio (onderdeel van IBM Watson)

  


Wat ga je doen

Je gaat een model trainen dat HR specifieke termen, concepten en relaties kan herkennen in data. Dat doe je door het systeem data te voeden, aan te geven wat je het wilt laten herkennen en vervolgens het systeem voorbeelden te geven (annoteren/labelen).

Op basis van deze voorbeelden (die verschillende experts als taak kunnen aanleveren) genereer je een model dat het HR domain steeds beter gaat begrijpen. Dit model kun je vervolgens in allerlei slimme toepassingen gaan inzetten.


Uitleg en Instructies

Als eerste gaan we onze data (CV's, arbeidsvoorwaarden en cao teksten) inladen, en een aantal concepten en relaties invoeren die we het model willen laten herkennen.

 

  1.  Ga naar de volgende website: https://goo.gl/cZfwKe
  2.  Backup link:  https://goo.gl/DZeFvh
  3. Login met opdrachten@ai-training.nl en wachtwoord: xxxxxxxx


    Het kan zijn dat je na het inloggen een leeg scherm krijgt, wacht even, of klik opnieuw op bovenstaande link

  4. Maak een nieuwe eigen Workspace aan via "Create Workspace" /  "Create entities en relations workspace" en geef het een voor jouw herkenbare naam en kies "Dutch" bij Language of documents (in deze workspace ga je straks verder werken met documenten)

Stap 1: Entiteiten en Relaties toevoegen

Als eerste gaan we de entiteiten (concepten/termen) en relaties toevoegen.

Entiteiten zijn de dingen die je het systeem wilt laten herkennen. Bijvoorbeeld functie, opleiding en relaties daartussen.

  1. Klik onder Assets > Entity Types op "Upload"

  2. Upload het volgende bestand uit het bestand met voorbeelddata: entity_types.json

  3. Als het goed is zie je nu bij Entity Types en Relation Types een aantal voorbeelden van zaken die het systeem moet gaan herkennen

Stap 2: Documenten toevoegen

Voeg nu de voorbeeld documenten toe. Die ga je gebruiken om het systeem te trainen.

  1. Klik onder Assets > Documents op "Upload Document Sets"
  2. Upload het volgende bestand uit het bestand met voorbeelddata: documents.zip
  3. Je ziet nu 2 sets met documenten. CV's en CAO documenten.
  4. Bekijk een aantal documenten door op de set te klikken en op de naam van een bestand te klikken.

Een taak aanmaken en het systeem trainen


Nu we voorbeelddata hebben geladen en het systeem hebben verteld wat het willen laten herkennen, kunnen we taken aanmaken om als expert het systeem gaan trainen. 

  1. We gaan eerst een (deel van de) dataset selecteren die we willen gaan annoteren.

  2. Klik onder Machine Learning Model > Annotations > Tabje 'Add Tasks' op "Create Annotation Sets"

  3. Kies als Base set de cv documenten, als Annotator 'Test Tester' en vul als Set name bijvoorbeeld in: 'cv-annotation-set' en druk op 'Generate'

 

 

  1. Maak nu een taak aan onder het menu item 'Machine Learning Model' 'Annotation Tasks' via 'Add Task'

  2. Geef de taak een naam, bijvoorbeeld 'CV Annotatie Taak 1' en kies een deadline in de toekomst. Kies de  annotatie set die we zojuist aangemaakt hebben. Dit is de dataset die experts kunnen gaan annoteren ter training van het systeem. Klik als laatste op 'Create Task' om de taak op te slaan.

Je hebt nu een dataset en een taak aangemaakt waarmee je het systeem van voorbeelden kan gaan voorzien.

Annoteren (het systeem voorbeelden geven)

Je kunt nu gaan annoteren door de taak selecteren en op 'Annotate' te klikken en vervolgens uit lijst met cv documenten een document aan te klikken.


Als expert kun je in de document editor nieuwe zaken annoteren (labellen) en relaties aangeven tussen entiteiten. 
Zie onderstaande voorbeeld screenshots en uitleg

 

  1. Markeer per document een aantal entiteiten die je ziet.
    Bijvoorbeeld namen van opleidingen of diploma of niveau (bijv. MBO) door het woord of woorden aan te klikken en uit de lijst aan de rechterkant het de juiste entiteit te kiezen.

  2. Markeer per document een aantal relaties (onder het menu item 'Relations'). Dit doe je door 2 entiteiten te selecteren die je eerder gemarkeerd hebt, en vervolgens het juiste 'Relation Type' te kiezen.
    Bijvoorbeeld: tussen een genoemde opleiding en een diploma/studie leg je de relatie diploma_van

  3. Doe dit voor ieder document. Voor de oefening is het niet nodig om het hele document te annoteren. Markeer een 10-tal items die je makkelijk kunt vinden (meer is wel beter voor het model, dus in een echte situatie zul je meer voorbeelden geven).

  4. Wanneer je klaar bent met een document zet je rechts bovenin de status van 'Ready' naar 'Completed' en druk je op 'Save'.
    Vervolgens druk je links boven op het icoontje 'Open document list' om een nieuw document te selecteren.
    Als je op een document klikt, dan kan het even duren voordat het document geladen is.

  5. Op het moment dat je de 10 cv's gemarkeerd hebt en op status 'Completed' hebt gezet, dan heb je voor nu voldoende voorbeelden aan het systeem gegeven en kun je verder met het onderdeel 'Genereren van het model'


PS: Vergeet niet per document de wijzigingen op te slaan en de status op 'Completed' te zetten.

Voorbeeldscherm Entiteiten aanwijzen

Voorbeeldscherm Relaties leggen

Genereren van het model

Wanneer je een redelijk aantal documenten hebt geannoteerd kun we het model gaan trainen en bekijken.

Let op: Dit gaan we straks klassikaal doen.

Figuur: Uitkomsten kwaliteit getraind model


Extra oefening "Machine Teaching"

Om idee te krijgen bij andere manieren om machines te trainen, kun je hier een kijkje nemen  https://prodi.gy/demo

Je vind in het menu meer opties, dus niet alleen voor het labelen van tekst, maar ook bijvoorbeeld beelden, of het beoordelen van voorspellingen en classificaties door een model (deze feedback wordt dan weer gebruikt on het model beter te maken)

 


Ok leuk... en wat nu?

Je hebt nu aan een model gewerkt dat termen en relaties uit de HR wereld kan herkennen. In de basis is het al in staat om nieuwe informatie en documenten te analyseren en classificeren.

En je hebt nu kennis gemaakt met een hele simpele introductie van hoe domeinkennis en expertise van mensen in een systeem/model te vatten is.

In een echte situatie zal je meer data moeten gebruiken en meer experts moeten laten trainen om het model beter te laten werken

 

Deze introductie geeft je wel de mogelijkheid om na te denken over toepassingen.
Wat andere bedrijven zoal doen geeft wellicht ook nog extra ideeën.

 

 Wat doen andere bedrijven met deze technologie?

  • Beoordelen van contracten, inkoopvoorwaarden, NDA's
    • Je kunt bijvoorbeeld hele passages markeren als 'verdacht' of als afwijkende/maatwerk clausule en op basis hiervan een score aan een document koppelen die berekent wat het risico is van een document. Zodat een expert verder kan kijken naar afwijkende data, en documenten met een lage risico score kunnen bijv. automatisch goedgekeurd worden in een proces.
  • Analyse en verrijking van polisvoorwaarden
    • Het normaliseren van termen en concepten en het annoteren van antwoorden/feiten kan verrijking van het document opleveren in de vorm van meta-data. Dit kan je bijvoorbeeld weer koppelen aan een chatbot of zoeksysteem om de juiste antwoorden of informatie terug te kunnen geven. Of je kunt dit in een voorspellend model gebruiken om iets te gaan voorspellen.
  • Analyse van reviews en beoordelingen
    • Hierbij analyseert het model reviews. Je ziet dit bijvoorbeeld bij booking.com terugkomen in de vorm van "Klanten waarderen vooral de centrale ligging", of "het ontbijt".
      In reviews schrijft men dan bijvoorbeeld "Het is maar 1 minuut lopen naar het centrum", of "Goede koffie en croissants". Het model kan dan verschillende soorten beschrijvingen in reviews over de ligging of het ontbijt naar bovenliggende concepten classificeren.
  • Fact-extraction & Summarisation
    • Het model kan helpen bij het herkennen en de extractie van feiten, en het samenvatten van teksten. Feitjes en samenvattingen (van bijv. paragrafen of passages) kun je bijvoorbeeld weer gebruiken als antwoorden op vragen in een chatbot. Dat maakt een chatbot minder 'gescript' en dynamischer.

Input voor de opdracht

Hoe zou je deze technologie, mogelijkheden en ideeën in kunnen zetten in jouw dagelijkse werkzaamheden of voor jouw klanten? Welke data is er beschikbaar en wat zou je uit die data willen halen?