Data Science Team bij ParallelDots - Eindejaarsrapport PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Data Science Team bij ParallelDots โ€“ Eindejaarsrapport

Data Science Team bij ParallelDots - Eindejaarsrapport PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

2020 [en de eerste helft van 2021] was een zwarte zwaan. Gezinnen, verenigingen en bedrijven moesten dingen onder ogen zien die ze niet hadden kunnen bedenken. In dit bericht zal ik proberen te benadrukken hoe het ParallelDots AI-team zich in deze periode heeft aangepast en heeft gebouwd voor de volgende generatie van onze AI-oplossingen voor de detailhandel.

ParallelDots ging in februari 2020 over op de volledige modus voor werken op afstand en sindsdien heeft het team elkaar een dag niet fysiek ontmoet. Daarvoor waren we altijd een zeer hechte eenheid geweest en dus werden de eerste paar weken volledig besteed aan het opbouwen van een werkcultuur op afstand. We moesten nadenken over een betere communicatie en een heel andere eigendomsstructuur. Aangezien het bedrijf ook te maken had met een zakelijke schok, waren het zware weken. Persoonlijk ben ik trots op de manier waarop ons team met de druk omging en niet alleen aangepast maar evolueerde om de karnmachine met toptechnologie te worden die het altijd is geweest. Slechts een paar weken van aanpassingen en we waren weer geweldig.

Uitdagingen voor AI-team [circa maart 2020]

[Misschien vind je het 'waarom' van verschillende AI-algoritmen en systemen die we aan het bouwen zijn saai, ik weet het omdat ik ๐Ÿ˜‰ zou hebben, voor het geval je alleen geรฏnteresseerd bent in het 'hoe', of alle nieuwe coole technologie en algoritmen sectie, ga naar de sectie 'Nieuwe systemen en algoritmen']

