Générer des filtres et des facettes à l'aide de la ML

Exploration des avantages et des inconvénients de l'automatisation de la création de filtres et de facettes dans une expérience de recherche à l'aide de modèles ML par rapport à l'approche classique codée en dur.

Elasticsearch est doté de nouvelles fonctionnalités pour vous aider à créer les meilleures solutions de recherche pour votre cas d'utilisation. Apprenez à les exploiter dans notre webinaire pratique dédié à la création d’une expérience Search AI moderne. Vous pouvez aussi démarrer un essai gratuit sur le cloud ou tester Elastic dès maintenant sur votre machine locale.

Les filtres et les facettes sont des mécanismes utilisés pour affiner les résultats de la recherche et aider les utilisateurs à trouver plus rapidement le contenu ou les produits pertinents. Dans l'approche classique, les règles sont définies manuellement. Par exemple, dans un catalogue de films, des attributs tels que le genre sont prédéfinis pour être utilisés dans les filtres et les facettes. D'autre part, les modèles d'intelligence artificielle permettent d'extraire automatiquement de nouveaux attributs à partir des caractéristiques des films, ce qui rend le processus plus dynamique et plus personnalisé. Dans ce blog, nous explorons les avantages et les inconvénients de chaque méthode, en mettant en évidence leurs applications et leurs défis.

Filtres et facettes

Avant de commencer, définissons ce que sont les filtres et les facettes. Les filtres sont des attributs prédéfinis utilisés pour restreindre un ensemble de résultats. Sur une place de marché, par exemple, des filtres sont disponibles avant même qu'une recherche ne soit effectuée. L'utilisateur peut sélectionner une catégorie, telle que "Jeux vidéo", avant de rechercher "PS5", ce qui permet d'affiner la recherche à un sous-ensemble plus spécifique plutôt qu'à l'ensemble de la base de données. Cela augmente considérablement les chances d'obtenir des résultats plus pertinents.

Les facettes fonctionnent de la même manière que les filtres, mais elles ne sont disponibles qu'une fois la recherche effectuée. En d'autres termes, la recherche renvoie des résultats et, sur la base de ceux-ci, une nouvelle liste d'options d'affinage est générée. Par exemple, lors de la recherche d'une console PS5, des aspects tels que la capacité de stockage, les frais d'expédition et la couleur peuvent être affichés pour aider les utilisateurs à choisir le produit idéal.

Maintenant que nous avons défini les filtres et les facettes, examinons l'impact de l'approche classique et de l'approche basée sur l'apprentissage automatique sur leur mise en œuvre et leur utilisation. Chaque méthode présente des avantages et des inconvénients qui influencent l'efficacité de la recherche.

Approche classique

Dans cette approche, les filtres et les facettes sont définis manuellement sur la base de règles prédéfinies. Cela signifie que les attributs disponibles pour affiner la recherche sont fixés et planifiés à l'avance, en tenant compte de la structure du catalogue et des besoins de l'utilisateur.

Par exemple, sur une place de marché, les catégories telles que "Électronique" ou "Mode" peuvent avoir des filtres spécifiques tels que la marque, le format et la fourchette de prix. Ces règles sont créées de manière statique, ce qui garantit la cohérence de l'expérience de recherche, mais nécessite des ajustements manuels lorsque de nouveaux produits ou de nouvelles catégories apparaissent.

Bien que cette approche permette de prévoir et de contrôler les filtres et les facettes affichés, elle peut s'avérer limitée lorsque de nouvelles tendances apparaissent et exigent un affinement dynamique.

Pour :

  • Prévisibilité et contrôle : Les filtres et les facettes étant définis manuellement, la gestion devient plus facile.
  • Faible complexité : Il n'est pas nécessaire de former des modèles.
  • Facilité de maintenance : Les règles étant prédéfinies, les ajustements et les corrections peuvent être effectués rapidement.

Cons :

  • Réindexation nécessaire pour les nouveaux filtres : Chaque fois qu'un nouvel attribut doit être utilisé comme filtre, l'ensemble du jeu de données doit être réindexé pour s'assurer que les documents contiennent cette information.
  • Absence d'adaptation dynamique : Les filtres sont statiques et ne s'adaptent pas automatiquement aux changements de comportement des utilisateurs.

Mise en œuvre des filtres/facettes - Approche classique

Dans Dev Tools, Kibana, nous allons créer une démonstration de filtres/facettes en utilisant l'approche classique.

Tout d'abord, nous définissons la correspondance pour structurer l'index :

Les champs marque et stockage sont définis comme des mots-clés, ce qui permet de les utiliser directement dans les agrégations(facettes). Le champ prix est de type flottant, ce qui permet de créer des fourchettes de prix.

L'étape suivante consiste à indexer les données relatives aux produits :

Retrouvons maintenant des facettes classiques en regroupant les résultats par marque, rangement et gamme de prix. Dans la requête, la taille:0 a été définie. Dans ce scénario, l'objectif est de récupérer uniquement les résultats de l'agrégation sans inclure les documents correspondant à la requête.

La réponse comprendra des comptes pour la marque, le stockage et le prix, ce qui permettra de créer des filtres et des facettes.

Approche basée sur l'apprentissage automatique/l'intelligence artificielle

