Новостные рекомендации часто рассматриваются как частный случай в области рекомендательных систем. Методы и архитектуры специально созданы для рекомендаций по новостям. Одной из важных проблем является быстро меняющийся набор соответствующих элементов. Постоянно публикуются новинки, а старые устаревают. Алгоритмы должны быть в состоянии справиться с этой изменяющейся средой.

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

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

Что такое контент-ориентированный подход к новостям?

Элементы, прочитанные пользователем, используются для создания профиля пользователя. Этот профиль пользователя представляет собой совокупность интересов пользователя для множества того, что мы называем «функциями».
Эти функции могут быть широкими категориями (например, внутренние новости и спорт), узкими темами (например, "Лига чемпионов" или "Тур де Франс"), объектами или абстрактными функциями, полученными с помощью методов обработки естественного языка, используемых в заголовке. или текст статьи.

Как рассчитываются эти профили? Первым шагом почти всегда является вычисление профиля для каждого из элементов. Это могут быть бинарные векторы (связано что-то с темой или нет?), счетные векторы (сколько раз встречается термин), плавающие векторы (вложения, вычисленные с помощью нейронных сетей) или любые их комбинации.

Структура рекомендаций по новостям SCENE использует связанные темы и объекты для представления элементов (бинарный профиль), в то время как ХАМЕЛЕОН вычисляет вложение элементов с помощью сверточной нейронной сети. Профили пользователей строятся на основе этих профилей элементов. Типичные подходы включают усреднение профилей каждого элемента, который видел пользователь, или изучение профиля пользователя с помощью глубокой нейронной сети.

Система, используемая в Новостях Google использует другой подход. Вместо типичных подходов подобия используется вероятностный подход. Для каждой категории элементов он вычисляет вероятность того, что пользователь нажмет на эту категорию или взаимодействует с ней на основе исторических данных. Именно эту вероятность он сохраняет в профиле пользователя.

Вычисленный профиль пользователя можно использовать как для анализа, так и для рекомендаций.

При анализе профили могут помочь ответить на такие вопросы, как «Сколько пользователей интересуется темой X?» или «Насколько велико совпадение читателей между сущностью А и сущностью Б?»

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

Зачем использовать рекомендательные системы на основе контента для новостей?

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

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

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

Как используются рекомендации на основе контента?

Хотя подход, основанный на содержании, часто является фундаментальной частью рекомендательной системы, большинство современных подходов сочетают его с другими подходами для улучшения результатов. Некоторые компании (например, Google) объединяют оценку пользователя на основе контента с общей оценкой текущего интереса и оценкой совместной фильтрации, чтобы получить окончательный результат. Оценка глобального интереса помогает учитывать определенные всплески глобального интереса из-за особых событий, таких как COVID-19, чемпионат мира по футболу и стихийные бедствия.

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

Что мы узнали и применили в наших собственных сценариях использования?

В Froomle мы используем содержательный подход в нашем алгоритме TF-IDF (частота терминов, обратная частота документа). Отличие от предложенных здесь подходов заключается в том, что мы вычисляем профили пользователей в режиме реального времени, чтобы использовать самые последние взаимодействия пользователя. Наш алгоритм TF-IDF предварительно вычисляет профили элементов на основе частоты появления токенов (слов) в строках заголовков и категорий.

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

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

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

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

Заключение

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

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