"Зачем нам нужна система рекомендаций для блогов?"

Системы рекомендаций являются важной частью алгоритмов машинного обучения, которые предлагают пользователям «релевантные» предложения. Netflix, YouTube, Flipkart и Amazon — вот некоторые примеры рекомендательных систем.

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

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

Введение

Давайте углубимся в удивительный мир рекомендательных систем на примере системы рекомендаций среднего блога.

Для начала начнем с понимания, зачем медиуму нужна система рекомендаций для своего блога.

· Ежемесячно на Medium.com публикуется около 18 000 000 новых статей.

· В настоящее время на Medium насчитывается более 2 50 000 авторов.

и это число увеличивается день ото дня. Таким образом, чтобы рекомендовать правильные истории нужным пользователям, важно предоставить читателю наилучшие впечатления.

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

Определение данных

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

1. Данные пользователя: возраст, пол, местоположение, биография пользователя, количество подписчиков.

2. Данные о содержании:- название блога, дата и время публикации, категория, автор, публикация в блоге, теги, количество реакций, количество просмотров, среднее время чтения, прогнозируемое время чтения.

3. Взаимодействие пользователя с контентом: количество хлопков, комментариев.

Затем необходимо подготовить эти функции в соответствии с нашими потребностями. Итак, давайте начнем с инженерной части.

Разработка функций

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

Мы придумали следующие особенности:

Заголовок:

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

Название блога

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

Теги:

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

Теги

Тег — важная функция, которую можно использовать в этой системе рекомендаций для группировки статей по соответствующим тегам.

Аплодисменты и комментарии:

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

Хлопки и комментарии

Время чтения статьи и среднее время чтения:

Время чтения и время чтения участников — две важные особенности средних блогов.

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

Приблизительное время чтения

· Среднее время чтения — это способ измерения того, как долго читатель активно взаимодействует со статьей. Это среднее количество времени, которое все читатели (члены и не члены) тратят на чтение блога.

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

Моделирование системы

Рекомендация по популярности

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

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

Рекомендация на основе популярности

Индивидуальные рекомендации:

Эти рекомендации различны для каждого читателя в зависимости от его взаимодействия с блогами на среде. У нас есть в целом два типа в этом.

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

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

1. На основе памяти

2. Основанный на модели

На основе памяти:

Этот подход вычисляет сходство пользователей на основе блогов, с которыми они взаимодействовали (подход на основе пользователей), или вычисляет сходство блогов на основе пользователей, которые с ними взаимодействовали (подход на основе блогов) (подход на основе элементов).

На основе модели:

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

Другой — система рекомендаций на основе содержания. Они отличаются тем, что предоставляют рекомендации на основе статей блога и включенных в них слов (в основном тегов). Если человек читает статью, в которой есть термины «Машинное обучение» и «Наука о данных», вполне вероятно, что этому же пользователю нравится читать дополнительные статьи, включающие эти термины.

Три другие релевантные статьи предоставляются пользователю в качестве предложений для дальнейшего чтения в среде для непрерывного чтения каждой статьи. Предлагаемые статьи были недавно опубликованы тем же изданием и содержат любой из тегов из текущей статьи пользователя.

Индивидуальная рекомендация

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

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

Medium использует гибридный подход

Показатели оценки:

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

1. Онлайн-тестирование A/B

2. Показатели офлайн-оценки

Онлайн-показатели – это эмпирические результаты, наблюдаемые при взаимодействии пользователей с рекомендациями, предоставляемыми в режиме реального времени в реальной среде. Самый эффективный способ сделать это — провести A/B-тестирование. В реальной среде у вас есть Контроль: ваша существующая система и Версия — тестируемая система рекомендаций. Это связано с тем, что поведение пользователей является окончательным тестом нашей работы.

A/B-тестирование системы помогает понять поведение пользователей

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

Потому что это ЕДИНСТВЕННЫЕ индикаторы, на которые вы можете обратить внимание при разработке своих систем рекомендаций. Всегда предпочитая использовать онлайн-метрики для сбора данных о поведении пользователей и оценки вашей системы, это дорого и требует много времени. Более того, когда от пользователей требуется постоянная обратная связь, они могут стать более нерешительными в отношении использования нашей платформы и вообще не использовать ее. Хорошая точность в офлайн-метриках, сопровождаемая хорошими онлайн-оценками A/B, — это то, что вам нужно.

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

Вот некоторые из офлайн-методов оценки:

Среднеквадратичная ошибка (RMSE):

RMSE похож на MAE, но единственное отличие состоит в том, что абсолютное значение остатка (см. изображение выше) возводится в квадрат, а для сравнения берется квадратный корень из всего члена.

Преимущество использования RMSE по сравнению с MAE заключается в том, что он больше наказывает срок, когда ошибка высока. (Обратите внимание, что RMSE всегда больше, чем MAE)

Формула оценки среднеквадратичной ошибки

Показатель попаданий:

Hit Rate — лучшая альтернатива MAE или RMSE. Чтобы измерить показатель попаданий, мы сначала генерируем N лучших рекомендаций для всех пользователей в нашем наборе тестовых данных. Если сгенерированные первые N рекомендаций содержат то, что оценили пользователи — 1 попадание! Существуют различные версии этого совокупного показателя попаданий.

MAP@K / MAR@K:

Рекомендательная система обычно создает упорядоченный список рекомендаций для каждого пользователя в тестовом наборе. MAP@K дает представление о том, насколько актуален список рекомендуемых элементов, тогда как MAR@K дает представление о том, насколько хорошо рекомендатель может вспомнить все элементы, которые пользователь оценил положительно в тестовом наборе.

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

Развертывание

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

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

Факторы, наиболее важные во время производства

Заключение

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

Будущая сфера

1. Изучите различные методы DL, чтобы использовать данные изображений и видео, которые являются неотъемлемой частью блогов.

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

Рекомендации

1. https://www.themarketingtechnologist.co/building-a-recommendation-engine-for-geek-setting-up-the-prerequisites-13/

2. https://www.themarketingtechnologist.co/a-recommendation-system-for-blogs-content-based-similarity-part-2/

3. https://www.algolia.com/blog/ai/the-anatomy-of-high-performance-recommender-systems-part-1/

4. https://medium.com/fnplus/evaluating-recommender-systems-with-python-code-ae0c370c90be