De rol van het ParallelDots AI-team is het oplossen van verschillende problemen die onze AI-trainings- en implementatie-infrastructuur bij ParallelDots belemmeren. U kunt deze uitdagingen onderverdelen in: A. AI-training en nauwkeurigheidsknelpunten [of onderzoeksknelpunten] en B. Deployment/inference bottlenecks [of MLOPS-knelpunten zoals wij ze noemen] . In het begin van 2020, terwijl onze AI-technologie al meer dan een miljoen afbeeldingen per maand verwerkte, waren enkele uitdagingen die we moesten oplossen om het op te schalen:

  1. Een inferentie-infrastructuur implementeren die automatisch kan worden opgeschaald voor het geval er te veel retail-images zijn om te verwerken om onze SLA's te behouden en ervoor te zorgen dat de implementatie wordt verkleind voor kleine workloads. GPU's zijn kostbare machines en het hebben van een statische [of kant-en-klare of handmatige devops]-infrastructuur is een koord tussen het voldoen aan SLA's en het vermijden van hoge kosten.
  2. Onze computervisie-algoritmen voor de detailhandel op de telefoon laten draaien. We hadden altijd gedacht aan een nieuw product waarbij on-edge AI kan worden gebruikt in de telefoon bij kleine winkels met een trage internetverbinding voor facturering/GRN/voorraadbeheer. En niet alleen dat, sommige van onze potentiรซle Shelfwatch-klanten wilden implementaties die in winkels konden worden gebruikt voor snelle conclusies zonder te wachten op het uploaden en verwerken van afbeeldingen. We waren ons ervan bewust dat als we onze AI-algoritmen voor de detailhandel op telefoons zouden kunnen laten draaien, dit ons zou helpen ons tweede droomproduct te bouwen, maar ook dat ons bestaande product nieuwe klanten zou krijgen. Beide bovenstaande uitdagingen zijn MLOPS-uitdagingen zoals wij ze noemen.
  3. Maatvarianten van producten detecteren in afbeeldingen. Een andere uitdaging was het detecteren van variaties in maatniveaus voor een product in winkelafbeeldingen. Laten we als voorbeeld zeggen dat je een afbeelding hebt voor een plank met chips en dat je de tellingen van niet alleen Lay's magische masala moet detecteren met behulp van AI, maar ook een splitsing moet geven tussen 10 INR / 20 INR / 30 INR-pakketten van Lay's Magic masala in je analyse. Voor mensen die niet in Computer Vision hebben gewerkt, lijkt dit misschien een voor de hand liggend en eenvoudig volgend probleem om op te lossen, aangezien de AI producten op het schap kan detecteren en ze met zeer hoge nauwkeurigheid als merken kan classificeren. Maar je kent de beroemde XKCD #1425 [Er is altijd een relevante XKCD voor alles ๐Ÿ˜‰ ] . Relevante XKCD
  4. Controleren van onderdelen van Point-Of-Sale-Materialen. Een ander onderdeel van het analyseren van schapafbeeldingen, afgezien van het detecteren en identificeren van producten op het schap, is het verifiรซren van de aanwezigheid van verschillende POS-materialen op het schap. Deze point-of-sale materialen zijn dingen die je vaak zou zien in een winkel of kirana-winkel om je heen, zoals schapstrips, uitsparingen, posters, gandola's en demorekken. We hebben heel lang Deep Keypoint-matching voor dergelijke wedstrijden gebruikt en het werkte goed. Na verloop van tijd hadden klanten ons echter gevraagd om POSM niet alleen te verifiรซren in schapafbeeldingen, maar ook om de ontbrekende onderdelen aan te wijzen die een verkoper misschien in een POSM heeft gemist. Een merchandizer kan bijvoorbeeld een poster op een demorek hebben gemist of deze is door een ongeluk in de winkel verwijderd. Om dit zeer nauwkeurig te doen op een niveau waarop beeldclassificatie werkt, hadden we een algoritme nodig dat overal werkt zonder training, aangezien POSM's binnen weken/maanden veranderen.
  5. Het trainen van nauwkeurigere schapproductdetectoren. Retail Shelf Computer Vision is overgestapt op de technologie van het hebben van een generieke schapobjectdetector [elk schapobject eruit halen zonder het te classificeren] in de eerste stap en vervolgens de producten classificeren en vervolgens in de tweede stap worden geรซxtraheerd om de problemen eenstapsdetectoren + classificaties te voorkomen creรซer [enorme productscheefheid in de schappen, waardoor slechte classificatie-outputs / training op veel gegevens per project ontstaan โ€‹โ€‹en geen incrementele winst doordat de AI beter wordt van eerdere projecten enzovoort]. We hadden in 2019 al zo'n systeem van een generieke schapobjectdetector en een state-of-the-art classifier in tweede stap, maar de outputboxvormen van de schapobjectdetector hadden beter gekund.
  6. Eerdere AI-training en foutcorrecties gebruiken om classifiers zowel beter als sneller te trainen. We trainen zoveel classifiers [modellen die schapobjecten classificeren die door het stap 1-algoritme zijn geรซxtraheerd in een van de productmerken die we nodig hebben]. Is er een manier om alle trainingsgegevens die we verzamelen, inclusief fouten van eerdere classifiers, te gebruiken om een โ€‹โ€‹algoritme te maken dat kan helpen nieuwe classifiers zowel snel als nauwkeuriger te trainen, is een vraag die altijd aanwezig is. De vier onderzoeksproblemen [3-6] die je hebt gevonden, weerspiegelden nieuwe vereisten van ons shelfwatch-product [3,4] en het verbeteren van de bestaande stapel [5,6]. Nu was er ook een reeks onderzoeksproblemen van onze NLP API's-stack.
  7. Een meer generieke API voor sentimentanalyse. De Sentiment Analysis API die we online hadden, was getraind op interne geannoteerde tweets en kon dus ondanks grote nauwkeurigheid falen bij meer domeinspecifieke dingen, zoals politieke of financiรซle artikelen. In tegenstelling tot tweets zijn zulke verschillende domeinartikelen moeilijk te annoteren door mensen die geen ervaring hebben met het domein van een dataset. Het gebruik van veel niet-geannoteerde gegevens om classifiers te trainen die over het hele domein zouden kunnen werken, was een altijd bestaande uitdaging.
  8. Een nieuwe gerichte sentiment-API. Aspect-gebaseerde sentimentanalyse bestaat al een tijdje. We hadden eindelijk een interne geannoteerde dataset voor een dergelijke analyse, maar ons doel was iets specifieker. We wilden een API bouwen waarin je een zin geeft: "De appel was niet lekker, maar de sinaasappel was echt lekker." zou een negatieve output geven bij analyse op "Apple" of positief bij analyse op oranje. We waren dus gericht op het bouwen van een state-of-the-art Aspect Based Sentiment Analysis-algoritme.

