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

«Какие метрики для оценки рекомендательных систем вы знаете?» — вопрос из категории Рекомендательные системы, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

1. Метрики точности предсказания рейтингов: Используются, когда система предсказывает явную оценку (например, звезды).

  • RMSE (Root Mean Squared Error): Квадратичная ошибка, более чувствительна к большим отклонениям.
  • MAE (Mean Absolute Error): Средняя абсолютная ошибка, более интерпретируема.
    from sklearn.metrics import mean_squared_error, mean_absolute_error
    rmse = mean_squared_error(y_true, y_pred, squared=False)
    mae = mean_absolute_error(y_true, y_pred)

2. Ранговые метрики (для топ-N рекомендаций): Оценивают порядок, в котором элементы предлагаются пользователю.

  • Precision@k: Доля релевантных элементов среди первых k рекомендованных. Precision@k = (# of relevant items in top k) / k
  • Recall@k: Доля охваченных релевантных элементов из всех возможных. Recall@k = (# of relevant items in top k) / (total # of relevant items)
  • NDCG@k (Normalized Discounted Cumulative Gain): Учитывает не только релевантность, но и позицию в списке, присваивая больший вес релевантным элементам наверху.

3. Метрики разнообразия и охвата:

  • Coverage: Доля уникальных элементов из всего каталога, которые когда-либо были рекомендованы. Низкое покрытие означает, что система рекомендует только популярные товары.
  • Средняя персональная диверсификация: Оценивает, насколько разные элементы внутри одного списка рекомендаций для конкретного пользователя (например, через расстояние между эмбеддингами товаров).

4. Онлайн (бизнес) метрики:

  • CTR (Click-Through Rate): Процент случаев, когда пользователь кликнул по рекомендованному элементу.
  • Conversion Rate: Процент рекомендаций, приведших к целевому действию (покупка, просмотр).

На практике для оффлайн-валидации часто используют Recall@k и NDCG@k, так как они хорошо отражают качество ранжирования, а для A/B-тестов — бизнес-метрики вроде CTR.