Afstudeeronderzoek: het bepalen van de economische activiteit van domeinennamen met machine learning

Hiërarchische tekstclassificatie in de praktijk

Concept van data-opslag met 3d-weergave van mappen op printplaat

Als je de website van een autodealer bezoekt, kun je vaak in een oogopslag beoordelen of de website daadwerkelijk van een autodealer is. Dit handmatig doen voor alle zes miljoen .nl-domeinnamen is een saaie, tijdrovende en eigenlijk ondoenlijke klus. We ontwikkelden daarom een systeem dat automatisch de economische activiteit van een domeinnaam bepaalt op basis van de tekst op de website. Hierdoor krijgen we meer inzicht in de samenstelling van de .nl-zone. Deze inzichten helpen ons bijvoorbeeld om de adoptie van internetstandaarden in verschillende sectoren te monitoren. In deze blog leggen we uit hoe het systeem werkt en hoe je het zelf kunt uitproberen.

Definitie van economische activiteit

We keken in dit onderzoek of we het concept van hiërarchisch classificeren konden toepassen op het probleem van economische-activiteitclassificatie. Hiërarchische classificatie sluit namelijk goed aan bij de manier waarop economische activiteiten meestal worden gedefinieerd. De Nederlandse overheid gebruikt bijvoorbeeld de Standaard Bedrijfsindeling (SBI). Dit is een hiërarchische taxonomie, afgeleid van de Europese NACE. Dit betekent dat er algemene activiteiten (zoals G: Groot- en Detailhandel) en meer specifieke activiteiten bestaan (zoals G.45: handel en reparatie van auto’s). Algemene activiteiten worden secties genoemd en de meer specifieke activiteiten zijn divisies. De SBI bestaat uit maar liefst 21 bovenliggende secties en 86 onderliggende divisies.

Wat is machine learning?

Machine learning is het data-gedreven leren van een functie op basis van een vooraf gedefinieerde input en output. Het kan worden ingezet om de juiste economische divisie toe te wijzen aan een zakelijke domeinnaam. Door machine learning te gebruiken kunnen we het proces van economische-activiteitclassificatie automatiseren. Bij dit probleem is de input de tekst die gevonden wordt op de webpagina en is de output de bijbehorende economische activiteit. Meer over machine learning kun je onder andere vinden op Wikipedia.

Ontwikkeling van hiërarchisch classificatiesysteem

Het toewijzen of classificeren van de divisie kun je op twee manieren doen: je kunt de secties negeren of informatie over de bovenliggende sectie gebruiken om de classificatie van de divisie accurater te maken. Zo kun je bij het voorbeeld van een autodealer eerst een sectieclassificatie maken en dan bij de divisieclassificatie alleen kijken naar de divisies uit de gekozen sectie. Deze techniek staat bekend als hiërarchisch classificeren en is in de literatuur vaak toegepast op zogenaamde benchmarkdatasets. Dit zijn datasets die vaak gebruikt worden om nieuwe aanpakken met elkaar te vergelijken. In de theorie werkt hiërarchisch classificeren dus, maar werkt het ook in de praktijk? In dit onderzoek hebben we gekeken of we hiërarchisch classificeren ook kunnen toepassen op het probleem van economische activiteit classificatie. Een uitgebreide beschrijving van hoe hiërarchisch classificeren precies werkt en welke toepassingen hiervoor al bestaan kun je vinden in dit onderzoeksrapport.

Kunnen we webpagina-divisieclassificatie verbeteren door de hiërarchische context mee te nemen? Dit was de belangrijkste vraag van het onderzoek. De hiërarchische context is in het geval van de autodealer de sectie, G, en de divisie is 45. Om deze onderzoeksvraag te beantwoorden hebben we de prestaties van een niet-hiërarchisch divisieclassificatiesysteem en een hiërarchisch divisieclassificatiesysteem met elkaar vergeleken.

Figuur 1: Illustratie van verschil in classificatie aanpak voor divisies. Links is de niet-hiërarchische aanpak gevisualiseerd, rechts is de hiërarchische aanpak gevisualiseerd. De bovenste cirkel is de SBI. De middelste cirkels zijn de secties van de SBI. De onderste cirkels zijn de divisies.

Als de hiërarchische aanpak gebruikt wordt, worden er meerdere systemen getraind om als eerste de sectie te bepalen en daarna te bepalen welke divisie in die sectie de uiteindelijke classificatie wordt. Deze aanpak is in figuur 1 in het klein geïllustreerd: er zijn namelijk 21 secties (in plaats van 2) en 86 divisies (in plaats van 3).

In deze figuren is de SBI aangegeven met de bovenste groene cirkel. Daaronder bevinden zich de blauwgekleurde secties. De onderste oranje laag zijn de divisies. De secties of divisies waar een systeem onderscheid tussen moet maken is aangegeven met een zwarte rechthoek. In de linker figuur is maar 1 systeem aanwezig dat onderscheid moet maken tussen alle divisies. In de rechter figuur zijn er meerdere systemen, waarvan het systeem dat aangegeven is met een stippellijn besluit welk systeem uiteindelijk gebruikt gaat worden voor de classificatie. De grijze lijnen geven relaties tussen niveaus aan: zo bevinden alle secties zich in de SBI en alle divisies bevinden zich in maximaal één sectie.

