Shoptet - zpracování dodavatelského feedu

Napojení na nový nebo stávající dodavatelský feed nemusí znamenat pouze to, že se přenesou produkty od dodavatele do Shoptetu a potom přichází na řadu jejich nekonečná manuální konfigurace.

Konfiguraci produktů a setů je možno provést již v průběhu zpracování dodavatelského feedu automaticky.

Z níže uvedeného reportu je zřejmé, že ze čtyř dodavatelských feedů (Blanco, Faber, Franke a Sinks) se podařilo doslova vydolovat spousta dalších informací ... konfigurací produktů a setů, což v překladu znamená, že po importu upraveného feedu již není třeba konfigurace jednotlivých produktů nebo setů v Shoptetu.

K původním cca 80 000 konfiguracím prodůktů a setů od dodavalele se dogenerovalo dalších cca 526 000 konfigurací produktů a setů a tyto již není tedy třeba v Shoptetu konfigurovat na jednotlivých produktech, setech.

Import produktového katalogu

Provozovatelé e-shopů od svých dodavatelů dostávají produktové katalogy (feedy) v různých formátech. Import feedů je možný z různých souborých formátů (XML, CSV, XLSX, JSON) a to jak z lokálního úložiště souborů, tak souborů dostupných na definovaném URL odkazu, případně umístěných na FTP serveru.

V rámci importu jsou data feedu uložena pro další zpracování v grafové databázi.

Vytvoření názvu produktu

Velmi často se stává, že dodavatelé ve feedu neuvádějí jednoznačný a smysluplný název produktu. Na základě analýzy obsahu feedu je tedy navržen způsob automatického generování názvu produktu a tento název je vygenerován a k produktu přidán.

Vytvoření krátkého popisu produktu dle šablony

Na základě informací o produktu je prostřednictvím definovaných šablon generován krátký popis produktu.

Vytvoření popisu produktu dle šablony

Na základě informací o produktu je prostřednictvím definovaných šablon generován popis produktu. V případě setů je možno popis vytvořit automaticky na základě popisu jednotlivých produktů a do popisu je také možno vložit prokliky na detaily jednotlivých produktů:

 

Změna názvu parametru

Změnu názvu jednotlivých parametrů je možno provést pro celý feed, nebo např. dle katerie produktu.

Přiklad změny názvu parametru může být například takový, že název Šířka je změněn na název Šířka dřezu a to pouze pro produkty typu dřez.

Změna hodnoty parametru

Změnu hodnot jednotlivých parametrů je možno provést pro celý feed, nebo např. dle katerie produktu.

Přiklad změny hodnoty parametru může být například takový, že hodnotu parametru Šířka, která je 10 cm je změněna na hodnotu 100 mm.

Vytvoření nového parametru

Na základě kombinace existujících parametrů nebo externích definice jsou vytvářeny parametry nové.

Příklad vytvoření nového parametru může být takový, ženapříklad z hodnot parametrů Barva je vytvořen zcelanový parametr Odstín.

Definice informativních parametrů

Ze seznamu existujících parametrů je definován seznam informativních parametrů. Seznam informativních parametrů je společný pro celý feed, nebo může býd definovaný např. na úrovni katerie produktu.


Definice vyhledávacích parametrů

Ze seznamu existujících parametrů je definován seznam vyhledávacích parametrů. Seznam vyhledávacích parametrů je společný pro celý feed, nebo může býd definovaný např. na úrovni katerie produktu.


Nastavení obrázků produktu

Dle informací obsažených ve feedu se identifikuje a označí hlavní a další obrázky produktu.


Nastavení souvisejících souborů produktu

Dle informací obsažených ve feedu se identifikují a označí související soubory produktu.


Změna produktu dle externí definice

Ne všechny informace o jednotlivých produktech jsou dostupné v dodavatelském feedu. Další informace mohou být k dispozici v rámci různých souborých formátů (XML, CSV, XLSX, JSON) a jsou to např. informace o aktuálních cenách, dostupnosti.

