Big data en machine learning in de gedragswetenschappen

jonas rondjeDit is een blog van Jonas Moons, docent bij de opleiding Communicatie en bij het PubLab betrokken als methodoloog. Leestijd: +/- 8 minuten. 

telefooncel
Afgelopen zomer volgde ik een summer school aan de London School of Economics (LSE), om me verder in dit onderwerp te verdiepen. In Londen hebben ze overigens ook smartphones, maar dit staat leuk voor toeristen.

‘Big data’ is een geliefd onderwerp voor toffe stukjes. Het is één van die uitdrukkingen die lekker klinken, niet geheel omlijnd zijn en meer gebruikt worden door goeroes en consultants dan mensen die er daadwerkelijk iets mee doen.

Misschien is dat niet erg. We hebben het ook allemaal over auto’s zonder automonteur te zijn. Aan de andere kant weet iedereen wel hoe een verbrandingsmotor ongeveer werkt en welk pedaal het gas is en welke de rem.

Dit is geen tof stukje. Deze blog is bedoeld voor iedereen die nu wel eens wil weten hoe de motor van de auto ongeveer werkt. Een toegankelijke, maar inhoudelijke introductie op de algoritmes van big data (machine learning), en hoe deze in de gedragswetenschappen ingezet kunnen worden.

Big data
Wat is ‘big data’ eigenlijk? Daar zijn al te veel woorden aan gewijd, omdat het meer een containerbegrip is dan een duidelijk afgebakend fenomeen. Maar grofweg komt het hier op neer:

‘Big data is high volume, high velocity, and/or high variety information assets that require new forms of processing to enable enhanced decision making, insight discovery and process optimization.’ (definitie van het bedrijf Gartner uit 2012).

We produceren met z’n allen steeds meer data in steeds meer verschijningsvormen (tekst, beeld, video, audio, locatie, enzovoort). Ook laten onze activiteiten in de fysieke wereld meer digitale sporen achter, door social media, smartphones, activity trackers (zoals stappentellers) en andere apparaten met sensoren. De omvang en aard van deze informatie is zodanig dat ‘ouderwetse’ manieren van opslag, verwerking en analyse niet meer voldoen. Bedrijven als Facebook en Google zijn bij uitstek voorbeelden van organisaties die te maken hebben met big data, maar ook steeds meer kleinere organisaties krijgen te maken met grote datastromen.

Big data biedt ongekende mogelijkheden voor voorspellingen, zoals klikgedrag op websites en producten die de bezoeker interessant zou kunnen vinden. De analysetechnieken die bij big data worden gebruikt staan bekend als ‘machine learning’ (de ‘motor van de auto’ waar ik het eerder over had). Dit begrip staat in deze blog centraal. Kenmerkend voor machine learning is dat het vooral gaat om voorspellen van patronen, en dat het verklaren van het fenomeen op de tweede plaats komt.

En de gedragswetenschap?
Online klikgedrag is interessant voor bedrijven, maar kunnen sociale wetenschappers ook iets met big data? Volgens mij wel. Een sprekend voorbeeld: datingsite OkCupid heeft een fascinerende blog met inzichten over daten en relaties. We leren hier dat mannen vaker berichten sturen aan een vrouw die door verschillende mannen zowel zeer aantrekkelijk als zeer onaantrekkelijk wordt gevonden, dan aan een vrouw waar mannen het over eens zijn dat ze bovengemiddeld aantrekkelijk is. Voer voor psychologen, zou ik zeggen.

Met machinelearningtechnieken kunnen we vaak betere voorspellingen doen over menselijk gedrag en menselijke kenmerken dan met klassieke statistische modellen. De data hoeft daarvoor niet eens heel ‘big’ te zijn. Tarkoni en Westfall bieden in een nog te verschijnen artikel een uitstekend overzicht van de mogelijkheden en voordelen van machine learning binnen de psychologie.

Machine learning
Machine learning is kortweg het ontwerpen van computerprogramma’s (algoritmes) die kunnen leren van data. Dit vakgebied is deels voortgekomen uit ontwikkelingen binnen de kunstmatige intelligentie, zoals programma’s die handschrift kunnen herkennen. We kunnen machine learning echter ook zien als een uitbreiding van klassieke statistiek met algoritmes die werken met meer data en rekenkracht.

Machine learning laat zich indelen in twee hoofdtypen: supervised learning en unsupervised learning. Bij supervised learning weten we van een aantal gevallen wat de uitkomst is (bijvoorbeeld: het vertonen van bepaald gedrag, zoals roken) en probeert het algoritme een manier te vinden om deze uitkomst te voorspellen op basis van een (groot) aantal gegeven predictoren (bijvoorbeeld: inkomen, opleiding, persoonlijkheid, enzovoort). Bij unsupervised learning is er geen uitkomst gegeven. Het algoritme gaat dan zelf op zoek naar patronen en clusters. Zo kan een algoritme bijvoorbeeld zelfstandig op zoek gaan naar veelbesproken onderwerpen in online reviews (Titov & McDonald, 2008) of Twitterberichten (Hong & Davidson, 2010).

