Wektorowe wyszukiwanie dla każdego: Microsoft uwalnia stosowane w Bingu algorytmy AI

Adam Golański , 16.05.2019 r.
Researcher

Wyszukiwarki były kiedyś prostsze. Korzystanie z nich ograniczało się do wpisywania kilku słów i przeglądania wyników – listy linków czy galerii obrazków. Dzisiaj wyszukiwarki potrafią znacznie więcej. Znajdą podobne zdjęcia, przyjmą polecenia wydane głosem, odpowiedzą nawet z sensem na pytania zadane w języku naturalnym.

Microsoft w dziedzinie wyszukiwania może i nie potrafi osiągnąć rynkowego sukcesu, ale od strony technicznej dokonał wiele. Widać to choćby po sprawności, z jaką Bing radzi sobie właśnie z pytaniami w języku naturalnym. Na pytanie How tall is the tower in Paris, zwraca internaucie wynik 1063 stóp (324 metrów dla stosujących cywilizowane jednostki miar) – i to mimo tego, że nazwa Wieży Eiffela nie pada w pytaniu, a słowo tall nie pojawia się w wynikach.

Wyszukiwarka, która rozumie, o co ją pytasz

W jaki sposób to działa? Oczywiście chodzi o maszynowe uczenie. Wykorzystywane jest ono do budowania wektorów – długich list liczb, które reprezentują dane wejściowe, czy to tekst na stronie internetowej, obrazy, dźwięk, czy filmy. Wektor pomaga uchwycić to, co faktycznie oznacza dany element danych. Bing wychwytuje miliardy tych wektorów dla wszystkich rodzajów mediów, które indeksuje.

Zobacz też: Czas na pożegnanie typów – wyszukiwarka Elasticsearch zadebiutowała w wersji 7

Następnie, do przeszukiwania wektorów używany jest algorytm o nazwie SPTAG ("Space Partition Tree and Graph" – przestrzeń drzewa partycji i grafu). Zapytanie wejściowe jest konwertowane na wektor, a SPTAG służy do szybkiego odnalezienia "najbliższych sąsiadów" (ANN), czyli wektorów podobnych do tego, co na wejściu. Pozwala to zrozumieć i odwzorować przy użyciu tych wektorów samą intencję wyszukiwania.

Dzięki temu Bing jest w stanie łatwo poradzić sobie z zadaniami, które stanowią wyzwanie dla tradycyjnych wyszukiwarek, bazujących na odwróconym systemie indeksów, zwracającym wyniki poprzez dopasowanie słów kluczowych.

AI dla każdego programisty

Szef Microsoftu Satya Nadella wielokrotnie już mówił, że marzy mu się demokratyzacja sztucznej inteligencji, tak by była dostępna dla wszystkich programistów, niezależnie od zadań nad jakimi pracują. I własnie w tę stronę idzie sama firma z Redmond. Na łamach korporacyjnego bloga poinformowano o udostępnieniu na GitHubie biblioteki z algorytmem SPTAG. Napisana w C++, z wrapperem w Pythonie, w całości dostępna jest na wolnej licencji MIT. Jest to dokładnie ten sam produkcyjny kod, jaki wykorzystywany jest w Bingu.

Zobacz też: Wyszukiwarka DuckDuckGo oskarżona o śledzenie użytkowników

Programiści mogą użyć tego algorytmu do przeszukiwania własnych zestawów wektorów, z niezwykła wydajnością. Jeffrey Zhu, kierownik zespołu Bing w Microsofcie pochwalił się, że ta zawierająca indeks ponad 100 miliardów wektorów wyszukiwarka znajduje najbardziej powiązane wyniki w 5 milisekund. Jak tłumaczy, stos 150 miliardów wizytówek rozciągnąłby się stąd na Księżyc. W mgnieniu oka, wyszukiwanie Binga za pomocą SPTAG może w tym stosie kart znaleźć 10 odpowiednich wizytówek.

Więcej na temat wyszukiwania wektorów znajdziecie na stronach Microsoft AI Lab.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT: