Blogpost

Order intake optimalisatie door middel van AI

Onlangs hebben Kristof en Nico de workshop “Het order intake proces optimaliseren door middel van Artificial Intelligence (AI)“ gegeven bij VOKA. Aangezien er veel interesse was in dat topic, delen ze hun expertise ook via deze blogpost. 

Hoe ziet het order intake proces er eigenlijk uit?

Schermafbeelding 2019 07 05 om 10.16.42

Het traditionele order intake proces bestaat uit vijf stappen.
In de eerste stap komen er boodschappen binnen via verschillende kanalen. Vaak worden er binnen éénzelfde bedrijf meerdere communicatiekanalen gebruikt. Een boodschap kan zo bijvoorbeeld automatisch binnenkomen via Electronic Data Interchange (EDI) of manueel in een mailbox of via de telefoon. Zodra zo een boodschap goed ontvangen is, moet eerst de bedoeling van de klant geanalyseerd en achterhaald worden: is het een order, een offerte, een klacht, … ? 

Wanneer een order geïdentificeerd is, kan het gecreëerd worden (stap 2).
Als het een complex order is, moet het, vooraleer het bevestigd kan worden, eerst goedgekeurd worden door een supervisor of manager (stap 3).
Eens het order goedgekeurd is, kan het verzameld en verzonden worden (stap 4).
Als laatste stap wordt de invoice opgestuurd naar de klant.  

Er zijn veel handelingen in dat proces die geoptimaliseerd kunnen worden, zoals het plannen van de orderpicking, het verbeteren van afleverroutes, het automatisch creëren van een order op basis van een email, … 

Eind 2018 werden die optimalisaties onderzocht door het American Productivity & Quality Center (APQC). Tijdens die studie werd een groot aantal Amerikaanse bedrijven onderzocht die dat proces al geoptimaliseerd hadden.

Daaruit heeft het APQC verschillende voordelen ontdekt, zoals:

  • Orders worden tot 15 dollar goedkoper
  • Orders worden 46% sneller verwerkt
  • De foutenmarge wordt teruggeschroefd
  • De klanttevredenheid stijgt

Deze blogpost gaat dieper in op één van de eerste stappen van het order intake proces: het identificeren van de bedoeling van een boodschap. 

In de mailbox van een medewerker komen op een heel korte periode meerdere types van boodschappen binnen waardoor manuele systemen die data niet kunnen verwerken en te kort schieten. De medewerker die deze mailbox beheert, gaat sequentieel door de e-mails en handelt die af. Aangezien die persoon voordat hij of zij de boodschap leest niet weet over welke soort boodschap het gaat, is het moeilijk om te prioriteren en kunnen belangrijke boodschappen lang blijven liggen. Het kan ook zijn dat de medewerker zijn of haar mailbox pas in de late namiddag bekijkt en de orders nog snel invoert alvorens de logistieke afdeling sluit.
Dat leidt tot een te hoge workload voor de logistieke afdeling op het einde van de werkdag. 

Uit de onderstaande grafiek kan dat probleem duidelijk afgeleid worden. De grafiek toont aan dat er nog een grote massa orders ingegeven wordt om 15u.  (De grafiek is opgemaakt uit een analyse van de orderinvoer bij een klant)

Schermafbeelding 2019 07 05 om 10.29.40

Hoe kan ervoor gezorgd worden dat medewerkers kunnen prioriteren en orders niet blijven liggen? 

Dat kan gereduceerd worden door AI en het toepassen van een classificatiestrategie.

Door de vraag “Wat is de bedoeling van deze boodschap?” op te lossen, worden er business rules opgezet die gebruikt kunnen worden om de binnenkomende boodschappen automatisch te prioriteren of zelfs om bepaalde boodschappen (zoals tracking info request) automatisch te beantwoorden.
Die strategie is niet zo makkelijk op te bouwen omdat de boodschappen via meerdere kanalen kunnen binnenkomen, in verschillende talen geschreven kunnen zijn, bijlages kunnen bevatten, … Het is natuurlijk ook belangrijk om dat op en zo performant mogelijke wijze te kunnen doen aangezien er misschien nog andere optimalisaties daarna doorgevoerd kunnen worden.

De technische implementatie van die strategie bestaat uit de volgende drie stappen:

    1. Creëer een pdf-bestand van alle bijlages/fax
    2. Gebruik de Google Cloud Vision Service voor tekstextractie
    3. Gebruik het Deep Learning NLP model voor classificatie

Omdat er veel verschillende formaten gehanteerd worden in de bijlages en het onmogelijk is om readers te implementeren voor al die verschillende formaten, is er beslist om alle bijlages met OCR uit te lezen. Als software stack wordt door de Continuum Crafters altijd de voorkeur gegeven aan opensource software.

Stack:

    • Python
    • Tensorflow
    • Docker
    • Elastic Search

De hosting gebeurt via het Google Cloud Platform maar de architectuur is zo opgebouwd dat de software gemakkelijk verplaatst kan worden naar een andere cloud provider.

 

Deep Learning NLP model?

Voordat er dieper ingegaan kan worden op het gebruikte Deep Learning NLP model, worden er ter verduidelijking eerst andere begrippen uitgewerkt. 

Word embeddings

Schermafbeelding 2019 07 05 om 10.41.51

Om machine learning op een tekst te kunnen loslaten, worden van de woorden “embeddings“ gemaakt. Zo een “embedding” vat de betekenis van een woord samen in een vector van een gekozen lengte. Die betekenis wordt geëxtraheerd uit de omliggende woorden van de zinnen waarin het voorkomt. 

