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

Дмитрий Андросов – «Персональные поисковые подс...

Ozon Tech
October 30, 2023

Дмитрий Андросов – «Персональные поисковые подсказки»

Ozon Tech

October 30, 2023
Tweet

More Decks by Ozon Tech

Other Decks in Technology

Transcript

  1. Ozon Tech 2023 Как сделать персональные поисковые подсказки Андросов Дмитрий,

    старший математик-разработчик группы «Поисковые подсказки»
  2. • Поисковые подсказки в e-commerce Agenda 2 • Рантайм и

    базовый поиск • Ранжирование подсказок • Персонализация
  3. Что такое поисковые подсказки? 3 20+ K RPS q99 <

    50ms 6 млн документов в базе ранжирования
  4. Зачем нужны поисковые подсказки? 4 Для Ozon: • ведём пользователя

    на более полезные запросы • помочь сформулировать потребности/ желания в виде текстового запроса • помочь избежать ошибок при наборе запроса • сократить пользовательский путь до покупки нужного товара Для пользователя:
  5. Как измерить полезность саджестов? 5 • Интерактив с саджестами •

    CTR саджестов • Качество выдачи • Интерактив после клика на саджест • Количество пустых выдач у пользователей • Количество заказов и GMV после запросов из саджестов • Количество опечаток в пользовательских запросах • Временные метрики • Скорость ввода запроса • Время от начала пользования саджестами до покупки • …
  6. Как работают поисковые подсказки? 6 Индекс поисковых подсказок Поисковый движок

    N кандидатов Топ-К саджестов Префикс Префиксный поиск Базовое ранжирование
  7. Префиксный поиск саджестов 7 • Документы индекса содержат в себе

    текстовые запросы с метаинформацией • Скор — количество целевых действий пользователя по запросу за предыдущие N дней prefix = «мол» query = «молоко» popularity = 100 query = «молотый кофе» popularity = 50 query = «малярный скотч» popularity = 5 query = «молочко для тела» popularity = 1000 query = «мобильный телефон» popularity = 10 Индекс поисковых подсказок
  8. Добавим ранжирование 8 Индекс поисковых подсказок Поисковый движок N саджестов

    Топ-К саджестов Префикс Префиксный поиск Базовое ранжирование ML ranking • Most Popular Completion – ранжирование по популярности запросов • Most Popular GMV Completion – ранжирование по GMV запроса • ML-модель: линейные модели градиентный бустинг нейронные сети Не ранжировать, а генерировать
  9. ML: постановка задачи ! — множество запросов, "# $ =

    "# ($|( = () ) — признак запроса $ для пользователя () + — релевантность, y ∈ ℝ Пусть / ≺ 1 — правильный порядок на парах (2, 4), т.е. +5 < +7 Задача — найти 8($): если / ≺ 1, то 8 $5 < 8($7 ) Группа для ранжирования Саджест f1 f2 … fm Релевантность user_id = 123 prefix = “м” «молоко» 342 0.05 … 0.78 1 «макароны» 435 0.91 … 0.09 3 «мыло для рук» 121 1.02 … 0.61 2 «молоток» 97 2.5 … 0.34 0
  10. Признаковое описание объектов 10 Статистические признаки запроса описывают популярность запроса

    Количество заказов по запросу «молоко» за последние 7 дней = 1000 Персональные признаки пользователя говорят о том, что перед нами за человек – описывают long- term предпочтения пользователя Предпочитает бренд «Домик в деревне» Контекстные признаки опираются на предыдущую активность пользователя в сессии – описывают short-term предпочтения Заказывал молоко вчера
  11. Первый подход к ML-ранжированию 11 Статистические фичи запросов • Счётчики

    количества полезных событий по запросу • Добавления в корзину • Добавления в избранное • Заказы • Запросные конверсии Преимущества фичей • Дают много информации о популярности запросов • Легко считаются любым ETL-процессом (Spark, ClickHouse, etc.) Недостатки фичей • Ненормированность → сдвигается распределение признаков со временем • fraud / боты / накрутка
  12. Первый подход к ML-ранжированию 12 Индекс поисковых подсказок Поисковый движок

    N саджестов Топ-К саджестов Префикс Префиксный поиск Базовое ранжирование ML ranking Расчёт стат. признаков запросов KV- storage • +0.2% CTR саджестов Результаты: • саджестная выдача не персонализирована Текущая проблема:
  13. Добавляем персонализацию 13 Новый поисковый запрос зачастую близок по смыслу

    к прошлым запросам Мера Жаккара Расстояние Левенштейна Косинусная близость векторных представлений Как учитывать близость?
  14. Косинусная близость векторных представлений 14 • «Семантически схожие слова встречаются

    в схожих контекстах» • Избегаем OOV и проблему морфологии – учим FastText картофель Word2Veс чистка Word2Veс картофелечистка Word2Veс [«<картофе», «картофел», «артофеле», «ртофелеч», «тофелечи», «офелечис», «фелечист», «елечистк», «лечисткa», «ечисткa>»] картофелечистка
  15. Добавляем персонализацию • Рассматриваем N последних запросов пользователя • Фичи

    – близость запросов в истории с кандидатом на ранжирование • Как давно пользователь делал свои запросы в истории? Временные признаки:
  16. Добавляем персонализацию 16 Индекс поисковых подсказок Поисковый движок N саджестов

    Топ-К саджестов Префикс Префиксный поиск Базовое ранжирование ML ranking Расчёт стат. признаков запросов Лог поисковых запросов KV- storage Статистические фичи запросов Фичи по поисковой истории • +0.6% CTR саджестов Результаты: • -1% пустых товарных выдач в поиске
  17. Больше персонализации 17 • Хочется учитывать не только семантическую близость,

    но и близость «по интересам» • интерес определяется действиями пользователя по данному запросу в прошлом ALS на матрице интересов пользователь-запрос: • получаем признаки user2item и item2item между запросом в истории пользователя и саджестом
  18. Больше персонализализации 18 Индекс поисковых подсказок Поисковый движок N саджестов

    Топ-К саджестов Префикс Префиксный поиск Базовое ранжирование ML ranking Расчёт стат. признаков запросов Лог поисковых запросов Обученные ALS- эмбеддинги KV- storage Статистические фичи запросов Фичи по поисковой истории ALS-фичи • +0.4% CTR саджестов Результаты: • +0.2% запросов без интерактива • +0.3% GMV поиска
  19. Ещё больше персонализации 19 Будем учитывать активность пользователя в каталоге

    и добавления товаров в корзину Смотрим на семантическую близость саджеста и: • запроса, по которому произошло добавление в корзину • названия посещённой категории в каталоге Еще и парные фичи пользователь-запрос: • фичи популярности запроса именно у этого пользователя
  20. Ещё больше персонализализации 20 Индекс поисковых подсказок Поисковый движок N

    саджестов Топ-К саджестов Префикс Префиксный поиск Базовое ранжирование ML ranking Расчёт стат. признаков запросов Лог поисковых запросов Обученные ALS- эмбеддинги Лог пользовательских событий KV- storage Статистические фичи запросов Фичи по поисковой истории ALS-фичи Фичи по каталожной истории и добавлениям в корзину • +0.4% CTR саджестов Результаты: • -0.2% запросов без интерактива
  21. Вместо итогов 21 Рассмотрели: • схему рантайма • задачу ML-ранжирования

    • внедрение персонализации Не поговорили про: • улучшение базового отбора • учёт региона пользователя • учёт пола пользователя • ценовые предпочтения • инфиксный поиск • нечеткий (fuzzy) поиск • другие персональные фичи