В промышленных приложениях рекомендательные системы обычно можно разделить на две части: отзыв и ранжирование.
Фаза отзыва соответствует различным алгоритмам рекомендаций, упомянутым в предыдущих статьях, таким как данныематериалКак уже говорилось, 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проект.