Come VIPSHOP ha potenziato il suo sistema di raccomandazione e-commerce rendendolo 10 volte più veloce con Milvus
I sistemi di raccomandazione sono diventati indispensabili per il successo dell'e-commerce, agendo come un catalizzatore strategico per migliorare l'esperienza utente, stimolare il coinvolgimento dei clienti e aumentare i ricavi aziendali. VIPSHOP, il pioniere del retail online in Cina, si è trovato di fronte a un momento critico. Con una base clienti in rapida crescita che superava i 52 milioni e un incremento annuale di 270 milioni di ordini, il suo sistema di raccomandazione legacy basato su Elasticsearch si è rivelato lento e inadeguato. La necessità di una soluzione più veloce e personalizzata in VIPSHOP è diventata sempre più urgente. In questo post, approfondiremo le sfide affrontate da VIPSHOP e come l'adozione di Milvus abbia migliorato il suo sistema di raccomandazione.
La ricerca di un motore di ricerca vettoriale efficiente
Il fondamento di un sistema di raccomandazione agile risiede nella sua capacità di ricerca vettoriale, che è fondamentale per fornire tempestivamente risultati semanticamente simili. VIPSHOP inizialmente si affidava a Elasticsearch per la ricerca vettoriale, ma presto ha dovuto affrontare delle sfide con l'espansione della sua gamma di prodotti. Il sistema legacy ha incontrato due ostacoli principali—tempi di risposta prolungati e costi di manutenzione in forte aumento.
Il rallentamento è stato attribuito all'elevata latenza di Elasticsearch nel recupero dei risultati Top-K, con una media di 300 ms. Il tempo di risposta finale durava diversi secondi, influenzando negativamente l'esperienza utente quando combinato con le successive fasi di elaborazione. Inoltre, gli indici condivisi si sono trasformati in un labirinto complesso, facendo aumentare i costi di costruzione e manutenzione. Nonostante i tentativi di rivitalizzare Elasticsearch con un plugin di hashing, i risultati sono stati inferiori alle aspettative. La ricerca di un nuovo stack di ricerca vettoriale è diventata il bis del team per un sistema di raccomandazione reattivo.
VIPSHOP ha scelto Milvus per aggiornare il suo sistema di raccomandazione
Milvus è un database vettoriale open-source che promette velocità e una sinfonia di funzionalità in grado di gestire miliardi di embedding vettoriali. Offriva inoltre il fascino del deployment distribuito, SDK multilingua e separazione lettura/scrittura—una composizione che superava Elasticsearch e altre tecnologie di ricerca vettoriale. Dopo un'attenta considerazione e valutazione, VIPSHOP ha scelto Milvus per ricostruire il suo sistema di raccomandazione.
Come funziona Milvus nel sistema di raccomandazione di VIPSHOP
Il diagramma offre uno sguardo all'architettura del sistema di raccomandazione di VIPSHOP basato su Milvus.
Un modello di deep learning converte le caratteristiche dei prodotti in embedding vettoriali. Questi embedding vengono quindi inseriti in Milvus per l'archiviazione e il recupero utilizzando MySQL e uno strumento ETL.
Allo stesso tempo, le query e le preferenze di acquisto dei consumatori subiscono una trasformazione simile in embedding vettoriali, avviando una ricerca di similarità all'interno di Milvus. Qui, Milvus esegue una ricerca Approximate Nearest Neighbors (ANN) valutando le distanze spaziali tra i vettori dei consumatori e dei prodotti, fornendo i risultati Top-K più rilevanti. Infine, questo risultato viene presentato ai consumatori.
Milvus ha dimostrato una notevole efficienza sia nei processi di aggiornamento dei dati sia in quelli di recall.
L'aggiornamento dei dati e il recall sono fondamentali per una ricerca vettoriale rapida e raccomandazioni personalizzate all'interno di questa complessa orchestrazione. La procedura di aggiornamento dei dati garantisce una sincronizzazione senza interruzioni, coinvolgendo attività come la scrittura dei dati vettoriali, il rilevamento dei volumi di dati, la costruzione degli indici, il pre-caricamento degli indici e la gestione degli alias. D'altra parte, il processo di recall, parte integrante delle raccomandazioni di prodotto, comporta il recupero dei vettori relativi alle query e ai comportamenti di acquisto dei consumatori, il calcolo delle loro distanze e l'unione dei risultati.
Milvus ha dimostrato una notevole efficienza e agilità sia nei processi di aggiornamento dei dati sia in quelli di recall, raggiungendo una latenza media di appena 10 ms. La tabella seguente illustra le metriche di prestazione di tre servizi Milvus principali relativi all’aggiornamento dei dati e al recall.
| Service | Role | Input Parameters | Output parameters | Response latency |
|---|---|---|---|---|
| Acquisizione dei vettori utente | Ottenere il vettore utente | info utente + query | vettore utente | 10 ms |
| Ricerca Milvus | Calcolare la similarità vettoriale e restituire i risultati Top-K | vettore utente | vettore item | 10 ms |
| Logica di scheduling | Recall e fusione concorrenti dei risultati | Vettori item richiamati da più canali e punteggio di similarità | item Top-K | 10 ms |
Migliorare le esperienze utente con raccomandazioni 10 volte più rapide e una vasta riduzione dei costi
L’integrazione di Milvus nel sistema di raccomandazione di VIPSHOP ha rimodellato lo scenario, inaugurando una nuova era di esperienze utente.
Risposte complessive 10 volte più rapide: Milvus ha ridotto i tempi complessivi delle query vettoriali sotto i 30 ms. Questa velocità straordinaria rappresenta un’accelerazione di dieci volte rispetto alla precedente soluzione Elasticsearch, garantendo che gli utenti ricevano raccomandazioni fulminee.
Maggiore capacità di gestire l’impennata dei dati aziendali: Il deployment distribuito e le capacità di scaling orizzontale di Milvus hanno consentito al sistema di raccomandazione di VIPSHOP di gestire senza sforzo volumi di dati e query degli utenti in crescita. L’indipendenza nello scalare calcolo e storage si allinea perfettamente con le esigenze in evoluzione di VIPSHOP, offrendo una flessibilità senza pari.
Costi di manutenzione ridotti: Milvus, con i suoi meccanismi di query semplificati, ha aiutato VIPSHOP a ridurre i costi di manutenzione del sistema di raccomandazione. Questa riduzione migliora l’efficienza operativa e contribuisce alla convenienza complessiva della piattaforma.
Sfide con Milvus e lezioni apprese
Nel loro percorso con Milvus, il team di VIPSHOP ha incontrato anche alcune sfide, che ha risolto con l’aiuto del team di supporto tecnico di Zilliz. In questa sezione, hanno condiviso le lezioni apprese e gli insight acquisiti per ottimizzare le prestazioni del sistema. * L’adozione di una strategia di deployment con separazione lettura-scrittura può migliorare le prestazioni complessive del sistema quando le operazioni di lettura hanno la precedenza.
Il client Java di Milvus non dispone di un meccanismo di riconnessione intrinseco perché risiede in memoria all’interno del servizio di recall. Il team VIPSHOP ha creato un connection pool dedicato per garantire una connettività costante, implementando un test heartbeat tra il client Java e il server.
Le occasionali query lente in Milvus sono attribuite a un warm-up insufficiente delle nuove collection. Per affrontare questa sfida, il team VIPSHOP ha implementato una strategia di simulazione di query sulla collection appena creata.
Raggiungere il giusto equilibrio tra prestazioni di retrieval e accuratezza è cruciale. Il team VIPSHOP raccomanda di condurre meticolosi esperimenti di stress test su misura per lo specifico scenario di business. Impostare un valore di soglia ragionevole è fondamentale per ottimizzare efficacemente questi parametri.
Negli scenari che coinvolgono dati statici, un approccio efficiente consiste nell’importare inizialmente tutti i dati nella collection e rinviare il processo di creazione dell’indice a una fase successiva.
Continua a leggere

How Zilliz Saw the Future of Vector Databases—and Built for Production
An inside look at how Zilliz built vector databases for real-world use, focusing on scalability, stability, and running them reliably at scale.

Vector Databases vs. Document Databases
Use a vector database for similarity search and AI-powered applications; use a document database for flexible schema and JSON-like data storage.

Vector Databases vs. Graph Databases
Use a vector database for AI-powered similarity search; use a graph database for complex relationship-based queries and network analysis.



