Cases
Snelle levering, een uitgebreid assortiment, en makkelijk online shoppen. Dit is wat CMS betekent voor duizenden motorfiets-fanaten en hobbyisten wereldwijd die al ruim 25 jaar rekenen op CMS voor het leveren van onderdelen. Een nieuwe bougie om weer de weg op te kunnen, of spatborden om lekker te kunnen crossen in de zomer, aan onderdelen geen gebrek aangezien CMS meer dan 4 miljoen producten op voorraad heeft. Ook wel bekend als ‘Consolidated Motor Spares’ is CMS uitgegroeid tot marktleider en aanbieder van wereldbekende en gerenommeerde merken zoals Honda, Suzuki, en Kawasaki.
Elke motorfiets is uniek, en daarmee ook elke ‘motorhead’ die op zoek is naar het juiste onderdeel voor zijn of haar motorfiets. De een sleutelt elk weekend aan een Yamaha die ooit van zijn vader was, de ander wilt zo veel mogelijk vermogen realiseren en zijn Kawasaki omtoveren tot een MotoGP-waardige krachtpatser. Met dit soort uiteenlopende verhalen en motieven komen er natuurlijk heel veel verschillende soorten onderdelen kijken. Vandaag de dag bestaat het assortiment van CMS om precies te zijn uit iets meer dan 4.300.000 producten. Al deze producten hebben hun eigen kenmerken en eigenschappen op basis waarvan klanten beoordelen of dit het juiste onderdeel is voor hun motorfiets. Het correct classificeren van deze producten is dan ook van cruciaal belang voor CMS om producten makkelijk vindbaar te maken voor iedereen. Dit classificeren kan handmatig worden gedaan, alle informatie om deze onderdelen correct te classificeren was dan ook aanwezig en correct vastgelegd, denk hierbij aan het merk, afbeeldingen, in welke bouwtekeningen bepaalde onderdelen thuishoren, en ga zo maar door. Maar vermenigvuldig deze overvloed aan informatie met 4.300.000 onderdelen en je hebt als uitkomst een karwei aan classificeerbare producten dat je simpelweg onmogelijk door een mens kunt laten uitvoeren. “Vaak zien we dat bedrijven juist aan de data kant problemen hebben in de vorm van ontbrekende eigenschappen en kenmerken. In dit geval was het andersom, en was er zo veel data beschikbaar dat handmatige classificatie van producten geen optie meer is.” Aldus Martijn Schilpzand, Data Scientist bij Squadra Machine Learning Company.
Maar wat voor gevolgen heeft het niet- of incorrect classificeren van producten? Allereerst dus de vindbaarheid die eerder ter sprake kwam, wanneer producten niet aan de hand van filters tevoorschijn komen worden deze minder snel gekocht dan wanneer klanten wel haarfijn producten kunnen filteren en selecties kunnen maken op basis van hun wensen, motorfiets, en budget. Als oplossing kwam er al snel een classificatie algoritme naar voren als potentiële oplossing, maar deze oplossing ging weer gepaard met een geheel nieuwe uitdaging, want voor het trainen van een dergelijk algoritme heb je trainingsdata nodig, en die was er nog niet. “Een deel van de data van CMS was al geclassificeerd, maar een groot deel ook niet. We hebben daarom een applicatie ontwikkeld die het mogelijk maakt om snel en in bulk producten te labelen. Dit leidt weer tot meer labels en classificaties waar om ons algoritme mee te trainen, met als doel natuurlijk om onderdelen uiteindelijk zelf te leren classificeren.” Dit is wat onze Developer Nick Minkels te zeggen had over de applicatie die hij heeft ontwikkeld om te fungeren als opstapje naar het trainen en realiseren van een autonoom classificatie algoritme.
Zoals je misschien al is opgevallen bestaat de oplossing voor CMS dus eigenlijk uit twee delen, enerzijds een classificatie-algoritme, en anderzijds een applicatie om het algoritme te voorzien van trainingsdata door producten snel en in bulk te classificeren. Het totaalplaatje bevond zich voor CMS dus op het snijpunt tussen Development en Data Science, een dynamische manier van samenwerken waar Martijn en Nick met plezier op terugkijken. “Het was een iteratieve manier van samenwerken, iets dat ik zelf als heel prettig heb ervaren. Wanneer Martijn met een probleem kwam wat betreft het classificeren, kon ik dit meteen verwerken in de applicatie. Na wat ‘tweaking’ heen en weer ontstond er weer een nieuwe feature waar Martijn dan weer aan mee aan de slag kon voor het algoritme. Doorloop deze cirkel een aantal keer en je hebt een volledig werkende applicatie staan zoals nu het geval is.” Aldus Nick over hoe de oplevering is voortgekomen uit een herhalend en iteratief proces waarin hij als Developer aan Martijn de tools aanreikt om het algoritme te trainen en te verbeteren.
Maar dat niet alleen, dit project zette ook een stap in de richting van ‘Multi-model’ classificatie door verschillende soorten data te betrekken bij het classificeren van producten, denk bijvoorbeeld aan de bouwtekeningen en afbeeldingen die eerder aan bod kwamen. Voor de niet Data-geletterde kan dit nog steeds moeilijk te omvatten zijn, daarom hebben we Martijn gevraagd om het nog een keer behapbaar uit te leggen; “We focussen ons niet op alléén afbeeldingen of alléén tekst om ons algoritme te trainen, maar betrekken eigenlijk alle randinformatie die er beschikbaar is over een onderdeel. Dit kunnen afbeeldingen zijn, maar ook kleuren, teksten, merken, en ga zo maar door. Dit gebruik van data uit meerdere verschillende ‘velden’ als het ware, noem je multi-level classification.” Er is dus een diversiteit aan data gebruikt om dit algoritme te trainen, dit zorgt over het algemeen voor algoritmes die beter presteren dan zogenaamde single-level classifiers, dit betreft dus classificatie algoritmen die zijn getraind op bijvoorbeeld enkel en alleen afbeeldingen, of tekst.
Met dank aan de software die Martijn en Nick hebben ontwikkeld heeft CMS tot op heden ruim een half miljoen producten geclassificeerd. Als we daarnaast even de tijd nemen om uit te zoomen zien we dat CMS dankzij deze classificaties de navigatiestructuur van hun website heeft verbeterd. Wanneer klanten zich beter, sneller, en efficiënter een weg weten te wanen door deze oceaan aan onderdelen worden producten ook sneller gekocht. Verder betekent dit ook een verbetering van de algehele customer journey, waar in dit geval de laatste touchpoints dus worden geoptimaliseerd aan de hand van onze software.