Вопрос или проблема
Я хотел бы сравнить методы рекомендаций, используя метрику NDCG на датасете MovieLens.
В задаче ранжирования цель состоит в том, чтобы ранжировать предметы на основе их релевантности для пользователя. Модели ранжирования могут изучаться на основе матрицы оценок, где каждый пользователь оценивает небольшое подмножество всех предметов. Оценки для других предметов неизвестны.
Методы коллективной фильтрации могут быть использованы для создания модели, которая обобщает тренировочные датасеты и предсказывает оценки для неоцененных предметов.
Рассмотрим следующий пример на датасете, состоящем из 5 фильмов. Пользователь A оценил только 3 фильма:
- фильм 1 – 5 звезд
- фильм 3 – 3 звезды
- фильм 4 – 2 звезды
Модель предсказывает следующие результаты
- фильм 1 – 5 звезд
- фильм 2 – 4 звезды
- фильм 3 – 3 звезды
- фильм 4 – 2 звезды
- фильм 5 – 1 звезда
Как NDCG@3 должен быть рассчитан в этом примере? Фильм 2 получает вторую лучшую оценку, но не был оценен пользователем, хотя он очень релевантен для пользователя A на основе оценок других пользователей. Присвоение фильму 2 оценки в 1 звезду как истинного значения наказывает модель, потому что она предсказала высоко релевантный фильм, который не был оценен пользователем.
Многие статьи измеряют производительность модели на MovieLens, используя NDCG, но я не нашел деталей, как NDCG рассчитывается. Какова лучшая практика для решения этой проблемы? Хорошая ли идея оценивать неизвестное значение оценки на основе медианы или среднего значения оценок фильма?
Фильм 2 получает вторую лучшую оценку, но не был оценен пользователем, хотя он очень релевантен для пользователя A на основе оценок других пользователей.
Проблема в том, что вы внедряете свое мнение о том, какие предметы релевантны для пользователя A.
Как NDCG@3 должен быть рассчитан в этом примере?
Вы не можете оценивать свою модель на предметах, которые пользователь не оценивал. Обычно с данными с явной обратной связью вы хотите игнорировать отсутствующие значения. Импутация может быть возможна, но это более сложная задача и не часто используется. Корректный процесс моделирования заключается в том, чтобы сначала создать наборы для обучения и тестирования. Обучите вашу модель на тренировочном наборе, а затем для каждого пользователя ранжируйте известные предметы, которые присутствуют в тестовом наборе (источник: стр. 24). Затем вы можете вычислить различные метрики, зависящие от отсечения.
В вашем примере, вы не должны предсказывать оценки для фильма 2 или 5. Если ваш тренировочный набор состоял из фильма 1 и фильма 3, то вы бы делали предсказания для фильма 4 — очевидно, что в реальном приложении у вас должно быть больше данных, чтобы в тестовом наборе было больше одного примера.
Ответ или решение
На вопрос о том, как оценить отсутствующие значения при вычислении NDCG, можно ответить с учетом нескольких ключевых аспектов проблемы, представленной в описании. При оценке методов рекомендаций с использованием метрики NDCG на основе набора данных MovieLens возникает вопрос об учете неизвестных рейтингов, поскольку каждый пользователь оценивает лишь небольшую часть всех возможных объектов.
Проблема определения отсутствующих значений
В задаче ранжирования важно понять, что целевой сценарий — это точное определение наиболее релевантных объектов для пользователя. Обычно модели ранжирования обучаются на данных, где присутствует множество неизвестных рейтингов. На практике, для заполнения отсутствующих значений могут использоваться методы коллаборативной фильтрации, которые предсказывают рейтинги для неоценённых объектов. Однако определённые проблемы возникают при оценке таких прогнозов, особенно в контексте вычисления метрики NDCG.
Подход к вычислению NDCG с отсутствующими значениями
NDCG (Normalized Discounted Cumulative Gain) является ключевой метрикой для оценки качества ранжирования, и её вычисление может оказаться более сложным при неизвестных рейтингах:
-
Игнорировать неоцененные объекты: Общая рекомендация — не учитывать объекты, которые пользователь не оценивал. Это связано с тем, что выполнение оценки на таких объектах может привести к искажению результатов — особенно если предположения о рейтингах основаны на субъективных мнениях или чужих оценках.
-
Разделение на тренировочный и тестовый наборы: Важно изначально разделить данные на тренировочные и тестовые наборы. На тренировочном наборе производится обучение модели, а тестовый набор используется для оценки результатов. При этом оценки должны производиться только для тех объектов, которые присутствуют в тестовом наборе.
-
Изменение данных для более точного тестирования: В реальных приложениях рекомендуется иметь больше данных в тестовом наборе, чтобы повысить статистическую значимость вычисленного NDCG.
Подходы к оценке неизвестных рейтингов
Хотя такие методы, как медианное или среднее значение для оценки неизвестных рейтингов, могут показаться интуитивно понятными, они не являются оптимальными для большинства ситуаций. Эти подходы вводят дополнительный риск искажения фактической оценки релевантности. Исследования (например, источники: arXiv и GroupLens) показывают, что подобные методы редко используются в профессиональных настройках, предлагая сосредоточиться на более релевантных данных пользователя.
Заключение
В целом, для оценки NDCG в ситуациях с неизвестными значениями ключевое внимание следует уделять данным, которые содержат проверенные оценки пользователя. Важно следовать выбранной процедуре оценки, исключая риск внесения субъективных ошибок в расчёт результата.
Использование описанного подхода позволяет сохранять объективность и строгость в оценке методов рекомендаций, обеспечивая при этом воспроизводимость и достоверность полученных оценок.