Vizuális keresés a kiskereskedelemben az Azure Cosmos DB-vel

Blob Storage
Cosmos DB
Kubernetes Service
SQL Database

A mesterséges intelligencia lehetőséget kínál a kiskereskedelem átalakítására, ahogy azt ma ismerjük. Ésszerű azt hinni, hogy a kiskereskedők egy AI által támogatott ügyfélélmény-architektúrát fejlesztenek. Néhány elvárás az, hogy az AI-val bővített platform a hiper-személyre szabás miatt megnövekedett bevételt biztosít. A digitális kereskedelem továbbra is fokozza az ügyfelek elvárásait, preferenciáit és viselkedését. Az olyan igények, mint a valós idejű bevonás, a releváns javaslatok és a hiper-személyre szabás, egy kattintással gyors és kényelmes megoldást jelentenek. A természetes beszéd, a látás és egyebek révén lehetővé tesszük az intelligenciát az alkalmazásokban. Ez az intelligencia olyan fejlesztéseket tesz lehetővé a kiskereskedelemben, amelyek növelik az értéket, miközben megzavarják az ügyfelek üzletét.

Ez a dokumentum a vizuális keresés AI-koncepciójával foglalkozik, és néhány fontos szempontot kínál annak implementálásával kapcsolatban. Példaként szolgál a munkafolyamatra, és leképi a fázisait a megfelelő Azure-technológiákra. A koncepció azon alapul, hogy az ügyfelek képesek kihasználni a mobileszközükkel készített vagy az interneten található képeket. A tapasztalatok szándékától függően releváns és hasonló elemeket keresnek. Így a vizuális keresés javítja a több metaadatponttal rendelkező kép szöveges bejegyzésének sebességét, hogy gyorsan felszínre hozhassa az összes rendelkezésre álló vonatkozó elemet.

Vizuális keresőmotorok

A vizuális keresőmotorok a képeket bemenetként és gyakran – de nem kizárólagosan – kimenetként használva kérik le az információkat.

A motorok egyre gyakoribbak a kiskereskedelmi iparban, és nagyon jó okokból:

  • A 2017-ben közzétett Emarketer-jelentés szerint az internethasználók körülbelül 75%-a keres képeket vagy videókat egy termékről a vásárlás előtt.
  • A Slyce (vizuális kereső vállalat) 2015-ös jelentése szerint a felhasználók 74%-a is nem hatékonynak találja a szöveges kereséseket.

Ezért a piackép-felismerési piac 2019-ig több mint 25 milliárd dollárt ér majd a Markets & Markets kutatása szerint.

A technológia már foglalta a nagy e-kereskedelmi márkák, akik szintén jelentősen hozzájárultak a fejlődéshez. A legkiválóbb korai örökbefogadók valószínűleg:

  • Az eBay-en a Képkereső és a "Keresés az eBay-en" eszközökkel az alkalmazásukban (ez jelenleg csak mobilélmény).
  • Pinterest a Lens vizuális felderítési eszközével.
  • Microsoft Bing Visual Search szolgáltatással.

Bevezetés és alkalmazkodás

Szerencsére nincs szükség nagy számítási teljesítményre ahhoz, hogy profitáljon a vizuális keresésből. A képkatalógussal rendelkező vállalatok kihasználhatják a Microsoft Azure-szolgáltatásaiba épített AI-szakértelmét.

Bing Visual Search API-val környezeti információkat nyerhet ki képekből, azonosíthatja például a lakberendezési tárgyakat, a divatot, a különféle termékeket stb.

Emellett vizuálisan hasonló képeket ad vissza a saját katalógusából, a relatív vásárlási forrásokkal rendelkező termékeket, a kapcsolódó kereséseket. Bár érdekes, ez korlátozottan használható, ha a vállalat nem tartozik ezek közé a forrásokba.

Bing a következőket is biztosítja:

  • Címkék, amelyek lehetővé teszik a képen található objektumok vagy fogalmak felfedezését.
  • Határolókeretek a kép szempontjából érdekes régiókhoz (például ruházati vagy bútorelemekhez).

Ezeket az információkat felhasználhatja, hogy jelentősen csökkentse a keresési területet (és az időt) a vállalat termékkatalógusában, így azokat olyan objektumokra korlátozhatja, mint a régióban és az érdeklődési kategóriába tartozók.

Saját implementálás

A vizuális keresés implementálásakor figyelembe kell venni néhány kulcsfontosságú összetevőt:

  • Képek betöltése és szűrése
  • Storage és lekérési technikák
  • Jellemzősítés, kódolás vagy "kivonatolás"
  • Hasonlósági mértékek vagy távolságok és rangsorolás

