Практика персонализированных рекомендаций и мышления в облачном классе Netease

алгоритм

автор/Хань Хунъинредактировать/ Ein

Говоря о происхождении рекомендательной системы из игры между людьми и информацией

Во-первых, давайте поговорим о рекомендательных системах, как я их понимаю.

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

Если вы спросите меня, что такое рекомендательная система, я вам отвечу:точное распространение информации среди людей. Так почему же система рекомендаций возникла именно в эту эпоху? Древние не нуждались в точном распространении информации.Информация о машинах и лошадях была очень медленной.На пяти машинах древние научились богатеть,а количество информации в портфеле сейчас,только сейчас люди нуждаются в точном распределении информации. Нужна интеллектуальная система, которая поможет вам прийти и отфильтровать информацию, поэтому рекомендательная система — это мост между людьми и информацией.

Конечно, как Рим не за один день строился, так и построение моста в Интернете тоже должно развиваться: сначала это был небольшой деревянный мостик - сайт-портал, который распространял информацию с секретной навигацией, а потом превратился в грифельную доску. мост - поисковая машина, люди Можно найти информацию точнее, информации слишком много постепенно, и необходимо стать информацией, чтобы найти людей В этом процессе как потребители информации, так и производители информации столкнулись с непредвиденными трудностями Потребители информации Нет информацию можно найти, а производители информации не могут сделать свою информацию доступной для потребителей.Если есть болевая точка, будет спрос, а если есть спрос, будут продукты.Поэтому рекомендательная система, как продукт, правильно и неизбежно. В «Необходимости» Кевин Келли называет эту тенденцию «фильтр":

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

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

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

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

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

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

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

Общая архитектура рекомендательной системы

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

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

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

2. «Слой фильтра»Как правило, вызванные данные фильтруются в соответствии с потребностями бизнеса в конкретных сценариях.

3. «Сортировать слой»Используйте модель сортировки для точной сортировки первоначально отобранных наборов кандидатов.

4. «Дополнительные уровни стратегии и алгоритма»Также известный как «уровень повторного ранжирования», перед возвратом списка рекомендаций пользователю, чтобы принять во внимание такие показатели, как «разнообразие», «популярность» и «свежесть» результатов, в сочетании с некоторыми дополнительными стратегиями и алгоритмы, список рекомендаций может быть скорректирован до определенной степени корректировки, и, наконец, сформировать видимый пользователю список рекомендаций.

Обзор и сравнение распространенных моделей рекомендательных систем

Начнем с графика разработки алгоритма рекомендаций

Как видно из рисунка, 2016 год стал поворотным моментом для рекомендательных систем от традиционных моделей машинного обучения к моделям глубокого обучения.В этом году Deep Crossing от Microsoft, Wide&Deep от Google и большое количество отличных моделей рекомендаций по глубокому обучению, таких как FNN последовательно запускались PNN, которые постепенно стали основными рекомендательными системами. Однако на традиционные рекомендательные модели все же нужно обращать внимание.Во-первых, они являются основой глубокого обучения.Многое находится в одном ряду.Идея скрытого вектора декомпозиции матриц продолжает развиваться в Embedding.Основная идея FM - пересечение признаков также есть в глубоком обучении, Продолжая использовать его в , логистическую регрессию можно рассматривать как еще одно представление нейронов. Во-вторых, эти алгоритмы имеют низкие требования к оборудованию, хорошую интерпретируемость результатов и простоту обучения, и по-прежнему применимы к большому количеству сценариев.

Процесс эволюции рекомендательной модели машинного обучения

