Интересное на GitHub: Алгоритм поиска 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 есть несколько примеров и пояснений.

https://youtu.be/Yl1XPoL48ZQ

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

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

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

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

Библиотека программиста
18 октября 2017

Шпаргалка по Git, в которой представлены основные команды

Git сегодня - это очень популярная система контроля версий. Поэтому шпаргал...
admin
23 февраля 2017

Git за полчаса: руководство для начинающих

В последние годы популярность git демонстрирует взрывной рост. Эта система ...
admin
21 февраля 2017

Какие алгоритмы нужно знать, чтобы стать хорошим программистом?

Данная статья содержит не только самые распространенные алгоритмы и структу...