„Microsoft“ mašininio mokymosi bibliotekos šaltinio kodai (Space Partition Tree And Graph) su apytikslio algoritmo įgyvendinimu . biblioteka „Microsoft Research“ tyrimų padalinyje ir paieškos technologijų plėtros centre („Microsoft Search Technology Center“). Praktiškai Bing paieškos variklis naudoja SPTAG, kad nustatytų tinkamiausius rezultatus pagal paieškos užklausų kontekstą. Kodas parašytas C++ ir pagal MIT licenciją. Kompiliavimas palaikomas Linux и WindowsYra Python kalbos įrišimas.
Nepaisant to, kad idėja naudoti vektorinę saugyklą paieškos sistemose sklandė gana ilgą laiką, praktikoje jas įgyvendinti trukdo didelis operacijų su vektoriais išteklių intensyvumas ir mastelio apribojimai. Sujungus giluminio mašininio mokymosi metodus su apytiksliais artimiausio kaimyno paieškos algoritmais, vektorinių sistemų našumas ir mastelio keitimas buvo įmanomas iki tokio lygio, kuris priimtinas didelėms paieškos sistemoms. Pavyzdžiui, naudojant Bing, kai vektorių indeksas yra daugiau nei 150 milijardų vektorių, laikas, per kurį reikia gauti svarbiausius rezultatus, yra 8 ms.
Bibliotekoje yra įrankių, skirtų indeksui kurti ir vektorinei paieškai organizuoti, taip pat įrankių rinkinys, skirtas paskirstytos internetinės paieškos sistemos, apimančios labai dideles vektorių kolekcijas, priežiūrai. šiuos modulius: indeksavimo priemonė, skirta paieškai, paieškai naudojant indeksą, paskirstytą kelių mazgų klasteryje, serveris, skirtas tvarkytojams paleisti mazguose, kaupiklis, skirtas sujungti kelis serverius į vieną, ir klientas užklausoms siųsti. Palaikomas naujų vektorių įtraukimas į indeksą ir vektorių ištrynimas skrydžio metu.
Biblioteka reiškia, kad kolekcijoje apdorojami ir pateikiami duomenys yra suformatuoti susijusių vektorių pavidalu, kuriuos galima palyginti (L2) arba atstumus Paieškos užklausa pateikia vektorius, kurių atstumas tarp jų ir pradinio vektoriaus yra minimalus. SPTAG pateikia du vektorinės erdvės organizavimo būdus: SPTAG-KDT (K-dimensinis medis () Ir ) ir SPTAG-BKT (k reiškia medis ( ir santykinės kaimynystės grafikas). Pirmasis metodas reikalauja mažiau išteklių dirbant su indeksu, o antrasis parodo didesnį paieškos rezultatų tikslumą labai didelėms vektorių kolekcijoms.
Tuo pačiu metu vektorinė paieška neapsiriboja tekstu ir gali būti taikoma daugialypės terpės informacijai ir vaizdams, taip pat automatinio rekomendacijų generavimo sistemose. Pavyzdžiui, vienas iš prototipų, paremtų PyTorch sistema, įdiegė vektorinę paieškos sistemą, pagrįstą objektų panašumu vaizduose, sukurtą naudojant duomenis iš kelių etaloninių kolekcijų su gyvūnų, kačių ir šunų vaizdais, kurie buvo konvertuoti į vektorių rinkinius. . Kai gaunamas paieškai gaunamas vaizdas, jis naudojant mašininio mokymosi modelį konvertuojamas į vektorių, kurio pagrindu iš indekso, naudojant SPTAG algoritmą, atrenkami panašūs vektoriai ir kaip rezultatas grąžinami susiję vaizdai.
Šaltinis: opennet.ru
