Wat is een algoritme?

Sanne Blauw
Correspondent Ouderschap
Template design door lstore.graphics en beeldbewerking door Leon Postma (redactioneel vormgever)
Template design door lstore.graphics en beeldbewerking door Leon Postma (redactioneel vormgever)

Algoritmes zijn alomtegenwoordig. Of je een zoekterm intypt op Google, belastingaangifte doet of een recept kookt – je krijgt ermee te maken. Daarom vandaag: een stoomcursus algoritmes.

Google gebruikt ze. 

De Belastingdienst gebruikt ze. 

Jij gebruikt ze. 

Algoritmes.

Je komt de term overal tegen – van kranten tot TED-talks, van verkooppraatjes tot overheidsrapporten. 

Maar wat ís een algoritme? 

Wat betekent ‘algoritme’?

Het woord algoritme komt van de naam van een Perzische wiskundige die in de negende eeuw een boek schreef over het uitvoeren van berekeningen: Mohammed ibn Moesa al-Chwarizmi.

Een behoorlijke baas, want mede door hem zijn we in Europa Arabisch-Indische cijfers (1, 2, 3, 4…) gaan gebruiken in plaats van de Romeinse notering (I, II, III, IV,...). Wel zo handig, want de Romeinen hadden geen nul én geen decimalen.

Al-Chwarizmi’s werk werd hier bekend door de Latijnse vertaling van zijn boeken, waarin hij ‘Algoritmi’ werd genoemd. Eerst werd het woord ‘algoritme’ alleen nog maar gebruikt voor berekeningen met cijfers, maar vandaag de dag heeft het een bredere betekenis. 

En die is? 

Een algoritme is niet meer dan: een aantal stappen dat je zet om een bepaald doel te bereiken. Een algoritme heeft dus niet per se te maken met grote bergen data en technologie. Een rekensom is een algoritme, maar het bereiden van een maaltijd is dat ook. Je volgt de stappen in een recept om het doel – eten op tafel – te bereiken. 

Een rekensom is een algoritme, maar het bereiden van een maaltijd is dat ook

Ook bij het vinden van een partner kun je een algoritme gebruiken. Stel, je wilt met Tinder een geliefde vinden. Je (1) downloadt de app en (2) maakt een profiel aan. Vervolgens maak je steeds een grotere schifting als je (3) begint te swipen, (4) appt met je matches en (5) afspreekt met personen die leuk genoeg lijken om mee op date te gaan. 

Zo wordt de trechter steeds nauwer en floept er uiteindelijk een leuke kandidaat uit. Of je gaat terug naar stap 3 en begint weer met swipen. Toevallig heeft Tinder met technologie te maken, maar je had hetzelfde kunnen doen met ouderwetse contactadvertenties. 

Toch denk ik bij algoritmes aan technologie…

Klopt, ik ook, want het woord ‘algoritme’ wordt vaak gebruikt in combinatie met nieuwe technologie. Zo experimenteert Albert Heijn sinds kort met ‘dynamisch afprijzen’, waarbij een algoritme op basis van weersomstandigheden, locatie en andere variabelen berekent hoeveel een product moet worden afgeprijsd. Gaat het bijvoorbeeld ineens regenen, dan kan de winkel beslissen om het barbecuevlees af te prijzen. De nieuwe prijs krijg je op een elektronisch bordje

Algoritmes worden vaak genoemd als het om grote datasets gaat, die door middel van technologie zijn verzameld. Volgens technologiebedrijf Domo voert Google per minuut 3,9 miljoen zoekopdrachten uit, speelt YouTube meer dan 4,3 miljoen video’s af en posten Instagram-gebruikers  Veel van die data worden bewaard en kunnen eventueel worden gebruikt als input voor algoritmes. (Het gaat bij ‘data’ dus niet alleen om cijfers, maar ook om foto’s, video’s, geolocaties et cetera.)

Waar worden algoritmes voor gebruikt?

Wat je vaak ziet, is dat algoritmes worden gebruikt om bepaalde beslissingen (deels) te automatiseren. Neem de overheid, die allerlei voorspellende algoritmes gebruikt. De politie probeert te voorspellen wie er kans maakt om crimineel gedrag te vertonen, de gemeente Amersfoort welke leerlingen misschien vroegtijdig Waar vroeger een agent of docent die inschatting maakte, is het nu een computermodel.

Wiskundige Hannah Fry beschrijft in haar boek vier verschillende functies van een algoritme: 

  • Prioriteren (Google beslist welke zoekresultaten bovenaan komen te staan);
  • Classificeren (een medisch algoritme onderscheidt kankercellen van gewone cellen);
  • Associëren (OkCupid beveelt je een geschikte partner aan op basis van bepaalde kenmerken); 
  • Filteren (Siri en Alexa filteren het achtergrondgeluid weg voor hun spraakherkenning).  

