Machine learning, and why it isn’t magic

Machine Learning

Op woensdag 10 oktober werd iedereen hartelijk ontvangen op het kantoor van Freshheads in Tilburg. De eerste korte showcase werd verzorgd door Gijs Nieuwenhuis en Martin Broos, medewerkers van Freshheads. Deze showcase ging over Perceived performance & optimistic updating. Zo werd verteld dat gebruikers er niet van houden om te moeten wachten. Applicaties vereisen echter wachttijden, zelfs 1 seconde kan een applicatie al traag aan laten voelen.

Er zijn twee manieren om dit te verbeteren, namelijk logischerwijs de actual performance optimaliseren ofwel de perceived performance optimaliseren. Over de laatste, de waargenomen prestatie, werd dieper op in gegaan aan de hand van een echt bestaand voorbeeld. Mensen op een vliegveld moeten na een vliegreis vaak lang wachten op hun bagage. Men wilde ervoor zorgen dat de koffers sneller bij de passagiers terecht zouden komen, maar dat was technisch gezien niet mogelijk. Daarom hebben ze de ervaring veranderd door de bagageband een stuk verder weg te plaatsen van de plaats waar mensen uit het vliegveld stappen. Op deze manier lijkt het alsof je sneller bij je bagage bent dan wanneer je stil staat en alleen maar moet wachten. De perceived performance en daarmee de ervaring van de passagiers is dus veranderd.

Deze manier van wachttijden verbeteren kun je ook toepassen op applicaties. De laadtijd van een applicatie of website met een zandlopertje aangeven wordt niet aangeraden, omdat je dan erg gefocust bent op het wachten. De gebruiker komt dan weer in de passieve staat van bewustzijn terecht en dit dient natuurlijk voorkomen te worden. Dit kan door bijvoorbeeld animaties te werken tijdens de wachttijd, dit zorgt voor een betere performance beleving. Zo creëren ze op de Freshheads website een creatieve overgang, waarna de nieuwe pagina meteen klaar staat daarna. Dan voelt het voor de klant een stuk sneller aan.

Een andere manier om de wachttijd te verbeteren is om in plaats van überhaupt te wachten, te proberen om alvast wat te tonen. Je pakt dan de data die je alvast beschikbaar hebt en daarmee probeer je alvast de userinterface te updaten. Dit wordt ook wel optimistic updating genoemd. Je laat het snappy lijken, waardoor de gebruiker denkt dat hij of zij meteen verder kan.

Na deze short case was het woord aan Harrie Verveer over het onderwerp machine learning. Eerst vertelde hij iets over zijn learnings en daarna over hoe hij deze learnings zelf heeft toegepast voor zijn bedrijf. Harrie heeft een Stanford Coursera gratis cursus gevolgd van 11 weken. Hij legde uit dat supervised learning gaat over leren, een algoritme dat niet de juiste antwoorden geeft is unsupervised en recommender zijn systemen als: ‘wellicht voor jou ook interessant.’

Hierna zijn een aantal onderwerpen en begrippen behandeld. Linear regression is uitgelegd aan de hand van een voorbeeld van de kosten van een huis ten opzichte van de verkoopprijs. Hierbij werd duidelijk dat bij overfitting het algoritme zich te goed aanpast aan de data die je hebt ingevoerd, waardoor er geen vloeiende lijn ontstaat. Logistic regression gaat niet over een waarde voorspellen, maar voorspellen of iets waar is of niet (one-versus-all). Deze analyse is hetzelfde als linear regression, alleen de hypothese verandert. Deze analyse kun je bijvoorbeeld gebruiken voor de vraag: ‘is dit spam of niet?’ of ‘in what category should this go?’ Daarnaast lichtte hij kort nog 3 andere begrippen toe. Neutral networks gaat bijvoorbeeld over handschriftherkenning, zelf vliegende helikopters en zelf rijdende auto’s. Clustering gaat over een algoritme voeren met data en daar verschillende groepen daarin maken. Recommender systems, tot slot, gaan over aanbevelingen bij bijvoorbeeld Netflix op webshops.

Vervolgens lichtte Harrie toe wat hij zelf met deze inzichten gedaan heeft. Hij is zelf werkzaam bij NLvoorelkaar, een soort online marktplaats voor vrijwilligers. Op zijn website wordt de zoekfunctie vaak gebruikt en hij wilde iets maken dat kan voorspellen in welke categorie een zoekopdracht thuishoort. Om dit te bereiken maakte hij eerst een lijst van de 50.000 meest gebruikte woorden in vragen en met de teksten maakte hij een vector per hulpvraag. Omdat dit hele proces veel geheugen in beslag nam, heeft hij het aantal zoekwoorden gelimiteerd. Dit resulteerde in een accuracy van 42%. Later heeft hij er nog aan gesleuteld en termen die het algoritme in de war zouden kunnen brengen, verwijderd. Toen had het een accuracy van 98% en 64% bij de termen die het algoritme nog nooit had gezien. In sommige categorieen ging het beter dan in andere. Dit kwam doordat in de ene categorie meer hulpvragen waren dan in andere categorieen, waardoor het algoritme zich met meer hulpvragen beter kan aanpassen en daardoor beter de categorie kan bepalen. Hierna heeft hij het nog verder geoptimaliseerd en resulteerde dit uiteindelijk in een nauwkeurigheid van 73%.

Tot slot vertelde hij nog een keer zijn algemene bevindingen op: de data die je gebruikt is belangrijker dan het algoritme zelf, er zijn enorm veel mogelijkheden om grafieken in kaart te brengen, het is goed om meer tijd te investeren in het krijgen van betere data (indien meer data vereist is), het creëert een hele nieuwe reeks mogelijkheden en je hebt veel mensen nodig en/of het kost enorm veel tijd.

Machine learning is tenslotte natuurlijk helemaal geen magie, het is gewoon wiskunde.

Auteur: Marieke van Houdt