Всем привет! Меня зовут Василий Калинин, я senior-аналитик в отделе ML-аналитики музыкального сервиса Звук. Про то, чем занимается наша команда, мы уже писали ранее (можно почитать в этой статье). 

Мой сегодняшний рассказ будет посвящен метрикам онлайн-оценки рекомендательных систем, использующихся в нашей компании.

Рекомендательные системы: overview

Давайте представим, что вы только что дослушали до конца свой любимый трек Михаила Круга и вам включается следующая песня группы «Бутырка», которая приятно попадает в настроение. А вот вашему другу после того же трека включается совершенно другая рекомендация — песня группы «Centr». Почему так происходит? Почему после одной и той же песни включается именно эта, а не другая? За этим «волшебным» процессом стоят рекомендательные системы, которые анализируют миллионы сигналов: что вы слушали вчера, что ставили на паузу, какие треки добавляли в «Коллекцию», а какие — пропускали. Системы постоянно обучаются на ваших действиях, чтобы предлагать треки, релевантные именно вам.

Рекомендательные алгоритмы окружают нас повсюду:

  • На маркетплейсах, когда выбираем “С этим товаром покупают…”, смотрим “Похожие товары”

  • В соцсетях, когда скроллим ленту, и она подстраивается под ваши интересы

  • В стриминговых сервисах, когда смотрим фильмы, слушаем музыку, аудиокниги или подкасты

В Звуке эти алгоритмы воплощены в рекомендательных сценариях, каждый из которых решает свою задачу:

  1. Сила Звука: персональная волна рекомендаций, которая подстраивается под предпочтения пользователя в realtime-режиме (как раз та самая ситуация с Михаилом Кругом, после которого вам включают “Бутырку”)

  2. Радио по артисту: сценарий, в котором формируется бесконечный набор треков, похожих на треки выбранного артиста

  3. Радио по треку: сценарий, в котором формируется последовательность треков на основе исходной песни

  4. Рекомендательные плейлисты: те, которые формируются посредством ML-алгоритмов

  5. Бесконечное воспроизведение: фича, которая позволяет бескон��чно слушать музыку. Когда альбом/плейлист/список треков заканчиваются, то включаются похожие песни

  6. Детская волна: аналог Силы Звука для детей

  7. ГигаМикс-плейлист: сценарий для генерации плейлистов по текстовому запросу пользователя при помощи LLM-модели

Основной вопрос, который решают аналитики и ML-специалисты, — как понять, что алгоритм предлагает пользователю именно то, что ему нужно. Что пользователю нравится, что он послушает дальше, а что точно пропустит? Если предлагать пользователю только то, что он уже много раз слушал, ему станет скучно. Если рекомендовать случайные треки, он перестанет их слушать вообще, так как весь контент будет нерелевантным для него. Нужен баланс. И ответить на вопрос помогают, конечно же, метрики.

Классификация метрик рекомендательных систем

По способу расчета метрики рекомендательных систем подразделяются на онлайн и офлайн.

Онлайн-метрики собираются в реальном времени в процессе взаимодействия пользователей с сервисом и напрямую зависят от текущей работоспособности стриминга. В случае остановки сервиса (например, из-за сбоя инфраструктуры система не может обрабатывать запросы пользователей) расчет метрик невозможен. 

Офлайн-метрики, в свою очередь, рассчитываются на исторических данных, на выделенной выборке. Расчет не зависит от работы сервиса.

Про офлайн-оценку рекомендательных систем в нашей компании мы уже рассказывали ранее в статье "Как не тратить время на провальные A/B-тесты: офлайн-оценка рекомендаций в Звуке". В этой статье разберем, какие онлайн-метрики мы смотрим, чтобы понять, что наши рекомендательные сервисы удовлетворяют предпочтениям пользователей.

Классификация онлайн-метрик рекомендательных систем

Онлайн-метрики рекомендательных систем подразделяются на следующие типы:

  1. Пользовательские метрики

  2. Метрики разнообразия

  3. Метрики качества

Пользовательские метрики

Начнем с пользовательских метрик. Они отражают поведение пользователей сервисов. 

Выделяются следующие группы:

  1. Аудиторные метрики

  2. Метрики прослушивания

  3. Метрики удержания

Аудиторные метрики:

  • DAU/WAU/MAU — количество активных пользователей за день/неделю/месяц. Рассчитывается как уникальное количество пользователей с целевым действием за период (день/неделя/месяц).

Метрики прослушивания:

  • Среднее время прослушивания на пользователя (ALT) — среднее время прослушиваний рекомендаций активными пользователями за период

  • Суммарное время прослушивания (TLT) — суммарное время прослушиваний рекомендаций активными пользователями за период

  • Доля прослушиваний из сервиса (Share rec) — доля прослушиваний в рекомендациях относительно общего времени прослушивания активных пользователей за период

  • Доля прослушанных треков (Listen Rate) — отношение количества прослушанных треков из рекомендаций к количеству воспроизведенных треков из рекомендаций

  • Доля пропущенных треков (Skip Rate) — отношение количества пропущенных (с событием перехода к следующему) треков из рекомендаций к количеству воспроизведенных треков из рекомендаций