Door de werking van algoritmes wordt er een taalmodel gebouwd en kunnen er berekeningen op woorden gedaan worden. In de afbeelding hierboven wordt zo’n taalmodel geschetst, de woorden man en vrouw hebben dezelfde relatie als koning en koningin. 

Convolutional neural networks (CNN)

Schermafbeelding 2019 07 05 om 10.45.27

Een CNN is een type van neuraal netwerk dat dat vooral gespecialiseerd is in beeldverwerking. Een CNN is vooral gebouwd om data te verwerken met hoge dimensionaliteit. Zo heeft een 8k afbeelding input punten van 7680x4320x3 (breedte x hoogte x RGB) en die grootte krijgen de standaard neurale netwerken niet verwerkt. CNN architecturen creëren van een 8k afbeelding een kleinere goed te begrijpen representatie die weinig of zelfs geen belangrijke informatie verliest waardoor het mogelijk wordt om de afbeelding te verwerken met hedendaagse hardware. 

Zo een CNN bestaat meestal uit 3 delen (zie afbeelding):

    1. Verwerking naar beter begrijpbare representatie (convolution + pooling layers)
    2. Standaard neuraal netwerk (fully connected layers)
    3. Classificatie

Om een neuraal netwerk te trainen zodat het bijvoorbeeld dieren kan herkennen, moet een grote dataset voorhanden zijn van paren van afbeeldingen van dieren samen met het dier (gelabelde data). Die afbeeldingen worden dan aan het CNN gevoerd en elke keer als het iets fout herkent (input is een foto van een vogel maar het herkent een ezel), dan wordt het netwerk gestraft. Als het de vogel goed zou herkennen, krijgt dat netwerk een pluim ( = trainen van netwerk).

Door dat genoeg te doen, gaat het netwerk na enige tijd weinig tot geen fouten meer maken en altijd de juiste dieren herkennen.

Gelabelde Data

Om een netwerk te trainen en het klaar te maken voor gebruik, heb je, zoals hierboven beschreven, gelabelde data nodig. Om het order intake proces te optimaliseren kan de data van dat proces bijgehouden worden door het BPM systeem. Daardoor beschikt men snel over voldoende data om een neuraal netwerk te trainen. Die data bestaat uit paren van boodschappen en hun bedoeling, bijvoorbeeld: 

Schermafbeelding 2019 07 05 om 10.54.05

Implementatie

Het gebruikte model is gebaseerd op het artikel “Convolutional Neural Networks for Sentence Classification” van Yoon Kim (2014) (Kim, 2014). In die paper onderzoekt Kim hoe CNNs gebruikt kunnen worden voor tekstclassificatie. Zoals hierboven al beschreven werd, zijn CNNs echter niet gemaakt om tekst te verwerken. Gelukkig kan een tekst omgevormd worden tot een formaat dat gebruikt kan worden als input voor een CNN. Dat gebeurt door middel van “word embeddings”. In de paper presenteert Kim meerdere variaties van dat model om “embeddings” aan te leveren. 

Aangezien de woordenschat die bij zo’n order intake proces komt kijken zeer specifiek is en ook dialectisch getinte woorden kan bevatten, worden er om het neural network te trainen specifieke embeddings opgesteld en aangeleerd. Die worden door de architectuur zelf geleerd op basis van de CNN-multichannel methode besproken in de paper.

Als de tekst getransformeerd is naar een representatie die de CNN architectuur kan verwerken en de juiste bedoelingen van elke boodschap uit de BPM analytics gehaald zijn, kan het CNN getraind worden.

 

 

Voordelen van de optimalisatie van het order intake proces.

In een gecontroleerde test omgeving waar een medewerker non-stop emails met bijlages bekijkt en identificeert, blijkt uit de analyse daarvan dat die persoon nalatig kan zijn. Zo worden bepaalde bijlages niet gelezen of wordt er te snel over de body van de e-mail gegaan. Dat resulteert in een accuraatheid van 98%. 

Als diezelfde case herhaald wordt door het model, resulteert dat in een accuraatheid van 99%. Ook doet het model er maar 54 milliseconden over terwijl een gemiddelde werknemer er 9,4 seconden over doet om de bedoeling van een e-mail te identificeren. Dat lijkt misschien al snel maar dat resultaat is opgetekend in een ideale testomgeving waar de medewerker enkel bezig is met die taak. 

De totale tijd van het binnenkomen van een boodschap tot het starten van de creatie van een order wordt bijna gehalveerd met behulp van het model. Van 41 minuten zonder optimalisatie naar 21 minuten met optimalisatie.
Ook worden de orders beter gespreid over de werkdag behandeld en doorgestuurd naar de logistieke afdeling waardoor de piek op die afdeling op het einde van de werkdag verdwenen is (zoals te zien is in onderstaande grafiek). 

Schermafbeelding 2019 07 05 om 11.00.19

Tijdens de workshop werden er door Nico en Kristof ook nog andere business cases besproken waarop AI toegepast kan worden, zoals workload optimalisatie en dynamic pricing.

Wil je meer weten over één van die use cases of over de implementatie van het automatische order intake proces, contacteer ons dan gerust!

Schermafbeelding 2019 07 05 om 11.04.18 1

Nico Petrakis

Software Crafter

Nico Petrakis behaalde een master Artificial Intelligence aan de universiteit van Maastricht. Momenteel is Nico aan de slag bij J&J waar hij het data science team versterkt met zijn kennis van data visualisatie. Daarnaast werkt Nico mee aan verschillende interne onderzoeksprojecten rond AI.