«Яндекс» рассказал про MatrixNet
1 апреля 2009 представители «Яндекса» рассказали про MatrixNet – новый метод машинного обучения, внедренный в ноябре 2009 в рамках запуска последней версии поисковой программы «Снежинск». Именно на MatrixNet руководство компании возложило ответственность за зарегистрированное в том же ноябре повышение качества поиска «Яндекса» на 5%.
Эффект от прочих «больших» релизов российского поисковика в последнее время не превышал 2%. С алгоритмом связывают в компании и увеличение ее доли на рынке поиска: на сегодняшний день она составляет 63.5% — при том, что в последний раз превысила 60% в октябре 2006 года.
Этот рост востребованности обусловлен и развитием интернет-поиска вообще, и переходом на «Яндекс» части пользователей Mail.ru. Но в компании говорят о существенной роли именно MatrixNet и считают, что потенциал технологии по влиянию на рыночный рост еще не исчерпан.
На вопрос о потребовавшихся на полуторагодичную разработку затратах Аркадий Волож, генеральный директор компании, отвечает так: «Главный продукт был сделан в некие десять минут в конце 2008 года, а десять минут стоят недорого».
Новый MLR-алгоритм «Яндекса» основан на методе gradient boosting, который использует Oblivious Trees. Создатели MatrixNet провели кластеризацию и научили его быстро считать, что лишило алгоритм SVM преимущества в скорости. Опора на бустинг дает устойчивость к переобучению, что позволяет учитывать очень много факторов ранжирования – и при этом не увеличивать количество оценок асессоров и не опасаться, что машина найдет несуществующие закономерности.
Илья Сегалович, директор по технологиям, об устойчивости метода: «И даже более того: чем длиннее решение, тем оно точнее на новых примерах работы – удивительное свойство, которое мы активно используем».
В отличие от алгоритма TreeNet (Boosted Decision Tree с Bagging и ограничением на минимальное количество самплов в листе) MatrixNet не теряет обучающие примеры (за счет регуляризации значений в листах), а сложность модели в нем зависит от итерации: от простых к сложным.
«Гибкость» функции позволяет дообучать ее – в том числе по отдельным классам запросов, просто добавляя новые данные в обучающее множество и не меняя уже имеющуюся структуру. Появилась возможность учитывать в поиске множество факторов и их комбинаций без существенного увеличения вычислительных мощностей. MatrixNet автоматически выбирает разную чувствительность для разных диапазонов значений факторов ранжирования.
Сложная формула ранжирования — десятки тысяч коэффициентов – позволяет отвечать на редкие и трудные запросы с небольшой выдачей. Пример работы нового алгоритма — индивидуальные результаты поиска для разных городов. Полезная вещь при уровне регионально зависимых запросов в 15-20%.
Если не врет статистика, довольных изменениями в поиске «Яндекса» сейчас уже действительно больше, чем недовольных. Ненавязчиво отвоевывая проценты, MatrixNet остается, разумеется, «закулисной» технологией. «Эффектным» он предстает разве что в ИТ-фольклоре, и это, пожалуй, единственное, что «не устраивает» разработчиков.
Илья Сегалович: «Лет 10-15 назад многие области в поиске были абсолютно новыми, можно было прийти и с нуля сделать какую-то очень простую вещь. Например, PageRank — простая математика, ее может студент второго курса понять и рассказать своим родителям. Когда ты видишь некую простую идею, надо понимать, что сейчас она — одна из 400 факторов, ее значимость — одна четырехсотая. Но в 1998 году сила этой идеи была такова, что ею до сих оплодотворяется любовь к Google. То, что мы сделали, трудно объяснить на пальцах: эту технологию можно формально определить, доказать, но это уже не такой
