Créer une expérience d’achat par recherche d’image avec VOVA et Milvus
Aller à :
- Comment fonctionne la recherche d’images ?
- Détection de cibles à l’aide du modèle YOLO
- Extraction de vecteurs de caractéristiques d’images avec ResNet
- Recherche de similarité vectorielle propulsée par Milvus
- L’outil d’achat par image de VOVA
Les achats en ligne ont fortement augmenté en 2020, en hausse de 44 %, en grande partie en raison de la pandémie de coronavirus. Alors que les gens cherchaient à maintenir une distanciation sociale et à éviter tout contact avec des inconnus, la livraison sans contact est devenue une option extrêmement souhaitable pour de nombreux consommateurs. Cette popularité a également conduit les gens à acheter une plus grande variété de biens en ligne, y compris des articles de niche qui peuvent être difficiles à décrire avec une recherche traditionnelle par mots-clés.
Pour aider les utilisateurs à surmonter les limites des requêtes basées sur des mots-clés, les entreprises peuvent créer des moteurs de recherche d’images qui permettent aux utilisateurs d’utiliser des images plutôt que des mots pour effectuer une recherche. Non seulement cela permet aux utilisateurs de trouver des articles difficiles à décrire, mais cela les aide aussi à acheter des choses qu’ils rencontrent dans la vie réelle. Cette fonctionnalité contribue à créer une expérience utilisateur unique et offre une commodité générale que les clients apprécient.
VOVA est une plateforme d’e-commerce émergente qui met l’accent sur l’accessibilité financière et l’offre d’une expérience d’achat positive à ses utilisateurs, avec des annonces couvrant des millions de produits et une prise en charge de 20 langues et de 35 grandes devises. Pour améliorer l’expérience d’achat de ses utilisateurs, l’entreprise a utilisé Milvus afin d’intégrer une fonctionnalité de recherche d’images à sa plateforme d’e-commerce. L’article explore comment VOVA a réussi à créer un moteur de recherche d’images avec Milvus.
Comment fonctionne la recherche d’images ?
Le système d’achat par image de VOVA recherche dans l’inventaire de l’entreprise des images de produits similaires aux images téléversées par les utilisateurs. Le graphique suivant montre les deux étapes du processus du système, l’étape d’importation des données (bleu) et l’étape de requête (orange) :
- Utiliser le modèle YOLO pour détecter les cibles à partir des photos téléversées ;
- Utiliser ResNet pour extraire les vecteurs de caractéristiques des cibles détectées ;
- Utiliser Milvus pour la recherche de similarité vectorielle.
Processus du système de la fonctionnalité de recherche par image de VOVA.
Détection de cibles à l’aide du modèle YOLO
Les applications mobiles de VOVA sur Android et iOS prennent actuellement en charge la recherche d’images. L’entreprise utilise un système de détection d’objets en temps réel à la pointe de la technologie appelé YOLO (You only look once) pour détecter des objets dans les images téléversées par les utilisateurs. Le modèle YOLO en est actuellement à sa cinquième itération.
YOLO est un modèle à une étape, utilisant un seul réseau neuronal convolutif (CNN) pour prédire les catégories et les positions de différentes cibles. Il est petit, compact et bien adapté à une utilisation mobile.
YOLO utilise des couches convolutives pour extraire les caractéristiques et des couches entièrement connectées pour obtenir les valeurs prédites. S’inspirant du modèle GooLeNet, le CNN de YOLO comprend 24 couches convolutives et deux couches entièrement connectées.
Comme le montre l’illustration suivante, une image d’entrée de 448 × 448 est convertie par un certain nombre de couches convolutives et de couches de pooling en un tenseur de dimension 7 × 7 × 1024 (représenté dans le troisième cube en partant de la fin ci-dessous), puis convertie par deux couches entièrement connectées en une sortie de tenseur de dimension 7 × 7 × 30.
La sortie prédite de YOLO P est un tenseur bidimensionnel, dont la forme est [batch,7 ×7 ×30]. À l’aide du slicing, P[:,0:7×7×20] correspond à la probabilité de catégorie, P[:,7×7×20:7×7×(20+2)] correspond à la confiance, et P[:,7×7×(20+2)]:] correspond au résultat prédit de la boîte englobante.
Architecture du réseau YOLO.
Extraction de vecteurs de caractéristiques d’images avec ResNet
VOVA a adopté le modèle de réseau neuronal résiduel (ResNet) pour extraire des vecteurs de caractéristiques à partir d’une vaste bibliothèque d’images de produits et de photos téléversées par les utilisateurs. ResNet est limité car, à mesure que la profondeur d’un réseau d’apprentissage augmente, la précision du réseau diminue. L’image ci-dessous montre ResNet exécutant le modèle VGG19 (une variante du modèle VGG) modifié pour inclure une unité résiduelle via le mécanisme de court-circuit. VGG a été proposé en 2014 et ne comprend que 14 couches, tandis que ResNet est sorti un an plus tard et peut en compter jusqu’à 152.
La structure de ResNet est facile à modifier et à mettre à l’échelle. En changeant le nombre de canaux dans le bloc et le nombre de blocs empilés, la largeur et la profondeur du réseau peuvent être facilement ajustées afin d’obtenir des réseaux dotés de différentes capacités expressives. Cela résout efficacement l’effet de dégénérescence du réseau, où la précision diminue à mesure que la profondeur de l’apprentissage augmente. Avec suffisamment de données d’entraînement, il est possible d’obtenir un modèle aux performances expressives améliorées tout en approfondissant progressivement le réseau. Grâce à l’entraînement du modèle, les caractéristiques sont extraites pour chaque image et converties en vecteurs à virgule flottante de 256 dimensions.
Structure de ResNet.
Recherche de similarité vectorielle alimentée par Milvus
La base de données d’images de produits de VOVA comprend 30 millions d’images et connaît une croissance rapide. Pour récupérer rapidement les images de produits les plus similaires à partir de cet immense jeu de données, Milvus est utilisé pour effectuer une recherche de similarité vectorielle. Grâce à un certain nombre d’optimisations, Milvus offre une approche rapide et simplifiée pour gérer les données vectorielles et créer des applications d’apprentissage automatique. Milvus propose une intégration avec des bibliothèques d’index populaires (par exemple, Faiss, Annoy), prend en charge plusieurs types d’index et métriques de distance, dispose de SDK dans plusieurs langages et fournit des API riches pour gérer les données vectorielles.
Milvus peut effectuer une recherche de similarité sur des jeux de données de mille milliards de vecteurs en quelques millisecondes, avec un temps de requête inférieur à 1,5 seconde lorsque nq=1 et un temps moyen de requête par lots inférieur à 0,08 seconde. Pour créer son moteur de recherche d’images, VOVA s’est appuyé sur la conception de Mishards, la solution middleware de sharding de Milvus (voir le schéma ci-dessous pour sa conception système), afin de mettre en œuvre un cluster de serveurs hautement disponible. En tirant parti de l’évolutivité horizontale d’un cluster Milvus, l’exigence du projet en matière de hautes performances de requête sur des jeux de données massifs a été satisfaite.
Architecture de Mishards dans Milvus.
L’outil d’achat par image de VOVA
Les captures d’écran ci-dessous montrent l’outil d’achat par recherche d’image de VOVA sur l’application Android de l’entreprise.
Captures d’écran de l’outil d’achat par recherche d’image de VOVA.
À mesure que davantage d’utilisateurs recherchent des produits et téléversent des photos, VOVA continuera d’optimiser les modèles qui alimentent le système. De plus, l’entreprise intégrera de nouvelles fonctionnalités Milvus susceptibles d’améliorer davantage l’expérience d’achat en ligne de ses utilisateurs.
Référence
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.mdWinvalid_ending ? final no issue.
Continuer à lire

Build Multimodal Search for 3D Assets with Tripo and Zilliz Cloud
Generate 3D assets with Tripo, then search them by text, image, and metadata with multimodal embeddings and Zilliz Cloud.

Introducing Zilliz CLI and Agent Skills for Zilliz Cloud
Manage your vector database from your terminal or AI coding agent. Zilliz CLI and Agent Skills work with Claude Code, Cursor, Codex, and Copilot.

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.