Метрики удержания:

  • Среднее количество активных дней (Active days count) — количество активных дней в рекомендациях за период

  • Среднее количество активных сессий (Active sessions count) — отношение количества активных сессий к количеству активных пользователей (~среднее количество активных сессий на активного пользователя)

  • Retention p2p — доля активных пользователей в текущем периоде среди активных пользователей в предыдущем периоде

Конверсионные метрики к полезным действиям:

  • Конверсия показа в прослушивание (CR_to_playevent) — отношение количества пользователей с прослушиваниями к количеству пользователей с показами (опрелеленного блока)

  • Конверсия в лайк (CR_to_like) — отношение количества пользователей с лайком (айтемов определенного блока) к количеству пользователей с показами (определенного блока)

  • Конверсия в “поделиться” (CR_to_share) — отношение количества пользователей, поделившихся айтемом определенного блока (треком/артистом/плейлистом), к количеству пользователей с показами (данного блока)

Разумеется, существует гораздо больше метрик, чем перечислено выше. Но мы сосредоточились на части из них, которые, на наш взгляд, лучше всего подходят для анализа пользовательского поведения с учетом специфики музыкального сервиса.

Метрики разнообразия

Далее рассмотрим метрики разнообразия. На них остановимся детальнее. Они позволяют оценить, насколько разнообразный, новый, свежий и популярный контент предлагается пользователям. Ведь эти параметры напрямую влияют на то, как мы сможем удерживать пользователя в сервисе и доставлять ему удовольствие от прослушивания музыки.

Freshness

Freshness – метрика, характеризующая новизну контента в рекомендательных сущностях. Важно, чтобы сервис предлагал пользователю релевантные треки в том числе и новые, вышедшие в последние несколько месяцев:

где T — количество воспроизведенных уникальных треков в рекомендательном сервисе с датой выхода за период (вышедший трек за этот период считаем свежим),

N — количество новых треков (вышедших за определенный период, например, 3 месяца) среди воспроизведенных в рекомендательном сервисе. 

Чтобы определить, насколько активно нам стоит проращивать свежий контент в рекомендательном сервисе, мы сравниваем значение метрики с baseline. 

В качестве одного из baseline могут быть прослушивания из коллекции пользователей. Задача — стремиться наращивать значения метрики до уровня бэйзлайнов, если это не противоречит логике сервиса, как, например, в случае с плейлистами типа “Новинки”.

New tracks growth 

New tracks growth — метрика, характеризующая скорость прорастания треков-новинок в выдаче рекомендательного сервиса среди всех новых песен за определенный период. В качестве базы отбираются топ треков среди новинок по наиболее популярным (прослушиваемым) артистам.

Где Ar — количество новых треков (из топа треков) в рекомендательном сервисе, 

A — общее число новинок (топ треков). 

Задача состоит в том, чтобы стремиться растить метрику, предлагать новые релизы в рекомендациях пользователей. Такой подход напрямую влияет на удовлетворённость пользователей, позволяя им слушать только что вышедшие треки.

Coverage

Coverage — метрика, характеризующая разнообразие контента в рекомендательной системе. При разработке методологии расчета метрики в основе использовалась статья Ge, M., Delgado-Battenfeld, C., Jannach, D. (2010, September). Beyond accuracy: evaluating recommender systems by coverage and serendipity. In Proceedings of the fourth ACM conference on Recommender systems (pp. 257-260) с некоторыми доработками под нашу специфику.

где C — количество уникальных треков в рекомендательном сервисе, 

T — суммарное количество воспроизведений треков из C. 

Специфика расчета этой метрики заключается в применении нормирования количества уникальных треков в рекомендательном сервисе. Это необходимо для того, чтобы нивелировать влияние масштаба платформы. Ведь если мы будем сравнивать между собой сер, различающиеся по объему трафика в десятки раз, то при использовании классической формулы расчета полноты окажется, что сервис с большей аудиторией предлагает более разнообразный контент,  даже если объективно это не так. 

Ответ на вопрос, следует ли повышать метрику полноты, не является универсальным и зависит от принципов работы сервиса. Слишком большое значение полноты может говорить о чрезмерно разнообразной выдаче, слишком малое — о повторяющемся контенте. Ключевая задача — найти оптимальный баланс, который учитывает бизнес-аспекты и обеспечивает необходимый уровень персонализации для пользователей.

Novelty

Novelty — метрика, характеризующая насколько новым (не встречающимся ранее) для пользователя является предложенный трек. Основная идея оценки метрики связана с использованием статистической меры собственной информации объекта (трека). Чем меньше вероятность наступления события, тем больше информации принесет это событие при его наступлении. В плоскости рекомендательных систем это означает, что чем более популярен объект, тем менее вероятно, что он будет новым для пользователя.

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

Итого получаем среднее по пользователям усредненное значение собственной информации (с учетом штрафа, который зависит от частоты встречаемости объекта и времени последней встречи) по списку его рекомендаций. 

