Azienda Microsoft testi originali della libreria di machine learning (Space Partition Tree And Graph) con implementazione dell'algoritmo per la ricerca approssimativa . La libreria nel dipartimento di ricerca Microsoft Research e nel centro di sviluppo delle tecnologie di ricerca (Microsoft Search Technology Center). Nella pratica, SPTAG è utilizzato nel motore di ricerca Bing per determinare i risultati più pertinenti tenendo conto del contesto delle query di ricerca. Il codice è scritto in C++ e è sotto licenza MIT. È supportata la compilazione per Linux e Windows. È disponibile un'interfaccia per il linguaggio Python.
Nonostante le idee sull'applicazione degli archivi vettoriali nei motori di ricerca siano in circolazione da tempo, nella pratica la loro implementazione è ostacolata dall'elevato consumo di risorse nelle operazioni con i vettori e dalle limitazioni di scalabilità. La combinazione di tecniche di deep learning con algoritmi di ricerca approssimativa del vicino più vicino ha consentito 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 di recupero dei risultati più rilevanti si attesta a 8 ms.
La libreria include strumenti per la costruzione dell'indice e per l'organizzazione della ricerca dei vettori, oltre a un insieme di strumenti per la gestione di un sistema di ricerca online distribuito che copre collezioni di vettori molto grandi. i seguenti moduli: index builder per l'indicizzazione, searcher per la ricerca usando l'indice distribuito su più nodi, server per eseguire gestori sui nodi, Aggregator per unire più server in un'unica entità e client per inviare richieste. È supportata l'inclusione di nuovi vettori nell'indice e la rimozione di vettori al volo.
La libreria presuppone che i dati elaborati e presentati nella collezione siano organizzati in vettori correlati, che possono essere confrontati sulla base di (L2) o Quando viene effettuata una richiesta di ricerca, vengono restituiti i vettori la cui distanza rispetto al vettore sorgente è minima. In SPTAG, sono forniti due metodi per organizzare lo spazio vettoriale: SPTAG-KDT (albero K-d () e ) e SPTAG-BKT (albero k-means ( e grafo delle vicinanze relative). Il primo metodo richiede meno risorse durante il lavoro con l'indice, mentre il secondo dimostra una maggiore precisione nei risultati di ricerca con collezioni di vettori molto grandi.
La ricerca vettoriale non è limitata al testo, ma può essere applicata anche alle informazioni multimediali e alle immagini, oltre che nei sistemi di raccomandazione automatica. Ad esempio, in uno dei prototipi basati sul framework PyTorch è stato implementato un sistema di ricerca vettoriale che tiene conto delle somiglianze tra oggetti in immagini, costruito utilizzando dati provenienti da diverse collezioni di riferimento di immagini di animali, gatti e cani, che sono stati trasformati in set di vettori. Quando viene ricevuta un'immagine in ingresso per la ricerca, essa viene trasformata in un vettore utilizzando un modello di apprendimento automatico, sulla base del quale, tramite l'algoritmo SPTAG, vengono selezionati i vettori più simili dall'indice e come risultato vengono restituiti le immagini correlate.
Fonte: opennet.ru
