Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
3 Декабря 2016 в 00:12

Optimization 2016: в окрестностях «Палеха»

0 3316
Садовский.png

1–2 декабря в Москве прошла конференция Optimization 2016. В секции «Поисковые машины» Александр Садовский (Яндекс) выступил с докладом «В окрестностях Палеха».

Поисковыми системами создано множество алгоритмов, позволяющих лучше понимать текстовую часть запроса. Но Яндекс стремится понять пользовательские запросы еще лучше. Поэтому команда поиска обратила внимание на нейросети.

Есть много известных технологий для обработки больших объемов текстовой информации, например, Word2vec или DSSM. Проблемы этих реализаций в том, что они академические. Любой академический алгоритм работает со стандартным множеством документов и запросов и показывает хорошие научные результаты, но при попытке применить его к реальным базам с огромным количеством документов, он дает либо маленький, либо нулевой прирост качества.

Ни один из алгоритмов с первой попытки не удалось заставить работать, поэтому Яндекс перешел к поиску собственной технологии, которая даст выгоду пользователю и прирост качества поиска. Так появился алгоритм «Палех».

Устройство.png

На слайде выше структура нейросети, где смешиваются слова, словесные биграммы и буквенные триграммы. В результате этого нейросеть получает два разных вектора – вектор запроса и вектор заголовка документа.

Если эти векторы близки, это значит, что запрос похож на заголовок документа. Если они различаются, это означает, что они разные и находить по этому запросу этот документ не нужно. Получается, можно сравнивать запросы и тексты документов с помощью нейросетей.

Основная проблема в том, что нейросеть нужно учить. Она, как ребенок, который еще ничего не знает, но который может научиться многому, если все сделать правильно. И для этого нужны отрицательные примеры и положительные примеры. Если одного из этих классов примеров не будет, нейросеть ничему не научится.

Классический подход к обучению состоит в том, что в качестве обучающего множества берутся клики, как-то решается проблема их разреженности и в среднем на этом множестве система обучается. Но этот подход показал довольно слабые результаты. И этому есть свои причины.

Например, есть довольно большой пласт документов, которые дают ответ прямо в сниппете. Логично, что по такому документу пользователь не кликнет, хотя он мог послужить положительным примером.

Ответ в сниппете.png

Основное достижение в разработке «Палеха» состоит в том, что Яндекс научился находить правильные примеры для обучения, и это дало существенный прирост качества.

Что берется в качестве положительных примеров? Яндексу удалось построить модель, которая позволяет предсказывать, насколько пользователь заинтересован в том, что он видит на сайте по данному запросу, и задержится ли он там надолго. Это стало положительным примером.

Не менее важны отрицательные примеры. Вот некоторые варианты:

Первый – случайные документы. В базе Яндекса миллиарды документов, но даже по самой широкой теме многословного запроса релевантной является лишь доля процента в выдаче. Это означает, что, взяв случайный заголовок, мы с большой вероятностью получим нерелевантный документ. Нейросеть решила эту проблему просто: если слова запроса встречались в заголовке, она считала его релевантным, если нет – нерелевантным. Нужно было усложнить ей задачу.

Второй вариант – слова запроса в заголовке случайного документа. Но нейросеть научилась обходить и это, так что качество поиска не росло.

Третий вариант – Яндекс заставил нейросеть бороться саму с собой с помощью подхода hard negative mining. Когда мы берем некоторый пул заголовков, которые не являются релевантными и относятся к случайным документам, нейросеть считает какие-то из них более подходящими. Если взять самые подходящие из нерелевантных и сказать, что это и есть отрицательный пример, качество начинает расти.

В результате правильное множество отрицательных и положительных примеров дало резкий рост качества по текстовому поиску в дополнение к тем алгоритмам, что у нас уже имеются.

Вот примеры работы «Палеха» по сравнению с алгоритмом BM25:

Пример 1.png

А это результат для коммерческого запроса:

Пример 2.png

В завершение выступления Александр ответил на популярные вопросы про «Палех». Оказалось, что:

  • «Палех» охватывает все типы запросов и все языки и регионы.
  • Его эффективность составляет pFound + 1,6% (на запросах длинного хвоста).
  • «Палех» может влиять на изменение трафика на сайт.
  • Алгоритм малоэффективен при поиске цитат. 
0 комментариев
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.

    Отправьте отзыв!