De reden dat het werkt is dat het relatief grotere en moeilijkere probleem van divisieclassificatie wordt opgedeeld in meerdere kleinere problemen en voor ieder kleiner probleem wordt een gespecialiseerd systeem gebruikt. Een nadeel is dat er ook meerdere systemen getraind moeten worden.

Economische activiteiten in de .nl-zone

Uit de resultaten bleek dat de hiërarchische variant in 64% van de gevallen de juiste divisie voorspelt, tegenover 63%, als de niet-hiërarchische variant gebruikt wordt. Deze 63% en 64% zeggen misschien niet heel veel. Om deze getallen in perspectief te zetten, kun je in je achterhoofd houden dat het kansniveau, de kans dat de juiste divisie voorspeld wordt als we een dobbelsteen zouden gooien, slechts 2% is! Hoewel het prestatieverschil tussen de hiërarchische en de niet-hiërarchische systemen klein is, zijn er nog verschillende verbeteringen mogelijk. Er bestaan verschillende niet toegepaste technieken om de fouten van het sectieclassificatiesysteem te corrigeren.

Het resulterende hiërarchisch classificatiesysteem hebben we toegepast op alle business en e-commerce-gerelateerde domeinen in de .nl-zone. Door de voorspellingen van hiërarchische systeem te vergelijken met de cijfers van het CBS kan gekeken worden hoe een economische activiteit gerepresenteerd wordt in de .nl-zone. Figuren 2 en 3 geven op sectie- en divisieniveau aan die sectie of divisie vertegenwoordigd is in de .nl-zone. In deze figuren is het procentuele .nl-zone-aandeel in aantal domeinen blauw, het procentuele marktaandeel in aantal bedrijven oranje en het verschil (.nl-zone-aandeel – marktaandeel) groen.

Figuur 2: Vergelijking tussen het procentuele .nl-zone-aandeel in aantal domeinen (in blauw) en het procentuele marktaandeel in aantal bedrijven (oranje) per sectie. Het verschil tussen deze aandelen is aangegeven met groen.

Uit deze figuren is af te lezen dat bijvoorbeeld sectie M (consultancy) veel sterker aanwezig is in Nederland dan in de .nl-zone. Zo kan dit bijvoorbeeld gecombineerd worden met beveiligingsgegevens van websites om te kijken in welke economische activiteit de bedrijven met minder goed beveiligde domeinen deelnemen. Daarna kunnen we hier een awareness-campagne voor opzetten of kunnen we de eigenaren van deze domeinen hierover persoonlijk informeren en adviseren.

Figuur 3: Vergelijking tussen het procentuele .nl-zone aandeel in aantal domeinen (in blauw) en het procentuele marktaandeel in aantal bedrijven (oranje) per divisie. Het verschil tussen deze aandelen is aangegeven met groen.

Hiërarchisch classificeren: het werkt!

In dit project zochten we naar het antwoord op de vraag of het concept van hiërarchische classificatie in praktijk toegepast kan worden op het probleem van het classificeren van economische activiteit.

Het hiërarchische classificatiesysteem behaalde iets betere prestaties dan de niet-hiërarchische variant. Dit verschil was met maar 1% echter minimaal. Deze resultaten leerden ons dat hiërarchische classificatie ook buiten benchmarkdatasets werkt in het geval van economische-activiteitclassificatie. Dit, omdat het minstens zo goed werkt als wanneer standaard niet-hiërarchische classificatie gebruikt wordt. Vervolgonderzoek moet wel nog uitwijzen of dit verschil groter gemaakt kan worden.

Het classificatiesysteem hebben we toegevoegd aan onze DMAP crawler. Hierdoor krijgen we een classificatie van de economische activiteit van alle zakelijke domeinnamen in de .nl-zone. We voegen deze resultaten binnenkort toe aan stats.sidnlabs.nl, zodat je statistieken kunt uitsplitsen tussen verschillende economische sectoren.

Verder is het classificatiesysteem ook online beschikbaar via een webapplicatie. Naarmate deze vaker gebruikt wordt, krijgen wij meer inzicht in de daadwerkelijke prestaties van het classificatiesysteem. Met deze inzichten kunnen we vaststellen of het systeem in het echt ook zo goed presteert als we nu denken.

Systeem zelf uitproberen en evalueren

Verder is het classificatiesysteem ook online beschikbaar gemaakt via een webapplicatie. Naarmate deze vaker gebruikt wordt, krijgen wij meer inzicht in de daadwerkelijke prestaties van het classificatiesysteem. Met deze inzichten kunnen we vaststellen of het systeem in het echt ook zo goed presteert als we nu denken. Hiervoor ga je naar webcola.sidnlabs.nl en geef je de domeinnaam waarvan de je de economische activiteit wil weten op. Je kunt vervolgens aangeven of de economische activiteit die het systeem aangeeft correct is. Deze feedback helpt ons om het systeem in de praktijk te evalueren. Ook verzamelen we meer annotaties waarmee we het systeem in de toekomst kunnen verbeteren.

Geïnteresseerd?

Ben je geïnteresseerd in hoe dit onderzoek precies in elkaar steekt, dan raad ik je aan mijn master thesis te lezen. Stuur hiervoor een mailtje naar robin.deheer@gmail.com.