Dit klinkt wellicht ingewikkeld. Toch is veel machine learning op een bepaalde manier ook bedrieglijk eenvoudig. Het is als het koken van een kant-en-klaarmaaltijd: meestal gebruik je een bekend algoritme dat door anderen is ontworpen, en verzameld in zogenaamde libraries, openbare databanken met programmeercode. Zie hier bijvoorbeeld hoe je tien populaire algoritmes toepast met enkele regels code in de programmeertalen R of Python. De moeilijkheid zit hem in het correct toepassen van het beschikbare gereedschap.

Een voorbeeld
Wu Youyou, Michael Kosinski en David Stillwell (2015) hebben een algoritme ontworpen waarmee iemands persoonlijkheid kan worden voorspeld op basis van Facebook likes (pagina’s/onderwerpen die door iemand leuk gevonden worden). Het algoritme voorspelt scores op de big five, de vijf dimensies van persoonlijkheid die bekend zijn uit de psychologie: extraversie, vriendelijkheid, openheid, zorgvuldigheid en emotionele stabiliteit. Persoonlijkheid is dan weer voorspellend voor tal van vormen van gedrag. Probeer het hier zelf uit.

Facebook
Opmerkelijk: Daft Punk liken is een teken dat ik impulsief ben, Russell Brand en The Guardian maken mij conservatief? (Bron: University of Cambridge)

 

Uit de resultaten van het onderzoek blijkt dat het algoritme iemands persoonlijkheid beter kan bepalen dan een vriend, eerstegraads familielid of geliefde, mits het maar beschikking heeft over voldoende likes (respectievelijk 70, 150 en 300).

 

grafiek
De correctheid van de beoordeling neemt toe met het aantal likes. De bolletjes staan voor de scores van verschillende menselijke beoordelaars (figuur uit Youyou, Kosinski, & Stillwell, 2014)

 

Een voorbeeld van supervised learning, want de ‘echte scores’ zijn bekend van vragenlijsten. Maar hoe weten we zeker dat het ook echt klopt? Daarvoor moeten we meer weten over het beoordelen en testen van modellen. Daarna zal ik ingaan op de werking van het algoritme uit dit onderzoek.

Overfitting, underfitting en voorspellen
Een belangrijk probleem bij machine learning betreft het zogenaamde overfitting. Hiermee wordt bedoeld dat het model de data eigenlijk te nauw volgt. In plaats van een beschrijving van de echte trends, is het model een product van de eigenaardigheden van de steekproef. Dit doet zich vooral voor als het model erg flexibel is in vergelijking met het aantal observaties. Een eenvoudig voorbeeld zien we in onderstaande figuur.

untitled-1

In dit fictieve voorbeeld stellen de blauwe bolletjes een kleine steekproef van bedrijven voor. Deze bedrijven hebben allemaal een bepaald reclamebudget en maken een bepaalde winst. We kunnen het verband tussen deze twee variabelen bijvoorbeeld modelleren met:

  • een lineaire vergelijking (groene rechte lijn): Y = aX + b                of
  • een kwadratische vergelijking (blauwe curve): Y = aX2 + bX + c                of
  • een hogere polynoom (rode curve): Y = aX6 + bX5 + cX4 + dX3 + eX2 + fX + g

Waarbij X staat voor het reclamebudget, Y voor de winst en a t/m g voor coëfficiënten. Deze getallen worden door de computer berekend en worden zodanig gekozen, dat de punten zo dicht mogelijk bij de lijn staan.

Op het eerste oog lijkt de polynoom (de gekronkelde lijn) misschien het beste model. Deze gaat immers precies door alle punten. Maar het model is te flexibel: het ‘voorspelt’ correct de data die we al kennen, maar zal niet goed in staat zijn om nieuwe gevallen te voorspellen. Het aantal coëfficiënten (7) is even groot als het aantal observaties, waardoor alle observaties correct voorspeld worden. Het is echter onwaarschijnlijk dat de punten uit een nieuwe steekproef zo’n kronkelig patroon volgen. Nieuwe data wordt dus slecht voorspeld.

Daarentegen lijkt er bij het lineaire verband (de groene rechte lijn) sprake te zijn van underfitting: het model weerspiegelt het patroon van de data onvoldoende en zal bij een nieuwe steekproef ook slecht voorspellen. Het kwadratische verband (de blauwe kromme) lijkt dan ook het beste model van de drie, al hebben we te weinig data om dit met zekerheid te zeggen. Het kiezen van een model dat een goed evenwicht biedt tussen underfitting en overfitting is één van de grote uitdagingen in machine learning.

Trainen en testen
Het blijkt dus onverstandig om je te veel te laten leiden door hoe het model presteert op data die je al kent, zeker als je model erg flexibel is. In machine learning wordt daarom onderscheid gemaakt tussen de prestatie op de trainingsdata en de testdata. De willekeurig gekozen testdata zijn achtergehouden en worden niet gebruikt bij het ontwerpen van het model. Hiermee wordt de uiteindelijke prestatie van het model bepaald. Hoe verleidelijk ook, na het beoordelen van het model (aan de hand van de testdata) mag er niet meer worden geprutst aan het model! Als we namelijk aanpassingen gaan maken, doen we dat met impliciete kennis van de testdata, en dat kan leiden tot een vorm van overfitting zoals hierboven beschreven.

