Рекомендательные системы для аналитиков, часть 4. Оценка систем
Как измерить, насколько хороша наша система? Ведь одно дело — построить модель, и совсем другое — доказать, что она действительно помогает пользователям находить то, что им нужно, а бизнесу — зарабатывать больше.
В этом нам помогают метрики и эксперименты. Глобально они делятся на несколько видов вида:
- Оффлайн-оценка: это когда мы из исторических данных убираем часть информации и смотрим, насколько хорошо система ее восстановит
- Онлайн-оценка: делим пользователей на две категории. У одних оставляем всё как есть сейчас, у других используем новый алгоритм рекомендаций. Если видим улучшение метрик в новом алгоритме — переводим всех пользователей на новый алгоритм
- Многорукий бандит: продвинутая онлайн-оценка. Название произошло от метафорического названия игровых автоматов — "одноруких бандитов". А тут у нас задача, похожая на оптимизацию выигрыша в нескольких игровых автоматах. Игроку нужно выбрать, какой рычаг дергать, чтобы максимизировать суммарный выигрыш. При этом он не знает заранее, какой рычаг лучший, и должен пробовать разные варианты (исследование), чтобы собрать информацию, но при этом не терять слишком много, выбирая заведомо плохие варианты (эксплуатация лучших на данный момент). Бандитские алгоритмы динамически перераспределяют трафик в пользу более успешных вариантов, при этом продолжая исследовать новые или редко показываемые позиции. В рекомендательных системах:
- Рычаги — это возможные рекомендации (товары, статьи, видео, музыкальные треки и т.д.)
- Выигрыш — это целевая метрика (клик, покупка, дочитывание, лайк, время просмотра)
- Цель — максимизировать суммарную пользу (например, количество кликов) за всё время взаимодействия с пользователями. Достигается за счет того, что алгоритм многрукого
При этом для каждого алгоритма важно учитывать:
1. Accuracy (точность) — это способность системы верно угадывать, какие объекты понравятся пользователю, а какие — нет. Она измеряется через сравнение предсказаний с реальными действиями (кликами, покупками, оценками) в исторических данных или в онлайн-эксперименте. В зависимости от используемого алгоритма может измеряться в разнице между предсказанным и проставленным рейтингом, или в том, насколько близко к топу находился объект, который пользователь кликнул первым
2. Coverage (охват) — насколько система использует весь каталог. Если из 10 000 товаров рекомендуются только 100 самых популярных — охват маленький. Хорошая система должна уметь предлагать и "длинный хвост" — редкие, но интересные позиции. Это помогает и пользователям (новые открытия), и бизнесу (продажи не только хитов)
3. Novelty (новизна) — насколько рекомендации отличаются от того, что пользователь уже знает. Если вы только что посмотрели Железного человека, а вам советуют Железного человека 2 — новизна низкая. А если вдруг предлагают малоизвестный французский фильм про изобретателя — новизна высокая. Новизну часто измеряют через популярность: чем менее популярен объект, тем он новее (потому что пользователь с меньшей вероятностью уже с ним сталкивался)
4. Serendipity (Неожиданная удача) — это новизна с приятным сюрпризом. Просто редкий фильм может оказаться скучным. А serendipity — это когда рекомендация удивила, но пришлась очень кстати. Это сложная метрика, её обычно оценивают вручную или через косвенные признаки (например, пользователь кликнул на неожиданный товар и высоко оценил)
5. Diversity (разнообразие) — насколько рекомендации внутри одного списка отличаются друг от друга. Если в топ‑10 все фильмы — боевики с одним актёром, разнообразие низкое. Если там есть и комедия, и документалка, и мелодрама — высокое. Разнообразие важно, чтобы пользователь не устал от однообразия и мог выбрать под настроение
6. Robustness (робастность, устойчивость) — способность системы не сломаться под атаками злоумышленников. Например, кто‑то может накручивать лайки своему товару, чтобы он чаще рекомендовался. Робастная система должна фильтровать такие аномалии
7. Stability (стабильность) — рекомендации не должны скакать от раза к разу без причины. Пользователю комфортно, когда система постепенно меняет выдачу, а не перетряхивает её полностью после каждого клика
8. Scalability (масштабируемость) — это способность системы сохранять приемлемую производительность (скорость работы, потребление памяти) при росте объёма данных: количества пользователей, товаров, взаимодействий. Никто не будет ждать, если лента рекомендаций загружается по 10 минут