Nu ik je heb verveeld met de details van de uitdagingen die we probeerden op te lossen, komen we tot het interessante deel. Onze nieuwe MLOPS-platforms en -algoritmen.

Nieuwe systemen en algoritmen

Laat me je voorstellen aan mijn nieuwe vrienden, een aantal geweldige technologiesystemen en AI-algoritmen die we de afgelopen tijd hebben ontwikkeld en ingezet om de knelpunten aan te pakken.

Mobiele productherkenning AI of mobiele plankherkenning AI

Inleiding tot ParallelDots Oogashop โ€“ Link

(LinkedIn-feed en video)

We hebben niet รฉรฉn, maar twee verschillende soorten AI-algoritmen op mobiele apparaten gebouwd en geรฏmplementeerd. Je hebt misschien onze extreem virale berichten een paar dagen geleden gezien waarin we de facturering van mobiele telefoons demonstreerden en spraken over offline plankaudits.

Hier is de link naar ShelfWatch's On-Device Image Recognition Feature (ODIN) โ€“ Link

(Artikel)

In wezen zijn deze AI-modellen verkleinde versies van de modellen die we in de cloud implementeren. Met enig verlies aan nauwkeurigheid zijn deze modellen nu klein genoeg om op een telefoon-GPU te draaien [die veel kleiner is dan een dienende GPU]. De nieuwe frameworks voor mobiele implementatie van Tensorflow zijn wat we gebruiken om deze modellen in respectievelijk onze OOGASHOP- en ShelfWatch-app te implementeren.

(Papieren) Compacte Retail Shelf Segmentation voor Mobile Deployment โ€“ Link

Pratyush Kumar, Muktabh Mayank Srivastava

Automatisch schalen van Cloud AI-inferentie

Wanneer de winkels om ongeveer 11 uur opengaan [11:11 uur voor verschillende tijdzones, dat wil zeggen, waar ter wereld onze klanten ook hun verkopers of merchandizers hebben], worden onze servers geconfronteerd met een waanzinnige lading merchandizers die foto's uploaden naar onze cloud om ze te verwerken en te vertellen over hun uitvoeringsscore voor de detailhandel. En dan na XNUMX uur, wanneer de winkels sluiten, hebben we nauwelijks genoeg AI-inferentie-werklast. Hoewel Lambda-achtige autoscaling door veel providers is geรฏntroduceerd, wilden we een cloudonafhankelijke autoscaling-techniek voor onze AI-inferentie-infrastructuur. Als er meer afbeeldingen in onze verwerkingswachtrij staan, hebben we meer GPU's nodig om ze te kraken, anders slechts รฉรฉn of misschien geen. Om dit te doen, werd de volledige AI-inferentielaag verplaatst naar Docker, Kubernetes en KEDA-gebaseerde architectuur waar een willekeurig aantal nieuwe GPU's kan worden voortgebracht op basis van de werklast. Geen koord meer om te proberen de SLA van het bedrijf te beheren en $$ te besparen op de dure GPU-machines.

De algoritmen voor het detecteren van objecten op de plank verbeteren

(papier) Gaussiaanse kaarten leren voor detectie van dichte objecten - Link

Sonaal Kant

We hadden eerder eenvoudige Faster RCNN's gebruikt die waren getraind voor het extraheren van plankobjecten: Basispapier voor eenvoudige objectdetectie . Het werkte goed voor veel gebruikssituaties. maar we hadden meer geavanceerde benaderingen nodig. In 2020 ontdekte ons team een โ€‹โ€‹nieuwe methode om Gauss-kaarten te gebruiken om ultramoderne resultaten te krijgen. Dit werk [later gepubliceerd op BMVC, een van de beste Computer Vision-conferenties BMVC-website ] heeft ons geholpen om niet alleen bevredigende maar ook de best mogelijke resultaten te krijgen bij het detecteren van een plankobject.

Gauss-kaarten leren voor detectie van dichte objectenGauss-kaarten leren voor detectie van dichte objecten

De truc is in wezen om Gauss-kaarttraining te gebruiken als een extra verlies voor objectdetectie. Dit maakt de dozen voor verschillende producten veel nauwkeuriger.

