Microsoft otvoril kód knižnice vektorového vyhľadávania, ktorá sa používa v Bingu

Spoločnosť Microsoft publikovala pôvodné texty knižnice strojového učenia SPTAG (Space Partition Tree And Graph) s implementáciou algoritmu priblíženej hľadania najbližšieho suseda. Knižnica bola vyvinutá 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 distribuovaný 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. Sú ponúkané 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 euklidovských (L2) alebo kosínusových 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 (kd-tree) a graf relatívnych susedstiev) a SPTAG-BKT (strom k-stredných (k-means tree 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

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster