На заключительном этапе системы рекомендаций система может повторно ранжировать кандидатов с учетом дополнительных критериев или ограничений. Один из подходов к переоценке — использовать фильтры, удаляющие некоторых кандидатов.
Другой подход к повторному ранжированию заключается в ручном преобразовании оценки, возвращаемой средством ранжирования.
В этом разделе кратко обсуждаются свежесть, разнообразие и справедливость. Эти факторы входят в число многих, которые могут помочь улучшить вашу систему рекомендаций. Некоторые из этих факторов часто требуют изменения различных этапов процесса. В каждом разделе предлагаются решения, которые вы можете применить индивидуально или коллективно.
Свежесть
Большинство рекомендательных систем стремятся включать самую свежую информацию об использовании, такую как текущая история пользователей и новейшие элементы. Поддержание актуальности модели помогает модели давать хорошие рекомендации.
Решения
- Повторяйте обучение как можно чаще, чтобы использовать последние данные о тренировках. Мы рекомендуем начинать обучение с горячего старта, чтобы модели не приходилось заново учиться с нуля. Теплый запуск может значительно сократить время обучения. Например, при матричной факторизации выполните горячий запуск вложений для элементов, которые присутствовали в предыдущем экземпляре модели.
- Создайте «среднего» пользователя, чтобы представлять новых пользователей в моделях матричной факторизации. Вам не нужно одно и то же внедрение для каждого пользователя — вы можете создавать кластеры пользователей на основе пользовательских функций.
- Используйте DNN, например модель softmax или модель с двумя башнями. Поскольку модель принимает в качестве входных данных векторы признаков, ее можно запустить по запросу или элементу, который не был замечен во время обучения.
- Добавьте возраст документа в качестве функции. Например, YouTube может добавить в качестве функции возраст видео или время его последнего просмотра.
Разнообразие
Если система всегда рекомендует элементы, которые «наиболее близки» к внедрению запроса, кандидаты, как правило, очень похожи друг на друга. Отсутствие разнообразия может привести к неприятному или скучному пользовательскому опыту. Например, если YouTube просто рекомендует видеоролики, очень похожие на видео, которое пользователь сейчас смотрит, например, ничего, кроме видеороликов с совами (как показано на рисунке), пользователь, скорее всего, быстро потеряет интерес.
Решения
- Обучите несколько генераторов-кандидатов, используя разные источники.
- Обучите нескольких ранкеров, используя разные целевые функции.
- Измените рейтинг элементов на основе жанра или других метаданных, чтобы обеспечить разнообразие.
Справедливость
Ваша модель должна справедливо относиться ко всем пользователям. Поэтому убедитесь, что ваша модель не изучает неосознанные предубеждения на основе обучающих данных.
Решения
- Включите различные точки зрения в проектирование и разработку.
- Обучайте модели машинного обучения на комплексных наборах данных. Добавляйте вспомогательные данные, если ваших данных слишком мало (например, когда определенные категории недостаточно представлены).
- Отслеживайте показатели (например, точность и абсолютную ошибку) по каждой демографической группе, чтобы отслеживать отклонения.
- Создайте отдельные модели для недостаточно обслуживаемых групп.