Blog

Een webshop met machine learning, hoe werkt dat?

Het liefst sta je voor al je bezoekers klaar wanneer ze op je webshop landen. Je wilt ze verwijzen naar de juiste productpagina, het bestelproces zo snel en gemakkelijk mogelijk maken. Kun je dat op een slimme manier doen?

Het liefst sta je voor al je bezoekers klaar wanneer ze op je webshop landen. Je wilt weten wat zij willen om ze door te kunnen verwijzen naar de juiste productpagina. Het bestelproces zo snel en eenvoudig mogelijk maken voor je klanten, dat is je doel. Kan dat met machine learning?

Om die vraag te beantwoorden namen we een van onze gerenommeerde klanten JohnBeerens.com, een platform voor alle beauties in Nederland, als case. JohnBeerens.com biedt producten aan voor ieder haartype en dat zijn er nogal wat. Ons haar verschilt niet alleen in kleur, maar ook in type, lengte, poreusheid en nog veel meer. Om bezoekers niet meer door de webshop te laten struinen op zoek naar het perfecte haarproduct – en daarmee het risico te lopen dat ze van de aankoop afzien – ontwikkelden we een slimme haaranalysetool die klanten zelfstandig van een persoonlijk aanbod voorziet.

In deze blog lichten we toe hoe de haaranalysetool werkt, hoe JohnBeerens.com hiervan kan profiteren en een snelle go-to-guide om zelf aan de slag te gaan met machine learning. Want machine learning ligt ten grondslag aan deze slimme tool!

Een webshop die zelf ziet én voorziet

Het idee is simpel: een bezoeker upload een foto op de webshop waarop zijn of haar haar goed zichtbaar is. Op de achtergrond wordt een berekening gemaakt voor de beste match en voilà, de bezoeker vangt direct een relevant en persoonlijk productaanbod.

Is de ontwikkeling van zo'n tool ook zo simpel?

De bouwstenen

Als eerst hebben we de tool opgezet als Progressive Web App (PWA). Aan de ene kant is er de Magento 2 backend omgeving van Johnbeerens.com, aan de andere kant een omgeving met daarop Magento PWA Studio. Om beide omgevingen met elkaar te laten communiceren maken we gebruik van GraphQL, een zoektaal die vergelijkbaar is met een REST of SOAP API maar dan sneller.

Vervolgens maakten we gebruik van machine learning om de tool slim te maken. Machine learning staat voor het zelfstandig ‘leren’ op basis van grote hoeveelheden data die binnenkomen. Data is in dit geval de voedingsbron waar machine learning eigenlijk continu op leunt. Het is de leerstof die als basis wordt gebruikt om te leren en te ontwikkelen. Logischerwijs geldt dan: hoe vaker een bepaalde taak is volbracht, hoe slimmer het systeem wordt.

In dit geval was de output de kenmerken van het haar en de input de geüploade selfies. Des te meer foto’s we uploaden, hoe accurater de data en hoe nauwkeuriger de kenmerken van het haar zouden zijn. Voor dit gedeelte maakten we gebruik van de tools: Microsoft Face API en Google Vision AI.

De Microsoft Face API is een kant-en-klare tool die vooraf getraind is. Je stuurt een foto en krijgt een vaste set van data terug. Deze tool gebruikten we voor data zoals leeftijd, haarkleur en geslacht.

De Google Vision AI is daarentegen een tool die je zelf kunt trainen om bepaalde kenmerken uit een foto te herkennen. Je traint de tool met zo veel mogelijk foto’s om deze vervolgens te categoriseren in de labels die je zelf bepaalt. Zo hebben we verschillende haarstijlen, lengtes en kleuren gecategoriseerd die matchen bij de producten van JohnBeerens.com. Naarmate je genoeg foto’s hebt ingestuurd, zal de Google Vision AI nieuwe foto’s herkennen en deze automatisch toekennen aan de juiste labels.

There’s a match!

De kenmerken van de foto die we terugkrijgen vanuit de machine learning tools, gebruikten we om productaanbevelingen te doen. Dit werkt zo:

Ieder kenmerk van het haar heeft een waarde tussen de 0 en 1. Iemand met redelijk steil haar krijgt dan bijvoorbeeld een waarde van 0.8 bij het kenmerk ‘hairstyle straight’. We koppelen een waarde aan ieder product met dezelfde kenmerken – bijvoorbeeld of het product geschikt is voor krullend haar of voor steil haar. We doen dit voor ieder kenmerk en geven het kenmerk een minimale en maximale waarde tussen de 0 en 1. Indien de waarde van het kenmerk van de foto binnen deze waardes valt dan is er een match. Aan de hand van hoeveel kenmerken correct zijn gematcht, kunnen we een algemene percentage match berekenen.

