SPLADE : Combinaison d'Approches Sparse et Sémantiques

SPLADE : Combinaison d'Approches Sparse et Sémantiques

En Recherche d’Information (RI), la recherche actuelle se concentre sur l’utilisation des réseaux de neurones pour trouver les documents pertinents pour une query. Les méthodes antérieures, connues sous le nom de Bag-of-Words (BoW), étaient basées sur les statistiques d’apparition des mots. Avec le développement des modèles de language basés sur des réseaux de neurones, d’autres méthodes de retrieval ont émergé, comme le dense retrieval. Les modèles de language permettent également de reclasser (rerank) la pertinence des documents récupérés. Actuellement, la recherche se concentre sur l’amélioration du retriever initial dans les pipelines de ranking, c’est-à-dire avant l’étape de reranking. C’est le problème que SPLADE aborde.

Le Challenge de l’Information Retrieval

Avant d’examiner comment SPLADE [Formal et al., 2021] fonctionne, essayons de comprendre brièvement le défi actuel en RI.

Dans le monde des moteurs de recherche, retrouver des documents pertinents dans un ensemble massif de données ne se limite pas à trouver des correspondances exactes de mots-clés. Les utilisateurs modernes s’attendent à ce que les moteurs de recherche comprennent le contexte, les synonymes et les concepts connexes. Par exemple, lors d’une recherche sur “electric vehicle”, les utilisateurs s’attendent également à des résultats mentionnant “EVs”, “battery-powered cars”, ou même “Tesla”.

Les modèles traditionnels comme Term Frequency - Inverse Document Frequency ou Best Match 25 (voir notre article de blog sur les sparse embeddings) sont des fonctions de retrieval Bag-of-Words qui classent un ensemble de documents basé sur les fréquences des mots. Cela signifie qu’ils reposent purement sur la correspondance lexicale, tandis que les dense neural models comme les systèmes de retrieval basés sur BERT se concentrent sur la correspondance sémantique.

Nous appellerons embedding une représentation numérique du texte. C’est un vecteur numérique. D’après ce que nous avons discuté, les deux types d’embeddings sont :

  • sparse embeddings : construits en utilisant TF-IDF, BM25, ils ont très peu de valeurs non nulles. La plupart du temps, leur taille est celle du vocabulaire.
    • Avantages : retrieval plus rapide, pas de fine-tuning, exact term matching.
    • Inconvénients : vocabulary mismatch problem.
  • dense embeddings : construits en utilisant des réseaux de neurones comme les transformers, ils sont de dimension plus faible mais riches en information.
    • Avantages : bon pour la sémantique, multi-modalité.
    • Inconvénients : peut nécessiter du fine-tuning, plus de calculs, pas d’exact match.

SPLADE trouve un équilibre en combinant des sparse lexical representations avec une semantic expansion, capturant ainsi le meilleur des deux mondes.

Qu’est-ce que SPLADE ?

SPLADE, abréviation de SParse Lexical AnD Expansion model, est un modèle conçu pour le first-stage ranking dans les systèmes de recherche d’information. Contrairement aux dense retrieval models, qui génèrent des embeddings continus, SPLADE maintient des représentations sparse, en grande dimension, similaires aux lexical models traditionnels, mais avec la puissance supplémentaire de la semantic expansion. Cela lui permet de capturer à la fois les relations explicites et implicites entre les termes, améliorant significativement le processus de recherche. SPLADE utilise un modèle de language pré-entrainé comme BERT pour identifier les synonymes de certains mots, et dispose de paramètres supplémentaires entraînés pour construire des embeddings pertinents. La production d’alternatives permet d’enrichir l’embedding sparse.

Comment fonctionne SPLADE ?

SPLADE utilise une architecture transformer (par exemple, BERT) pour générer des synonymes et ainsi enrichir les représentations sparses des queries et des documents. Voici comment cela fonctionne étape par étape :

Construction de l’embedding

SPLADE prend une query ou un document et le transforme en un vecteur sparse en grande dimension. Nous écrirons cette séquence d’entrée comme $t_1 \cdots t_n$. Cette entrée est transmise à un transformer comme BERT, produisant $n$ embeddings denses $h_1 \cdots h_n$.

Nous créons maintenant $|V|$ poids pour chacun des $n$ tokens d’entrée. $\forall j = 1, \cdots, |V|,$

$$ w_{ij} = transform(h_i)^TE_j + b_j $$

où $transform$ est une linear layer avec activation GeLU et LayerNorm. Ainsi, c’est équivalent à une prédiction de MLM (masked language model) et nous pouvons simplement utiliser un MLM pré-entrainé.

Pour être clair, $w_{ij}$ représente à quel point le token $j$ du vocabulaire est lié au token $i$ de la séquence d’entrée.

Maintenant, pour chaque token de l’entrée, nous avons une distribution sur le vocabulaire indiquant quels mots sont les plus importants pour le token. Nous pouvons obtenir une estimation globale de l’importance pour toute l’entrée en calculant

$$ w_j = \sum_{i \in t} \log(1+\text{ReLU}(w_{ij})) $$

De cette façon, pour chaque token du vocabulaire, nous avons un poids indiquant s’il est pertinent pour la séquence d’entrée. Ce $w$ est l’embedding SPLADE de la séquence d’entrée. Sa taille est $|V|$.

Ensuite, pour le ranking des documents, nous calculons le produit scalaire entre l’embedding de la query $q$ et l’embedding de chaque document $d$ du corpus :

$$ s(q,d) = \sum_{j=1}^{|V|} w_j^q.w_j^d $$

Plus la valeur de $s(q,d)$ est élevée, plus $d$ est pertinent pour $q$.

Training

