Biblioteka wyszukiwania wektorowego firmy Microsoft używana w usłudze Bing jest typu open source

Microsoftu опубликовала Kody źródłowe biblioteki uczenia maszynowego SPTAG (Drzewo i wykres podziału przestrzeni) z implementacją przybliżonego algorytmu wyszukiwanie najbliższego sąsiada. Biblioteka rozwinięty w dziale badawczym Microsoft Research oraz w centrum rozwoju technologii wyszukiwania (Microsoft Search Technology Center). W praktyce SPTAG jest wykorzystywany przez wyszukiwarkę Bing do określenia najtrafniejszych wyników na podstawie kontekstu wyszukiwanych haseł. Kod jest napisany w C++ i dystrybuowane przez na licencji MIT. Obsługiwana jest kompilacja dla systemów Linux i Windows. Istnieje powiązanie dla języka Python.

Pomimo tego, że pomysł wykorzystania wektorów w wyszukiwarkach krąży już od dłuższego czasu, w praktyce ich realizację utrudnia duża zasobochłonność operacji na wektorach oraz ograniczenia skalowalności. Połączenie metod głębokiego uczenia maszynowego z algorytmami przybliżonego wyszukiwania najbliższych sąsiadów umożliwiło doprowadzenie wydajności i skalowalności systemów wektorowych do poziomu akceptowalnego dla dużych wyszukiwarek. Na przykład w Bing dla indeksu wektorów składającego się z ponad 150 miliardów wektorów czas pobrania najbardziej odpowiednich wyników mieści się w granicach 8 ms.

Biblioteka zawiera narzędzia do budowy indeksu i organizacji poszukiwań wektorów, a także zestaw narzędzi do utrzymywania rozproszonego systemu wyszukiwania online obejmującego bardzo duże zbiory wektorów. Oferowany następujące moduły: kreator indeksów do indeksowania, wyszukiwarka do wyszukiwania przy użyciu indeksu rozproszonego w klastrze kilku węzłów, serwer do uruchamiania procedur obsługi na węzłach, agregator do łączenia kilku serwerów w jeden oraz klient do wysyłania zapytań. Obsługiwane jest dodawanie nowych wektorów do indeksu i usuwanie wektorów w locie.

Biblioteka zakłada, że ​​dane przetwarzane i prezentowane w kolekcji są formatowane w postaci powiązanych wektorów, które można porównywać na podstawie Euklidesowy (L2) lub cosinus odległości Zapytanie zwraca wektory, których odległość między nimi a wektorem oryginalnym jest minimalna. SPTAG udostępnia dwie metody organizacji przestrzeni wektorowej: SPTAG-KDT (drzewo K-wymiarowe (drzewo kd) I względny wykres sąsiedztwa) i SPTAG-BKT (k-drzewo oznacza (k-oznacza drzewo i względny wykres sąsiedztwa). Pierwsza metoda wymaga mniej zasobów podczas pracy z indeksem, a druga wykazuje większą dokładność wyników wyszukiwania dla bardzo dużych zbiorów wektorów.

Jednocześnie wyszukiwanie wektorowe nie ogranicza się do tekstu i można je zastosować do informacji multimedialnych i obrazów, a także w systemach automatycznego generowania rekomendacji. Przykładowo w jednym z prototypów bazującym na frameworku PyTorch zaimplementowano wektorowy system wyszukiwania na podstawie podobieństwa obiektów na obrazach, zbudowany na podstawie danych z kilku zbiorów referencyjnych zawierających obrazy zwierząt, kotów i psów, które zostały przekonwertowane na zestawy wektorów . Kiedy przychodzący obraz jest odbierany do wyszukiwania, jest on konwertowany przy użyciu modelu uczenia maszynowego na wektor, na podstawie którego z indeksu za pomocą algorytmu SPTAG wybierane są najbardziej podobne wektory, a w rezultacie zwracane są skojarzone z nimi obrazy.

Źródło: opennet.ru

Dodaj komentarz