Tijd voor wat voorbeelden. Hieronder zien we onze frontender - en medeontwikkelaar van de tool - Ezra Botter. Zoals je kunt lezen is hij 29 jaar oud en heeft hij kort donker haar met een lichte slag.

Aan de rechterkant zie je een voorbeeldproduct. Achter ieder kenmerk wordt aangegeven bij welke waarde het product wel of niet mag matchen. Bij de leeftijd en bij de haarattributen kunnen de waardes een range zijn. Dit product is bijvoorbeeld geschikt voor leeftijden tussen de 16 en 50 jaar en ook geschikt voor iemand met een zwarte haarkleur met een waarde tussen de 0.6 en 1.

Zoals je kunt zien past het product op 9 van de 13 kenmerken, en daarmee matcht Ezra met 69,23 procent (9/13*100) met het voorbeeldproduct.

Hieronder zie je een ander voorbeeld met onze support coördinator Carola Schermers. De verschillen zijn vooral zichtbaar bij de waardes bij haarstijl en haarlengte. Links zien we dan ook dat het voorbeeldproduct meer geschikt is voor personen met steil en lang haar. Het product heeft daarom ook een 100 procent match met Carola!

Persoonlijk en relevant: de heilige graal

De match percentages worden berekend aan de hand van de kenmerken van het haar en de best matchende producten worden getoond in een overzicht. De website-bezoeker ziet de aanbevelingen, kan deze met elkaar vergelijken en direct toevoegen aan de shopping cart. En het mooie hieraan is: de gebruiker kiest er zelf voor!

Personalisatie is namelijk niet altijd de heilige graal. Het moet niet gepast en ongepast overal worden ingezet. Soms wil iemand een product cadeau doen en zal diegene door relevantie het bredere aanbod niet kunnen zien. Bovendien willen consumenten niet het gevoel hebben dat ze achtervolgd worden door de producten die ze eerder hebben aangeklikt. Zo wijst onderzoek uit dat 40 procent geen productaanbevelingen wil op basis van hun surfgedrag en 33 procent wil geen follow-up e-mails over relevante producten of promoties.

Zelf aan het roer staan en zelf de keuze maken door een selfie up te loaden, kan daarmee een fijne, laagdrempelige manier zijn om je doelgroep te helpen bij het vinden van zijn of haar producten en je conversieratio te laten stijgen. Doordat klanten zelf kunnen kiezen voor relevantie en omdat het doen van aankopen makkelijker en leuker wordt, voorspellen we mooie resultaten voor JohnBeerens.com. De consument is immers altijd op zoek naar gemak en merken worden hoger beoordeeld wanneer zij innovatief zijn.

Op dit moment moet de tool moet nog verder worden afgerond zodat de matches accuraat zijn. Alleen dan kunnen de relevante en persoonlijke productaanbevelingen worden gegeven, waar menig merk of retailer op zoek naar is!

Zelf aan de slag met machine learning?

Wil je ook dat je webshop jouw klanten zelfstandig productaanbevelingen geeft? Wil je dat er automatisch duizenden productomschrijvingen worden geschreven met belangrijke kenmerken als maat, prijs, merk en producttype? Of wil je een augmented reality toepassing op je webshop?

Met machine learning is niets te gek en webshops - ook de webshops van je concurrenten - zullen steeds innovatiever worden. Daarom doe je er slim aan om je hierop voor te bereiden. Zoals je weet, ligt ten grondslag van deze technologie: data. Zorg er dus voor dat je data verzameld in een systeem, dat gekoppeld is aan je andere systemen. Vervolgens kun je aan de slag met de volgende stappen:

  • Ken al je doelgroepen
    Maak een persona voor alle segmenten en doorloop de customer journey's;

  • Definieer het probleem
    Identificeer de pijnpunten op basis van je analytics, diverse afdelingen (klantenservice, MT, marketeers) en vraag het zelf aan je bezoekers;

  • Genereer ideeën
    Prioriteer oplossingen op basis van de investering/complexiteit en verwachte impact;

  • Maak een prototype
    Ga een aantal ideeën eerst valideren voordat je gaat ontwikkelen;

  • Implementatie
    Na implementatie blijf je het effect meten en optimaliseren.

Bovenstaande stappen zijn vrij algemeen. Wil je echt aan de slag met innovatie in e-commerce of heb je een complex vraagstuk waarover je wilt sparren, dan denken we graag met je mee!

Wij gaan voor langdurige samenwerkingen zodat we echt waarde kunnen bieden aan onze klanten. Voor bijvoorbeeld onze klant JohnBeerens.com innoveren we niet alleen met machine learning en chatbots, ook hebben we ze onderteund bij het stroomlijnen van de backoffice, het inrichten van de marketingcampagnes en het bouwen van een prachtig platform. En dat is erkend door het publiek! JohnBeerens.com is in 2020 verkozen tot 'Website van het Jaar' in de categorie Fashion en Beauty en daar zijn we enorm trots op.