Microsoft ha reso open source la libreria di ricerca vettoriale utilizzata in Bing

Microsoft pubblicato Codici sorgente della libreria di machine learning SPTAG (Space Partition Tree And Graph) con implementazione dell'algoritmo approssimato ricerca del vicino più vicino. Biblioteca sviluppato nella divisione di ricerca di Microsoft Research e nel centro di sviluppo della tecnologia di ricerca (Microsoft Search Technology Center). In pratica, SPTAG viene utilizzato dal motore di ricerca Bing per determinare i risultati più rilevanti in base al contesto delle query di ricerca. Il codice è scritto in C++ e distribuito da sotto licenza MIT. La creazione per Linux e Windows è supportata. Esiste un collegamento per il linguaggio Python.

Nonostante l’idea di utilizzare l’archiviazione di vettori nei motori di ricerca sia in circolazione da molto tempo, in pratica la loro implementazione è ostacolata dall’elevata intensità di risorse delle operazioni con vettori e dai limiti di scalabilità. La combinazione di metodi di apprendimento automatico approfondito con algoritmi di ricerca approssimata del vicino più vicino ha permesso di portare le prestazioni e la scalabilità dei sistemi vettoriali a un livello accettabile per i grandi motori di ricerca. Ad esempio, in Bing, per un indice vettoriale di oltre 150 miliardi di vettori, il tempo per recuperare i risultati più rilevanti è entro 8 ms.

La libreria include strumenti per creare un indice e organizzare ricerche di vettori, nonché una serie di strumenti per mantenere un sistema di ricerca online distribuito che copre raccolte molto grandi di vettori. Offerto i seguenti moduli: generatore di indici per l'indicizzazione, ricercatore per la ricerca utilizzando un indice distribuito in un cluster di più nodi, server per l'esecuzione di gestori sui nodi, aggregatore per combinare più server in uno solo e client per l'invio di query. È supportata l'inclusione di nuovi vettori nell'indice e l'eliminazione dei vettori al volo.

La libreria implica che i dati elaborati e presentati nella raccolta siano formattati sotto forma di vettori correlati che possono essere confrontati in base a euclideo (L2) o coseno distanze La query di ricerca restituisce vettori la cui distanza tra loro e il vettore originale è minima. SPTAG fornisce due metodi per organizzare lo spazio vettoriale: SPTAG-KDT (albero K-dimensionale (kd-albero) E grafico del vicinato relativo) e SPTAG-BKT (k-significa albero (k-significa albero e relativo grafico dei dintorni). Il primo metodo richiede meno risorse quando si lavora con l'indice e il secondo dimostra una maggiore precisione dei risultati di ricerca per raccolte di vettori molto grandi.

Allo stesso tempo, la ricerca vettoriale non si limita al testo e può essere applicata a informazioni e immagini multimediali, nonché a sistemi per la generazione automatica di raccomandazioni. Ad esempio, uno dei prototipi basati sul framework PyTorch ha implementato un sistema vettoriale per la ricerca basato sulla somiglianza di oggetti nelle immagini, costruito utilizzando dati provenienti da diverse raccolte di riferimento con immagini di animali, gatti e cani, che sono stati convertiti in set di vettori . Quando un'immagine in arrivo viene ricevuta per la ricerca, viene convertita utilizzando un modello di apprendimento automatico in un vettore, in base al quale i vettori più simili vengono selezionati dall'indice utilizzando l'algoritmo SPTAG e di conseguenza vengono restituite le immagini associate.

Fonte: opennet.ru

Aggiungi un commento