Pull to refresh
14
0
Александр Сафронов @alsafr

Руководитель секты релевантности и лингвистики

Send message
Отличный вопрос, спасибо. Да, нам нужно умножить вектор запроса на векторы сотен тысяч документов. Но это происходит параллельно на довольно большом числе отдельных машин (мы называем их «базовыми поисковыми машинами», или просто «базовыми»). Таким образом, на каждом отдельном «базовом» мы умножаем не сотни тысяч векторов, а на несколько порядков меньше. Препроцессинг же векторов документов тоже не бесплатен. Кроме того, документы, векторы которых нам нужно умножить на вектор запроса, обычно довольно похожи между собой — ведь эти документы не случайны, они нашлись на более ранних стадиях поиска по данному запросу. То есть заведомо плохие варианты уже отсечены ещё до умножения. Учитывая всё это, сильно схитрить не получится)
В случае с «келлс» и «келлский» речь идет не о словоизменении, а о словообразовании, то есть с определенной точки зрения это — разные слова. В статье для наглядности использовался вариант BM25, который именно так и считает. Но о том, что слова «келлс» и «келлский» как-то связаны, большой поиск Яндекса, конечно, знает и без DSSM.

На этот счет есть интересная лекция моего коллеги: Андрей Плахов. Язык поисковых запросов как естественный язык.
Если коротко, то язык поисковых запросов (или человеко-машинный пиджин), конечно, отличается от литературного языка, но, судя по всему, его выразительных средств достаточно для решения поисковых задач пользователя.
Сам по себе word2vec — штука довольно интересная. Просто он плохо проявил себя в нашей конкретной задаче по улучшению поиска. Мое объяснение состоит в том, что обучение «классического» word2vec происходит без привлечения информации о поведении пользователей. В отличие от word2vec, целевая функция при обучении DSSM непосредственно связана с задачей ранжирования.
В оригинальном DSSM частотность триграмм не учитывается, используются только 0 и 1.
Ключ к высокому качеству поиска находится на поздних стадиях ранжирования. Возможно, это не совсем очевидно, но наш опыт говорит о том, что сделать фильтрацию, которая будет находить хороший топ-10000 документов, заметно проще, чем правильно отранжировать документы в этом топе. Сейчас модель применяется к нескольким сотням лучших документов. Вероятно, в обозримом будущем это число существенно увеличится.
Да, вероятно, это не самая удачная калька с английского. На мой взгляд, при наличии хорошего русскоязычного аналога лучше использовать его.
Закономерный вопрос. Наше ранжирование состоит из нескольких последовательных стадий, различных по количеству обрабатываемых документов и сложности применяемых на них алгоритмов. Сначала работает очень быстрое ранжирование, которое находит, например, сотни тысяч документов. Затем мы используем более умное и медленное ранжирование и оставляем десятки тысяч документов и так далее. Таким образом, самые тяжелые алгоритмы применяются не ко всем документам вэба, а к некоторому большому, но всё же ограниченному топу наиболее перспективных документов.
Совершенно верно, выход нейронной сети используется как один из множества факторов.
Описанная нейронная модель является всего лишь одним из многих факторов, влияющих на ранжирование в Яндексе. Поэтому после переформулировки запроса результаты будут по-прежнему изменяться. Мы просто стараемся сделать так, чтобы всё находилось с первого раза.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity