Ответ вслух Middle Рекомендательные системы обновлено

ML system design: похожие товары

Вопрос

Спроектируйте блок «Похожие товары» на карточке товара.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

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

Что должно прозвучать в ответе

  • Уточнить смысл: похожие (замена) или сопутствующие (дополнение)

  • Сигналы: совместные просмотры в сессии, контент (текст, фото), атрибуты

  • Эмбеддинги и ANN-поиск, гибрид для холодного старта

  • Фильтры: наличие, категория, цена, дубли

  • Оценка: офлайн по совместным просмотрам, онлайн CTR и конверсия

Что могут спросить следом

  • Как отличить похожие товары от сопутствующих в данных?
  • Как быстро добавить в выдачу только что созданный товар?

Разбор

Уточняю задачу: «похожие» это альтернативы для выбора, а не аксессуары. Поэтому сигналом служат товары, которые смотрят в одной сессии перед покупкой одного из них, а не те, что покупают вместе. Строю эмбеддинги товаров двумя способами: поведенческие (item2vec на последовательностях просмотров или two-tower) и контентные (текстовая модель по названию и описанию, визуальная по фото, атрибуты). Для новых товаров с малой историей опираюсь на контентный эмбеддинг или смешиваю оба. Похожие ищу ANN-поиском, топ-100 кандидатов предрасчитываю для каждого товара батчем, а для новых считаю на лету. Пост-фильтры: тот же тип товара, в наличии, разумный ценовой диапазон, без дублей одного товара от разных продавцов. Офлайн оцениваю, насколько часто следующий просмотренный в сессии товар попадает в блок, онлайн CTR блока и конверсию в покупку в A/B.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.