Een algoritme combineert vaak meerdere van deze functies. Een politiealgoritme zoekt naar associaties tussen bepaalde kenmerken en crimineel gedrag, om mensen vervolgens te classificeren als hoog of laag risico. 

Ik kan me nog steeds niet zoveel voorstellen bij een algoritme...

De definitie van een algoritme is heel algemeen. Een algoritme kan allerlei vormen aannemen. Het kan, zoals we al zagen, eruitzien als een recept, een staartdeling of iets anders. Maar als we naar moderne algoritmes kijken, dan zijn het vaak (ingewikkelde) formules waar getallen uitrollen – scores, kansen, bedragen.

De methodes om tot die getallen te komen zijn grofweg in twee categorieën op te delen. Machine learning, een tak van kunstmatige intelligentie, laat een algoritme zelf leren. Dat is anders dan de tweede categorie – op regels gebaseerde algoritmes – waar een programmeur een voor een de regels formuleert. Laten we eens naar die tweede categorie kijken. 

Terug naar het liefdesuniversum. Auteur en futuroloog Amy Webb was dertig, single en op zoek naar een nieuwe geliefde. En snel een beetje. Dus, vertelt ze in bedacht ze een manier om zo efficiënt mogelijk haar charmante prins te vinden: een uitgebreid scoringsmodel.

Elke kandidaat die ze op een datingsite tegenkwam gaf ze scores op 72 verschillende aspecten. Was hij Joods? Hield hij van reizen? En, ietsje lastiger in te schatten, zou hij altijd tenminste negen kilo meer wegen dan zijzelf? 

Pas bij 700 punten mailde ze met iemand, bij 900 punten ging ze op een date. Voor Webb werkte het. Haar stappen brachten haar tot haar doel: een wat stevigere, Joodse liefhebber van reizen waar ze uiteindelijk mee trouwde. 1.050 punten had-ie. 

Veel van de algoritmes waar je over leest, doen min of meer hetzelfde: ze kennen een score toe aan een mens. Die score staat voor een kans. De kans dat iemand een goede partner is, de kans dat iemand crimineel is of wordt, de kans dat iemand een lening terugbetaalt. 

Veel van de algoritmes waar je over leest, kennen een score toe aan een mens

Maar waar Webb zelf een lijstje maakte van criteria en die een score toekende, wordt ook dit proces vaak geautomatiseerd. In databases wordt gekeken welke criteria het best ‘succes’ voorspellen. Bijvoorbeeld, welke kenmerken in het verleden goed inschatten of iemand crimineel gedrag zou vertonen. De postcode van het woonadres zou een aanwijzing kunnen zijn, omdat in bepaalde buurten meer criminaliteit voorkomt. 

Ook zulke scoringsalgoritmes kunnen weer allerlei vormen aannemen. Neem het algoritme dat Tinder Het gebruikte de swipedata van gebruikers. Handig, want die zijn gemakkelijk te standaardiseren: Dat is anders dan Webb, die telkens handmatig moest invullen of iemand wel genoeg van reizen hield. 

Tinders methode leek op die van de Elo-rating die bij schaken wordt gebruikt (vernoemd naar de bedenker, de natuurkundige Arpad Elo). De schaakscore hangt af van hoe vaak je wint, maar ook van je tegenstanders. Win je alleen maar van belabberde spelers, dan valt je score alsnog niet zo hoog uit.

Zo werkte het ook bij Tinder: als je vaak naar rechts werd geswipet, dan kreeg je een hogere score. Maar werd je alleen geswipet door mensen die niemand zag zitten, dan kreeg je minder punten. Tinder schotelde je vervolgens vaker mensen voor die gelijksoortige scores hadden.

Intussen, is de Elo-score ‘oud nieuws’ en gebruikt het bedrijf nieuwe ‘cutting-edge technology’. Wat dat precies is, blijft lekker vaag. ‘Ons huidige systeem past de potentiële matches die je ziet aan telkens als je profiel wordt geliket of genopet.’

Hoe ziet de code van een algoritme eruit? 

Op een computerscherm ziet het er droogjes uit: een programmeur schrijft regel na regel in computertaal op welke stappen er moeten worden gezet onder welke omstandigheden. 

Laten we Webbs algoritme eens in ‘pseudocode’ bekijken. Dat is computercode in – min of meer – gewonemensentaal. 

We beginnen met een score van nul. 

Scherm als code waarin staat: Datingscore = 0

