В промышленных приложениях рекомендательные системы обычно можно разделить на две части: отзыв и ранжирование.
Фаза отзыва соответствует различным алгоритмам рекомендаций, упомянутым в предыдущих статьях, таким как данныематериалКак уже говорилось, Spotify использовал как минимум три алгоритма для создания своего знаменитого плейлиста Discover Weekly, в том числе:
- Разложение матрицы для изучения коллективного разума;
- НЛП обработка музыкальных обзоров статей и отчетов;
- Аудио анализируется с помощью сверточной нейронной сети.
Эти алгоритмы имеют свои особенности.Анализ звука, очевидно, может быть использован для решения проблемы холодного запуска.НЛП-обработка музыкальных рецензий также может помочь в изучении предметной области профессионалов.Каждый из них работает независимо и дает свои собственные результаты.Из-за их независимости число алгоритмов может быть увеличена, а также итеративно изменена самостоятельно.
Этот процесс выбирает сотни или тысячи наборов кандидатов из десятков миллионов элементов, а затем выбирает 30 песен для каждого пользователя на этапе сортировки. Эту сортировку можно понимать как функцию,, входными данными являются пользователь, элемент, среда, выводите оценку от 0 до 1 и берите песни с наивысшей оценкой. Этот процесс часто называют оценкой CTR.
В этой статье рассказывается об общей форме этой «функции» и о том, как она в основном работает.
LR
Самой простой является логистическая регрессия, обобщенная линейная модель.
Возьмите пользовательский портрет пользователя (вектор), например[3, 1]
, объединение изображения элемента, например[4, 0]
, плюс вектор, представляющий контекст[0, 1, 1]
получить после[3, 1, 4, 0, 0, 1, 1]
, если пользователь имел контакт с элементом, метка равна 1, и в сумме они составляют положительную выборку.В то же время элемент, «пропущенный» пользователем, или популярный элемент, с которым пользователь не контактировал можно использовать как отрицательный образец Метка 0, и следующее уравнение подходит:
вэто вышеуказанный вектор,
- вес, соответствующий каждому элементу x,
является перехват. Его функция потерь:
вэто label0 или 1 выборки,
число от 0 до 1, предсказанное моделью.
Обучение модели завершается путем уменьшения функции потерь, чтобы она соответствовала обучающим выборкам, а оценка завершается с использованием модели для прогнозирования новых данных. Процесс обучения легко выполнить со ссылкой на логистическую регрессию sklearn.
Традиционный LR может обрабатывать только большие объемы данных в автономном режиме пакетами и не может эффективно обрабатывать крупномасштабные онлайн-потоки данных. Обновление модели может занять сутки и более, что не достаточно своевременно. В 2013 году Google предложил «Следуй за регуляризованным лидером» (FTRL) — онлайн-алгоритм логистической регрессии. Метод изменяет целевую функцию логистической регрессии и добавляет различные системные инженерные оптимизации, чтобы параметры модели можно было динамически обновлять в каждой точке данных в режиме онлайн.
Многие реализации FTRL с открытым исходным кодом можно найти в Интернете, например,libftrl-python.
FM | FFM
FM и FFM — это аббревиатуры от Factorization Machine и Field-aware Factorization Machine соответственно.
Как обобщенная линейная модель, LR будет трудно иметь дело с нелинейной связью между собственными векторами и метками. В настоящее время необходимо объединить функции, такие как использование линейной модели для прогнозирования площади различных приблизительных прямоугольных форм.Две функции длинныес широким
, то очевидно, что хорошую модель нельзя выучить, и в это время добавляется новая функция
, вы можете получить хорошие результаты.
В практических приложениях размерность вектора признаков очень высока, и трудно непосредственно увидеть такую значимую комбинацию, как в приведенном выше примере.Учитывая все две комбинации признаков, уравнение линейной регрессии принимает вид:
Кроме оригиналаВ дополнение к весам необходимо узнать веса, соответствующие каждой комбинации признаков.
обучение требует много
и
Однако из-за разреженности, вызванной горячим кодированием и другими причинами, это требование не может быть выполнено, тогда недостаточное количество обучающих выборок приведет к
являются неточными, что влияет на качество модели.
Решение состоит в использовании матричной факторизации. в рекомендательных системахuser_item_matrix
Выполните декомпозицию, изучите низкоразмерный вектор, чтобы пользователь и элемент представляли себя. Тогда ситуация здесь может быть аналогична выражению всех весов комбинации признаков в виде матрицы формы (i * i), тогдаТо есть значение i-й строки и j-го столбца этой матрицы, и эта многомерная матрица декомпозируется, и для каждого признака можно получить скрытый вектор о весе.
,Так
использовать
скалярное произведение
может быть получен. Тогда линейное уравнение принимает вид:
Вышеупомянутая модель называется машиной факторизации.После некоторых математических преобразований и обработки модель может бытьЭто относительно эффективная модель для обучения и прогнозирования в условиях сложности .
На основе FM была предложена машина факторизации с учетом полей. Например, в векторе признаков имеется более 200 измерений, представляющих страну пользователя.country.uk
иcountry.us
Подождите, тогда эти более 200 признаков можно считать принадлежащими полю, разница в признакеПри изучении скрытых векторов для каждого поля необходимо изучить соответствующий скрытый вектор и вес комбинации признаков.
в соответствии с
о
Скрытый вектор поля умножается на
о
получается из скрытого вектора поля, которому он принадлежит, и линейное уравнение принимает вид:
Этот метод работает лучше, а сложность прогнозирования увеличивается до. Есть библиотеки с открытым исходным кодомlibffmреализация для использования.
GBDT & LR
Подход Facebook к оценке CTR рекламы заключается в использовании схемы Gradient Boosting Decision Tree (GBDT) и LR.
Идея состоит в том, чтобы отфильтровать и объединить векторы признаков, изначально предназначенные для ввода в LR через GBDT, для создания новых векторов признаков, а затем отправить их в LR. как показано на рисунке:
В качестве ансамблевой модели GBDT будет использовать несколько деревьев решений, и каждое дерево будет соответствовать остатку предыдущего дерева, чтобы получить хороший эффект подгонки. Когда образец вводится в дерево, он спускается к конечному узлу в соответствии с условиями каждого узла, устанавливает значение этого узла в 1 и устанавливает остальные в 0. Например, для обучения используются 3 дерева решений, каждое дерево решений имеет 5 листовых узлов, а выборки попадают на 1-й, 2-й и 3-й узлы слева направо в каждом дереве, и получаются три однократных броска, закодированных как[1, 0, 0, 0, 0]
,[0, 1, 0, 0, 0]
,[0, 0, 1, 0, 0]
, соединенные вместе как преобразованный вектор признаков:[1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0]
, введите в модель LR, чтобы получить оценку.
Эта модель значительно улучшила рекламный эффект Facebook.В опубликованной статье также обсуждаются различные технические приемы и детали, в том числе частота обновления GBDT и LR, практика уменьшения дискретизации и т. д. Реализация GBDT может использовать открытый исходный кодПакет XGBoost.
Wide & Deep
Рейтинг рекомендаций Google для приложений в Google Play использует модель глубокой ширины под названием Wide & Deep. Как показано ниже:
Широкая часть представляет собой обобщенную линейную модель, и некоторые комбинации признаков добавляются соответствующим образом на основе исходных признаков Глубокая часть представляет собой нейронную сеть с прямой связью, которая может изучать низкоразмерный плотный вектор для некоторых разреженных признаков и комбинировать информация о Широких и Глубоких Дополнение, по-прежнему использующее Зигмонда для предсказания функции, выраженной как:
вфункция Сигмонда,
вес широкой части,
представляет собой комбинированный элемент широкой части,
Вывод для последнего слоя Глубокой сети,
— смещение линейной модели.
Соедините две модели вместе для совместного обучения (в отличие от обучения ансамбля, которое требует, чтобы каждая модель обучалась отдельно, а затем объединяла результаты), чтобы дополнить недостатки друг друга (сложность разработки функций и плохая интерпретируемость). Эта модель сравнима с моделью Google Play. онлайн-доход, по сравнению с чистой моделью Wide, это приносит улучшение на 3,9%. Реализация может относиться кtensorflow/modelsпроект.