← к модулям

Сравнение моделей

Все пять моделей на одном протоколе, рядом. Выбери метрику и сравни — а главное, посмотри, как меняется картина на сложных сегментах: long-tail фильмах и малоактивных пользователях. Именно там видно реальную силу персонализации.

Почему нельзя выбрать модель по одной средней метрике
БылоМожно сравнить модели по одному NDCG@10.
ПроблемаСредняя метрика скрывает провалы на long-tail, малоактивных пользователях и по coverage.
ИдеяСмотреть не только общий score, но и сегменты пользователей/айтемов.
Стало лучшеВиден trade-off между accuracy, coverage, novelty и diversity.
Осталось слабымOffline-срезы всё равно не заменяют online-эффект.
ДальшеMonitoring, A/B-тесты и guardrail-метрики (в следующих модулях).
Модель

Всё на одном протоколе: leave-last-out, K = 10, релевантно = оценка ≥ 4. Зелёным — лидер сегмента. У coverage/novelty/diversity «больше» не всегда значит «лучше».

Сложные срезы: long-tail айтемы и малоактивные пользователи

Средняя метрика «по всем» прячет важное. Модель может выглядеть прилично в среднем, но разваливаться там, где данных мало. Поэтому мы считаем те же метрики ещё и на двух узких сегментах, где сигнала меньше.

⚠️ Это не настоящий cold-start

Полный production cold-start — это айтем/пользователь без взаимодействий вовсе. У нас же фильмы и люди со скудной, но ненулевой историей: это long-tail / low-signal-сегменты, учебная аппроксимация ситуаций, где данных мало, а не строгий cold-start.

Long-tail / нишевые айтемы — пользователи, чей спрятанный фильм набрал ≤ 60 оценок в train, то есть он в «длинном хвосте» каталога (вне популярной головы / head). Про такой фильм мало сигнала, и угадать его трудно. На нашем датасете в этот срез попадает ≈ 229 из 363 оцениваемых. (Если взять совсем редкие, ≤ 20 оценок, их не угадывает ни одна модель — поэтому планка чуть выше, чтобы был виден контраст.)
Малоактивные пользователи — у кого ≤ 30 оценок в train: короткая история, тонкий профиль вкуса. На нашем датасете это ≈ 73 из 363. Маленький срез → метрика на нём заметно шумнее, чем «по всем».

Сегменты не взаимоисключающие: один пользователь может попасть и в long-tail-срез (его спрятанный фильм нишевый), и в low-activity-срез (у него самого мало оценок). Размеры срезов также видны в шапке таблицы выше.

Как читать таблицу

  1. Выбери метрику в выпадающем списке.
  2. Сначала сравни модели в колонке «Все пользователи».
  3. Потом — тех же моделей на «Long-tail айтемах».
  4. Потом — на «Малоактивных пользователях».
  5. Не выбирай модель по одной метрике: accuracy, coverage, novelty и diversity отвечают на разные вопросы.

На что смотреть

Переключи метрику на NDCG@10 и сравни столбцы «Все» и «Long-tail айтемы». На наших данных точность popularity на long-tail вышла ровно 0: модель ранжирует фильмы по общей популярности, поэтому нишевому фильму почти невозможно попасть в Top-10. MF же на этом сегменте всё ещё лидирует, а content-based — обгоняет item-CF: вот где проявляется его козырь, ведь он опирается на признаки фильма, а не на чужие оценки, которых у нишевого фильма мало. За это «удержание на хвосте» мы и платим сложностью моделей.

А на малоактивных пользователях разрыв обратный: персональные модели (item-CF, MF) заметно обходят popularity — даже тонкого профиля хватает, чтобы победить «средние хиты». Важная оговорка: это верно для нашего датасета и порога ≤ 30. У настоящего cold-start-пользователя с 1–2 событиями item-CF и MF уже нестабильны — здесь же у людей всё-таки есть какая-то история.

Это главный вывод фазы: одно усреднённое число обманчиво. Сравнивать модели нужно по сегментам и по нескольким метрикам сразу — как на странице метрик и в описании протокола.