We gaan nu voor elke variabele kijken of die wel of niet voldoet aan Webbs eisen. We hebben te maken met een als-dancommando (een if-statement): ‘Als hij twee kinderen wil, dan gaat zijn score met 96 punten omhoog.’ Om dit nog iets te formaliseren, maken we een variabele ‘kinderwens’, die aangeeft hoeveel kinderen de kandidaat wil. 

Scherm als code waarin staat: datingscore = 0 ALS kinderwens gelijk aan 2 DAN datingscore = datingscore + 96

Zo krijgen we een datingscore van 0 + 96 = 96 als hij twee kinderen wil, en blijft de score anders op nul staan. Je zou voor de overige 71 variabelen iets vergelijkbaars kunnen doen.

Een programmeur zal dit te veel gedoe vinden: je moet voor 72 variabelen namen bedenken en 72 keer twee regels code schrijven. Dat kan efficiënter, met een for loop. Hierbij laat je een teller lopen tot een bepaald getal, in dit geval 72.

IN alle 72 voorwaarden ALS kandidaat voldoet aan voorwaarde DAN datingscore = datingscore + (puntenaantal van voorwaarde) EINDE

Telkens kijk je dus of de kandidaat aan een voorwaarde voldoet. Als dat het geval is, tel je het puntenaantal dat hoort bij die voorwaarde (96 in het geval van de kinderwens) bij de datingscore op. Als dat niet het geval is, verandert de datingscore niet. Na 72 ‘iteraties’ ben je door alle voorwaarden heen en stopt de berekening.   

Zulke pseudocode kun je weer omzetten in computercode. Dat is even wat werk, maar op termijn bespaar je er tijd mee: je kunt telkens nieuwe datasets in het programma gooien en gemakkelijk de datingscore berekenen. Met andere woorden, je hebt het proces geautomatiseerd. 

Dit is nog een relatief simpel stappenplan. Veel platforms gebruiken veel ingewikkeldere algoritmes, of zelfs – zoals Google –

Ik lees de laatste tijd veel negatieve dingen over algoritmes. Zijn ze per se slecht? 

Absoluut niet. Sterker nog, op veel van de platforms die we gebruiken zijn algoritmes onvermijdelijk, vooral als we grote bergen informatie willen ordenen.

Als ik bijvoorbeeld ‘hamer’ google, krijg ik meer dan 22 miljoen resultaten. Ik vind het dan prettig dat ik eerst de Wikipediapagina van ‘Hamer (gereedschap)’ zie en pas veel later het nummer Go Tell It on the Mountain van Fannie Lou Hamer.

Ook kunnen algoritmes mensen in sommige gevallen helpen om betere beslissingen te nemen. Zo maken algoritmes een opmars in de geneeskunde, waar ze worden getest om röntgenfoto’s te lezen, om tumoren op te sporen en andere zaken die geautomatiseerd zouden kunnen worden.

Zo worden toegepast om op scans invasieve borstkanker te onderscheiden De methode van neurale netwerken – een vorm van machine learning – is zelflerend en is geïnspireerd op de werking van de hersenen. Het idee is niet dat zo’n algoritme alle knopen gaat doorhakken, maar dat de arts extra hulp krijgt bij het diagnosticeren.

Maar wat is het probleem dan? 

Een eerste probleem is privacy. Voor algoritmes worden data gebruikt, vaak data van mensen. Maar willen – zeg – de patiënten die data eigenlijk wel delen? En wat als hun gegevens bij hun zorgverzekeraar terechtkomen? 

Er worden – vaak zonder dat we het doorhebben – allerlei data over ons verzameld. Zo zijn er datahandelaren die ‘kredietscores’ berekenen, cijfers die moeten aangeven hoe betrouwbaar je bent met een lening. Dikke kans dat er ook van jou zo’n score bestaat, want een datahandelaar als Focum zegt scores te hebben voor 10,5 miljoen Nederlanders. Uit onderzoek van De Groene Amsterdammer en Investico bleek dat zulke bedrijven allerhande data gebruiken: je inkomen, je achternaam, je achterstallige betalingen. 

Zelfs bleek dat sommige datahandelaren rechtstreeks gegevens ontvangen van incassobureaus. Zo kwamen schuldenaren zonder hun medeweten in een database terecht en kon hun financiële geschiedenis – ook lang nadat ze hun schulden hadden afbetaald – hen blijven achtervolgen. Deze praktijk is overigens illegaal, want je moet worden ingelicht als je data met anderen worden gedeeld.

