Les Cross Encoders

Les systèmes de récupération classiques, comme ceux basés sur les embeddings, fonctionnent en comparant la similarité entre la requête et les documents de la base. Cependant, cette approche a une limite majeure : elle ne prend pas en compte le contexte global de la requête et des documents. Les embeddings sont générés indépendamment pour chaque élément, ce qui peut conduire à des incompréhensions, surtout pour des requêtes complexes ou des vocabulaires spécifiques.

Les cross encoders proposent une solution à ce problème. Contrairement aux modèles classiques qui encodent la requête et les documents séparément, les cross encoders encodent la paire requête-document ensemble. Cela permet de capturer des interactions plus fines entre les mots de la requête et ceux du document, améliorant ainsi la pertinence des résultats.


Fonctionnement technique

  1. Encodage conjoint : Le cross encoder prend en entrée une requête et un document, et les encode ensemble dans un seul vecteur. Cela permet de modéliser les interactions sémantiques entre les deux.
  2. Score de pertinence : Le modèle génère un score de pertinence pour chaque paire requête-document, indiquant à quel point le document répond à la requête.
  3. Classement : Les documents sont ensuite classés en fonction de ce score, ce qui permet de sélectionner les plus pertinents pour la génération de la réponse.

Avantages des cross encoders

  • Précision accrue : En tenant compte du contexte global, les cross encoders réduisent les risques de récupération de documents non pertinents, même pour des requêtes complexes ou ambiguës.
  • Adaptation au jargon : Ils sont plus efficaces pour gérer des vocabulaires spécifiques ou techniques, car ils analysent la relation entre la requête et le document dans son ensemble.
  • Flexibilité : Ils peuvent être entraînés sur des données spécifiques à un domaine, ce qui les rend adaptables à des contextes particuliers (ex : droit, médecine, technique).

Inconvénients et défis

  • Coût computationnel : Encoder chaque paire requête-document est plus coûteux en ressources que les méthodes classiques, car il faut évaluer chaque document individuellement avec la requête.
  • Latence : Le temps de traitement peut être plus long, surtout si la base de documents est volumineuse.
  • Complexité : La mise en œuvre et l’entraînement d’un cross encoder nécessitent une expertise technique plus poussée que les systèmes basés sur des embeddings statiques.

Cas d’usage Les cross encoders sont particulièrement utiles dans des contextes où la précision est critique, comme :

  • Les systèmes de recherche juridique ou médicale, où le vocabulaire est très technique.
  • Les chatbots d’entreprise, où les questions peuvent être très spécifiques et nécessitent une compréhension fine des documents internes.
  • Les moteurs de recommandation, où la pertinence des résultats est directement liée à l’expérience utilisateur.

Exemple concret Imaginons une base de documents juridiques. Une requête comme « Quelles sont les conditions de validité d’un contrat de tutelle ? » pourrait être mal interprétée par un système classique, car les mots « tutelle » et « contrat » ont des sens très spécifiques en droit. Un cross encoder, en encodant la requête avec chaque document, pourrait mieux identifier les passages pertinents, même si ceux-ci n’utilisent pas exactement les mêmes termes.