Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Learn-to-Rank или как научить бездушную машину хорошо искать

Learn-to-Rank или как научить бездушную машину хорошо искать

Роман Гребенников (http://deeprefactoring.ru/speakers/roman-grebennikov)

Видео: https://youtu.be/nvxVMCtRpNc

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

Можно городить пирамиду из if-else-if-else, чтобы получить идеальное ранжирование результатов в вакууме, а можно послушать этот доклад, в котором мы обсудим алгоритмы Learn-to-Rank, позволяющие обучить бездушную машину неявным зависимостям в поведении пользователей и ранжировать по-разному в зависимости от текущего контекста.

Благодаря опыту простреливания далеко не одной ноги в области создания поисковой системы для 1500 онлайн-магазинов, мы ответим на следующие вопросы:

- влияет ли релевантность поиска на продажи,
- почему скорость реакции алгоритма на внешние события так важна (и как её уменьшить, если ты не гугл),
- что делать, если люди тыкают на первые результаты потому что они первые, а не потому что они хорошие,
- как использовать модель, обученную на магазине по продаже дилдо, для ранжирования товаров в магазине детских игрушек?

========================
"Глубокий Рефакторинг" - открытый клуб разработчиков и профессионалов IT-индустрии Воронежа, организующий доклады на профильные темы - http://deeprefactoring.ru/

Открытый чат: https://t.me/deeprefactoring
Новостной канал: https://t.me/deeprefactoring_news
Видео всех докладов - https://www.youtube.com/c/deeprefactoring
Слайды выступлений: https://speakerdeck.com/deeprefactoring

Группа FB - https://www.facebook.com/groups/deeprefactoring
Группа ВК - https://vk.com/deeprefactoring
===========================

Deep Refactoring

July 31, 2019
Tweet

More Decks by Deep Refactoring

Other Decks in Education

Transcript

  1. LEARN-TO-RANK LEARN-TO-RANK ИЛИ КАК НАУЧИТЬ БЕЗДУШНУЮ МАШИНУ ХОРОШО ИСКАТЬ ИЛИ

    КАК НАУЧИТЬ БЕЗДУШНУЮ МАШИНУ ХОРОШО ИСКАТЬ Grebennikov Roman / / / Deep Refactoring / Voronezh / 2019 ndify.io @public_void_grv [email protected] 1
  2. ПРО FINDIFY ПРО FINDIFY white-label eCommerce SaaS search 1500 магазинов,

    20M товаров 50M посетителей в месяц 2
  3. FINDIFY В ДАЛЕКОМ 2014 FINDIFY В ДАЛЕКОМ 2014 Плагин для

    shopify, фокус на UI Внутри ElasticSearch 3
  4. FINDIFY В ДАЛЕКОМ 2014 FINDIFY В ДАЛЕКОМ 2014 Плагин для

    shopify, фокус на UI Внутри ElasticSearch Ранжирование ES по-умолчанию 3
  5. ТИПИЧНАЯ СЕССИЯ ПОЛЬЗОВАТЕЛЯ ТИПИЧНАЯ СЕССИЯ ПОЛЬЗОВАТЕЛЯ 1. Зашел на страницу

    товара (0s) 2. Куда-то тыкнул (+10s) 3. Сделал поиск (+20s) 4. Ушел навсегда (+30s) 7
  6. 10

  7. LAMBDAMART LAMBDAMART Нейросеть тормозит и сложна Multiple Additive Regression Trees

    Градиентным спуском подобрать параметры 18
  8. LAMBDAMART LAMBDAMART Нейросеть тормозит и сложна Multiple Additive Regression Trees

    Градиентным спуском подобрать параметры 18
  9. 20

  10. ФИЧИ ФИЧИ поисковый запрос: # слов, # фильтров товар: цена,

    # просмотров вариант: цвет, размер сессия пользователя: чувствительность к цене, # поисков профиль пользователя: # сессий запрос+товар: # просмотров в рамках запроса 23
  11. ФИЧИ ФИЧИ поисковый запрос: # слов, # фильтров товар: цена,

    # просмотров вариант: цвет, размер сессия пользователя: чувствительность к цене, # поисков профиль пользователя: # сессий запрос+товар: # просмотров в рамках запроса + на разных интервалах 23
  12. 24

  13. 25

  14. ВЫШЛО ХОРОШО, НО НЕ ОЧЕНЬ ВЫШЛО ХОРОШО, НО НЕ ОЧЕНЬ

    Algorithm Conversion AOV Elasticsearch baseline baseline Regression +3.1% +2.5% LMART v1 +6.1% (+8.1%) no data 27
  15. POSITION BIAS POSITION BIAS L. Li, W. Chu, J. Langford,

    R. Schapire. 2010. A contextual-bandit approach to personalized news article recommendation. 34
  16. POSITION BIAS POSITION BIAS L. Li, W. Chu, J. Langford,

    R. Schapire. 2010. A contextual-bandit approach to personalized news article recommendation. Два сегмента: exploration и exploitation убрать bias при обучении 34
  17. POSITION BIAS POSITION BIAS L. Li, W. Chu, J. Langford,

    R. Schapire. 2010. A contextual-bandit approach to personalized news article recommendation. Два сегмента: exploration и exploitation убрать bias при обучении 34
  18. ОТДЕЛЬНАЯ МОДЕЛЬ ДЛЯ КАЖДОГО МАГАЗИНА ОТДЕЛЬНАЯ МОДЕЛЬ ДЛЯ КАЖДОГО МАГАЗИНА

    Магазины с низким трафиком Время на онбординг и холодный старт 37
  19. ОТДЕЛЬНАЯ МОДЕЛЬ ДЛЯ КАЖДОГО МАГАЗИНА ОТДЕЛЬНАЯ МОДЕЛЬ ДЛЯ КАЖДОГО МАГАЗИНА

    Магазины с низким трафиком Время на онбординг и холодный старт Отвратительное ранжирования для сегмента "Exploration" 37
  20. ОДНАЖДЫ НА ХАКАТОНЕ ОДНАЖДЫ НА ХАКАТОНЕ Заменить костыли на ML

    для автокомплита гораздо проще чем поиск 38
  21. ОДНАЖДЫ НА ХАКАТОНЕ ОДНАЖДЫ НА ХАКАТОНЕ Заменить костыли на ML

    для автокомплита гораздо проще чем поиск все фичи зависят только от языка 38
  22. ОДНАЖДЫ НА ХАКАТОНЕ ОДНАЖДЫ НА ХАКАТОНЕ Заменить костыли на ML

    для автокомплита гораздо проще чем поиск все фичи зависят только от языка три магазина для теста: S, M, XXL 38
  23. ОБОБЩЕННАЯ МОДЕЛЬ ОБОБЩЕННАЯ МОДЕЛЬ Больще данных Лучшее покрытие необычных случаев

    Не надо собирать данные для нового магазина Фичи нужно масштабировать 41
  24. NDCG NDCG 1.0 - хорошо, 0.0 - плохо, 0.4-0.7 -

    норм сравнивает идеальное ранжирование с реальным 43
  25. NDCG NDCG 1.0 - хорошо, 0.0 - плохо, 0.4-0.7 -

    норм сравнивает идеальное ранжирование с реальным какое такое идеальное ранжирование? 43
  26. STANLEY BONG STANLEY BONG Позиция в поиске поднялась с #20

    до #1 Ни разу никто не купил Стоит всего 3500$ 45
  27. TRAINING ISSUES TRAINING ISSUES Исторические репрезентативные данные о поисках-кликах- покупках

    Отдельная Обобщенная модель Цель - минимизация NDCG (с корректными весами!) 48
  28. NDCG WITH PERSONALIZATION NDCG WITH PERSONALIZATION Algorithm NDCG (of ine)

    Random 0.544 Popularity 0.578 Elasticsearch 0.601 50
  29. NDCG WITH PERSONALIZATION NDCG WITH PERSONALIZATION Algorithm NDCG (of ine)

    Random 0.544 Popularity 0.578 Elasticsearch 0.601 Regression 0.615 50
  30. NDCG WITH PERSONALIZATION NDCG WITH PERSONALIZATION Algorithm NDCG (of ine)

    Random 0.544 Popularity 0.578 Elasticsearch 0.601 Regression 0.615 LMART v1 ~0.621 50
  31. NDCG WITH PERSONALIZATION NDCG WITH PERSONALIZATION Algorithm NDCG (of ine)

    Random 0.544 Popularity 0.578 Elasticsearch 0.601 Regression 0.615 LMART v1 ~0.621 LMART unbiased 0.635 50
  32. NDCG AND BUSINESS METRICS NDCG AND BUSINESS METRICS Algorithm NDCG

    CTR Conversion AOV Elasticsearch 0.601 baseline baseline baseline 51
  33. NDCG AND BUSINESS METRICS NDCG AND BUSINESS METRICS Algorithm NDCG

    CTR Conversion AOV Elasticsearch 0.601 baseline baseline baseline Random 0.544 -7.1% -2.8% -1.3% 51
  34. NDCG AND BUSINESS METRICS NDCG AND BUSINESS METRICS Algorithm NDCG

    CTR Conversion AOV Elasticsearch 0.601 baseline baseline baseline Random 0.544 -7.1% -2.8% -1.3% Regression 0.615 -1.1% +3.1% +2.5% 51
  35. NDCG AND BUSINESS METRICS NDCG AND BUSINESS METRICS Algorithm NDCG

    CTR Conversion AOV Elasticsearch 0.601 baseline baseline baseline Random 0.544 -7.1% -2.8% -1.3% Regression 0.615 -1.1% +3.1% +2.5% LMART v1 ~0.621 no data +6.1% no data 51
  36. NDCG AND BUSINESS METRICS NDCG AND BUSINESS METRICS Algorithm NDCG

    CTR Conversion AOV Elasticsearch 0.601 baseline baseline baseline Random 0.544 -7.1% -2.8% -1.3% Regression 0.615 -1.1% +3.1% +2.5% LMART v1 ~0.621 no data +6.1% no data LMART unbiased 0.635 no data +8.1% (est) no data 51
  37. 53