Dalším zdrojem informací o produktech může být také již stávající řešení na Shoptetu a export z něho.

 Všechny tyto informace je možno promítnout do informací k jednotlivým produktům.


Zařazení produktu do kategorie

Na základě informací o produktu je prostřednictvím definovaných pravidel produkt zařazen do patřičné kategorie nebo kategorií.


Automatické rozpoznání produktu dle obrázku

Ne vždy jsou informace o produktu uvedené ve feedu dostatečné k tomu, aby bylo možno zařadit produkt do správné kategorie.

V tomto okamžiku nastupuje cloudová služba Custom Vision, která dokáže na základě předpřipraveného modelu z obrázku produktu identifikovat o jaký produkt se jedná. Získané informace jsou následně použity pro zařazení produktu do správné kategorie.


Vytvoření produktových setů

Z existujících produktů v případě, že to dává smysl jsou vytvořeny kombinace produktů tzv. sety. Nové sety přeberou nebo využijí z produktů ze kterých jsou sestaveny maximum možných informací pro odvození názvu, ceny, dostupnosti, parametrů, obrázků, souborů atd.

Tímto způsobem je možno zvýšit počet nabízených produktů na několikanásobek.

Vytvoření obrázku setu

Ke každému nově vytvořenému setu je automaticky, z obrázků produktůze kterých se set skládá, vytvořen také hlavní obrázek setu.


Dohledání souvisejících produktů

Jedním z řešení jak navyšovat hodnotu objednávky je na detailu produktu, v mezikroku nákupu a v prvním kroku objednávky zobrazovat související produkty. K nalezení relevantních produktů, které spolu opravdu souvisí, je využita logika, která kromě jiného využívá také Jaccard Similarity algoritmus. Tento algoritmus mezi sebou porovná všechny produkty s výsledkem je koeficient jak moc jsou si produkty mezi sebou podobné (rozpětí od 0 do 100 %).

https://doplnky.shoptet.cz/souvisejici-produkty

 


Dohledání podobných produktů

K jednotlivým produktům je možno na stránce produktu zobrazovat také alternativní produkty, takže zákazník už se nemusí vracet do kategorie a zdlouhavě hledat další alternativu, K nalezení vhodných alternativních produktů, je využita logika, která kromě jiného využívá také Node embedding algoritmus, t-SNE algorithm a DBSCAN algoritmus.

https://doplnky.shoptet.cz/podobne-produkty


Stažení obrázků a souborů produktu

K stažení obrázků a souborů uvedených v produktovém feedu dochází proto, aby bylo možné vytvořit obrázky nových setů a také proto, že ne vždy jsou obrázky vystavené dodavatelem načteny v průběhu importu do Shoptetu a to z důvodu dlouhých odezev dodavatelských serverů. Proto je vhodnější tyto obrázky a soubory přenést na dostatečně rychlé úložiště.


Publikace obrázků a souborů produktu

Pro vlastní import upraveného dodavatelského feedu do Shoptetu jsou stažené a nově vytvořené obrázky vystaveny a tedy dostupny na nových URL adresách, případně mohou být před vlastním importem upraveného feedu uloženy na SFTP server Shoptetu.

Použité algoritmy


Grafové algoritmy

Kromě toho, že je grafová databáze využita v průběhu zpracování dodavatelského feedu jako databáze, jejím obrovským benefitem jsou grafové algoritmy. V rámci zpracování feedu jsou využity Node embedding a Jaccard Similarity algoritmy.

Jaccard index

Také známý jako Jaccard koeficient podobnosti je hodnota používaná k porovnávání podobnosti a rozmanitosti různých množin. Tento koeficient měří podobnost mezi dvěma konečnými množinami slov a je definován jako velikost průniku těchto množin děleno velikost jejich sjednocení.