Dans cette approche, les modèles d'apprentissage automatique (ML), y compris les techniques d'intelligence artificielle (IA), analysent les attributs des données pour générer des filtres et des facettes pertinents. Au lieu de s'appuyer sur des règles prédéfinies, la ML/AI exploite les caractéristiques des données indexées. Cela permet la découverte dynamique de nouvelles facettes et de nouveaux filtres.

Pour :

  • Mises à jour automatiques : Les nouveaux filtres et facettes sont générés automatiquement, sans qu'il soit nécessaire de procéder à des ajustements manuels.
  • Découverte de nouveaux attributs : Il peut identifier des caractéristiques de données précédemment non prises en compte en tant que filtres, enrichissant ainsi l'expérience de recherche.
  • Réduction des efforts manuels : L'équipe n'a pas besoin de définir et de mettre à jour en permanence les règles de filtrage, car l'IA apprend à partir des données disponibles.

Cons :

  • Complexité de la maintenance : L'utilisation de modèles peut nécessiter une prévalidation pour garantir la cohérence des filtres générés.
  • Nécessite une expertise en ML et en IA : La solution exige des professionnels qualifiés pour affiner et surveiller les performances du modèle.
  • Risque de filtres non pertinents : Si le modèle n'est pas bien calibré, il peut générer des facettes qui ne sont pas utiles aux utilisateurs.
  • Coût : L'utilisation de la ML et de l'IA peut nécessiter des services tiers, ce qui augmente les coûts opérationnels.

Il convient de noter que même avec un modèle bien calibré et une invite bien rédigée, les facettes générées doivent toujours passer par une étape de révision. Cette validation peut être manuelle ou basée sur des règles de modération, garantissant que le contenu est approprié et sûr. Bien qu'il ne s'agisse pas nécessairement d'un inconvénient, il est important de s'assurer de la qualité et de l'adéquation des facettes avant de les mettre à la disposition des utilisateurs.

Mise en œuvre de filtres/façades - Approche IA

Dans cette démonstration, nous utiliserons un modèle d'intelligence artificielle pour analyser automatiquement les caractéristiques des produits et suggérer des attributs pertinents. Avec une invite bien structurée, nous extrayons des informations du catalogue et les transformons en filtres et facettes. Nous présentons ci-dessous chaque étape du processus.

Dans un premier temps, nous utiliserons l'API Inference pour enregistrer un point de terminaison en vue d'une intégration avec un service de ML. Vous trouverez ci-dessous un exemple d'intégration avec le service OpenAI.

Nous définissons maintenant le pipeline permettant d'exécuter l'invite et d'obtenir les nouveaux filtres générés par le modèle.

Lancer une simulation de ce pipeline pour le produit "PlayStation 5", avec la description suivante :

Des jeux époustouflants : Admirez des graphismes époustouflants et découvrez les fonctionnalités de la nouvelle PS5.

Une immersion à couper le souffle : Découvrez une expérience de jeu plus profonde grâce à la prise en charge du retour haptique, des déclencheurs adaptatifs et de la technologie audio 3D.

Un design élancé : Avec la PS5 Digital Edition, les joueurs bénéficient d'une technologie de jeu puissante dans un design élégant et compact.

1 To de stockage : Vos jeux préférés sont prêts à être joués grâce à 1 To de stockage SSD intégré.

Rétrocompatibilité et boost de jeux : La console PS5 peut lire plus de 4 000 jeux PS4. Avec Game Boost, vous pouvez même profiter de taux de rafraîchissement plus rapides et plus fluides dans certains des meilleurs jeux de la console PS4.

Observons la sortie rapide générée par cette simulation.

Un nouveau champ, dynamic_facets, sera ajouté au nouvel index pour stocker les facettes générées par l'IA.

En utilisant l'API Reindex, nous allons réindexer l'index videogames en videogames_1, en appliquant le pipeline generate_filter_ai pendant le processus. Ce pipeline génère automatiquement des facettes dynamiques lors de l'indexation.

Nous allons maintenant lancer une recherche et obtenir les nouveaux filtres :

Résultats :

Pour illustrer la mise en œuvre des facettes, nous présentons ci-dessous une interface simple :

Le code de l'interface utilisateur présenté est ici.

Conclusion

Les deux approches de la création de filtres et de facettes ont leurs avantages et leurs inconvénients. L'approche classique, basée sur des règles manuelles, permet de contrôler et de réduire les coûts, mais elle nécessite des mises à jour constantes et ne s'adapte pas de manière dynamique aux nouveaux produits ou aux nouvelles fonctionnalités.

D'autre part, l'approche basée sur l'IA et l'apprentissage automatique automatise l'extraction des facettes, ce qui rend la recherche plus flexible et permet de découvrir de nouveaux attributs sans intervention manuelle. Toutefois, cette approche peut être plus complexe à mettre en œuvre et à maintenir, et nécessite un étalonnage pour garantir des résultats cohérents.

Le choix entre l'approche classique et l'approche basée sur l'IA dépend des besoins et de la complexité de l'entreprise. Pour les scénarios plus simples, où les attributs des données sont stables et prévisibles, l'approche classique peut être plus efficace et plus facile à maintenir, en évitant les coûts inutiles liés à l'infrastructure et aux modèles d'IA. D'autre part, l'utilisation de la ML/AI pour extraire les facettes peut apporter une valeur ajoutée significative, en améliorant l'expérience de recherche et en rendant le filtrage plus intelligent.

L'important est d'évaluer si l'automatisation justifie l'investissement ou si une solution plus traditionnelle répond déjà efficacement aux besoins de l'entreprise.

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