Welkom bij het achtste artikel in de blogreeks “Kunstmatige intelligentie”. Het zevende deel heeft als titel “Gratis lunch bestaat niet”. In dit deel wordt ingegaan op hoofdstuk 8: Covid-19 en andere model management uitdagingen.
8. COVID-19 EN ANDERE MODEL MANAGEMENT UITDAGINGEN
Slecht werkende modellen kunnen leiden tot slechtere bedrijfsresultaten, maar ook tot reputatieschade en zelfs tot ethisch onjuiste beslissingen. Voor goed werkende modellen is het niet voldoende om alleen gedurende het bouwen van een model hier veel aandacht aan te schenken, maar moet de prestatie van het model continu in de gaten gehouden worden en actie worden ondernomen als dat nodig is. Ervoor zorgen dat een model stabiel goed blijft werken noemen we modelmanagement. Goed modelmanagement bestaat uit drie stappen: monitoren, herkalibreren en innoveren.
De computer bepaalt de prijs
Gisteravond vond je het perfecte goedkope vliegticket naar je favoriete vakantiebestemming. Vanochtend, toen je wilde boeken, bleek de prijs met 30 euro gestegen te zijn! Was één van je vrienden misschien sneller in het boeken van het laatste goedkope ticket? Of heb je bewijs gevonden voor het (nog altijd onbevestigde) gerucht dat vliegmaatschappijen de prijs van vliegtickets aanpassen op basis van de websites die je hebt bezocht?
Wat in ieder geval wel bekend is, is dat vliegmaatschappijen gebruik maken van een computermodel om de prijs van jouw vliegticket te bepalen. Één van de uitgangspunten van dit model is dat alle vluchten zo vol mogelijk komen. De kosten voor een vlucht zijn namelijk grotendeels onafhankelijk van het aantal passagiers, maar zijn wel afhankelijk van factoren als personeelskosten, vliegtuigonderhoud of landingsrechten. Hoe voller het vliegtuig, hoe lager de kosten per passagier en hoe hoger de marge voor een vliegmaatschappij. Onder deze aanname probeert het model natuurlijk wel om een zo hoog mogelijke opbrengst te krijgen uit de vliegtickets.
Dit werkt in de praktijk grofweg als volgt: is het vliegtuig een paar weken voor vertrek nog lang niet vol, dan zal het model de prijs van een ticket voor die vlucht verlagen. Daardoor wordt deze vlucht aantrekkelijker voor mensen om te kopen, en krijgt de vliegtuigmaatschappij de vlucht mogelijk nog vol. Aan de andere kant, als er maanden van tevoren al veel tickets zijn verkocht, dan zal de ticketprijs verhoogd worden. De laatste tickets zullen toch wel verkocht worden aan mensen die koste wat het kost deze vlucht willen hebben, en zo kan de vliegtuigmaatschappij een hogere winst per ticket behalen. Dit hele proces gebeurt geheel automatisch; er komt geen menselijke handeling meer aan te pas. Deze strategie heeft vliegmaatschappijen jarenlang geholpen om vliegtuigen zo vol mogelijk te krijgen: Ryanair had bijvoorbeeld in 2019 een bezettingsgraad van 96%.
Het risico van een computerprijs
In maart 2020 gebeurde er iets raars. Er was minder vraag naar vliegtickets, waardoor de modellen automatisch de prijs verlaagden met de verwachting dat de vraag weer zou stijgen. Echter, de vraag steeg niet, waardoor de modellen de prijs nog meer verlaagden. Op een gegeven moment kon je een retourtje New York-Londen kopen voor 100 euro op de dag van vertrek, en zelfs daar was bijna geen vraag naar. De situatie was zo compleet veranderd door COVID-19, dat de modellen het niet meer voor elkaar kregen om door middel van dynamische prijzen de vliegtuigen te vullen.
Er zijn nog talloze andere voorbeelden waarin een algoritme niet (meer) werkt zoals in eerste instantie bedoeld was. Een geheel ander voorbeeld is de chatbot Tay van Microsoft uit 2016, die leerde van interacties van mensen op Twitter. Hier werd echter misbruik van gemaakt door Twitter-gebruikers, waardoor haar tweets racistisch, seksistisch en nogal onsmakelijk werden. Daarom werd zij binnen 16 uur na introductie offline gehaald.
Slecht werkende modellen kunnen dus leiden tot een sterk verlies van omzet of marge, maar ook tot reputatieschade. AI is regelmatig een black box, en daarom moet er vaak veel moeite in gestoken worden om gebruikers te overtuigen dat een model werkt. Mensen zijn begrijpelijk huiverig om belangrijke beslissingen met grote gevolgen aan zo’n algoritme over te laten. Als dan blijkt dat een model toch niet meer zo goed werkt, leidt dit tot een verlies aan vertrouwen in het model. Dit is duidelijk zichtbaar bij zelfrijdende auto’s, waarbij elk ongeluk leidt tot enorme ophef, zelfs nog onafhankelijk van het feit of de AI achter de besturing van de auto’s een situatie wel of niet goed ingeschat heeft. Ze maken relatief veel minder ongelukken dan mensen, maar nog steeds is vaak de perceptie dat ze minder veilig zijn.
Als een model geen goede voorspellingen geeft, heeft dit dus invloed op het hele proces waar het model in gebruikt wordt, of het nu het prijzen van vliegtickets is of het rijden met een zelfrijdende auto. Daarom is het belangrijk om na te denken over modelmanagement: hoe zorg ik ervoor dat een model stabiel goed blijft werken. Vergelijk het met de banden van je auto. Zolang de bandenspanning goed is, rijd je comfortabel in je auto en verbruikt deze niet te veel brandstof. Maar is je bandenspanning te laag, dan hobbel je over de weg en stijgt je verbruik. Daarnaast levert het ook nog mogelijke schade op voor je banden. Een stabiel, goed model zorgt ervoor dat je proces goed loopt én het vertrouwen in het model toeneemt. Modelmanagement bestaat uit drie stappen: monitoren of je model nog goed werkt, herkalibreren om te zorgen dat je model leert van nieuwe situaties, en innoveren om door nieuwe dingen te proberen je modelvoorspellingen te verbeteren.
Houd het model in de gaten
Het monitoren van een model betekent dus dat je in de gaten houdt of het model nog steeds zo goed functioneert als eerder, ook nu bijvoorbeeld de omstandigheden veranderd zijn. Net zoals een oranje lampje op het dashboard van je auto aangeeft dat je bandenspanning te laag is, wil je een signaal krijgen als het model (mogelijk) minder goed werkt. Hier kan je op twee manieren naar kijken: naar de input of naar de output. Bij de input kijk je hoe de data eruitziet op grond waarvan je een voorspelling wilt gaan doen. Bij de output kijk je hoe de voorspellingen zich verhouden tot de werkelijke uitkomsten. In het geval van het model dat vliegticketprijzen bepaalt is het waarschijnlijk gemakkelijker om naar de verandering in de input en of die afgedekt wordt door een model – de vraag van mensen naar vliegtickets – te kijken, aangezien je zo de veranderende situaties in de wereld kunt opmerken. Voor zelfrijdende auto’s kijk je dan weer eerder naar de output, namelijk hoe een auto heeft gereageerd op bepaalde situaties.
Als de inputdata er compleet anders uit ziet dan de data waarop het model in eerste instantie gebaseerd was, komt het model in feite een nieuwe situatie tegen. Voor een mens is het ook lastiger om een nieuwe situatie te beoordelen. Voor een model is dat vaak niet anders, omdat deze data van historische situaties gebruikt. Dit noemen we data drift. Er zijn allerlei technieken beschikbaar om een data drift te detecteren. Je kunt bijvoorbeeld een extra model maken dat probeert te classificeren of data uit de oude of de nieuwe situatie komt. Als dit nieuwe model goed de data kan onderscheiden, is er waarschijnlijk een groot verschil ontstaan tussen de eerste dataset en de nieuwe dataset.
Een andere optie is om de output onder de loep te nemen. Het uitgangspunt is hier dat je de voorspellingen van het model vergelijkt met de daadwerkelijke uitkomsten. Er zijn veel verschillende manieren om deze vergelijking te maken, meestal uitgedrukt in een getalwaarde die aangeeft hoe goed de voorspellingen met de werkelijkheid overeenkomen. De waarde die je met deze vergelijking berekent noemen we de performance metric, die de voorspelkracht van een model weergeeft. In hoofdstuk 4 over de confusion matrix kan je lezen hoe dit bijvoorbeeld gebeurt voor een systeem dat een diagnose moet stellen. Een veelgebruikte performance metric is de gemiddelde absolute percentuele afwijking – in het Engels de Mean Absolute Percentage Error, afgekort als MAPE. Dit klinkt misschien als een lastige term, maar het is eigenlijk vrij simpel: als je één voorspelling hebt die 2% hoger is dan de daadwerkelijke uitkomst en een andere die 4% lager is, dan is deze MAPE 3% – het gemiddelde van die 2% en 4%. Het maakt dus niet uit of een voorspelling hoger of lager is, je kijkt hier puur naar hoe ver de voorspellingen relatief afwijken van de werkelijkheid. Door vooraf een afspraak te maken over welke waarden een performance metric aan mag nemen, kan je hiermee bepalen wanneer het waarschuwingslampje moet gaan branden – bijvoorbeeld bij een MAPE van meer dan 10%.
Opnieuw trainen en innoveren voor een gezond model
De tweede stap is het herkalibreren van een model. Zoals het woord zegt, ga je hier het model opnieuw trainen (in hoofdstuk 2, Wat is een model, kan je lezen over wat trainen precies inhoudt). Vergelijk het met het oppompen van je bandenspanning. Het oppompen kan je natuurlijk doen wanneer het lampje van de bandenspanning gaat branden, maar bijvoorbeeld ook voordat je een lange reis gaat maken of bij een maandelijkse routine. Zo is het ook met het herkalibreren van een model: dit kan je doen als reactie op een verslechterde waarde van de performance metric, maar soms wordt ook afgesproken het met een standaard frequentie te doen. Meestal bestaat het herkalibreren uit het toevoegen van nieuwe data aan je input, waarbij je dus het model laat ‘wennen’ aan de nieuwe situatie. De output van het model verandert daardoor ook, waardoor de performance metric over het algemeen verbetert. De laatste stap van model management is modelinnovatie. Net zoals je de banden van de auto op een gegeven moment vervangt, doen we dat ook bij modellen. Eén van de aanleidingen kan zijn dat het herkalibreren van een model niet meer helpt om de voorspelkracht van een model op een voldoende hoog niveau te krijgen. De situatie kan bijvoorbeeld zo veranderd zijn, dat bepaalde informatie die eerst niet van belang was en daarom niet in de model input zat, nu opeens cruciaal is voor een goede modelvoorspelling. Denk hierbij aan de prijs voor vliegtickets, waar je nu wellicht informatie wilt meenemen over de coronasituatie in het land van vertrek en aankomst. Maar het hoeft niet per se zo te zijn dat het model slecht presteert. Het kan ook zijn dat er nieuwe en geavanceerdere technieken beschikbaar komen, waarmee we betere modelvoorspellingen kunnen maken dan met het eerdere model. Wat je hier meestal doet, is het opnieuw uitvoeren van het hele of een gedeelte van het proces van het model bouwen. Je kunt hier dan kiezen om andere informatie als input voor het model te geven, of op een hele andere manier de computer het model te laten bouwen. Dit zal typisch iets zijn dat je één of twee keer per jaar doet.
Een normale prijs maakt zijn retour
Constante monitoring is dus nodig om te weten of een model nog goed functioneert. Regelmatig herkalibreren helpt om het model te leren van nieuwe situaties. Jaarlijkse modelinnovatie zorgt ervoor dat we up-to-date blijven met nieuw beschikbare informatie en technieken. Deze drie componenten van modelmanagement helpen om een model structureel goed te laten functioneren, waardoor het proces waarin dit model een rol speelt goed blijft lopen. Vliegtuigmaatschappijen zullen inmiddels wel geleerd hebben van het begin van de COVID-19-periode. Wie weet echter wat de volgende schok in de reismarkt zal zijn? Deze volatiele situatie maakt het dus voor hen essentieel om hun modellen goed te blijven monitoren en verbeteren, wat ze nu zeker zullen doen. Helaas zit dat retourtje New York voor 100 euro er voorlopig dus waarschijnlijk niet meer in.