Miglioramento del recupero delle informazioni nello stack elastico: passaggi per migliorare la pertinenza della ricerca
A partire dalla versione 8.0 e dal rilascio di modelli di elaborazione del linguaggio naturale (NLP) di terze parti per l’incorporamento di testo, gli utenti di Elastic Stack hanno accesso a un’ampia varietà di modelli per incorporare i propri documenti di testo ed eseguire il recupero di informazioni basato su query utilizzando la ricerca vettoriale.
Dati tutti questi componenti e i relativi parametri, ea seconda del corpus di testo in cui si desidera effettuare la ricerca, può essere complicato scegliere quali impostazioni forniranno la migliore pertinenza della ricerca.
In questa serie di post sul blog, introdurremo una serie di test che abbiamo eseguito utilizzando vari set di dati pubblicamente disponibili e tecniche di recupero delle informazioni disponibili nello Stack elastico. Forniremo quindi consigli sulle migliori tecniche da utilizzare a seconda della configurazione.
Per dare il via a questa serie di blog, vogliamo preparare il terreno descrivendo il problema che stiamo affrontando e descrivendo alcuni metodi che approfondiremo in un articolo successivo sull’ integrazione di componenti di intelligenza artificiale in Elasticsearch.
Contesto e terminologia
BM25: un modello sparso e non supervisionato per la ricerca lessicale
Il modo classico in cui i documenti vengono classificati per rilevanza da Elasticsearch in base a una query di testo utilizza l’implementazione Lucene del modello Okapi BM25. Sebbene alcuni iperparametri di questo modello siano stati messi a punto per ottimizzare i risultati nella maggior parte degli scenari, questa tecnica è considerata non supervisionata poiché query etichettate e documenti non sono necessari per utilizzarla: è molto probabile che il modello funzionerà ragionevolmente bene su qualsiasi corpus di testo, senza basarsi su dati annotati. BM25 è noto per essere una solida linea di base nelle impostazioni di recupero a colpo zero.
Sotto il cofano, questo tipo di modello costruisce una matrice di frequenze dei termini (quante volte un termine appare in ciascun documento) e frequenze inverse dei documenti (l’inverso di quanti documenti contengono ciascun termine). Quindi assegna un punteggio a ogni termine di query per ogni documento che è stato indicizzato in base a tali frequenze. Poiché ogni documento contiene in genere una piccola frazione di tutte le parole utilizzate nel corpus, la matrice contiene molti zeri. Questo è il motivo per cui questo tipo di rappresentazione è chiamato “sparse”.
Inoltre, questo modello somma il punteggio di pertinenza di ogni singolo termine all’interno di una query per un documento, senza tener conto di alcuna conoscenza semantica (sinonimi, contesto, ecc.). Questa è chiamata ricerca lessicale (al contrario della ricerca semantica). Il suo difetto è il cosiddetto problema di mancata corrispondenza del vocabolario, che il vocabolario della query è leggermente diverso dal vocabolario del documento. Ciò motiva altri modelli di punteggio che cercano di incorporare la conoscenza semantica per evitare questo problema.
Modelli densi: un modello denso e supervisionato per la ricerca semantica
Più recentemente, i modelli basati su trasformatore hanno consentito una rappresentazione del testo densa e consapevole del contesto, affrontando le principali carenze sopra menzionate.
Per costruire tali modelli, sono necessari i seguenti passaggi:
1. Pre-formazione
Per prima cosa dobbiamo addestrare una rete neurale per comprendere la sintassi di base del linguaggio naturale.
Utilizzando un enorme corpus di testo, il modello apprende la conoscenza semantica addestrandosi su attività non supervisionate (come la previsione della parola mascherata o la previsione della frase successiva).
BERT è probabilmente l’esempio più noto di questi modelli: è stato addestrato su Wikipedia (2,5 miliardi di parole) e BookCorpus (800 milioni di parole) utilizzando Masked Word Prediction.
Questo si chiama pre-allenamento. Il modello apprende rappresentazioni vettoriali di token linguistici, che possono essere adattati per altre attività con molto meno addestramento.
Si noti che in questa fase, il modello non funzionerebbe bene nelle attività di PNL a valle.
Questo passaggio è molto costoso, ma esistono molti di questi modelli fondamentali che possono essere utilizzati immediatamente.
2. Formazione specifica per compito
Ora che il modello ha costruito una rappresentazione del linguaggio naturale, si addestrerà in modo molto più efficace su un’attività specifica come Dense Passage Retrieval (DPR) che consente la risposta alle domande.
Per fare ciò, dobbiamo adattare leggermente l’architettura del modello e quindi addestrarlo su un gran numero di istanze del compito, che, per DPR, consiste nell’abbinare un passaggio rilevante tratto da un documento rilevante.
Quindi questo richiede un set di dati etichettato, ovvero una raccolta di terzine:
Una domanda: “What is gold formed in?”
Un documento o brano tratto da un documento: “The core of large stars, especially during a nova”
Facoltativamente, un punteggio del grado di rilevanza per questa coppia (query, documento) (se non viene assegnato alcun punteggio, assumiamo che il punteggio sia binario e che tutti gli altri documenti possano essere considerati irrilevanti per la query data).
Un set di dati molto popolare e pubblicamente disponibile per eseguire tale formazione per DPR è il set di dati MS MARCO.
Questo set di dati è stato creato utilizzando le query e i migliori risultati del motore di ricerca Bing di Microsoft. Pertanto, le query e i documenti che contiene rientrano nel dominio linguistico della conoscenza generale, in contrasto con il dominio linguistico specifico (si pensi ai documenti di ricerca o al linguaggio utilizzato nella legge).
Questa nozione di dominio linguistico è importante, poiché la conoscenza semantica appresa da quei modelli sta dando loro un importante vantaggio “in-domain”: quando BERT è uscito, ha migliorato i precedenti modelli allo stato dell’arte su questo set di dati MS MARCO di un enorme margine.
3. Formazione specifica del dominio
A seconda della differenza tra i dati e il set di dati utilizzato per l’addestramento specifico dell’attività, potrebbe essere necessario addestrare il modello utilizzando un set di dati con etichetta specifico del dominio. Questo passaggio viene anche definito messa a punto per l’adattamento del dominio o “domain-adaptation”.
La buona notizia è che non è necessario un set di dati così grande come richiesto per i passaggi precedenti: alcune migliaia o decine di migliaia di istanze delle attività possono essere sufficienti.
La cattiva notizia è che queste coppie query-documento devono essere create da esperti di dominio, quindi di solito è un’opzione costosa.
L’adattamento del dominio è più o meno simile alla formazione specifica per attività.
Dopo aver introdotto queste varie tecniche, misureremo le loro prestazioni su un’ampia varietà di set di dati. Questo tipo di attività di recupero di informazioni generiche è di particolare interesse per noi. Vogliamo fornire strumenti e indicazioni per una vasta gamma di utenti, compresi quelli che non vogliono addestrare i modelli stessi per ottenere alcuni dei vantaggi che apportano alla ricerca. Nel prossimo post del blog di questa serie, descriveremo la metodologia e la suite di benchmark che utilizzeremo.