Een andere vraag die we al heel lang proberen te beantwoorden op het gebied van detectie van schapobjecten is, nu de noodzaak om producten te herkennen is verplaatst naar een stroomafwaartse taak en de taak is om dozen over alle mogelijke producten te tekenen, is er een manier om de ruis en vervormingen in een enorme niet-geannoteerde dataset te gebruiken voor een betere detectie van plankobjecten. In een recent werk, [vermeld op RetailVision workshop op CVPR 2021 Retail Visie Workshop ], gebruiken we onze gigantische opslagplaats van niet-geannoteerde schapafbeeldingen om de nauwkeurigheid van de detectietaak van schapobjecten te verbeteren.

(Papier) Semi-gesuperviseerd leren voor detectie van dichte objecten in winkelscรจnes - Link

Jaydeep Chauhan, Srikrishna Varadarajan, Muktabh Mayank Srivastava

Psuedolabel-gebaseerde studententraining is een truc die we in meerdere velden hebben gebruikt, niet voor het detecteren van plankobjecten. Terwijl andere zelflerende technieken vereisen dat grote batchgroottes op GPU's worden geladen, waardoor het moeilijk wordt voor een bedrijf met beperkte hardware zoals ParallelDots om ze uit te proberen , pseudolabels is wat we hebben aangepast als onze truc om zelflerend met รฉรฉn GPU te doen.

Semi-gesuperviseerd leren voor detectie van dichte objecten in winkelscรจnes PseudolabelsSemi-gesuperviseerd leren voor detectie van dichte objecten in winkelscรจnes Pseudolabels

Betere classificatienauwkeurigheid

We hebben in het verleden meerdere trucs gebruikt om nauwkeurige classifiers met hoge nauwkeurigheid te trainen.

(Papieren) Zak met trucs voor de classificatie van productafbeeldingen in de detailhandel โ€“ Link, wat illustreert hoe we classifiers met hoge nauwkeurigheid trainen.

Muktabh Mayank Srivastava

Alle dozen die de schapobjectdetector uit een schapafbeelding haalt, worden door deze classificatie geleid om het merk van het product af te leiden.

Truc met trucs voor een betere classificatie in de detailhandelTruc met trucs voor een betere classificatie in de detailhandel

Met de vaak veranderende winkelcatalogi moet onze productclassificatie echter evolueren om de dingen een beetje anders te doen. Het trainen van een classifier is arbeidsintensief, met producten die snel worden toegevoegd aan of verwijderd uit catalogi van winkels, we hebben een classifier nodig die snel kan worden getraind en nauwkeuriger of minstens zo nauwkeurig is als de methoden waarbij de volledige backbone wordt verfijnd. Dit klinkt alsof je een taart hebt en het ook beoordeelt, en dat is wat zelflerende technieken hebben aangetoond in Deep Learning. We hebben geprobeerd concepten van Zelflerend te gebruiken om classificaties te maken die heel licht kunnen worden getraind.

(Paper) Contrastief leren en pseudolabels gebruiken om representaties te leren voor de classificatie van productafbeeldingen in de detailhandel โ€“ Link

Muktabh Mayank Srivastava

De truc die we hier gebruiken, is het gebruik van de enorme opslagplaats van afbeeldingen van winkelproducten die we hebben [zowel geannoteerd als niet-geannoteerd] om een โ€‹โ€‹representatieve leerling te trainen, wiens output kan worden ingevoerd in een eenvoudige Machine Learning-classificator voor training. Dergelijke aangeleerde functierepresentaties werken redelijk goed. Hoe cool is het om een โ€‹โ€‹kleine logistische regressieclassificatie te trainen om winkelafbeeldingen te classificeren. Helaas hebben we meer dan 20 keer meer afbeeldingen voor dergelijke taken, daarom is onze nauwkeurigheid op dit moment beperkt tot de beperkte hardware-infrastructuur om dergelijke zelflerende taken uit te voeren en toch verslaan we de stand van de techniek op veel [niet alle] datasets.

Contrastief leren en pseudolabels gebruiken om representaties te leren voor de classificatie van productafbeeldingen in de detailhandelContrastief leren en pseudolabels gebruiken om representaties te leren voor de classificatie van productafbeeldingen in de detailhandel

Op grootte gebaseerde gevolgtrekking op plankafbeeldingen

man met pakjes blauw legt chipsman met pakjes blauw legt chips