V průběhu zpracování dodavatelského feedu je tento algoritmus použit k porovnání všech produktů, tedy výsledek je např. takový, že Produkt A je si s produktem B podobný na 92 %. Toto je následně použito pro dohledání nejvíce podobných produktů ke konkrétnímu produktu (zobrazeno tedy v sekci Varianty produktu).

Embedding

Algoritmy Node Embedding vypočítávají nízkodimenzionální vektorové reprezentace uzlů v grafu. Tyto vektory, nazývané také embeddings, lze použít pro strojové učení. Grafová databáze Neo4j obsahuje následující algoritmy: Node2Vec, GraphSAGE,Random Projection.

V průběhu zpracování dodavatelského feedu je tento algoritmus použit k získání vektorové reprezentace jednotlivých produktů. Příklad vektoru jednoho produktu (10-dimenzí):

[
      -0.47169920802116394,
      1.0007431507110596,
      0.5753238797187805,
      -0.6003082990646362,
      1.2426793575286865,
      -0.9352806806564331,
      -2.0290703773498535,
      -1.7582165002822876,
      0.20200420916080475,
      -1.2233176231384277
]

Nějakým způsobem graficky zobrazit tyto N-dimenzionální vektory je obtížné, je třeba zredukovat počet dimenzí vektoru ideálně na 2 dimenze a pak je možno takovýto vektor zobrazit ve 2-D prostoru, tedy pomocí souřadnic XY. K redukci dimenzí vektoru je použit algoritmus t-SNE.

t-SNE algorithm

Metoda t-distribuované stochastické usazení sousedů (t-distributed Stochastic Neighbor Embedding, dále jen t-SNE) transformuje data z původního m-dimenzionálního prostoru do prostoru s menším počtem dimenzí. Příklad zredukovaného vektoru jednoho produktu (2-dimenze):

[
      71.53583,
      -35.58405
]

Pro zpracování feedu to znamená, že je možno jednotlivé produkty zobrazit ve 2-D prostoru a vizuálně identifikovat, že některé produkty mají k sobě velmi blízko, tvoří shluky produktů což se dále využije v rámci logiky, která se stará o dohledání podobných produktů. Co tedy zbývá je si nějakým způsobem jednotlivé shluky produktů označit a k tomu je použit algoritmus DBSCAN.

DBSCAN

Algoritmus DBSCAN je schopen seskupit do shluku objekty v hustě osídlených oblastech (objekty s mnoha blízkými sousedy) a označit jako šum body, které leží v oblastech s řidším osídlením.

Jednoduše to znamená, že algoritmus každému shluku produktu přidá identifikátor a dle toho je možno následně zjistit, že produkty patří k sobě. Z tohoto výsledku tedy již následně teží logika, která se stará o dohledání podobných produktů.



Azure - Custom Vision Service

Custom Vision Service usnadňuje vytváření a zpřesňování vlastních klasifikátorů obrázků pro rozpoznávání konkrétního obsahu. S využitím špičkových algoritmů strojového učení můžete klasifikátor trénovat, aby rozpoznával to, co je pro vás důležité, jako je třeba kategorizace obrázků vašich produktů nebo filtrování obsahu pro váš web. Stačí nahrát označené obrázky a nechat všechno ostatní na službě Custom Vision Service

Příklad vytrénovaného modelu který je na základě obrázku produktu určit o jaký typ produktu se jedná, v uvedeném příkladu o jaký typ dřezu se jedná. Toto je následně použito pro zaředení produktu do správné kategorie.


Tableau public


Z níže uvedeného reportu je zřejmé, že z dodavatelských feedů se podařilo doslova vydolovat spousta dalších informací ... konfigurací produktů a setů. K původním 80 000 konfiguracím prodůktů od dodavalele se dogenerovalo dalších 526 000 konfigurací produktů a tyto již není tedy třeba v Shoptetu konfigurovat na jednotlivých produktech, setech.