1. ábra: Példa a Visual Search-folyamatra

A képek beszerzése

Ha nem rendelkezik képkatalógussal, előfordulhat, hogy be kell tanítania az algoritmusokat a nyíltan elérhető adatkészleteken, például a divat MNIST-jén, a mély divaton stb. Számos termékkategóriát tartalmaznak, és gyakran használják képkategorizálási és keresési algoritmusok összehasonlítására.

2. ábra: Példa a DeepFashion adatkészletből

A képek szűrése

A teljesítményteszt adatkészleteinek többsége, például a korábban említettek, már előre fel lettek dolgozva.

Ha saját teljesítménytesztet készít, legalább azt szeretné, hogy a rendszerképek mérete megegyezzen, többnyire a modell által betanított bemenet határozza meg.

Sok esetben a legjobb, ha normalizálja a képek fényességét is. A keresés részletességi szintjétől függően a szín is redundáns információ lehet, ezért a fekete-fehérre való csökkentés segít a feldolgozási időkben.

Végül, de nem utolsósorban a képadatkészletet el kell osztani az általa képviselt különböző osztályok között.

Képadatbázis

Az adatréteg az architektúra különösen kényes összetevője. A következőket tartalmazza:

  • Képek
  • A képek metaadatai (méret, címkék, termékváltozatok, leírás)
  • A gépi tanulási modell által létrehozott adatok (például képenként 4096 elemű numerikus vektor)

Amikor különböző forrásokból kér le képeket, vagy több gépi tanulási modellt használ az optimális teljesítmény érdekében, az adatok szerkezete megváltozik. Ezért fontos olyan technológiát vagy kombinációt választani, amely képes részben strukturált adatokkal és rögzített séma nélkül kezelni.

Szükség lehet legalább néhány hasznos adatpontra (például képazonosítóra vagy kulcsra, termékváltozatra, leírásra vagy címkemezőre).

Az Azure CosmosDB biztosítja a szükséges rugalmasságot és számos különböző hozzáférési mechanizmust a rá épülő alkalmazásokhoz (ez segít a katalógusban való keresésben). Azonban óvatosnak kell lennie, hogy a legjobb árat / teljesítményt vezesse. A CosmosDB lehetővé teszi a dokumentummellékletek tárolását, de fiókonként teljes korlát van érvényben, ami költséges javaslat lehet. Gyakori eljárás, hogy a tényleges képfájlokat blobokban tárolja, és az adatbázisba beszúrja a rájuk mutató hivatkozást. A CosmosDB esetében ez azt jelenti, hogy létre kell hoznia egy dokumentumot, amely tartalmazza a képhez társított katalógustulajdonságokat (például termékváltozatot, címkét stb.), valamint egy mellékletet, amely tartalmazza a képfájl URL-címét (például az Azure Blob Storage-ban, OneDrive stb.).

3. ábra: CosmosDB hierarchikus erőforrásmodell

Ha ki szeretné használni a Cosmos DB globális terjesztésének előnyeit, vegye figyelembe, hogy az replikálja a dokumentumokat és a mellékleteket, a csatolt fájlokat azonban nem. Ezekhez érdemes lehet tartalomterjesztési hálózatot használni.

Más alkalmazható technológiák a Azure SQL Database (ha a rögzített séma elfogadható) és a blobok, vagy akár az Azure-táblák és -blobok kombinációja olcsó és gyors tárolás és lekérés céljából.

Funkciókinyerési & kódolás

A kódolási folyamat hasznos jellemzőket nyer ki az adatbázisban lévő képekből, és mindegyiket leképezi egy ritka "jellemző" vektorra (egy sok nullával rendelkező vektorra), amely több ezer összetevőből áll. Ez a vektor a képet jellemző jellemzők (például élek és alakzatok) numerikus ábrázolása. Ez hasonlít egy kódhoz.

A jellemzők kinyerésére szolgáló technikák általában átviteli tanulási mechanizmusokat használnak. Ez akkor fordul elő, ha kiválaszt egy előre betanított neurális hálózatot, futtatja rajta az egyes képeket, és a képadatbázisban tárolt jellemzővektort tárolja. Ily módon "átadja" a tanulást annak, aki betanította a hálózatot. A Microsoft számos előre betanított hálózatot fejlesztett ki és tett közzé, amelyeket széles körben használnak képfelismerési feladatokhoz, például a ResNet50-et.

A neurális hálózattól függően a jellemzővektor többé-kevésbé hosszú és ritka, ezért a memória- és tárolási követelmények eltérőek lesznek.

