Гибридные системы и метрики оценки
Объединение коллаборативной фильтрации и фильтрации на основе содержания, RMSE, MAE, Precision@K, Recall@K
«Гибридные системы и метрики оценки» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.
Почему нужны гибридные системы
Коллаборативная фильтрация плохо справляется с холодным стартом, а фильтрация на основе содержимого приводит к чрезмерной специализации. Гибридная система объединяет оба подхода, позволяя каждому компенсировать недостатки другого, и обычно превосходит любой из них по отдельности.
Взвешенное объединение
Простейшая гибридная система объединяет оценки с помощью весов, сумма которых равна 1. Например, 0.6 * CF + 0.4 * CB делает акцент на коллаборативных сигналах, сохраняя содержимое как резервный вариант и источник разнообразия.
final_score = 0.6 * cf_score + 0.4 * cb_scoreНастройка весов
Соотношение 0.6 / 0.4 — лишь отправная точка. Настройте веса на проверочном наборе: если у пользователей богатая история, увеличьте вес CF; для новых объектов увеличьте вес CB. Можно даже выбирать веса отдельно для каждого пользователя.
Другие стратегии гибридизации
- Взвешивание: объединение оценок, как показано выше.
- Переключение: выбор CF или CB в зависимости от доступности данных.
- Объединение признаков: подача обоих сигналов в одну модель.
Взвешенное объединение встречается чаще всего и проще всего для понимания.
Оценка: два типа вопросов
Оценка состоит из двух вопросов:
- Предсказание оценок: насколько близки предсказанные оценки к истинным? Используйте RMSE/MAE.
- Качество ранжирования: находятся ли нужные объекты в верхней части списка? Используйте точность@K, полноту@K и NDCG@K.
RMSE для прогнозирования оценок
RMSE измеряет среднюю квадратичную ошибку между предсказанными и фактическими оценками, а затем извлекает из неё квадратный корень. Эта метрика особенно сильно штрафует большие промахи и является стандартной метрикой точности прогнозирования оценок.
import numpy as np
def rmse(pred, actual):
return np.sqrt(np.mean((np.array(pred) - np.array(actual)) ** 2))Precision@K
Precision@K = (релевантные элементы среди первых K) / K. Она отвечает на вопрос: какую долю из K рекомендованных мной вариантов пользователь действительно оценил положительно? Чем выше значение, тем меньше бесполезных позиций.
def precision_at_k(recommended, relevant, k):
top_k = recommended[:k]
hits = len(set(top_k) & set(relevant))
return hits / kRecall@K
Recall@K = (релевантные элементы среди первых K) / (общее число релевантных элементов). Она отвечает на вопрос: какую долю всего, что понравилось бы пользователю, я показал среди первых K вариантов?
def recall_at_k(recommended, relevant, k):
top_k = recommended[:k]
hits = len(set(top_k) & set(relevant))
return hits / len(relevant) if relevant else 0.0Компромисс между точностью и полнотой
Точность отдаёт предпочтение правильному выбору показанных вариантов, а полнота — охвату всех релевантных вариантов. В рекомендательных системах обычно делают акцент на Precision@K, потому что пользователи видят лишь короткий список, и первые позиции важнее всего.
NDCG@K для оценки качества ранжирования
NDCG@K (нормализованная дисконтированная совокупная выгода) поощряет размещение наиболее релевантных элементов ближе к началу. Релевантный элемент на позиции 1 имеет больший вес, чем тот же элемент на позиции 10, поскольку вес уменьшается в зависимости от позиции.
Как работает NDCG
DCG суммирует релевантность каждого элемента, делённую на log его позиции. NDCG делит DCG на идеальное значение DCG (при безупречном порядке), получая оценку от 0 до 1, где 1 означает идеально ранжированный список.
import numpy as np
def dcg(rels):
return sum(r / np.log2(i + 2) for i, r in enumerate(rels))
def ndcg_at_k(rels, k):
ideal = sorted(rels, reverse=True)
return dcg(rels[:k]) / dcg(ideal[:k]) if dcg(ideal[:k]) else 0.0Быстрая проверка
Проверьте свои знания метрик оценки.
Итоги
Вы создали гибридную рекомендательную систему (например, 0.6 * CF + 0.4 * CB) и освоили набор метрик для её оценки: RMSE для точности прогнозирования оценок, Precision@K и Recall@K для поиска релевантных элементов, а также NDCG@K для качества ранжирования. На этом курс «Рекомендательные системы» заканчивается. Следующий курс: основы MLOps.
Часто задаваемые вопросы
Урок «Гибридные системы и метрики оценки» бесплатный?
Да — полный текст урока «Гибридные системы и метрики оценки» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.
Чему я научусь в уроке «Гибридные системы и метрики оценки»?
Объединение коллаборативной фильтрации и фильтрации на основе содержания, RMSE, MAE, Precision@K, Recall@K Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Гибридные системы и метрики оценки»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Коллаборативная фильтрация: на основе пользователей и объектов
- Матричная факторизация с SVD
- Фильтрация на основе содержания
- Гибридные системы и метрики оценки