SPLADE
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.

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

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