Met boekenliefde.nl heb ik voor het eerst wat geoefend met machine learning en big data. Daarna is daar bij andere projecten nog wel het een en ander bijgekomen overigens. Voor wie een handige dataset zoekt om mee te oefenen: onderaan de pagina kun je alle individuele (anonieme) waarderingen op boekenliefde downloaden als open data.

Hadoop en Mahout

Hadoop en Mahout zijn twee namen van initiatieven van Apache waar ik gebruik van heb gemaakt om persoonlijke aanbevelingen te kunnen doen. Als lezer vond ik het lastig om goede tips te krijgen. Veel mensen hebben een andere smaak en medewerkers van bijvoorbeeld de bibliotheek weten niet welke boeken je al hebt gelezen en of je ze wel of niet leuk vond.

Het idee is dat boekenliefde.nl (of eigenlijk Mahout) patronen herkent in de tienduizenden waarderingen van gebruikers voor boeken (of eigenlijk werken) en dan op basis van jouw waarderingen kan voorspellen welke boeken je nog meer leuk zult vinden.

Als jij een boek leuk vindt dat anderen ook hoog waarderen en die anderen vinden een ander boek ook goed, dan zou dat andere boek een goede tip kunnen zijn.

Bijsturen, multithreading en transparantie

Ik was zelf uiteindelijk erg blij met de persoonlijke boekentips en heb er goed gebruik van gemaakt. Wel heb wat bijgestuurd op basis van genres. Als de aanbevelingen in hele andere genres zaten dan je gewend was, werd dit een beetje ingeperkt. Het viel vervolgens niet mee om de aanbevelingen heel snel te berekenen. Wat hielp was om - zodra iemand was ingelogd - via een aparte thread alvast de persoonlijke boekentips te bepalen. Om het blackbox-gehalte te beperken heb ik nog toegevoegd dat je als gebruiker kon zien waarom je een bepaalde boekentip kreeg.

Bij de persoonlijke boekentips kon je zien waarom je een bepaalde tip kreeg.

Open data om mee te oefenen

Het bestand bevat ruim 63 duizend individuele waarderingen van gebruikers van werken op boekenliefde.nl. Het basisprincipe is dat je een deel van de waarderingen apart houdt en probeert die te voorspellen op basis van de andere waarderingen. Vervolgens vergelijk je de voorspellingen met de achtergehouden feitelijke waarderingen (en met een domme voorspelling).

Download

boekenliefde-open-data.xslx (4 MB)