Hoewel we merken van verschillende producten hebben gedetecteerd die te zien zijn in schapafbeeldingen, is een recente specificatie die we hebben geprobeerd op te lossen, te redeneren over welke maatvariant van een product het product is waarvan we afhankelijk zijn. Terwijl Computer Vision-pijplijn bijvoorbeeld een Lays Magic Masala op het schap detecteert en classificeert als Lays Magic Masala, hoe weten we of het een 50 Gram-variant of 100 Gram-variant of 200 Gram-variant van het product is. We nemen dus een derde stroomafwaartse taak op om de groottevariant van het schap te raden. Deze pijplijn neemt de verschillende dozen die uit het schap zijn gehaald, hun merken en creรซert functies die kunnen worden gebruikt om de grootte te raden. Zoals duidelijk is, kunt u de coรถrdinaten van het begrenzingsvak of het gebied niet gebruiken voor zulke redeneringen, aangezien afbeeldingen van elke afstand kunnen worden gemaakt. We gebruiken functies zoals beeldverhouding en oppervlakteverhouding tussen dozen van verschillende groepen om de groottevariant af te leiden.

(Paper) Machine Learning-benaderingen om op grootte gebaseerd te redeneren op Retail Shelf-objecten om productvarianten te classificeren - Link

Muktabh Mayank Srivastava, Pratyush Kumar

Er worden veel feature-engineeringtrucs gebruikt om de twee varianten van de redeneertaak te trainen: XGBOOST gebruiken over binned features en een neuraal netwerk gebruiken over Gaussiaanse mengselmodel afgeleide features.

Machine Learning-benaderingen om op grootte gebaseerd te redeneren op Retail Shelf-objecten om productvarianten te classificerenMachine Learning-benaderingen om op grootte gebaseerd te redeneren op Retail Shelf-objecten om productvarianten te classificeren

Redeneren over materiaal voor verkooppunten

Wanneer u een winkel binnenloopt, ziet u verschillende POSM-materialen: schapstrips, uitsparingen, posters, gaandola's en demorekken.

Colgate point-of-sale materiaal POSM-redeneringColgate point-of-sale materiaal POSM-redenering

Hoewel we op Deep Learning gebaseerde keypoint-representatieovereenkomst hebben gebruikt om de POSM-aanwezigheid in een afbeelding te verifiรซren, was er een taak om deel voor deel over POSM te redeneren. Dat is in het bovenstaande voorbeeld bijvoorbeeld, we kunnen nodig zijn om te controleren of de productfoto naar rechts in de ideale schapstrook aanwezig is op een echte wereldplaatsing of niet. We noemen dit "Onderdeel" detectie na POSM-verificatie.

(papier) Keypoint Matching en Interactive Self Attention Network gebruiken om POSM's voor de detailhandel te verifiรซren - Link

Harshita Seth, Sonaal Kant, Muktabh Mayank Srivastava

Aangezien POSM wekelijks/maandelijks zeer snel verandert, kunt u nooit veel gegevens krijgen om algoritmen voor elke POSM te trainen. We hebben dus algoritmen nodig die op een bepaalde manier trainen op bestaande datasets, zodat ze op elke dataset kunnen worden toegepast. Dat is ons doel met het recente werk van zelfaandachtsnetwerk voor POSM's. We gebruiken gematchte keypoints [op ideale POSM-afbeelding en echte woordafbeelding] en hun descriptoren [van beide afbeeldingen] als invoer voor elk onderdeel afzonderlijk om de exacte aanwezigheid te bepalen.

Keypoint Matching en Interactive Self Attention Network gebruiken om Retail POSM's te verifiรซrenKeypoint Matching en Interactive Self Attention Network gebruiken om Retail POSM's te verifiรซren
Data Science Team bij ParallelDots โ€“ Eindejaarsrapport

Een Sentiment Analysis API die werkt op alle domeingegevens