Как видно из рисунка, 2016 год стал поворотным моментом для рекомендательных систем от традиционных моделей машинного обучения к моделям глубокого обучения.В этом году Deep Crossing от Microsoft, Wide&Deep от Google и большое количество отличных моделей рекомендаций по глубокому обучению, таких как FNN последовательно запускались PNN, которые постепенно стали основными рекомендательными системами. Однако на традиционные рекомендательные модели все же нужно обращать внимание.Во-первых, они являются основой глубокого обучения.Многое находится в одном ряду.Идея скрытого вектора декомпозиции матриц продолжает развиваться в Embedding.Основная идея FM - пересечение признаков также есть в глубоком обучении, Продолжая использовать его в , логистическую регрессию можно рассматривать как еще одно представление нейронов. Во-вторых, эти алгоритмы имеют низкие требования к оборудованию, хорошую интерпретируемость результатов и простоту обучения, и по-прежнему применимы к большому количеству сценариев.

Совместная фильтрация

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

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

Совместная фильтрация на основе пользователей

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

шаг:

  • Подготовьте вектор пользователя, в этой матрице каждый пользователь теоретически получает вектор
  • Размерность вектора — это количество элементов, вектор разреженный, а значение вектора может быть простым 0 или 1.
  • Используя каждый вектор пользователей, вычислите сходство между пользователями попарно, установите порог сходства и зарезервируйте наиболее похожего пользователя для каждого пользователя.
  • Генерация рекомендаций для каждого пользователя

совместная фильтрация на основе элементов

Сокращенный от алгоритма совместной фильтрации на основе элементов, его простой сценарий применения таков: когда пользователю нужна персональная рекомендация, например, потому что он ранее купил книгу «Легенда о героях-кондорах» Цзинь Юна, он порекомендует «Легенду». Героев Кондора». , потому что многие другие пользователи купили обе книги одновременно.

шаг:

  • Создайте матрицу взаимосвязей пользовательских элементов, которые могут быть поведением при покупке или оценкой после покупки, временем покупки и т. д.
  • Вычислить сходство элементов попарно, чтобы получить матрицу сходства элементов
  • Существует две типичных формы результатов рекомендаций: ① рекомендовать связанные элементы для элемента; ② «думаю, вам это нравится» на личной домашней странице.

Существует несколько способов расчета сходства:

①Подобие косинуса, сходство косинуса (подобие косинуса) измеряет размер векторного угла между пользовательским вектором t и пользовательским вектором j. Очевидно, что чем меньше прилежащий угол, тем больше косинусное сходство и тем больше похожи два пользователя.

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

разложение матрицы

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

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

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

Данные о поведении пользователя, используемые при декомпозиции матрицы, делятся на два типа: явные данные и неявные данные. Явные данные относятся к явной оценке элемента пользователем, такой как пользовательская оценка фильмов и продуктов, обычно по 5-балльной и 10-балльной шкале. Неявные данные относятся к просмотру пользователем, кликам, покупкам, избранным, лайкам, комментариям, публикациям и другим данным об элементе, которые характеризуются тем, что пользователь явно не оценивает элемент. , нравится, комментирует, делится и другие действия с элементом. В настоящее время мы в основном неявные данные.

Целевая функция изучает все пользовательские векторы и векторы элементов, минимизируя остаточную сумму квадратов между прогнозируемыми рейтингами и фактическими рейтингами ruirui

показать матричную целевую функцию

Неявная матричная целевая функция

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

ALS (чередующийся метод наименьших квадратов): сначала зафиксируйте X, чтобы оптимизировать Y, затем зафиксируйте Y, чтобы оптимизировать X, и этот процесс повторяется до тех пор, пока X и Y не сойдутся.

Вот пример явной матрицы, где фиксированный Y оптимизирует X, а другой фиксированный X оптимизирует Y:

  • Целевая функция разбивается на несколько независимых целевых функций, каждому пользователю соответствует целевая функция, а целевая функция пользователя u:

  • Целевая функция преобразуется в матричную форму.
  • Найдите градиент целевой функции J относительно Xu, и пусть градиент равен нулю.

Логистическая регрессия→POLY2→FM→FFM

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