Azt is tapasztalhatja, hogy a különböző hálózatok különböző kategóriákra alkalmazhatók, ezért a vizuális keresés implementálása valójában különböző méretű jellemzővektorokat generálhat.

Az előre betanított neurális hálózatok viszonylag könnyen használhatók, de nem feltétlenül olyan hatékonyak, mint a képkatalógusban betanított egyéni modellek. Ezeket az előre betanított hálózatokat általában a teljesítményteszt adathalmazainak besorolására tervezték, nem pedig a képek adott gyűjteményére való keresésre.

Érdemes lehet módosítani és újratanítást végezni, hogy kategória-előrejelzést és sűrű (azaz kisebb, nem ritka) vektort eredményeznek, amely nagyon hasznos lehet a keresési terület korlátozásához, a memória- és tárolási követelmények csökkentéséhez. Bináris vektorok is használhatók, és gyakran nevezik " szemantikus kivonat" – ez a kifejezés származik a dokumentum kódolási és lekérési technikák. A bináris ábrázolás leegyszerűsíti a további számításokat.

4. ábra: A ResNet módosítása a visual search szolgáltatáshoz – F. Yang et al., 2017

Akár előre betanított modelleket választ, akár saját modellt fejleszt, továbbra is el kell döntenie, hogy hol futtatja a modell jellemzősítését és/vagy betanítását.

Az Azure számos lehetőséget kínál: virtuális gépeket, Azure Batch, Batch AI-t és Databricks fürtöket. A GPU-k használata azonban minden esetben a legjobb árat/teljesítményt nyújtja.

A Microsoft nemrég bejelentette, hogy a GPU-költségek töredékéért ( Brainwave projekt) rendelkezésre állnak az FPGA-k a gyors számításokhoz. Az íráskor azonban ez az ajánlat bizonyos hálózati architektúrákra korlátozódik, ezért a teljesítményüket alaposan ki kell értékelnie.

Hasonlósági mérték vagy távolság

Ha a képeket a jellemzővektor-térben ábrázolják, a hasonlóságok megkeresése az ilyen tér pontjai közötti távolság meghatározásának kérdésévé válik. A távolság meghatározása után kiszámíthat hasonló képekből álló fürtöket, és/vagy definiálhat hasonlósági mátrixokat. A kiválasztott távolságmetrikától függően az eredmények eltérőek lehetnek. A leggyakoribb euklideszi távolságmérő például a valós szám vektorokkal szemben könnyen érthető: a távolság nagyságát rögzíti. Számítás szempontjából azonban nem hatékony.

A koszinusza távolságot gyakran használják a vektor tájolásának rögzítésére, nem pedig annak nagyságára.

Az olyan alternatívák, mint a hamming distance over binary representations trade some accuracy for efficiency and speed.

A vektorméret és a távolságmérő kombinációja határozza meg, hogy milyen nagy számítási és memóriaigényes lesz a keresés.

Keresés rangsorolása &

A hasonlóság meghatározása után ki kell dolgoznunk egy hatékony módszert, amely lekéri a legközelebbi N elemeket a bemenetként átadott elemhez, majd visszaadjuk az azonosítók listáját. Ezt "képrangsorolásnak" is nevezik. Nagy adathalmazok esetén a minden távolság kiszámításához szükséges idő tiltott, ezért a legközelebbi szomszéd algoritmusokat használjuk. Ezekhez több nyílt forráskódú kódtár is létezik, így nem kell az alapoktól kódolnia őket.

Végül a memória- és számítási követelmények határozzák meg a betanított modell üzembehelyezési technológiájának megválasztását, valamint a magas rendelkezésre állást. A keresési terület általában particionálva lesz, és a rangsorolási algoritmus több példánya is párhuzamosan fog futni. A méretezhetőséget és a rendelkezésre állást lehetővé tevő egyik lehetőség az Azure Kubernetes-fürtök . Ebben az esetben célszerű a rangsorolási modellt több tárolóban (a keresési terület partícióinak kezelése) és több csomóponton (magas rendelkezésre állás érdekében) üzembe helyezni.

Közreműködők

Ezt a cikket a Microsoft tartja karban. Eredetileg a következő közreműködők írták.

Fő szerzők:

Egyéb közreműködők:

Következő lépések

A vizuális keresés implementálásának nem kell bonyolultnak lennie. Használhatja Bing, vagy sajátot hozhat létre az Azure-szolgáltatásokkal, miközben kihasználhatja a Microsoft AI-kutatásának és eszközeinek előnyeit.

Próbaverzió

Fejlesztés

Háttér