Wanneer u een model traint om te worden geรฏmplementeerd als een sentimentanalyse-API, kunt u gegevens uit verschillende domeinen niet echt geannoteerd krijgen. Het vorige model voor sentimentanalyse dat we hadden, was bijvoorbeeld een groot taalmodel dat was verfijnd over 10-15 vreemde tweets die we intern hadden geannoteerd. Het algoritme heeft tijdens het leren dus nauwelijks gevoelens uitgedrukt in verschillende domeinen. We hebben geprobeerd Self Learning te gebruiken om ons algoritme voor sentimentclassificatie robuust te maken voor domeinverandering. Neem 2 miljoen + ongeannoteerde zinnen, voer een oudere versie van classifier uit om pseudolabels te maken en train een nieuwe classifier om deze pseudolabels te leren en boem.. je hebt een sentimentclassifier die veel robuuster is, terwijl de nauwkeurigheid in het initiรซle domein de dezelfde. Klinkt te mooi om waar te zijn, bekijk ons โ€‹โ€‹werk:

(Paper) Het gebruik van Psuedolabels voor het trainen van Sentiment Classifiers zorgt ervoor dat het model beter generaliseert over datasets - Link

Natesh Reddy, Muktabh Mayank Srivastava

Een state-of-the-art methode maken om gericht sentiment te detecteren

Voor ons, in NLP API-zaken, is een gericht sentiment wanneer je de zin "Apple was niet zo lekker, maar sinaasappel was goed", een classifier negatief retourneert als het invoer "appel" en positief als het oranje wordt ingevoerd. Kortom, sentiment gericht op een object in een zin. We hebben een nieuwe methode ontwikkeld die gericht sentiment detecteert en die binnenkort beschikbaar zal zijn als NLP API. Het onderzoeksveld komt overeen met Aspect Based sentimentanalyse en ons recente werk krijgt state-of-the-art resultaten in meerdere datasets, gewoon door een architectuur te verfijnen die contextueel [BERT] en niet-contextueel [GloVe] vergelijkt. Het sentiment zit ergens in de context verborgen, toch?

(Paper) Begrijpt BERT sentiment? Gebruikmaken van vergelijkingen tussen contextuele en niet-contextuele inbeddingen om op aspecten gebaseerde sentimentmodellen te verbeteren - Link

Natesh ReddyPranaydeep SinghMuktabh Mayank Srivastava

DEEL 1 - Begrijpt BERT sentiment door gebruik te maken van vergelijkingen tussen contextuele en niet-contextuele inbeddingen om op aspecten gebaseerde sentimentmodellen te verbeterenDEEL 1 - Begrijpt BERT sentiment door gebruik te maken van vergelijkingen tussen contextuele en niet-contextuele inbeddingen om op aspecten gebaseerde sentimentmodellen te verbeteren
DEEL 2 - Begrijpt BERT sentiment door gebruik te maken van vergelijkingen tussen contextuele en niet-contextuele inbeddingen om op aspecten gebaseerde sentimentmodellen te verbeterenDEEL 2 - Begrijpt BERT sentiment door gebruik te maken van vergelijkingen tussen contextuele en niet-contextuele inbeddingen om op aspecten gebaseerde sentimentmodellen te verbeteren
Data Science Team bij ParallelDots โ€“ Eindejaarsrapport

Voorwaarts en voorwaarts

Ik hoop dat je de nieuwe technologie die we vorig jaar hebben ontwikkeld leuk vond. Erg blij om vragen te beantwoorden als je die hebt. We blijven nieuwe en opwindende technologie ontwikkelen en werken aan een aantal nieuwe coole Machine Learning-problemen zoals Graph Neural Networks for Retail Recommendation, Out-Of-Distribution Image Classification en Language Models. We nemen ook mensen aan, schrijf ons op careers@paralleldots.com of solliciteer op onze AngelList-pagina om lid te worden van ons AI-team. Je kunt solliciteren als je Machine Learning Engineer, Backend Developer of AI Project Manager wilt worden. ParallelDots AngelList

Data Science Team bij ParallelDots - Eindejaarsrapport PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Data Science Team bij ParallelDots - Eindejaarsrapport PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Vond je de blog leuk? Bekijk onze andere blogs om te zien hoe beeldherkenningstechnologie merken kan helpen hun uitvoeringsstrategieรซn in de detailhandel te verbeteren.

Wil je zien hoe je eigen merk presteert in de schappen? Klik hier om een โ€‹โ€‹gratis demo voor ShelfWatch in te plannen.

Mede-oprichter en Chief Data Scientist, ParallelDots at ParallelStippen
Laatste berichten door Muktabh Mayank (bekijk alle)

Tijdstempel:

Meer van ParallelStippen