Spoločnosť Microsoft pôvodné texty knižnice strojového učenia (Space Partition Tree And Graph) s implementáciou algoritmu priblíženej . Knižnica v výskumnom oddelení Microsoft Research a v centre vývoja vyhľadávacích technológií (Microsoft Search Technology Center). V praxi sa SPTAG využíva vo vyhľadávacom systéme Bing na určenie najrelevantnejších výsledkov s ohľadom na kontext vyhľadávacích dopytov. Kód je napísaný v jazyku C++ a je pod licenciou MIT. Podporuje sa zostavenie pre Linux a Windows. Existuje obal pre jazyk Python.
Napriek tomu, že myšlienky využitia vektorových úložísk vo vyhľadávacích systémoch sú tu už dlhší čas, ich implementácii bráni vysoká náročnosť operácií s vektormi a obmedzenia v škálovateľnosti. Kombinácia metód hlbokého strojového učenia s algoritmami priblíženej hľadania najbližšieho suseda umožnila dosiahnuť výkonnosť a škálovateľnosť vektorových systémov na úroveň, ktorá je prijateľná pre veľké vyhľadávacie systémy. Napríklad vo vyhľadávači Bing pre vektorový index s viac ako 150 miliardami vektorov sa čas na vyhľadanie najrelevantnejších výsledkov zmestí do 8 ms.
Knižnica obsahuje prostriedky na vytváranie indexu a organizáciu hľadania vektorov, ako aj súbor nástrojov na správu distribuovanej online vyhľadávacej sústavy, ktorá pokrýva veľmi veľké zbierky vektorov. nasledujúce moduly: index builder na indexovanie, searcher na hľadanie s využitím indexu, distribuovaného v klastri z viacerých uzlov, server na spustenie spracovateľov na uzloch, Aggregator na zlúčenie niekoľkých serverov do jedného celku a klient pre odosielanie dopytov. Podporuje sa pridávanie nových vektorov do indexu a odstraňovanie vektorov za behu.
Knižnica predpokladá, že spracovávané a prezentované v zbierke údaje sú usporiadané vo forme prepojených vektorov, ktoré je možné porovnávať na základe (L2) alebo vzdialeností. Pri vyhľadávacom dopyte sa vrátia vektory, ktorých vzdialenosť od počiatočného vektora je minimálna. V SPTAG sa poskytujú dva metódy organizácie vektorového priestoru: SPTAG-KDT (K-rozmerné strom () a ) a SPTAG-BKT (strom k-stredných ( a graf relatívnych okolitostí). Prvá metóda vyžaduje menej zdrojov pri práci s indexom, zatiaľ čo druhá vykazuje vyššiu presnosť výsledkov vyhľadávania pri veľmi veľkých kolekciách vektorov.
Vektorové vyhľadávanie nie je obmedzené iba na text, ale môže sa aplikovať aj na multimediálne informácie a obrázky, ako aj v systémoch na automatické generovanie odporúčaní. Napríklad v jednom z prototypov na báze rámca PyTorch bola implementovaná vektorová systém na vyhľadávanie so zohľadnením podobnosti objektov na obrázkoch, ktorý bol vytvorený s použitím údajov z viacerých referenčných kolekcií s obrázkami zvierat, mačiek a psov, ktoré boli prevedené na súpravy vektorov. Pri prichádzajúcom obrázku na vyhľadávanie je prevedený pomocou modelu strojového učenia na vektor, na základe ktorého sa pomocou algoritmu SPTAG vyberajú z indexu najpodobnejšie vektory a ako výsledok sa vracajú s nimi spojené obrázky.
Zdroj: opennet.ru
