Case 1: Familieactiviteiten labelen met een Vliegje

We willen vrijetijdsactiviteiten die geschikt zijn voor families gemakkelijk vindbaar maken door ze te labelen met het Vliegje. De ingevoerde leeftijdsinformatie in de UiTdatabank is niet altijd even accuraat. We zouden dat allemaal handmatig kunnen nakijken, maar het zou handiger zijn als we het konden automatiseren, met data science. Daarvoor ontwikkelden we een algoritme: een reeks stappen die een computer zet om tot een gewenste uitkomst te komen.

In dit geval laten we het programma elke omschrijving van een activiteit screenen op het voorkomen van een reeks vooraf bepaalde trefwoorden. Als de beschrijving bijvoorbeeld het woord ‘poppenkast’ bevat, lijkt het ons aannemelijk dat de activiteit geschikt is voor kinderen. We deden een eerste test op 2500 activiteiten, die we bij het voorkomen van één van de woorden uit onze lijst labelden met een Vliegje. Helaas bleek maar liefst 30% van de activiteiten verkeerd gelabeld. Niet goed genoeg dus. Dat kwam door twee problemen:

  • Het voorkomen van één van onze trefwoorden kan toevallig zijn. Zo bevat een cursus voor ouders om om te gaan met ruziënde kinderen wel het woord ‘kinderen’, maar is de activiteit zeker niet voor hen bedoeld.
  • Sommige woorden hebben meerdere betekenissen. Zo kan het het woord ‘grime’ wijzen op een activiteit waar kinderen zich kunnen laten maquilleren, maar is het ook de benaming voor de donkere muziekstijl van artiesten als Dizzee Rascal en Stormzy. Zeker niet geschikt voor kinderen.

Dus moesten we ons algoritme finetunen met regels die activiteiten quasi zeker op de stapel ‘wél voor kinderen’ of ‘niet voor kinderen’ leggen. Wat in de UiTdatabank ingevoerd is als 'lezing of congres' of 'beurs' is het waarschijnlijk niet, net als activiteiten met thema’s als ‘opvoeding’ of ‘cinefiel’. Ook wanneer trefwoorden voorkomen als ‘gezinsondersteuner’ of ‘geweld’ kan de activiteit op de ‘niet’-stapel. Ten slotte bepaalden we dat er minstens drie trefwoorden uit onze lijst moesten voorkomen om het Vlieg-label automatisch te krijgen. Dat is eerder streng, maar liever een minder volledige lijst dan dat ouders met verkeerde verwachtingen naar een evenement gaan. Met deze aanpak kunnen we 95% correct classificeren, waarbij de laatste 5% voornamelijk uit ‘edge cases’ bestaat: je kan erover discussiëren.

Royal Museum for Central Africa

TIP

Voor alle duidelijkheid: het belangrijkste blijft dat organisatoren de juiste leeftijd aanduiden bij het evenement in de UiTdatabank. Deze techniek werkt aanvullend, om zoveel mogelijk aanbod voor families correct te labelen.

Case 2: Aanbevelingen op maat

Meer dan 215.000 activiteiten per jaar, daar kan je al eens in verloren lopen. Om ons publiek zo veel mogelijk op maat te kunnen adviseren, bouwen we bij publiq recommenders: algoritmes die ervoor zorgen dat de computer je een selectie van activiteiten kan presenteren die bij jou passen. Hiervoor gebruiken we twee technieken:

1. Content filtering: welke teksten lijken op elkaar?

In de ‘Ook voor kinderen’-case gingen we op zoek naar trefwoorden. Maar computers kunnen tekst fijnmaziger analyseren door het om te zetten naar vectoren. Hoe dat precies werkt, zou ons te ver leiden, maar het komt erop neer dat we kunnen bepalen hoe sterk teksten op elkaar gelijken. De beschrijving van een jazzconcert zal sterker lijken dan die van een ander jazzconcert dan op die van een folkconcert. Maar het verschil met de beschrijving van een rommelmarkt zal nog groter zijn. Op die manier kunnen we ‘gelijkaardig aanbod’ in kaart brengen. Wanneer we weten dat een persoon interesse heeft in dat jazzconcert (omdat hij erop geklikt heeft op de website of omdat hij er een UiTPASpunt heeft gespaard), kunnen we hem dus andere, gelijkaardige activiteiten aanbevelen, op basis van automatische tekstanalyses.

Het nadeel hiervan is dat daardoor alleen maar meer van hetzelfde voorgeschoteld krijgt, terwijl we weten dat veel mensen ‘culturele omnivoren’ zijn en van verschillende activiteiten en stijlen houden. Ze willen ook nieuwe dingen leren kennen, ontdekken en verrast worden. Bovendien zijn smaakvoorkeuren heel complex en niet te herleiden tot de voorkeur voor een genre. Daarom passen we nog een andere techniek toe: collaborative filtering.

©DIVA / Sven Coubergs

2. Collaborative filtering: wat vinden vergelijkbare gebruikers leuk?

Met deze tweede techniek vertrekken we niet van de activiteit zelf, maar van de gebruiker. Een sterk vereenvoudigd voorbeeld: wanneer Karina houdt van activiteiten A, B, C en D en Myriam houdt van A, B, C en E, dan is D wellicht een goede tip voor Myriam en E voor Karina. Via machine learning kunnen we de computer dergelijke patronen laten zoeken in enorme hoeveelheden data. Patronen die veel ingewikkelder zijn dan ‘ze houden allebei van jazz’ en die we zelf niet meer kunnen begrijpen.

Door beide technieken met elkaar te combineren, willen we komen tot aanbevelingen die soms heel vertrouwd aanvoelen en soms wat verrassender zijn, maar steeds aansluiten bij de smaak van de gebruiker. Het resultaat daarvan vind je vanaf april 2021 op de vernieuwde UiTinVlaanderen.

© Jean-Pierre Maurin