Een tweede probleem is dat er fouten worden gemaakt. Zo bleken er tussen 2009 en 2010 in het Verenigd Koninkrijk Jawel, zwangere mannen. De code waarmee hun medische behandeling was geregistreerd, was door elkaar gehaald met die van een verloskundige procedure.

Een oud adagium in de statistiek zegt: ‘Rommel erin, rommel eruit.’ Je kunt nog zo’n glad algoritme bouwen, je hebt er niets aan als de gebruikte gegevens niet deugen. 

Je kunt nog zo’n glad algoritme bouwen, je hebt er niets aan als de gebruikte gegevens niet deugen

Al zijn de data betrouwbaar, dan nog kunnen er fouten worden gemaakt bij de analyse. Zo bleek dat veel algoritmes in de geneeskunde slechts getest waren in één ziekenhuis. Toen ze in een ander ziekenhuis werden uitgeprobeerd,  

Een ander voorbeeld van een verkeerde analyse is Google Flu Trends. Twee of drie jaar lang voorspelde het model vrij nauwkeurig wanneer en waar de griep zou toeslaan. Maar in de jaren die volgden zat het algoritme er steeds naast, met in 2013 het dieptepunt toen het algoritme

Een van de verklaringen: developers negeerden belangrijke ontwikkelingen, zoals veranderingen in het ontwerp van Googles eigen zoekmachine. Zo liet de website vanaf 2012 mogelijke diagnoses zien als iemand bijvoorbeeld ‘hoesten’ of ‘koorts’ opzocht. Een van die diagnoses? Griep. Hierdoor gingen mensen waarschijnlijk vaker op zoek naar informatie over de ziekte – terwijl ze misschien gewoon nieuwsgierig of verkouden waren – en overschatte het Google Flu-algoritme

Het derde probleem is dat algoritmes bevooroordeeld kunnen zijn. Neem predictive policing, waarbij criminaliteit met behulp van algoritmes wordt voorspeld. Amerikaanse cijfers laten een duidelijk verband zien tussen Afro-Amerikaanse arme jongemannen en criminaliteit. Op basis van die algoritmes zul je je als politie richten op de wijken en individuen die voldoen aan dit signalement. 

Het gevolg? waarbij ook veel onschuldige mensen worden aangehouden. Bovendien is het aannemelijk dat het verband tussen huidskleur en criminaliteit überhaupt deels is ontstaan door discriminatie door de politie. De data waarop het algoritme wordt gebouwd, zijn dus al bevooroordeeld. Zelfs als je huidskleur niet expliciet meeneemt in het algoritme, loop je het gevaar dat je discrimineert. 

Zo krijg je een selffulfilling prophecy: als je bepaalde mensen vaker aanhoudt, dan komen ze vaker voor in de statistieken. De rijke, witte criminelen zie je immers over het hoofd, want die vallen buiten je werkgebied. Niet vreemd dan, dat je ook in de volgende statistieken een – misschien nog wel sterker – verband ziet tussen huidskleur en criminaliteit.

Dus, moeten we blij zijn met algoritmes? 

Algoritmes zijn te vergelijken met hamers. Je kunt er iemand de hersens mee inslaan, maar er ook een huis Ze zijn niet inherent goed of slecht, het ligt aan de mensen die ze bouwen en gebruiken. Zij hebben blinde vlekken, overtuigingen en belangen. 

Als ik bijvoorbeeld naar ‘hamers’ zoek, laat Google me niet alleen de Wikipediapagina zien, maar ook websites waar ik voor een paar euro een hamer op de kop kan tikken. Dat is omdat Google geld verdient met advertenties en het algoritme daar rekening mee houdt. 

Het doel van een algoritme is altijd een keuze en daarom per definitie bevooroordeeld. YouTube heeft als doel zoveel mogelijk geld te verdienen met advertenties en zal daarom het algoritme de opdracht geven om jouw kijktijd te maximaliseren. Als het je daarvoor racistische filmpjes moet voorschotelen,

Maar stel je nu voor dat het doel van algoritme anders was: het geven van gebalanceerde informatie. Telkens als je een video hebt bekeken met politieke inhoud, wordt je daarna een video aanbevolen met een tegengesteld standpunt. Of dat het doel van YouTube was om jou zo gelukkig mogelijk te maken. Wie weet hielden we dan alleen nog maar kattenfilmpjes over.

Algoritmes zijn slechts een instrument en of we blij met ze moeten zijn, hangt af van wie de beslissingen neemt. Al lijken algoritmes abstract en geautomatiseerd, ze blijven mensenwerk. Dus laten we er vooral bij blijven nadenken.

In schreef ik eerder over datingalgoritmes; in schreef ik al over algoritmes. Er bestaat overeenkomst tussen de teksten.

Verder lezen?