Recherche à facettes : Utiliser l'IA pour améliorer la portée et les résultats de la recherche

Découvrez comment utiliser la recherche par facettes dans Elasticsearch pour restreindre rapidement les options au sein des catégories.

Elasticsearch dispose d'intégrations natives avec les outils et fournisseurs d'IA générative leaders du secteur. Consultez nos webinars sur le dépassement des bases de RAG ou sur la création d'applications prêtes à l'emploi avec la Base vectorielle Elastic.

Pour élaborer les meilleures solutions de recherche pour votre cas d'utilisation, commencez un essai gratuit d'Elastic Cloud ou essayez Elastic sur votre machine locale dès maintenant.

Dans cet article, nous verrons comment l'intelligence artificielle (IA), et plus particulièrement l'utilisation de modèles linguistiques avancés tels que GPT-4, peut contribuer à créer des facettes plus contextuelles, les rendant encore plus pertinentes et utiles pour les utilisateurs.

La recherche par facettes est un outil puissant dans les plateformes de commerce électronique. Il permet d'organiser et d'affiner les résultats de la recherche en fonction des caractéristiques des éléments affichés. Souvent confondues avec les filtres, les facettes fonctionnent différemment. Les filtres sont des attributs fixes, définis par des informations toujours présentes dans l'index, telles que la catégorie ou le format d'un produit. Les facettes, quant à elles, sont dynamiques et générées à partir des résultats renvoyés par la recherche exécutée.

Imaginez un catalogue de vêtements : des champs tels que "category" (par exemple, t-shirts, pantalons) ou "gender" (par exemple, homme, femme) sont des filtres qui permettent d'affiner les résultats. Les facettes, quant à elles, reflètent des caractéristiques spécifiques des produits apparaissant dans les résultats, telles que les couleurs communes, les tailles disponibles ou les matériaux. Cela permet une expérience de recherche plus adaptable et contextuelle.

Voici une image dans laquelle nous interagissons avec une facette et pouvons voir les résultats de la recherche filtrés par celle-ci.

Comment l'IA peut améliorer la génération de facettes

L'intelligence artificielle est souvent associée à la recherche sémantique et aux enchâssements, mais qu'en est-il des facettes ? Comment l'IA peut-elle être exploitée pour rendre les facettes plus utiles et plus adaptées au contexte de chaque recherche ?

Une possibilité intéressante consiste à utiliser l'IA pour créer de nouvelles catégorisations qui vont au-delà des classifications traditionnelles de l'index. En analysant les caractéristiques spécifiques du contenu, ces nouvelles catégories peuvent fournir une contextualisation plus riche et plus précise, rendant les facettes plus pertinentes et mieux adaptées aux besoins des utilisateurs. Cela permet d'affiner les résultats de manière plus significative par rapport aux catégories de documents originales.

Comment l'IA peut affiner les classifications de films pour de meilleures recherches

Analysons les films suivants, tous classés actuellement dans le genre dramatique :

  • Requiem for a Dream
    Résumé : Les utopies induites par la drogue de quatre habitants de Coney Island sont brisées lorsque leurs addictions deviennent profondes.
  • American Beauty
    CV : Un père de famille de banlieue, sexuellement frustré, traverse une crise de la quarantaine après s'être entiché de la meilleure amie de sa fille.
  • Good Will Hunting
    CV : Will Hunting, concierge au M.I.T., est doué pour les mathématiques, mais a besoin de l'aide d'un psychologue pour trouver un sens à sa vie.

Cette classification des genres ne rend pas compte des différences subtiles ou des contextes uniques de chaque film. En exploitant l'IA pour analyser les synopsis et les thèmes centraux, nous pouvons créer de nouvelles catégories qui reflètent mieux le véritable contexte de chaque film. Par exemple :

  • Requiem for a Dream - Nouvelle catégorie : "Addiction et dépendance"
  • American Beauty - Nouvelle catégorie : "Crise de la quarantaine"
  • Good Will Hunting - Nouvelle catégorie : "Lutte intellectuelle"

Ces nouvelles catégories rendent les recherches beaucoup plus précises tout en offrant aux utilisateurs des filtres plus significatifs pour affiner leurs résultats. Cette approche est particulièrement efficace lorsque les catégories d'origine sont trop génériques, ce qui permet aux utilisateurs de trouver plus facilement ce qu'ils recherchent.

Créer de nouvelles catégories avec GPT-4 : exemple de recherche à facettes

