Интересное на GitHub: Алгоритм поиска Bing от Microsoft

0
1913
Добавить в избранное

Сегодня алгоритм поиска — это больше, чем просто соответствие ключевых слов.

Алгоритм поиска Bing от Microsoft

Например, ты можешь задать вопрос, например, «Какова высота башни в Париже?» — и поиск скажет тебе, что Эйфелева башня имеет высоту 324 метра. Поисковая система может это сделать, хотя, на самом деле, точный вопрос так и не был сформулирован.

Как алгоритм поиска это делает? Как и все остальное в наши дни, поисковые системы используют машинное обучение. Машинное обучение используется для построения векторов — по существу, длинных списков чисел — которые (в некотором смысле) представляют их входные данные, будь то текст на веб-странице, изображения, звук или видео. Bing получает миллиарды таких  векторов для всех видов медиа, которые он индексирует. Для поиска векторов Microsoft использует алгоритм, который называется SPTAG («Дерево и граф пространственных разделов» — Space Partition Tree and Graph). Входной запрос преобразуется в вектор, а SPTAG используется для быстрого поиска «примерных ближайших соседей» (ANN, approximate nearest neighbors), то есть векторов, похожих на входные.

Примерно так (с огромным количеством допущений) поиск отвечает на вопрос об Эйфелевой башне. Для запроса «Какова высота башни в Париже?» ближайшие страницы будут рассказывать о башнях, Париже и о том, какой высоты вещи. В совокупности такие страницы почти наверняка будут об Эйфелевой башне.

Сегодня Microsoft опубликовала свой SPTAG-алгоритм под открытой MIT-лицензией на GitHub. Этот код уже используется для ответов на вопросы в Bing (и доступен в качестве сервиса Azure). Разработчики могут использовать этот алгоритм для быстрого поиска своих векторов. Один компьютер может обрабатывать 250 миллионов векторов и отвечать на 1,000 запросов в секунду. В AI Lab у Microsoft есть несколько примеров и пояснений.

Генеральный директор Microsoft Сатья Наделла неоднократно говорил о своем желании «демократизировать ИИ». Его идея сделать из ИИ не «закрытое» специализированное средство, требующее больших знаний, а доступный широкому кругу разработчиков для решения множества вопросов инструмент.

Посмотрите SPTAG на GitHub.

Что еще интересного есть на GitHub:

Интересуетесь алгоритмами?

Подпишитесь на нашу рассылку, чтобы получать больше интересных материалов:

И не беспокойтесь, мы тоже не любим спам. Отписаться можно в любое время.




Добавить комментарий