Creare un'esperienza di shopping con ricerca per immagine con VOVA e Milvus
Vai a:
- Come funziona la ricerca per immagini?
- Rilevamento degli oggetti utilizzando il modello YOLO
- Estrazione dei vettori di caratteristiche delle immagini con ResNet
- Ricerca di similarità vettoriale basata su Milvus
- Lo strumento shop by image di VOVA
Lo shopping online è aumentato vertiginosamente nel 2020, con un incremento del 44% in gran parte dovuto alla pandemia di coronavirus. Poiché le persone cercavano di mantenere il distanziamento sociale ed evitare il contatto con estranei, la consegna senza contatto è diventata un'opzione incredibilmente desiderabile per molti consumatori. Questa popolarità ha inoltre portato le persone ad acquistare online una maggiore varietà di beni, inclusi articoli di nicchia che possono essere difficili da descrivere utilizzando una tradizionale ricerca per parole chiave.
Per aiutare gli utenti a superare i limiti delle query basate su parole chiave, le aziende possono creare motori di ricerca per immagini che consentono agli utenti di utilizzare immagini invece di parole per la ricerca. Questo non solo permette agli utenti di trovare articoli difficili da descrivere, ma li aiuta anche ad acquistare cose che incontrano nella vita reale. Questa funzionalità contribuisce a creare un'esperienza utente unica e offre una comodità generale apprezzata dai clienti.
VOVA è una piattaforma di e-commerce emergente che si concentra sulla convenienza e sull'offerta di un'esperienza di acquisto positiva ai propri utenti, con inserzioni che coprono milioni di prodotti e supporto per 20 lingue e 35 principali valute. Per migliorare l'esperienza di acquisto dei suoi utenti, l'azienda ha utilizzato Milvus per integrare la funzionalità di ricerca per immagini nella sua piattaforma di e-commerce. L'articolo esplora come VOVA abbia creato con successo un motore di ricerca per immagini con Milvus.
Come funziona la ricerca per immagini?
Il sistema shop by image di VOVA cerca nell'inventario dell'azienda immagini di prodotti simili ai caricamenti degli utenti. Il seguente grafico mostra le due fasi del processo del sistema, la fase di importazione dei dati (blu) e la fase di query (arancione):
- Utilizzare il modello YOLO per rilevare gli oggetti dalle foto caricate;
- Utilizzare ResNet per estrarre vettori di caratteristiche dagli oggetti rilevati;
- Utilizzare Milvus per la ricerca di similarità vettoriale.
Processo del sistema della funzionalità search by image di VOVA.
Rilevamento degli oggetti utilizzando il modello YOLO
Le app mobili di VOVA su Android e iOS supportano attualmente la ricerca per immagini. L'azienda utilizza un sistema di rilevamento degli oggetti all'avanguardia e in tempo reale chiamato YOLO (You only look once) per rilevare oggetti nelle immagini caricate dagli utenti. Il modello YOLO è attualmente alla sua quinta iterazione.
YOLO è un modello a una fase, che utilizza una sola rete neurale convoluzionale (CNN) per prevedere categorie e posizioni di diversi oggetti. È piccolo, compatto e ben adatto all'uso mobile.
YOLO utilizza strati convoluzionali per estrarre caratteristiche e strati fully-connected per ottenere valori previsti. Traendo ispirazione dal modello GooLeNet, la CNN di YOLO include 24 strati convoluzionali e due strati fully-connected.
Come mostra la seguente illustrazione, un'immagine di input 448 × 448 viene convertita da una serie di strati convoluzionali e strati di pooling in un tensore 7 × 7 × 1024-dimensionale (raffigurato nel terzultimo cubo qui sotto), e poi convertita da due strati fully-connected in un output tensoriale 7 × 7 × 30-dimensionale.
L'output previsto di YOLO P è un tensore bidimensionale, la cui forma è [batch,7 ×7 ×30]. Utilizzando lo slicing, P[:,0:7×7×20] è la probabilità di categoria, P[:,7×7×20:7×7×(20+2)] è la confidence, e P[:,7×7×(20+2)]:] è il risultato previsto della bounding box.
Architettura della rete YOLO.
Estrazione dei vettori di caratteristiche delle immagini con ResNet
VOVA ha adottato il modello di rete neurale residua (ResNet) per estrarre vettori di caratteristiche da un’ampia libreria di immagini di prodotti e da foto caricate dagli utenti. ResNet è limitato perché, all’aumentare della profondità di una rete di apprendimento, l’accuratezza della rete diminuisce. L’immagine qui sotto mostra ResNet che esegue il modello VGG19 (una variante del modello VGG) modificato per includere un’unità residua tramite il meccanismo di corto circuito. VGG è stato proposto nel 2014 e include solo 14 livelli, mentre ResNet è uscito un anno dopo e può averne fino a 152.
La struttura di ResNet è facile da modificare e scalare. Cambiando il numero di canali nel blocco e il numero di blocchi impilati, la larghezza e la profondità della rete possono essere facilmente regolate per ottenere reti con diverse capacità espressive. Questo risolve efficacemente l’effetto di degenerazione della rete, in cui l’accuratezza diminuisce all’aumentare della profondità dell’apprendimento. Con dati di addestramento sufficienti, è possibile ottenere un modello con prestazioni espressive in miglioramento mentre si approfondisce gradualmente la rete. Attraverso l’addestramento del modello, le caratteristiche vengono estratte per ciascuna immagine e convertite in vettori in virgola mobile a 256 dimensioni.
Struttura di ResNet.
Ricerca di similarità vettoriale basata su Milvus
Il database di immagini di prodotti di VOVA include 30 milioni di immagini ed è in rapida crescita. Per recuperare rapidamente le immagini di prodotti più simili da questo enorme set di dati, Milvus viene utilizzato per condurre la ricerca di similarità vettoriale. Grazie a una serie di ottimizzazioni, Milvus offre un approccio rapido e semplificato alla gestione dei dati vettoriali e alla creazione di applicazioni di machine learning. Milvus offre integrazione con librerie di indicizzazione popolari (ad es., Faiss, Annoy), supporta più tipi di indici e metriche di distanza, dispone di SDK in più lingue e fornisce API avanzate per la gestione dei dati vettoriali.
Milvus può condurre ricerche di similarità su set di dati da trilioni di vettori in millisecondi, con un tempo di query inferiore a 1,5 secondi quando nq=1 e un tempo medio di query batch inferiore a 0,08 secondi. Per costruire il suo motore di ricerca di immagini, VOVA ha fatto riferimento alla progettazione di Mishards, la soluzione middleware di sharding di Milvus (vedi il grafico qui sotto per la progettazione del sistema), per implementare un cluster di server ad alta disponibilità. Sfruttando la scalabilità orizzontale di un cluster Milvus, è stato soddisfatto il requisito del progetto di elevate prestazioni di query su enormi set di dati.
Architettura Mishards in Milvus.
Lo strumento shop by image di VOVA
Gli screenshot qui sotto mostrano lo strumento di shopping con ricerca per immagine di VOVA sull’app Android dell’azienda.
Screenshot dello strumento di shopping con ricerca per immagine di VOVA.
Man mano che sempre più utenti cercano prodotti e caricano foto, VOVA continuerà a ottimizzare i modelli che alimentano il sistema. Inoltre, l’azienda incorporerà nuove funzionalità di Milvus che potranno migliorare ulteriormente l’esperienza di shopping online dei suoi utenti.
Riferimento
YOLO:
https://arxiv.org/pdf/1506.02640.pdf
https://arxiv.org/pdf/1612.08242.pdf
ResNet:
https://arxiv.org/abs/1512.03385
Milvus:
https://milvus.io/docs/overview.md
Continua a leggere

From Vector Database to Vector Lakebase
Zilliz offers a fully managed Vector Lakebase powered by Milvus, unifying real-time vector search, lake-scale discovery, and Al data operations.

Zilliz Cloud Audit Logs Goes GA: Security, Compliance, and Transparency at Scale
Zilliz Cloud Audit Logs are now GA, giving enterprises real-time visibility, compliance-ready trails, and stronger security across AWS, GCP, and Azure.

Building RAG Pipelines for Real-Time Data with Cloudera and Milvus
explore how Cloudera can be integrated with Milvus to effectively implement some of the key functionalities of RAG pipelines.



