SPLADE: differenze tra le versioni
(Creata pagina con "Acronimo di '''Sp'''arse '''L'''exical '''a'''n'''d''' '''E'''xpansion 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 sp...") |
Nessun oggetto della modifica |
||
Riga 27: | Riga 27: | ||
[[Categoria:Modello]] | [[Categoria:Modello]] | ||
{{#seo: | |||
|title=Your page title | |||
|title_mode=append | |||
|keywords="SPLADE, Sparse Lexical and Expansion Model, modello linguistico, embedding, rappresentazione semantica, BERT, Word-Pieces, espansione dei termini, apprendimento automatico, Pinecone, Masked-Language-Modeling, matrice di embedding, HuggingFace, Naver Labs" | |||
|description="Questo articolo descrive SPLADE (Sparse Lexical and Expansion Model), un modello che combina la sparsità degli approcci tradizionali come TF-IDF con la ricchezza semantica dei modelli densi come BERT. SPLADE apprende a espandere i termini e a generarne di nuovi, migliorando la rappresentazione del testo e le attività di recupero delle informazioni." | |||
|image=Temexpansion.png | |||
}} |
Versione delle 13:36, 17 ago 2024
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
SPLADE for Sparse Vector Search Explained (Pinecone)