Dans cet exemple, nous montrerons comment un modèle d'IA peut être utilisé pour créer de nouvelles catégories de films qui sont plus précises et alignées sur le contexte de chaque œuvre. Pour démontrer ce processus, nous utiliserons le pipeline de simulation Elastic avec le service d'inférence OpenAI. Un pipeline comprenant plusieurs processeurs sera créé, dont le processeur de script, qui sera chargé de créer l'invite à exécuter dans le processeur d'inférence, capable de déterminer les nouvelles catégories. Les autres processeurs seront utilisés pour manipuler les données et les champs auxiliaires générés pendant l'exécution du pipeline. Il convient de mentionner que cette logique peut également être appliquée à d'autres outils ou modèles similaires.

Tout d'abord, nous devons créer le point de terminaison de l'inférence, où nous définissons le service comme OpenAI, le jeton requis pour accéder au service et le modèle. Dans cet exemple, j'utilise gpt-4o-mini. Pour plus de détails sur le service d'inférence OpenAI, cliquez ici.

Le point final étant créé, nous sommes maintenant prêts à l'utiliser pour créer les nouvelles catégories. Vous trouverez ci-dessous un pipeline qui prend en charge l'ensemble du processus de manipulation des données des documents et de génération des messages. Je vais expliquer en détail la fonction de chaque processeur.

Le premier processeur sera chargé de construire l'invite. Il est très important de détailler clairement les instructions afin que l'IA puisse analyser et identifier correctement les sujets. Dans ce questionnaire, je demande 2 sujets basés sur l'analyse du titre, de la description et des genres des films.

Le pipeline suivant est le pipeline d'inférence, il recevra l'invite et l'enverra à notre point de terminaison generate_topics_ia. La réponse générée par le modèle sera stockée dans le champ résultat.

Ensuite, nous avons trois processeurs utilisés pour manipuler la réponse et la placer dans le champ des sujets, en plus de supprimer les champs temporaires que j'ai créés.

En exécutant ce pipeline, nous obtiendrons les résultats ci-dessous :

Il est à noter que nous avons de nouvelles catégories qui sont plus en rapport avec le contexte des films, même si certains d'entre eux sont initialement du même genre.

Nous pouvons maintenant utiliser ces nouvelles catégories et les indexer avec le document. Ainsi, lors de la génération des facettes, en plus de la catégorie principale, nous avons des sous-catégories plus spécifiques qui sont alignées sur le contexte des films.

En outre, il est possible de vectoriser ces nouvelles catégories et de les utiliser dans des recherches vectorielles. Cela signifie que les nouvelles catégories ne servent pas seulement de filtres, mais qu'elles peuvent également être utilisées pour calculer les similitudes sémantiques avec les termes de recherche, ce qui augmente encore la pertinence des résultats présentés.

Pipeline complet :

Conclusion

L'utilisation de l'IA pour améliorer les facettes peut transformer l'expérience de recherche en rendant les résultats plus spécifiques et contextuels. Contrairement aux catégories fixes, qui sont souvent larges, les catégories générées par l'IA peuvent mieux refléter le contexte. Par exemple, lors de la reclassification des films, nous pouvons saisir le contexte qui échappe aux catégories primaires, ce qui permet d'obtenir des regroupements beaucoup plus pertinents.

Ces nouvelles catégories peuvent être ajoutées à l'index non seulement pour améliorer les facettes, mais aussi pour permettre des recherches vectorielles. Il en résulte une expérience de recherche plus efficace, avec des filtres mieux adaptés au contexte.

Références

https://www.elastic.co/guide/en/elasticsearch/reference/current/infer-service-openai.html

https://www.elastic.co/guide/en/elasticsearch/reference/current/simulate-pipeline-api.html

https://www.elastic.co/guide/en/elasticsearch/reference/current/script-processor.html

Questions fréquentes

Qu'est-ce que la recherche à facettes ?

La recherche à facettes est un outil des plateformes de commerce électronique. Il permet d'organiser et d'affiner les résultats de la recherche en fonction des caractéristiques des éléments affichés.

Comment l'IA peut-elle améliorer la recherche à facettes ?

L'IA peut améliorer la génération de facettes dans la recherche en créant de nouvelles catégorisations qui vont au-delà des classifications traditionnelles dans l'index, rendant les résultats plus spécifiques et contextuels.

Pour aller plus loin

Prêt à créer des expériences de recherche d'exception ?

Une recherche suffisamment avancée ne se fait pas avec les efforts d'une seule personne. Elasticsearch est alimenté par des data scientists, des ML ops, des ingénieurs et bien d'autres qui sont tout aussi passionnés par la recherche que vous. Mettons-nous en relation et travaillons ensemble pour construire l'expérience de recherche magique qui vous permettra d'obtenir les résultats que vous souhaitez.

Jugez-en par vous-même