Met de trainingsdata wordt het model ‘getraind’: de onderzoeker kan hiermee in alle vrijheid mogelijke modellen onderzoeken. Ook worden deze data gebruikt om het model te ‘fitten’: het bepalen van de coëfficiënten van het model zodat deze de trainingsdata zo goed mogelijk benadert. De uiteindelijke prestatie van het model wordt dus gemeten aan de hand van de testdata, maar met de coëfficiënten die gebaseerd zijn op de trainingsdata.

Omdat het achterhouden van data in een testset niet altijd wenselijk is (bijvoorbeeld omdat er al relatief weinig data is), wordt ook veel gebruik gemaakt van cross validation (kruisvalidatie). Hierbij wordt de data in een aantal stukjes gehakt, waarbij telkens een ander deel de testset vormt. Dit proces wordt een aantal keer herhaald.

Deze manier van werken is in de wereld van de machine learning, zoals bij veel grote online bedrijven, de normaalste zaak van de wereld. In de gedragswetenschap is het valideren van je model echter ongebruikelijk. De data waarop getraind wordt zijn meestal ook de data van de gerapporteerde resultaten, waardoor de resultaten per definitie iets opgeklopt zullen zijn (zie opnieuw Yarkoni & Westfall)

Het algoritme van het Facebookonderzoek
We hebben gezien dat het Youyou en haar collega-onderzoekers is gelukt om met behulp van Facebookdata persoonlijkheid te voorspellen. De statistische methode die de onderzoekers gebruikten staat bekend als LASSO (least absolute shrinkage and selection operator Tibshirani, 1996, hier toegankelijk uitgelegd). LASSO wordt hier gecombineerd met lineaire regressie, een statistische methode waarbij scores worden voorspeld op basis van lineaire verbanden (‘rechte lijnen’) tussen variabelen.

Bijvoorbeeld:
Emotionele stabiliteit = 0,3 ˑ Business administration – 0,2 ˑ Kurt Cobain + …

Waarbij Business administration en Kurt Cobain de waarde 1 aannemen als de Facebookgebruiker de bijbehorende pagina geliked hebben, en 0 als dat niet het geval is. De coëfficiënten (0,3 en -0,2) heb ik verzonnen, maar uit het onderzoek bleek inderdaad dat het liken van ‘bedrijfskunde’ samenhangt met emotionele stabiliteit, en fans van Cobain gemiddeld emotioneel labieler zijn (deze getroebleerde zanger van grungeband Nirvana pleegde in 1994 zelfmoord).

Nu wordt het tijd voor de LASSO. Op de plaats van de puntjes in de vergelijking hierboven komen namelijk nog zo’n 56.000 likes. Het nadeel van lineaire regressie met zoveel variabelen is dat de resultaten lastig te interpreteren zijn: welke likes doen er nu echt toe? Ook is de kans groot dat de vrijheid van zoveel variabelen leidt tot overfitting: het model doet het dan wel goed op de trainingsdata, maar niet op de testdata.

Met LASSO zetten we een maximum op de som van de coëfficiënten (of preciezer: de absolute waarde van de coëfficiënten). We tellen dus alle coëfficiënten op (0,3 + 0,2 + …) en geven de computer opdracht de coëfficiënten zo aan te passen dat  die som lager is dan een bepaalde waarde. Aangezien er maar liefst 56.000 coëfficiënten zijn, werkt dat alleen als een groot aantal van deze coëfficiënten op 0 gezet wordt. De coëfficiënten van bepaalde variabelen, die niet gerelateerd zijn aan emotionele stabiliteit, zullen dus tot 0 krimpen, terwijl andere coëfficiënten juist groter worden. We houden een set van belangrijke variabelen over. Dit zijn de pagina’s die een voorspellende waarde hebben voor emotionele stabiliteit, zoals ‘bedrijfskunde’ en ‘Kurt Cobain’. We kunnen het model nu gebruiken om nieuwe hypotheses te formuleren (‘emotioneel labiele mensen houden van alternatieve bandjes uit de jaren ’90’), maar ook om goede voorspellingen te doen.

Conclusie
Big data biedt veel mogelijkheden voor onderzoekers in de gedragswetenschappen. Niet alleen is er steeds meer data beschikbaar; deze data is vaak ook een betere benadering van het daadwerkelijke gedrag, omdat het een direct product is van dit gedrag (locatiedata, beweging, sensorische informatie).  De statistische methoden die momenteel gebruikt worden in de gedragswetenschappen kunnen niet goed omgaan met dit soort data: het risico op overfitting is te groot door het grote aantal variabelen. Om de mogelijkheden van big data ten volle te benutten, zal machine learning steeds vaker deel uitmaken van het methodisch arsenaal van een gedragsonderzoeker.

Als je door dit verhaal geïnspireerd raakt om zelf aan de slag te gaan met machine learning, is dit een goed startpunt.