March 10

Рекомендательные системы для аналитиков, часть 6. Практический пример

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

  1. Явная обратная связь на Авито — это звонок или сообщение продавцу (контакт). Это самый сильный сигнал, его и стараются предсказать.
  2. Неявная обратная связь — это клики, просмотры, добавления в избранное. Но есть нюанс: клик по объявлению из другого города может быть случайным, и если оптимизировать модель только под клики, она начнет показывать товары со всей России (их же много, они соблазняют кликнуть), но контактов (целевых действий) не будет. Система должна учиться именно на конверсии в контакт.


На Авито используется гибридная архитектура, которая четко делится на кандидатогенерацию и ранжирование (офлайн + онлайн):

  1. Кандидатогенерация: система по истории пользователя ищет тысячи потенциально интересных объявлений. Здесь используются нейросети, которые превращают и пользователя, и товары в вектора. Мы ищем ближайших соседей в этом векторном пространстве
  2. Ранжирование: тысячи кандидатов нужно отсортировать. Тут в дело вступает модель, которая смотрит на сотни признаков: насколько объявление свежее, какая цена, есть ли фото, совпадает ли город, какой рейтинг у продавца

Для того, чтобы понять, насколько похожи между собой объявления, сравнивается их текст. Чем больше совпадений или синонимов (конечно, считаются не прямые совпадения, а совпадения, обнаруженные специальной моделью для обработки естественного языка - она знает и синонимы, и антонимы, и еще кучу всего), тем ближе объявления друг к другу. Также похожими считаются объявления, если пользователи просматривал их в рамках одной сессии

Как это использовать на практике?

Знания о внутрянке Авито могут помочь, например, продавцам товаров:

  • Подробно заполняйте описание товара, чтобы пробить холодный старт. Авито стремится кластеризовать товары. Чем точнее вы укажете все характеристики (бренд, модель, размер, состояние), тем быстрее система поймет, что ваш iPhone 12 — это именно тот типовой товар, который сейчас ищут. Ваше объявление попадет в правильную корзину (кластер) и будет рекомендовано тем, кто интересуется этой моделью
  • Делайте качественные фото. Красивое фото заставит кликнуть даже случайного зрителя, дав системе первый неявный фидбек (клик)
  • Используйте правильные слова. Если вы продаете "чехол для айфона", а в заголовке написано "защитный кейс", система может посчитать, что это разные товары. Используйте названия, которые используют другие продавцы и покупатели в поиске, или которыми пользуются люди на кастдеве. Тогда ваш товар будет лежать ближе в векторном пространстве к "iPhone 12", и его с большей вероятностью порекомендуют в паре к телефону или как похожий вариант
  • Избегайте спама. Писать "iPhone, чехол, пленка, наушники, зарядка" в одном заголовке — плохая идея. Система не поймет, что вы продаете на самом деле, и ваше объявление станет шумом, который сложно кластеризовать
  • Актуализируйте объявление. Если товар не продается, не копируйте его бесконечно. Попробуйте изменить заголовок, добавить новые фото, немного скорректировать цену. Система воспримет это как новый сигнал и даст объявлению второй шанс. Если вы обновили фотографии, чуть изменили описание — это новый сигнал. Система воспринимает это как свежее событие. Особенно это важно для товаров с "длинным хвостом" — редких, но нужных.
  • Включите доставку. В первой части мы говорили про контекст. По умолчанию Авито показывает товары рядом с вами. Это логично: диван из соседнего района привезти проще, чем из Хабаровска. Но если вы готовы отправить товар в другой город, укажите это! Ваше объявление перестаёт быть запертым в своём регионе, его контекст расширяется. Оно попадает в рекомендации пользователям из других городов, которые ищут похожий товар. Вы резко расширяете охват и вырываетесь из географического пузыря

Если вам интересно глубоко погрузиться в рекомендации Авито, можно нырнуть сюда:

  1. https://habr.com/ru/companies/avito/articles/338470/
  2. https://habr.com/ru/companies/avito/articles/417571/
  3. https://habr.com/ru/companies/avito/articles/491942/
  4. https://habr.com/ru/companies/avito/articles/1004694/
  5. https://habr.com/ru/companies/avito/articles/974682/