где R — длина списка рекомендаций пользователя. 

F — коэффициент штрафа. 

ui — количество пользователей, которым был показан i-й трек. 

U — общее количество пользователей. 

Diversity

Diversity — метрика, показывающая способность модели рекомендовать разные по содержанию объекты. Рассчитывается как средняя по пользователям усредненная попарная схожесть (косинусное расстояние) между векторами звучания воспроизведенных треков. 

В качестве подхода использовалась модель на основе эмбеддингов треков (в данном случае вектора звучания треков) для расчета значения разнообразия. Таким образом рассчитывается метрика Intra List Similarity (ILS). Метрика считается по каждому пользователю путем усреднения попарной схожести между треками в выдаче. А далее усредняем значение метрики по всем пользователям. Для удобства интерпретации метрики вычитаем полученное значение из единицы, так как привычнее объяснить бизнесу, что метрику необходимо растить.

где R — длина списка рекомендаций пользователя. 

sim(i, j) — косинусное расстояние между векторами звучания треков i, j.  

Рост метрики напрямую способствует увеличению разнообразия. Добиться этого можно за счет снижения меры схожести, а именно, предлагая больше непохожих объектов в выдаче. Контролировать адекватность роста метрики можно через сравнение с baseline, стремясь достичь их уровня.

Serendipity

Serendipity (догадливость) — метрика, рассчитываемая как средняя по пользователям усредненная попарная схожесть (косинусная близость) между векторами звучания прослушанных треков и средним вектором трека из истории прослушивания пользователя. 

Метрика характеризует способность модели рекомендовать такие объекты, которые не только релевантны для пользователя, но ещё и существенно отличаются от того, с какими объектами пользователь взаимодействовал в прошлом. 

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

где R — длина списка рекомендаций пользователя.

sim(i, mu) — косинусное расстояние между векторами звучания трека i и средним вектором прослушанного трека mu (рассчитанного по истории прослушивания пользователя).

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

APLT

APLT(Average Percentage of Long Tail) — доля редких (не популярных) треков в рекомендациях. Метрика позволяет оценить, сваливается ли рекомендательная система в выдачу только популярного контента для пользователей или же предлагает достаточное количество треков из “длинного хвоста”.

Расчет метрики заключается в вычислении весов треков на основе данных об их популярности в истории прослушиваний и последующим усреднении полученных весов по длине списка рекомендаций для пользователя.

где R — длина списка рекомендаций пользователя. 

W = 1/u — вес уникальности трека, обратная величина от количества уникальных пользователей, прослушавших трек (u). 

U — общее количество пользователей. 

Чем ниже значение метрики, тем выше популярность треков в пользовательской выдаче. 

Метрики качества

Метрики качества рекомендательных систем подразделяются на две категории: точность и ранжирование. Они представляют особый интерес, так как их можно измерять не только оффлайн, а также и в онлайн-режиме, но с некоторыми ограничениями.

К метрикам точности относятся такие как:

  • hit-rate — описывает, был ли хотя бы один релевантный объект среди показанных в рекомендациях

  • precision — доля релевантных объектов в списке рекомендаций. Отвечает на вопрос: "Какая доля рекомендаций действительно релевантна пользователю?"

  • recall — доля релевантных объектов в списке рекомендаций от общего количества релевантных объектов. Показывает, насколько хорошо система охватывает объекты релевантные пользователю.

  • F-мера — метрика, которая учитывает как правильность прогноза (precision), так и способность охватить как можно больше релевантных объектов (recall).

Среди метрик ранжирования выделяются:

  • average precision (AP) — метрика, учитывающая точность на каждом релевантном объекте. Она помогает получить комплексную оценку с учетом ранжирующей способности.

  • MRR — метрика, подразумевающая, что есть только один релевантный объект. И с ее помощью мы пытаемся оценить, насколько далеко от ТОПа находится данный объект.

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

  • NDCG — это DCG, нормализованный относительно идеального ранжирования. Показывает, насколько текущее ранжирование близко к оптимальному.

Я сознательно не буду подробно разбирать методологию расчёта данных метрик, так как она не является уникальной для нашего случая и уже детально рассмотрена в многочисленных материалах, в том числе на Хабр.

Заключение

В этой статье я рассказал про основные рекомендательные сценарии музыкального сервиса Звук, разобрал основные онлайн-метрики, методы их оценки и корректной интерпретации.

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

  • Резкое падение ALT вместе с ростом Skip Rate может указывать на поверхностное взаимодействие пользователей: они быстро переключаются между треками, что может говорить о нерелевантных рекомендациях

  • Снижение метрики Novelty может указывать на излишнее зацикливание на истории прослушивания пользователя

  • Резкое падение метрики New tracks growth может свидетельствовать о нарушении механизма интеграции свежего контента в рекомендательные сервисы

Таким образом, анализ онлайн-метрик не только помогает оперативно обнаруживать аномалии в работе сервисов, но и служит основой для принятия решений по их улучшению.

Спасибо за внимание и интерес!