Recherche de produits par graphes avec LLM : Architecture et exemples
La recherche de produits basée sur des requêtes textuelles doit gérer des demandes de 1 à 2 phrases. Les scénarios attendus incluent des requêtes simples ("jeans"), la recherche sémantique (pull → sweatshirts), les négations ("robe pas en coton"), les adjectifs ("robe magnifique"), les descriptions structurées ("robe longue à manches courtes"), les entités multiples ("haut blanc et jeans bleus"), les requêtes par usage ("chaussures pour le sport"), les mentions de marque/prix ("sac Kors sous 20k") et les références à des personnalités ("sac comme celui de Dua Lipa").
Ces requêtes vont au-delà de la recherche par mots-clés et vectorielle, nécessitant une analyse des relations et du contexte.
Avantages de la représentation par graphes
Les graphes stockent non seulement les entités mais aussi les relations entre elles. Pour une requête comme "débardeur", une description de produit indiquant "jeans Levi's, se marie bien avec un haut" ne donnera pas de faux positif : dans le graphe de requête, "débardeur" est lié à l'objet principal, mais dans le produit, il ne l'est pas. La métrique de similarité graphe2graphe en tient compte, abaissant le score.
Pour "jeans", le score est élevé grâce à l'alignement sémantique des structures.
Les graphes permettent de distinguer les rôles des nœuds : produit souhaité, attribut indésirable, partie d'un objet.
Pipeline de recherche par graphes avec LLM
L'algorithme consiste en des étapes séquentielles :
- Optimisation dynamique des prompts : Analyse la complexité de la requête, extrait les marques/prix. Pour les requêtes simples (1–2 mots), revient à la recherche par mots-clés ou vectorielle. Forme un prompt pour Text2Graph.
- Text2Graph : Le LLM construit un graphe de connaissances à partir de la requête. Divise en sous-graphes pour les entités multiples.
- Recherche par graphes : Compare le graphe de requête avec les graphes de produits en utilisant la similarité graphe2graphe. Sort les indices top-N.
- Classificateur LLM : Reclasse les candidats pour améliorer la précision.
- Évaluation des résultats : Analyse les correspondances/incompatibilités (type trouvé mais pas la couleur). Si le score est faible, itère ou revient en arrière.
Une latence de 10–15 secondes est acceptable pour les systèmes de type RAG.
Exemples de traitement de requêtes complexes
Négations
Requête : "robe longue élégante sans manches." Le graphe marque "manches" comme attribut indésirable. La recherche exclut les produits avec manches, se concentrant sur les robes avec attributs "élégante", "longue".
Requêtes structurées
"Robe longue à manches courtes." Graphe : robe (longue) → manches (courtes). L'algorithme trouve des produits avec structure hiérarchique, sans limitations de profondeur. Utile pour les documents avec conditions imbriquées (applications avec filtres par statut/dates).
Entités multiples
"Jeans blancs et sac bleu." Text2Graph divise en sous-graphes, la recherche s'exécute en parallèle. L'appariement d'ensembles est possible (costume bleu pour "veste bleue et pantalon bleu"), mais nécessite un raffinement dans l'évaluation pour éviter les retours en arrière erronés.
Usage sans type
"Chaussures pour le sport." Le graphe s'étend au scénario d'usage, correspond par sémantique.
Marques et prix
"Jeans Levi's sous 12k." Les filtres sont extraits dans Text2Graph, intégrés au graphe. Les évaluations textuelles ("pas cher") sont basées sur des statistiques de produits similaires.
Points clés à retenir
- La recherche par graphes surpasse la recherche vectorielle dans les requêtes structurées avec négations et relations.
- Le pipeline est indépendant du domaine (sauf optimisation des prompts), adaptable aux livres/documents.
- L'évaluation des résultats permet des itérations sans montrer à l'utilisateur.
- La latence se réduit à 2–3 secondes avec vectorisation et classificateur optionnel.
- Perspectives futures : routage basé sur la complexité, modèles multimodaux, recherche approfondie.
— Editorial Team
Aucun commentaire pour le moment.