Деньги против пользы: инсайты с RecSys-митапа

Рекомендательные системы - это всегда компромисс между желанием пользователя найти идеальное и целью бизнеса монетизировать трафик. Собрал выжимку из митапа: как компании решают этот конфликт на практике.

1️⃣ Продвижение без убийства выдачи (Яна Семененя, HH) Проблема: Жестко забитые промо-места вызывают баннерную слепоту, а накрутка бизнес-веса в формуле ранжирования превращает топ в помойку. Решение: Механика «Трафарет». Фиксируют долю промо в ленте (например, 20%), а конкретные позиции выбирают рандомно. Практика: Тестировали на двух кейсах. • Для вакансий с малым числом откликов (те, что долго висят без кандидатов) взяли 30% ленты. Откликов стало больше, но конверсия рухнула на 50%. Решили не катить. • Для платного тарифа работодателей взяли 10% ленты. Конверсия просела всего на 15%, откликов +22%. Раскатили. ➡️ Формулы «сколько стоит потеря релевантности в рублях» на данный момент нет. Решение принимается индивидуально.

2️⃣ Диалоговый LLM-поиск (Катя Лунина, hh) Проблема: Фильтры не понимают специфичные запросы («медбрат только с базовым сертификатом, без допов»). Решение: Запустили LLM-агента без сложного UI на лояльную аудиторию. 20% юзеров полностью перешли на ИИ-поиск. Практика: На объеме начались галлюцинации (на запрос «работать с растениями» выдавал дворников). Пришлось принимать продуктовые решения (например, «задать ли уточняющий вопрос пользователю?») из нейросети и фиксировать их в обычном коде по правилам. ➡️ Точки принятия решений нужно постепенно забирать у модели и передавать детерминированному коду.

3️⃣ Единый аукцион ленты (Андрей Демидов, Авито) Проблема: Как скрестить в одной ленте бесплатные объявления, автомобили и платное промо с разными моделями (CPC, CPL). Решение: Ранжировать всё по матожиданию выручки (eSPI). Органика и платное конкурируют на равных. Практика: Первый тест дал взрыв выручки, но лента заполнилась кликбейтом (мемные сумки за 29к, на которые кликали, но не покупали). Поставили пороги по конверсии - лента ушла в элитные ЖК. Помогла корректировка ставки под вероятность контакта конкретного юзера. ➡️ Честная математика всегда кому-то делает больно. Готовьтесь к сопротивлению бизнес-юнитов и «эффекту пузыря» в тестах. Когда вы запускаете A/B, модель начинает учиться на поведении тестовой группы. Если в тесте было много платного, модель запоминает это как норму и начинает так же ранжировать для всех. Получается замкнутый круг: вы видите рост метрик в тесте, а на деле просто создаете искаженную реальность, которая расходится с поведением обычных пользователей.

4️⃣ Специфика недвижимости (Саша Павленко, Циан) Проблема: Много узких запросов (ранжирование не влияет, если в выдаче всего 5 объектов). Главная боль ML - холодный старт. Квартиры в аренду уходят за дни, классические модели не успевают накопить статистику. Решение: Отказались от ID объекта в нейросети. Вместо ID скармливают 50 признаков квартиры, рекомендуя новинки мгновенно. Практика: Строят фундаментальный вектор пользователя сквозь все платформы (веб, app), чтобы не терять контекст. А в текстовом поиске классическое распознавание сущностей (NER - когда модель сама находит в тексте город, этаж, сумму, тип сделки) пока работает быстрее и дешевле LLM. ➡️ В доменах с быстрым оборотом товаров отказ от ID в пользу признаков объекта отлично решает проблему холодного старта.

Итог: Математика и ML не существуют в вакууме. Любое изменение алгоритмов тут же бьет по бизнес-метрикам. Задача продакта - найти баланс между математической честностью и здравым смыслом.

PS Запись митапа - Youtube