Qu'est-ce que la recherche sémantique ?
La recherche sémantique est une méthode de recherche d'information basée sur le sens des mots plutôt que sur leur correspondance exacte. En utilisant des embeddings pour représenter textes et requêtes sous forme de vecteurs, elle retrouve des documents pertinents même quand les mots diffèrent. C'est l'infrastructure clé du RAG.
La recherche sémantique (semantic search) est une approche de recherche d'information qui compare le sens d'une requête avec le sens des documents indexés, plutôt que de chercher une correspondance exacte de mots-clés. Elle repose sur les embeddings — des représentations vectorielles denses du texte — pour calculer une similarité sémantique entre la question posée et les contenus disponibles.
Le problème de la recherche par mots-clés
La recherche traditionnelle (type BM25, TF-IDF) fonctionne par correspondance lexicale : elle cherche les documents qui contiennent les mêmes mots que la requête. Cette approche a deux faiblesses structurelles :
- La synonymie : un document parlant de "réduction des effectifs" ne sera pas retrouvé par la requête "licenciements", bien que les deux parlent du même sujet.
- La polysémie : le mot "python" peut désigner un serpent, un langage de programmation ou un membre des Monty Python. La recherche par mots-clés ne distingue pas ces sens.
La recherche sémantique résout ces deux problèmes en travaillant au niveau du sens, pas des mots.
Comment ça fonctionne
1. Création des embeddings. Un modèle d'embedding (comme text-embedding-3 d'OpenAI, Cohere Embed, ou un modèle open source comme BGE ou E5) transforme chaque document en un vecteur numérique dense, typiquement de 768 à 3072 dimensions. Ce vecteur capture le sens du texte : des textes sémantiquement proches produisent des vecteurs proches dans l'espace vectoriel.
2. Indexation dans une base vectorielle. Les vecteurs sont stockés dans une base de données vectorielle (Pinecone, Weaviate, Qdrant, Milvus, pgvector) qui optimise la recherche de voisins les plus proches (ANN — Approximate Nearest Neighbors). Ces bases utilisent des algorithmes comme HNSW (Hierarchical Navigable Small World) pour retrouver rapidement les vecteurs les plus similaires parmi des millions.
3. Recherche. Quand un utilisateur pose une question, celle-ci est transformée en vecteur par le même modèle d'embedding. La base vectorielle retourne les documents dont les vecteurs sont les plus proches (selon une mesure de distance : cosinus, produit scalaire ou distance euclidienne).
4. Reranking (optionnel). Un modèle de reranking (comme Cohere Rerank ou un cross-encoder) reclasse les résultats pour affiner la pertinence. Contrairement aux bi-encoders utilisés pour l'indexation (qui encodent requête et document séparément), les cross-encoders analysent la paire requête-document ensemble, ce qui donne des scores de pertinence plus précis mais au prix d'une latence plus élevée.
Recherche sémantique et RAG
La recherche sémantique est le mécanisme de récupération au coeur du RAG (Retrieval-Augmented Generation). Dans un pipeline RAG :
1. Les documents de la base de connaissances sont découpés en chunks et indexés sous forme d'embeddings.
2. Quand une question arrive, la recherche sémantique retrouve les chunks les plus pertinents.
3. Ces chunks sont injectés dans le contexte du LLM, qui génère une réponse ancrée dans les données (grounding).
La qualité de la recherche sémantique conditionne directement la qualité du RAG : si les mauvais documents sont récupérés, le LLM produira des réponses hors sujet ou incorrectes.
Recherche hybride
En pratique, les meilleurs systèmes combinent recherche sémantique et recherche par mots-clés dans une approche dite hybride. La recherche par mots-clés excelle pour les termes techniques précis, les noms propres ou les identifiants. La recherche sémantique excelle pour les questions formulées différemment du contenu. La combinaison des deux (via un mécanisme de fusion comme Reciprocal Rank Fusion) donne de meilleurs résultats que chaque approche isolée.
Chunking : le découpage qui fait la différence
La façon dont les documents sont découpés en morceaux (chunks) avant l'indexation influence fortement la qualité de la recherche. Les stratégies courantes incluent :
- Chunking par taille fixe : découper toutes les N tokens, simple mais pouvant couper des phrases en deux.
- Chunking par structure : respecter les paragraphes, les sections ou les titres du document.
- Chunking récursif : découper d'abord par sections, puis par paragraphes si les sections sont trop longues.
- Chunking sémantique : utiliser un modèle pour identifier les ruptures thématiques dans le texte.
Le choix de la taille de chunk est un arbitrage : des chunks trop petits perdent le contexte, des chunks trop grands diluent le signal pertinent dans du bruit.
Applications au-delà du texte
La recherche sémantique s'étend aux images (CLIP de OpenAI permet de chercher des images par description textuelle), à l'audio et au code source. Le principe reste le même : transformer le contenu en vecteur et comparer les vecteurs.
Fait intéressant
Google a commencé à intégrer la recherche sémantique dans son moteur en 2019 avec BERT, marquant le passage de 20 ans de recherche par mots-clés à une compréhension du sens des requêtes. Depuis, on estime que la majorité des requêtes Google sont traitées au moins partiellement par des modèles de recherche sémantique.
Ces formations pourraient aussi vous intéresser
Prêt à accélérer votre Transformation ?
Nos experts vous accompagnent à chaque étape
de votre parcours Data & IA. Discutons ensemble de vos enjeux et objectifs.