Эта статья является разумной, и она была отложена в течение длительного времени. Недавно я наконец нашел время, чтобы перечитать эту статью. фон широкой и глубокой модели Очень, очень похож~ В основном, линейная модель используется в качестве широкой модели, а неявная модель используется в качестве глубокой модели.Например, глубокая часть нашей модели в настоящее время использует модель на основе встраивания , FM, и в этой статье нейронная сеть используется в глубокой части.
Во-первых, я рекомендую волну моего предыдущего обмена~
Индивидуальные рекомендации категорий для сотен миллионов пользователей
Затем укажите бумажный адрес~
Wide &Deep Learning for Recommender Systems
Суть этой статьи состоит в том, чтобы объединить широкую модель и глубокую модель, и окончательная комбинированная модель может обеспечить эффективную память и индукцию.
Introduction
В статье рекомендательная система рассматривается как поисковая система, входными условиями запроса являются пользовательская и контекстная информация, а выходом является упорядоченный список рекомендаций. При получении запроса задача рекомендательной системы состоит в том, чтобы:
- Найдите наиболее релевантный рекомендуемый контент из базы данных
- Затем отсортируйте запрошенный контент в соответствии с определенными условиями, такими как клик или покупка.
Как добиться одновременного запоминания и индукции является проблемой как в рекомендательных, так и в поисковых системах.Короче говоря, память должна изучать совместное появление часто встречающихся категорий или признаков в исторических данных, а индукция - проходить через корреляцию и исследовать исторические данные. Сочетание функций, которые никогда не были замечены прежде. Рекомендательные системы на основе памяти обычно более целенаправленны и более релевантны истории поведения пользователя. По сравнению с запоминанием, обобщение способствует увеличению разнообразия рекомендуемого содержания. В этой статье мы больше сосредоточимся на проблеме рекомендации приложений в магазине приложений Google Play, но это исследование также применимо к общим рекомендательным системам.
В крупномасштабных системах онлайн-рекомендаций очень часто используются линейные модели, такие как LR, из-за их простоты и высокой интерпретируемости, но линейные модели не могут изучать комбинации функций, которые не появлялись ранее, что требует ручного проектирования функций.
Модели на основе встраивания, такие как FM или нейронные сети, могут обобщать комбинации признаков, которые не появлялись ранее, путем изучения малоразмерных векторов в каждом запросе. Однако, когда данные разрежены и многомерны, трудно изучить эффективные низкоразмерные векторы.
Recommender System Overview
На приведенном выше рисунке показана архитектура системы рекомендаций, которая состоит из двух частей, упомянутых в предыдущем разделе, системы поиска и системы сортировки.Когда пользователь получает доступ к магазину приложений, он рассматривается как запрос, включая характеристики пользователя и контекста, а затем извлекается. Эта часть возвращает список приложений, которые больше всего интересуют пользователя, в соответствии с предпочтениями пользователя, такими как клики и покупки. При этом поведение пользователя на этот раз будет записано в журнал как данные обучения.
В настоящее время в базе данных есть миллионы приложений, поэтому нереально рассчитывать оценку пользователя для каждого приложения каждый раз, когда делается запрос. Следовательно, первым шагом должен быть выбор набора отзывов. Поиск, то есть система отзыва вернет список нескольких приложений, которые лучше всего соответствуют текущему пользователю. Поиск здесь обычно сочетает в себе два метода модели машинного обучения и правила ручного определения. После вызова лучшего набора кандидатов система сортировки используется для сортировки каждого приложения.Каждое приложение выполняет расчет баллов и окончательную сортировку. Вычисляемая здесь оценка обычно представляет собой P(y|x), то есть при заданной функции x вероятность поведения пользователя, где y — поведение пользователя, то есть метка, где x — характеристика, в том числе
- user feature
- страна, язык, демография
- характеристики пользователя
- Contextual feature
- устройство, час дня, день недели
- то есть контекстные функции
- Impression feature
- возраст приложения, историческая статистика приложения
- т.е. статистические характеристики APP
Wide & Deep Learning
Как уже упоминалось во введении, основная идея этой статьи заключается в том, что она сочетает в себе широкую модель и глубокую модель, одну для памяти, одну для обобщения, а модель Wide&Deep используется для ранжирования рекомендаций в сочетании с их соответствующими преимуществами.
Wide Model
Левая половина рисунка выше — это широкая модель в комбинированной модели. В этой части используется модель LR. Эта часть в основном используется для изучения совпадения признаков в выборке. Результатом является элемент, который имел прямое поведение с пользователем, линейное.Модель выражается следующим образом,
y = \mathbf{w}^T \mathbf{x} + b
Где y — прогнозируемая вероятность, x — вектор, представляющий признак, w — параметр модели, то есть вес каждого вектора признаков, который в конечном итоге обучен, а b — член смещения, который является постоянным членом.
Для этой части функций используется одногорячее кодирование.Для достижения цели памяти для разреженных функций используется преобразование перекрестного продукта, которое выражается следующим образом
\phi_k(\mathbf{x}) = \prod_{i = 1}^d x_i^{c_{k_i}}\quad c_{k_i} \in {0, 1}
Например, для функции «И(пол=женский, язык=en)» тогда и только тогда, когда пол пользователя — женский, а язык — английский, значение этой функции равно 1, а в противном случае — 0. Эта операция увеличивает взаимодействие между бинарными функциями и добавляет нелинейные факторы в линейную модель.
Deep Model
Правая половина рисунка — это глубокая модель в комбинированной модели, в которой используется нейронная сеть с прямой связью. Для категориальных функций входными данными функции обычно являются строки, такие как «language=en», такая многомерная категориальная функция сначала преобразуется в низкоразмерный и плотный вещественный вектор. Размер вектора обычно находится между O (10) и O (100). Эти векторы обычно инициализируются с использованием случайного метода. Случайность может быть равномерно случайной или случайным образом распределенной в нормальное распределение. Целью случайной инициализации является инициализация вектора на порядки, модель оптимизируется за счет минимизации функции потерь при обучении. Затем эти низкоразмерные векторы передаются в скрытый слой нейронной сети.
Этот расчет выполняется в каждом скрытом слое,
a^{(l+1)} = f(W^{(l)}a^{(l)} + b^{(l)})
где l — количество слоев, а f — функция активации, обычно использующая ReLU.
Обычно в этой части функций используются функции поведения пользователя для изучения комбинаций функций, которых нет в исторических данных.
комбинированная тренировка
Отношения шансов рассчитываются отдельно для выходных данных двух моделей, а взвешенное суммирование после логарифма принимается за окончательную оценку.
Различают ансамблевую и совместную/четверную тренировки
- Собрать означает, что две модели обучаются независимо друг от друга, и две модели объединяются для расчета только после того, как будет сделан окончательный прогноз.
- Совместное обучение оптимизирует все параметры одновременно, учитывая как широкую модель, так и глубокую модель, а также веса функций, объединенных из двух частей во время обучения.
В то же время разница между двумя типами обучения также отражается в размере модели, и модель, обученная отдельно, будет больше. Широкая и глубокая модель обучается с использованием мини-пакетной стохастической оптимизации.В экспериментах широкая модель использует регуляризацию FTRL + L1, а глубокая модель использует AdaGrad.
Для LR модель предсказывает следующее:
P(Y = 1|\mathbf{x}) = \sigma(\mathbf{w}^T_{wide}[\mathbf{x},\phi(\mathbf{x})] + \mathbf{w}^T_{deep}a^{(l_f)}+b)
Среди них Y — это метка бинарной классификации, \sigma представляет сигмовидную функцию, \phi(\mathbf{x}) представляет исходную функцию, \mathbf{x} преобразование перекрестного произведения, b представляет элемент смещения, \mathbf{ w}_{deep} Представляет вес окончательной активации a^{(l_f)}.
System Implementation
Конвейер, рекомендуемый приложением, в основном включает три этапа: генерация данных, обучение модели и обслуживание модели, как показано на следующем рисунке.
генерация данных
В этой части в качестве обучающих данных выбираются данные пользователя и приложения за определенный период времени.
Метка: загрузка приложения, 1, если приложение загружено, 0 в противном случае
Словари: сначала сопоставьте категориальные признаки с целочисленными идентификаторами и сопоставьте непрерывные вещественные признаки с CDF, а затем выполните дискретизацию.
обучение модели
Структура модели показана на рис.
Во время обучения наш входной скрытый слой берет обучающие данные и словари, генерирует разреженные и плотные функции и объединяет их с метками. Широкая часть содержит кросс-продуктовое преобразование для пользователей для отображения и установки приложения, а глубокая часть, каждая функция классификации представляет собой 32-мерный вектор для обучения. Мы объединяем все вложения и плотные функции вместе, чтобы сформировать плотный вектор размером около 1200 измерений. Затем конкатенированный вектор подается на 3 слоя ReLU и, наконец, в блок логического вывода.
В этой части следует отметить, что если он переобучается каждый раз, затраты времени высоки, поэтому для решения этой проблемы, когда приходят новые обучающие данные, мы используем теплый старт, читая из предыдущей модели. Возьмем вложения и веса линейной модели для инициализации новой модели. При этом мы будем использовать предыдущую модель для проверки и установки, чтобы не возникло проблем при подключении к прямой трансляции.
модельный сервис
Чтобы гарантировать, что каждый запрос может возвращать результаты в течение 10 мс, мы оптимизируем производительность, запуская несколько потоков параллельно, вместо того, чтобы вычислять оценки всех наборов кандидатов в одном пакете.
Суммировать
В целом, модель этой статьи применима к широкому спектру сценариев.В настоящее время многие компании используют широкое и глубокое, и удобство использования очень сильное ~