Microsoft открыл код библиотеки векторного поиска, используемой в Bing

Библиoтeкa рaзрaбoтaнa в исслeдoвaтeльскoм пoдрaздeлeнии Microsoft Research и цeнтрe рaзрaбoтки пoискoвыx тexнoлoгий (Microsoft Search Technology Center). Нa прaктикe SPTAG примeняeтся в пoискoвoй систeмe Bing с целью oпрeдeлeния нaибoлee рeлeвaнтныx рeзультaтoв с учётoм кoнтeкстa и зaдaния пoискoвыx запросов в естественном языке. Код написан нате языке С++ и распространяется под лицензией MIT. Поддерживается компоновка для Linux и Windows. Имеется обвязка пользу кого языка Python. Ключевое отличие векторного поиска через поиска по ключевым словам заключается в томище, что векторы учитывают смысл и однообразие данных, а не только символьные совпадения. Векторы формируются держи основе модели машинного обучения, которая учитывает как и сопутствующую статистику, уточняющую связи и позволяющую побольше точно оценить суть запроса (как-то, учитываются связь запроса с последующими переходами в поисковой выдаче). Невзирая на то, что идеи применения векторных хранилищ в поисковых системах витают уж достаточно давно, на практике их внедрению мешает большая ресурсоёмкость операций с векторами и ограничения в масштабируемости. Эклектицизм методов глубинного машинного обучения с алгоритмами приблизительного поиска ближайшего соседа позволило доставить производительность и масштабируемость векторных систем раньше уровня, приемлемого для крупных поисковых систем. Взять, в Bing для векторного индекса размером сильнее 150 миллиардов векторов время выпись наиболее релевантных результатов укладывается в 8 мс. В число библиотеки включены средства для построения индекса и организации поиска векторов, а да набор инструментов для сопровождения распределённой системы online-поиска, охватывающей беспредельно большие коллекции векторов. Предлагаются следующие модули: index builder угоду кому) индексации, searcher для поиска с использованием индекса, распределённого в кластере изо нескольких узлов, сервер для запуска обработчиков получай узлах, Aggregator для объединения нескольких серверов в одно система. Ant. часть и клиент для отправки запросов. Поддерживается присоединение новых векторов в индекс и удаление векторов нате лету. Библиотека подразумевает, что обрабатываемые и представленные в коллекции цифирь оформлены в виде связанных векторов, которые позволено сравнивать на основе евклидовых (L2) сиречь косинусных расстояний. При поисковом запросе возвращаются векторы, протяжение между которыми и исходным вектором минимально. В SPTAG предоставляется двум метода организации векторного пространства: SPTAG-KDT (K-мерное полено (kd-tree) и граф относительных окрестностей) и SPTAG-BKT (палка k-средних (k-means tree и граф относительных окрестностей). Присутствие этом векторный поиск не ограничивается текстом и может употребляться к мультимедийной информации и изображениям, а также на в системах автоматического формирования рекомендаций. На выдержку, в одном из прототипов на базе фреймворка PyTorch была реализована векторная метода для поиска с учётом сходства объектов получи изображениях, построенная с использованием данных изо нескольких эталонных коллекций с изображениями животных, кошек и собак, которые были преобразованы в наборы векторов. Близ поступлении входящего изображения для поиска оно преобразуется с использованием модели машинного обучения в градиент, на основе которого при помощи алгоритма SPTAG с индекса выбираются наиболее похожие векторы и (языко результат возвращаются связанные с ними изображения. Происхождение: http://www.opennet.ru/opennews/art.shtml?num=50698