Логистическая регрессия может сопоставить вектор входных признаков x=(x1,x2...xn)x=(x1,x2...xn) с интервалом (0,1) с помощью сигмовидной функции следующим образом. Как показано на рисунке :

Логистическая регрессия имеет много преимуществ:

  • Поддерживаемое математическим значением предположение логистической регрессии состоит в том, что зависимая переменная y подчиняется распределению Бернулли, что очень согласуется с нашим пониманием модели CTR, Напротив, модель линейной регрессии предполагает, что y подчиняется распределению Гаусса, которое согласуется с нашим пониманием модели предсказания CTR (проблема двух классов) не согласуется.
  • Сильная интерпретируемость и простая математическая форма логистической регрессии также очень согласуются с человеческой интуицией в отношении процесса оценки.
  • Простое проектирование, простое распараллеливание, простое обучение и низкие затраты на обучение

Но есть и некоторые недостатки:

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

Именно по этой причине позже появились модель POLY2, модель FM и модель FFM.Далее я объясню:

Модель POLY2 — «буйное» сочетание характеристик

Модель пересекает все признаки (признаки Xj1 и Xjz) попарно и присваивает веса Wh(j1, j2) всем комбинациям признаков, что по существу является линейной моделью:

FM — функция пересечения скрытых векторов

Основное различие между FM и POLY2 состоит в том, что единичный весовой коэффициент Wh(j1,j2) заменен скалярным произведением двух векторов (Wj1,Wj2).

  • FM изучает вектор скрытых весов для каждого признака.Когда признаки пересекаются, внутренний продукт двух скрытых векторов признаков используется как вес пересеченного признака.
  • Метод введения скрытых векторов аналогичен идее матричной декомпозиции, которая распространяется с простого пользовательского элемента на все признаки.
  • Параметр веса модели POLY2 n^2 уменьшен до nk.

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

ЖЖМ — тематическая область

Разница между FFM и FM заключается в том, что скрытый вектор изменился с исходного Wj1 на Wj1, f2, а это означает, что каждому признаку соответствует не уникальный скрытый вектор, а набор скрытых векторов. xj2, ​​xj1 выберет из набора скрытых векторов xj1 скрытый вектор Wj1, f2, соответствующий домену f2 признака xj2, и пересечет его, аналогично xj2 также будет пересечен со скрытым вектором, соответствующим домену f1 из xj1.

Визуальное представление эволюции модели

модель ПОЛИ2

FM-модель

ЖЖМ модель

Сравнение традиционных алгоритмов машинного обучения

Как крупные производители играют с рекомендательной системой

Сравнение большой фабричной практики

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

Сравнение алгоритмов глубокого обучения

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

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

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

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

Матрица подсчета очков упрощенно представляется следующим образом:

Выбор алгоритма

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

Поэтому с точки зрения выбора алгоритма мы оцениваем и выбираем из следующих трех схем

  • Сопоставление на основе тегов
  • Совместная фильтрация на основе пользователя/поведения
  • Совместная фильтрация на основе матричной факторизации

Итак, как мы делаем компромиссы?

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

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

Мы выбрали матричную модель факторизации, основанную на ALS (чередование наименьших квадратов), в качестве первого практического алгоритма с использованием API, предоставленного Spark MLlib.

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

Для вышеперечисленных параметров параметры несколько раз корректировались, а в качестве оценочных показателей использовались MSE и RMSE.

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

Лендинг проекта

Система рекомендаций, которая может быть реализована, модуль сбора данных, модуль ETL, модуль разработки функций, модуль алгоритма рекомендаций и модуль модуля веб-сервиса необходимы.Во-первых, общая схема архитектуры:

Ниже приводится краткое описание реализации нескольких модулей:

использованная литература

1. «Система рекомендаций по глубокому обучению» Ван Чжэ.

2. «Принципы и практика системы рекомендаций» Чару К. Аггарвал.

-END-