SPLADE

Da Wiki AI.

Acronimo di Sparse Lexical and Expansion model: modello che produce embedding sparsi come gli approcci Bag-Of-Words, TF-IDF o BM25, ma arricchiti da una rappresentazione semantica come nei modelli densi.

L'idea di base è che un modello di linguaggio pre-addestrato come BERT possa identificare dei collegamenti fra parole/sub-words (chiamati Word-Pieces) e utilizzare quella conoscenza per aumentare l'embedding sparso.

Term Expansion (da Pinecone)

In tal modo si pesa il contributo di termini diversi (per esempio l'articolo il avrà meno rilevanza di una parola meno comune, e permette l'espansione dei termini, ovvero l'inclusione di termini relativi ma rilevanti al di là di quelli che si trovano nella sequenza originale.

La cosa più importante di SPLADE non è necessariamente che possa creare termini sostitutivi, ma che possa apprenderli: esso può utilizzare i migliori modelli di linguaggio per imparare queste somiglianze e anche personalizzarli in base al contesto della frase.

Apprendimento in SPLADE

I Vettori della matrice di embedding representano un token in uno spazio vettoriale

Normalmente si parte da BERT utilizzando una head di Masked-Language-Modeling (MLM): per maggiori dettagli si veda il link sul sito di Pinecone in basso. Quello che più importa è che, alla fine del processo di apprendimento del transformer, in cui le distribuzioni di probabilità per tutti i token di input su tutto il vocabolario (I x V) vengono aggretate per ottenere l'importanza di ogni parola del vocabolario rispetto alla nostra frase: questo è il vettore sparso prodotto da SPLADE.

Implementazioini

Esistono diverse implementazioni, tra cui:

  • L'implementazione fine-tuned su HuggingFace: naver/splade-cocondenser-ensembledistil
  • L'implementazione di Naver Labs: https://github.com/naver/splade.git

Links

SPLADE v2: Sparse Lexical and Expansion Model for Information Retrieval

Colab Ufficiale (Google)

SPLADE for Sparse Vector Search Explained (Pinecone)

https://github.com/pinecone-io/examples/blob/master/learn/search/hybrid-search/ecommerce-search/ecommerce-search.ipynb