SPLADE apprend des représentations sparses. Cela signifie que SPLADE n’ajoute pas simplement des synonymes à un embedding BoW. En effet, la linear layer $transform$ et le bias $b$ sont des paramètres appris, entraînés pour rapprocher les couples query/document pertinents et éloigner les non pertinents. De plus, comme nous le verrons avec la loss, le training encourage les représentations à être sparse. Nous pouvons noter que le transformer peut aussi être entraîné mais la plupart du temps nous pouvons utiliser un modèle pré-entrainé.

Contrastive learning

Le modèle est entraîné en utilisant un contrastive learning objective, qui l’encourage à maximiser la similarité entre les queries et les documents pertinents tout en la minimisant pour les non pertinents.

Cette stratégie d’entrainement aide le modèle à apprendre à classer efficacement les documents, en se concentrant à la fois sur la précision du term matching et la capture du sens sous-jacent.

Voici la loss présentée dans le papier :

$$ \mathcal{L}_{\text{rank-IBN}} = - \log \left( \frac{ e^{s(q_i,d_i^+)} }{ e^{s(q_i,d_i^+)} + e^{s(q_i,d_i^-)} + \sum_j e^{s(q_i,d_{i,j}^-)} } \right) $$

où $q_i$ est une query dans un batch, $d_i^+$ un document positif, $d_i^-$ un document négatif (hard negative) (par exemple provenant d’un échantillonnage BM25), et un ensemble de documents négatifs dans le batch (documents positifs pour d’autres queries) \(\{d_{i,j}^{-}\}_{j}\).

Regularization

SPLADE utilise une technique de regularization pour assurer de la sparsité des vecteurs en ne gardant que les termes les plus pertinents avec des poids non nuls. Cela résulte en des représentations efficaces et interprétables.

$$ l_{\text{FLOPS}} = \sum_{j \in V} \bar{a}_j^2 = \sum_{j \in V} \left( \frac{1}{N} \sum_{i=1}^{N} w_j^{(d_i)} \right)^2 $$

La loss globale est

$$ \mathcal{L} = \mathcal{L}_{\text{rank-IBN}} + \lambda_q \mathcal{L}_{\text{reg}}^q + \lambda_d \mathcal{L}_{\text{reg}}^d $$

Où $\mathcal{L}_{\text{reg}}$ est une regularization sparse ($l_1$ ou $l_{\text{FLOPS}}$).

Ils utilisent deux poids de regularization distincts $\lambda_q$ et $\lambda_d$ pour les queries et les documents. De cette façon, ils peuvent encourager encore plus la sparsité pour les queries, ce qui permet un retrieval rapide.

Ce contrôle de sparsité permet à SPLADE de générer des représentations sparses tout en maintenant une information sémantique riche.

Avantages de SPLADE

  • SPLADE capture à la fois les correspondances exactes et les relations sémantiques entre les termes, améliorant la pertinence des résultats de recherche.
  • Les représentations sparses sont intrinsèquement plus interprétables que les embeddings denses. Cela permet de comprendre pourquoi certains documents ont été retrouvés, ce qui est crucial dans les applications où il y a un besoin de transparence.

Inconvénients de SPLADE

  • Retrieval lent comparé aux autres méthodes de retrieval sparse (nombre plus élevé de valeurs non nulles que dans BM25).

Variantes et améliorations de SPLADE

Plusieurs améliorations ont été apportées à SPLADE avec SPLADE v2 [Formal et al., 2021]. SPLADE v2 permet de réduire le nombre de valeurs non nulles grâce à deux améliorations.

  • $w_j = \sum_{i \in t} \log(1+\text{ReLU}(w_{ij}))$ devient du max pooling :

    $$ w_j = \max_{i \in t} \log(1+\text{ReLU}(w_{ij})) $$

  • et l’utilisation de cette mesure de similarité :

    $$ s(q,d) = \sum_{j \in q} w_j^d $$

    ce qui signifie qu’il n’y a pas de query expansion ni de query term weighting. Par conséquent, le score de pertinence ne dépend que des poids des termes des documents. Cela permet au score de pertinence d’être presque entièrement précalculé, ne nécessitant que la somme des poids des bons documents au query-time. Les coûts d’inférence sont réduits tout en maintenant des résultats compétitifs.

Réflexions Finales

SPLADE représente une avancée majeure dans la réduction de l’écart entre les méthodes sparses traditionnelles et les approches sémantiques plus récentes. En exploitant les représentation lexicales sparses avec l’expansion sémantique, SPLADE assure un retrieval efficace, interprétable et scalable sans sacrifier les performances.

Que vous construisiez un moteur de recherche pour votre entreprise, votre institution académique ou une plateforme de contenu, SPLADE pourrait être la solution pour une meilleure expérience de recherche.


Références


Posts liés

Les Sparse Embeddings Démystifiés : Du One-Hot Encoding à BM25

Les Sparse Embeddings Démystifiés : Du One-Hot Encoding à BM25

Cet article de blog vise à clarifier certaines méthodes de Recherche d’Information (RI) liées aux sparse embeddings (ou vecteurs …

En savoir plus
Anthropic lance l'offre Claude Enterprise avec une fenêtre contextuelle de 500K

Anthropic lance l'offre Claude Enterprise avec une fenêtre contextuelle de 500K

Le 4 septembre, Anthropic a lancé l'offre Claude Enterprise. Selon l’annonce d’Anthropic, l’objectif de l’offre …

En savoir plus
Reranking en RAG : améliorer la précision grâce aux cross-encodeurs

Reranking en RAG : améliorer la précision grâce aux cross-encodeurs

Le reranking s’impose désormais comme un élément essentiel dans l’architecture technique de la génération augmentée par …

En savoir plus