Je parcours votre contenu pour vous aider à trouver rapidement les réponses à vos questions.
API de recommandation d'images pour les entreprises - Recherche contextuelle
Autrefois, la recherche se limitait à la recherche textuelle et les termes de recherche étaient appelés « mots-clés ». Ces limitations semblent aujourd'hui dépassées, tant nos ordinateurs et téléphones servent à bien d'autres choses. Nous utilisons Shazam pour identifier une chanson entraînante. Nous nous laissons des messages vocaux. Nous prenons des photos pour nous souvenir de lieux et d'objets, et les retrouver plus tard dans d'autres contextes.
Notre dernier défi a consisté à aller au-delà de la recherche textuelle et par mots-clés pour rendre l'expérience client multimodale. Nous avons consacré les douze derniers mois au développement d'une API de récupération d'images ultra-performante.
Cet ebook décrit ce processus de développement.
Notre priorité dès le départ a été de comprendre les besoins des utilisateurs et de concevoir des produits répondant à leurs attentes.
Nous avons utilisé trois technologies au cœur du service API de recommandation d'images – la vectorisation d'images, le hachage vectoriel et la récupération vectorielle – pour effectuer la récupération d'images à grande échelle.
Le résultat va bien au-delà d'une simple API d'images. Nous avons créé un service performant de recherche et de recommandation d'images, applicable à une infinité de cas d'usage métier.
Nous sommes cernés d'images. Le monde des affaires prospère grâce à la visualisation des produits. Pour cartographier l'information. Pour rendre compte. Pour transmettre la couleur, la texture, le style, le lieu et l'ambiance. Pour stimuler l'imagination, faire rêver et intriguer.
Tout cela grâce aux images. Pourtant, nos appareils numériques n'ont commencé à gérer les images de manière vraiment efficace que relativement récemment. Plus nos applications et interfaces s'améliorent dans la visualisation et le tri des images, plus les nouveaux cas d'utilisation potentiels pour les recommandations d'images émergent rapidement , et plus les développeurs s'efforcent de rendre la technologie accessible.
|
Cas d'utilisation |
Solution |
|
Disposez-vous d'une plateforme de vente proposant une large gamme d' articles variés et éphémères ? |
Fournissez des recommandations d'images rapides, pertinentes et personnalisées en fonction du parcours utilisateur. |
|
Vous souhaitez offrir à vos clients une expérience d'achat de type « Trouve-moi ceci » basée sur l'image ? |
Permettre aux consommateurs de comparer des images (prises en magasin ou dans la vie quotidienne) avec les catalogues de produits afin de localiser facilement les articles souhaités en ligne et d'améliorer leur expérience d'achat en ligne. |
|
Vous souhaitez un système qui s'améliore encore au fur et à mesure des recherches de l'utilisateur ? |
Intégrez l'historique de recherche récent dans les résultats pour des recommandations visuelles plus pertinentes. Privilégiez les résultats en fonction de la dernière catégorie consultée ou évitez d'afficher des produits déjà retournés. |
Quelles applications développeriez-vous si vous pouviez associer n'importe quel repère visuel fourni par l'utilisateur au contenu de votre entreprise ?
Lorsque nous nous sommes attelés à la création d'une API de récupération d'images, nous savions que nous serions confrontés à de nouvelles questions et à des paramètres différents.
Une chose resterait toutefois constante : les utilisateurs et leurs attentes.
En 2023, les utilisateurs attendent des réponses instantanées et une interaction fluide de leurs applications et services. Les géants d'Internet ont ouvert la voie en matière de rapidité et disposent des données nécessaires pour comprendre les besoins et les attentes des utilisateurs.
Google a démontré qu'un délai d'une demi-seconde suffisait à faire fuir 20 % du trafic des sites web. Une étude de Netflix a révélé que les spectateurs choisissent un film en moins de deux secondes. Amazon a constaté qu'un décalage de seulement 100 millisecondes lui faisait perdre 1 % de ses ventes mondiales.
Aussi rapide que soit votre stratégie, afficher des résultats erronés est tout aussi préjudiciable. Les utilisateurs veulent, ont besoin et attendent des résultats pertinents. Les statistiques de Google pour la recherche sur ordinateur confirment cette attente : le premier résultat capte un tiers des clics. Le dixième résultat, situé en bas de la première page, reçoit dix fois moins de clics. Deux tiers des utilisateurs se découragent si des résultats non pertinents les obligent à chercher et les empêchent d'accéder à la deuxième page.
Sur mobile, où l'espace à l'écran est encore plus limité, le premier résultat est souvent tout ce qui compte.
Il en va de même pour les nouvelles modalités de recherche, comme les requêtes vocales via des interfaces conversationnelles. Lorsqu'un assistant vocal ne renvoie qu'un seul résultat, l'absence de pertinence équivaut à un échec. Aujourd'hui, le monde est sous le charme de ChatGPT.
Les utilisateurs ont des attentes extrêmement élevées concernant les capacités de langage naturel de leurs applications et interfaces. Ils s'attendent à être compris clairement dès la première fois.
Une étude menée en 2016 par Ewa Luger et Abigail Sellen de Microsoft Research a montré que les utilisateurs avaient des attentes plus élevées envers les systèmes que ce qui était réalistement possible. Plutôt que d'attribuer les erreurs aux limites de l'intelligence artificielle actuelle, les utilisateurs portaient un jugement négatif sur les systèmes lorsqu'ils fournissaient des réponses erronées ou incompréhensibles.
« Nous constatons que les attentes des utilisateurs sont totalement déconnectées du fonctionnement des systèmes, notamment en ce qui concerne l'intelligence artificielle connue, les capacités du système et ses objectifs. »
– EWA LUGER ET ABIGAIL SELLEN (2016),
« Comme avoir un assistant personnel vraiment mauvais » : le fossé entre les attentes et l’expérience des utilisateurs d’agents conversationnels
Les utilisateurs d'aujourd'hui s'attendent à ce que les systèmes qu'ils utilisent comprennent à la fois le texte et les images.
Le système de recommandation PinSage de Pinterest , par exemple, aide les utilisateurs à trouver des « épingles » (images enregistrées) en lien avec leurs centres d'intérêt. Il utilise un réseau neuronal qui traite les annotations visuelles et textuelles afin d'améliorer la pertinence des résultats. En « empruntant » des représentations vectorielles à proximité des épingles, PinSage peut distinguer celles qui partagent des caractéristiques visuelles (par exemple, un poteau de clôture et un pied de lit) mais qui sont sémantiquement et contextuellement différentes (jardin, mais pas chambre).
Les utilisateurs commencent à remarquer l'apparition de ces interactions texte-image sur leurs services préférés. Netflix personnalise les vignettes pour optimiser ces deux secondes précieuses que les spectateurs consacrent à la sélection d'un programme.
Les habitants d'une même ville ou d'un même pays voient des visuels de « boîte » totalement différents pour une même exposition que leurs amis et leurs proches vivant ailleurs.
Les utilisateurs n'attendent pas la multimodalité pour elle-même.
L'objectif est de fournir la réponse la plus pertinente en fonction du contexte spécifique de l'utilisateur. Cela implique de prendre en compte à la fois le texte et l'image, et de personnaliser les résultats avec d'autres facteurs, tels que l'historique de recherche et la localisation.
La technique fondamentale qui rend ces recommandations possibles est la vectorisation d'images. Ce processus convertit les valeurs des pixels d'une image en valeurs numériques, appelées vecteurs.
Pour vectoriser une image, on la traite à l'aide d'un algorithme d'apprentissage profond avancé, un réseau neuronal convolutif (CNN), qui en extrait les caractéristiques pertinentes. Ainsi, le modèle apprend à distinguer les images à des fins de classification, de tri, de recherche et autres tâches liées à l'image.
La profondeur du réseau est cruciale en apprentissage profond. Plus le réseau est profond, plus il comporte de couches, plus on extrait de caractéristiques et meilleures sont les performances pour le traitement d'images.
Au fur et à mesure des progrès réalisés dans le développement des CNN, leur profondeur a considérablement augmenté. Cependant, il s'est avéré que l'ajout de couches ne se contentait pas de ralentir le processus d'entraînement. À un certain point, il dégradait le modèle et engendrait davantage d'erreurs.
Heureusement, en 2015, un article novateur de Microsoft Research a permis aux chercheurs en imagerie de franchir un cap important. Les auteurs de « Deep Residual Learning for Image Recognition » ont conçu un réseau de neurones convolutif (CNN) spécial, le ResNet (Residual Neural Network), capable d'exécuter un plus grand nombre de couches (jusqu'à 152) sans complexifier le système. L'innovation résidait dans l'ajout de raccourcis entre les couches afin de compresser le calcul et d'optimiser le processus. Après avoir exploré différentes profondeurs, les auteurs ont conclu que le compromis idéal se situait entre 18 et 34 couches, les deux configurations offrant une précision similaire.
ResNet 18 a convergé plus rapidement et a offert des performances adéquates pour les besoins d'Algolia, sans allonger le temps d'entraînement. Notre API d'images utilise ResNet 18 pour convertir les images en vecteurs de longueur fixe de 512 bits. Si ce détail peut paraître anodin pour les utilisateurs finaux, il est précieux pour les plateformes de partage de photos. Cela leur permet de comparer des images de tailles très différentes sans se soucier des différences de dimensionnement, un problème courant avec les images générées par les utilisateurs.
Ces vecteurs – essentiellement des coordonnées (un nombre flottant de taille fixe) – sont ensuite représentés dans un espace graphique multidimensionnel. L'ajout de vecteurs flottants soulève un autre problème : comment faire évoluer ce processus ? Si des millions de vecteurs flottants sont présents dans le même espace graphique, comment garantir une classification, une mise en correspondance, une comparaison et une recherche efficaces ?
Nous nous sommes appuyés sur une autre avancée importante : une technique ingénieuse appelée hachage. Ce concept a été introduit pour la première fois sous le nom de « hachage sémantique » dans un article de 1999 par Ruslan Salakhutdinov et Geoffrey Hinton.
Cette méthode regroupe les éléments similaires afin de rendre leur récupération efficace à grande échelle.
Nous montrons comment apprendre un modèle graphique profond à partir des vecteurs de comptage de mots obtenus grâce à un vaste ensemble de documents. Les valeurs des variables latentes de la couche la plus profonde sont faciles à inférer et offrent une représentation bien plus fidèle de chaque document que l'analyse sémantique latente. Lorsque la couche la plus profonde est contrainte d'utiliser un petit nombre de variables binaires (par exemple 32), le modèle graphique effectue un « hachage sémantique » : les documents sont associés à des adresses mémoire de telle sorte que les documents sémantiquement similaires se trouvent à des adresses proches.
- Ruslan Salakhutdinov et Geoffrey Hinton, Hachage sémantique
L'apport essentiel de cette recherche de Salakhutdinov et Hinton réside dans le fait que les modèles d'apprentissage profond visuel peuvent intégrer la signification de ce qu'ils observent et apprendre à rapprocher les éléments apparentés. Ils comprendront, par exemple, la relation entre une casquette et un chapeau.
Notre API d'images intègre cet apprentissage et utilise un type spécifique de hachage proposé en 1999 par Aristides Gionis, Piotry Indyk et Rajeev Motwani.
Le hachage, appelé « Locality Sensitive Hashing » (LSH), convertit les vecteurs flottants en hachages binaires.
Presque tous les systèmes de recherche d'informations rapides reposent, à un degré ou un autre, sur une partition binaire des données. Même une opération comme le facettage fonctionne comme un filtre binaire : un article est-il en stock ou non ? La correspondance par mots-clés implique un filtre binaire : oui, cela correspond ; non, cela ne correspond pas.
L'analyse avancée du catalogue, qui permet par exemple de prédire les articles susceptibles d'être en rupture de stock avant la fin d'une promotion, fonctionne également comme un filtre binaire (vrai/faux). Cet article se vend-il au-dessus ou en dessous des prévisions pour la période en cours ?
Avec LSH, la fonction binaire se résume à une question de proximité. Les éléments de l'ensemble de données sont, selon leurs valeurs vectorielles, soit similaires, soit dissemblables.
« L’idée de base est de hacher les points de la base de données afin de garantir que la probabilité de collision soit beaucoup plus élevée pour les objets proches les uns des autres que pour ceux qui sont éloignés. »
Aristide Gionis, Piotr Indyk, Rajeev Motwani,
« Recherche de similarités en grande dimension par hachage »
Avec LSH, au lieu d'attribuer des caractéristiques binaires qui distinguent les documents similaires des documents différents,
Nous entraînons un modèle d'apprentissage profond pour les découvrir . Ce faisant, nous créons une fonction de hachage binaire sémantique efficace.
Une fois que le modèle sait quels vecteurs fournissent une bonne représentation de ces différentes partitions de nos données, nous pouvons les récupérer efficacement en utilisant la recherche du plus proche voisin (NNS), ou la recherche approximative du plus proche voisin (ANN) pour garantir des résultats accélérés.
Pour cela, notre API de recherche d'images utilise une méthode de pointe basée sur les réseaux de neurones artificiels (RNA) et appelée graphes « Hierarchique, Navigable et Petit Monde » (HNSW). Nous commençons par construire un graphe de proximité, puis nous y positionnons nos vecteurs. Enfin, nous les connectons à leurs voisins. Le graphe peut être parcouru rapidement pour récupérer les meilleures recommandations avec une efficacité remarquable. Si cette performance est attendue pour la plupart des systèmes traitant de petits catalogues, notre nouveau système révolutionne le traitement des catalogues massifs, en atteignant la même efficacité pour des milliers d'articles.
En dernière étape, nous associons les vecteurs pertinents aux métadonnées de l'objet – image, description, prix, etc. – et fournissons des résultats instantanés à l'utilisateur final.
La vectorisation d'images, le hachage binaire et la récupération vectorielle à l'aide de HNSW permettent des recommandations rapides et pertinentes.
Elles se combinent pour créer une API de recommandation d'images puissante et polyvalente, adaptable à d'innombrables cas d'utilisation :
Après qu'un client ait recherché la marque bien connue « A » dans votre catalogue, tirez parti de la puissance de la recherche vectorielle pour proposer des alternatives d'apparence similaire de la marque « B » (peut-être une marque en magasin avec de meilleures marges pour vous, ou une option moins coûteuse pour votre client).
L'API présente également un avantage considérable en termes d'ergonomie. Conçue pour optimiser les requêtes, elle garantit une récupération rapide des données. Les tests ont également démontré d'excellentes performances en matière d'indexation et de latence.
Indexing ~50k images in <1 hour
Handling up to half-a-million images in a few hours
Grâce à l'indexation distribuée, ces résultats peuvent atteindre des centaines d'images par seconde pour répondre aux besoins des utilisateurs sur de vastes catalogues d'images.
Pour plus de simplicité, l'API comprend un nombre limité de paramètres variables, permettant aux entreprises de :
Le problème des recommandations d'images, c'est que l'image seule ne suffit pas. Pour que les entreprises en tirent profit, il est nécessaire de combiner les informations visuelles avec des signaux textuels et commerciaux, tels que la pertinence du texte de la description, la fourchette de prix ou la disponibilité des produits. La combinaison optimale peut varier considérablement d'un cas d'usage à l'autre, d'un client à l'autre et d'une requête à l'autre. Il s'agit de décisions commerciales cruciales.
Notre priorité est de permettre aux entreprises d'exploiter au maximum la recherche d'images contextuelles. Pour ce faire, notre API exécute le modèle d'image brut. Ensuite, l'entreprise prend le relais. Vous pouvez utiliser les propriétés des objets pour filtrer, réorganiser et post-traiter ces résultats selon vos besoins. Vous connaissez mieux que quiconque votre cas d'usage et vos clients.
C’est ce qui rend l’API si expressive. La combinaison d’un modèle d’image brute, de capacités de filtrage et de solutions de repli vous permet de répondre à une infinité de besoins avec un seul et même outil.
Par exemple, une boutique de chaussures en ligne pourrait afficher ses meilleures ventes et des articles similaires de grandes marques sur sa page d'accueil. Parallèlement, la page produit de la marque « A » pourrait présenter des articles similaires de marques moins connues, grâce à des filtres utilisés de manière opposée afin d'affiner l'expérience utilisateur.
Un autre magasin pourrait préférer que sa page d'accueil affiche « articles similaires de la marque « X », mais seulement s'ils sont en stock », tandis qu'une page d'inspiration pour la « prochaine collection » afficherait « articles similaires de la marque X », correspondant aux deux catégories « non disponible » et « Collection Hiver 2024 ».
Fini le temps où « rechercher » signifiait « mots-clés » et « résultats de recherche » signifiaient « pages de texte » et liens.
Les clients veulent des résultats rapides et pertinents, provenant d'interfaces qui les comprennent selon des modalités adaptées à leur requête et au moment présent.
Contactez-nous pour en savoir plus sur l'API de recommandation d'images d'Algolia. En résumé, il s'agit d'un système de recherche de hachage vectoriel d'images puissant et efficace, intégré à une API flexible et déployé au sein d'un service géré.
Nos développeurs peuvent vous aider à concevoir un cas d'utilisation pertinent pour votre catalogue d'images, adapté à votre organisation et permettant d'obtenir rapidement des résultats concrets. Demandez une démonstration dès aujourd'hui et découvrez un monde de possibilités pour connecter vos clients à vos produits et services.