Введение
Рекомендация как техническое средство для решения информационной перегрузки и выявления потенциальных потребностей пользователей играет важную роль в платформе электронной коммерции для жизненных услуг, такой как Meituan Dianping. В приложении Meituan важные бизнес-сценарии, такие как «Думаю, вам это нравится» на главной странице, рабочие зоны, а также рекомендации по отелям и путешествиям — все это места, где используются рекомендации.
Рис. 1. Сцена «Думаю, вам нравится» на домашней странице Meituan.В настоящее время модель глубокого обучения совершила крупный прорыв во многих областях благодаря своей мощной способности выражения и гибкой сетевой структуре. В этой статье в основном будет представлено применение и исследование модели глубокого обучения в сценарии ранжирования рекомендаций на платформе Meituan.
2. Применение и изучение моделей глубокого обучения
Ежедневно на сцене рекомендаций Meituan активны десятки миллионов пользователей, которые взаимодействуют с продуктом, чтобы генерировать огромные объемы реальных данных о поведении и могут ежедневно предоставлять один миллиард эффективных обучающих образцов. Чтобы работать с крупномасштабными обучающими выборками и повысить эффективность обучения, мы разработали модель распределенной обучающей DNN на основе PS-Lite, предприняли множество попыток оптимизации на основе этой структуры и добились значительных результатов в сценариях сортировки.
Рис. 2. Блок-схема сортировки моделейКак показано на рисунке выше, процесс сортировки модели включает в себя сбор журналов, создание обучающих данных, обучение модели и онлайн-оценку. Когда система рекомендаций рекомендует пользователей, которые просматривают рекомендуемые сценарии, она записывает характеристики продукта, статус пользователя и контекстную информацию в это время, а также собирает отзывы о поведении пользователей для этой рекомендации. Окончательные обучающие данные генерируются после прохождения конвейера сопоставления меток и обработки признаков. Мы используем платформу PS-Lite для выполнения распределенного обучения многозадачной модели DNN в автономном режиме, выбираем модель с более высокой производительностью с помощью индикаторов автономной оценки и загружаем ее онлайн для онлайн-сервисов сортировки.
Далее мы сосредоточимся на оптимизации и попытках, которые мы предприняли в области обработки признаков и структуры модели.
Обработка функций
Сценарий Meituan «Угадай, вам понравится» имеет доступ к различным видам бизнеса, включая продукты питания, отели, путешествия, еду на вынос, проживание в семье, транспорт и т. д. Каждый из этих видов бизнеса имеет богатые коннотации и характеристики. погода, время, Переплетение условий, таких как географическое положение, составляет уникальное разнообразие и сложность сценария жизненных услуг O2O, который выдвигает более высокие требования к тому, как более эффективно организовывать и сортировать результаты. Построение более полных функций и более точное и эффективное использование образцов всегда были в центре внимания нашей оптимизации.
Тип функции
- Характеристики пользователя: возраст пользователя, пол, брак, есть ли дети и т.д.
- Характеристики товара: цена, скидка, характеристики, связанные с категорией и брендом, краткосрочные и долгосрочные статистические характеристики и т. д.
- Особенности контекста: погода, время, географическое положение, температура и т. д.
- Поведение пользователя: пользователь щелкает последовательность элементов, размещает заказ на последовательность элементов и т. д.
В дополнение к типам функций, перечисленных выше, мы также пересекаем некоторые функции, основанные на накоплении знаний в области O2O, и дополнительно обрабатываем функции для эффекта обучения. Конкретный поток обработки выборки и функции выглядит следующим образом:
Рис. 3. Процесс обработки обучающих данныхСопоставление тегов
Фоновый журнал рекомендаций будет записывать функцию пользователя, функцию элемента и функцию контекста, соответствующие текущему образцу, а журнал меток будет фиксировать поведенческие отзывы пользователя о рекомендуемом элементе. Мы объединили два данных вместе в соответствии с уникальным идентификатором, чтобы создать исходный журнал обучения.
равночастотная нормализация
Путем анализа обучающих данных мы обнаружили, что распределение значений признаков в разных измерениях и собственные значения в одном и том же измерении сильно различаются. Например, данные о расстоянии, цене и других характеристиках подчиняются распределению с длинными хвостами, что означает, что собственные значения большинства выборок относительно малы, а собственные значения небольшого числа выборок очень велики. Обычные методы нормализации (например,min-max,z-score) лишь переводит и растягивает распределение данных, и, наконец, распределение признаков по-прежнему является распределением с длинными хвостами, что приводит к тому, что большинство собственных значений выборок сосредоточено в очень малом диапазоне значений, что снижает дискриминацию выборочных признаков, в то же время небольшое количество крупнозначных признаков может вызывать флуктуации при обучении и замедлять скорость сходимости. Кроме того, логарифмическое преобразование также может быть выполнено для собственных значений, но из-за различного распределения признаков между разными измерениями этот метод обработки собственных значений не обязательно применим к признакам других измерений.
На практике мы ссылаемся на метод обработки непрерывных признаков в модели Google Wide & Deep [6] и нормализуем значения признаков в соответствии с их положением в кумулятивной функции распределения. Функции разделены на сегменты с одинаковой частотой, чтобы гарантировать, что размер выборки в каждом сегменте в основном одинаков, при условии, что в общей сложностиnведра, а функции **xiпринадлежащийbi(bi∈ {0,...,n - 1})ведра, то функцияxi** в конечном итоге будет нормализовано доbi/n. Этот метод гарантирует, что признаки различных распределений могут быть сопоставлены с приблизительно однородными распределениями, тем самым обеспечивая различение признаков и числовую стабильность между выборками.
фильтрация низких частот
Слишком большое количество чрезвычайно разреженных дискретных функций может вызвать проблемы переобучения во время обучения и увеличить количество сохраняемых параметров. Чтобы избежать этой проблемы, мы выполняем низкочастотную фильтрацию дискретных признаков и отбрасываем признаки, частота которых меньше порога частоты.
После вышеуказанного извлечения признаков, сопоставления меток и обработки признаков мы назначим признаку соответствующий домен, выполним хеш-обработку дискретного признака и, наконец, сгенерируем данные в формате LIBFFM в качестве обучающей выборки многозадачной DNN. Ниже описаны попытки оптимизации модели для бизнес-целей.
Оптимизация модели и испытание
В отношении моделей мы опираемся на успешный опыт отрасли и на основе модели MLP оптимизируем структуру модели для рекомендательных сценариев. В глубоком обучении многие методы и механизмы универсальны, например, механизм «Внимание» добился значительных улучшений в машинном переводе, аннотации изображений и т. д., но не все конкретные структуры модели могут быть переданы напрямую, что требует сочетания для практического бизнеса проблем, сетевая структура введенной модели была целенаправленно скорректирована для улучшения эффекта модели в конкретных сценариях.
Multi-task DNN
Цель оптимизации в рекомендательном сценарии должна всесторонне учитывать рейтинг кликов пользователя и уровень заказов. В прошлом, когда мы использовали XGBoost для одноцелевого обучения, мы брали образцы, по которым нажимали, и упорядоченные образцы в качестве положительных образцов, а затем увеличивали или взвешивали упорядоченные образцы, чтобы сбалансировать частоту кликов и скорость заказов. Однако такой метод взвешивания выборок имеет и некоторые недостатки, например, стоимость корректировки веса заказа или частоты выборки высока, а каждая корректировка требует переобучения, а модели сложно использовать один и тот же набор параметров для выражают эти два типа параметров Распределение смешанной выборки. В ответ на вышеуказанные проблемы мы используем гибкую сетевую структуру DNN для внедрения многозадачного обучения.
В соответствии с бизнес-целями мы разделяем количество кликов и количество заказов, чтобы сформировать две независимые цели обучения, и устанавливаем свои собственные функции потерь в качестве контроля и руководства для обучения модели. Первые несколько слоев сети DNN используются в качестве общих слоев, а задача щелчка и задача заказа имеют общее выражение, а на этапе BP параметры совместно обновляются в соответствии с градиентами, рассчитанными двумя задачами. Сеть разделена на последнем полносвязном слое, и параметры, соответствующие потерям, изучаются отдельно, чтобы лучше сосредоточиться на подборе распределения соответствующих им меток.
Рис. 4. Нажмите и закажите многоцелевое обучениеСтруктура сети многозадачной DNN показана на рисунке выше. При прогнозировании онлайн мы будем делать линейное слияние Click-output и Pay-output.
На основе этой структуры мы дополнительно оптимизировали характеристики распределения данных и бизнес-цели: мы предлагаем слой недостающих значений, чтобы более разумно приспособить онлайн-распределение данных к обычной ситуации с отсутствующими функциями; физический смысл задач связаны, и мы предлагаем ограничение KL-дивергенции, чтобы смягчить влияние шума одиночной цели. Далее мы подробно рассмотрим эти две задачи.
Missing Value Layer
Обычно неизбежно, что некоторые непрерывные признаки имеют пропущенные значения в обучающих выборках, и лучшая обработка пропущенных значений поможет как сходимости обучения, так и конечному эффекту. Обычный способ справиться с пропущенными значениями непрерывных признаков — взять нулевое значение или взять среднее значение признака измерения. Принятие нулевого значения приведет к тому, что соответствующие веса не будут обновляться, что замедлит сходимость. Взятие среднего также немного произвольно, в конце концов, разные отсутствующие признаки могут иметь разное значение. Некоторые ненейронные сетевые модели могут разумно обрабатывать отсутствующие значения.Например, XGBoost будет адаптивно определять, разделены ли образцы с отсутствующими функциями на левое или правое поддерево в процессе расчета потерь. Вдохновленные этим, мы надеемся, что нейронная сеть также сможет адаптивно обрабатывать отсутствующие значения посредством обучения, вместо того, чтобы искусственно задавать значения по умолчанию. Поэтому следующий слой предназначен для адаптивного изучения веса пропущенных значений:
Рис. 5 Слой Miss ValueЧерез вышеуказанный уровень недостающие функции могут адаптивно изучать разумное значение в соответствии с распределением соответствующих функций.
Благодаря офлайн-исследованиям, чтобы улучшить обучающий эффект модели, метод адаптивного изучения отсутствующего значения признаков намного превосходит метод получения нулевого значения и получения среднего значения. модель с количеством тренировочных раундов представлена на следующем рисунке:
Рисунок 6. Сравнение пропущенных значений функций адаптивного обучения и эффекта от принятия нулевого значения и среднего значения.Относительное улучшение AUC показано в следующей таблице:
Рисунок 7. Относительное улучшение AUC отсутствующего значения функции адаптивного обучения.KL-divergence Bound
Мы также считаем, что разные метки будут иметь разные шумы.Если связанные метки можно связать по физическому смыслу, надежность обучения модели можно в определенной степени повысить, а влияние шума отдельных меток на обучение можно уменьшить. Например, рейтинг кликов, рейтинг заказов и коэффициент конверсии (заказ/клик) образца можно узнать одновременно с помощью MTL, и эти три показателя удовлетворяют требованиямp(клик) * p(конверсия) = p(заказ)значение. Поэтому мы добавили границу дивергенции KL, чтобы прогнозируемаяp(клик) * p(конверсия)ближе кп (заказ). Но поскольку дивергенция КЛ асимметрична, т.е.KL(p||q) != KL(q||p), поэтому, когда он фактически используется, оптимизацияKL(p||q) + KL(q||p).
Рис. 8. Граница KL-дивергенцииПосле вышеуказанной работы эффект модели Multi-tast DNN стал более стабильным, чем у модели XGBoost.В настоящее время на домашней странице Meituan полностью запущена сцена «угадай, что вам нравится», а также частота кликов в Интернете. улучшен:
Рис. 9. Сравнение онлайн-эффекта CTR и исходного уровняУлучшение относительного значения CTR онлайн показано в следующей таблице:
Рисунок 10. Относительное увеличение онлайн-эффекта CTRВ дополнение к улучшению онлайн-эффектов, метод многозадачного обучения также значительно улучшает масштабируемость модели DNN.Во время обучения модели можно одновременно учитывать несколько бизнес-целей, что нам удобно для добавления бизнес-ограничений.
больше для изучения
После запуска модели многозадачной DNN, чтобы еще больше улучшить эффект, мы воспользовались гибкостью сетевой структуры DNN и предприняли различные попытки оптимизации. Ниже приводится подробное введение в исследование NFM и векторов интереса пользователей.
NFM
Чтобы ввести комбинацию функций низкого порядка, мы попытались добавить NFM на основе многозадачной DNN. Дискретные функции каждой области сначала изучаются слоем внедрения для получения соответствующего векторного представления.В качестве входных данных NFM NFM выполняет комбинацию функций 2-го порядка для каждого измерения, соответствующего входному вектору, с помощью Bi-Interaction Пул и, наконец, выводит один с входом.Вектор тех же размеров. Мы склеили вектор, изученный с помощью NFM, со скрытым слоем DNN в качестве выражения выборки для последующего обучения.
Рисунок 11 NFM + DNNВыход NFM находится в векторной форме, которую легко интегрировать со скрытым слоем DNN. И в процессе исследования было обнаружено, что NFM может ускорить скорость сходимости обучения, что в большей степени способствует изучению слоя встраивания. Из-за большого количества слоев в части DNN, на этапе обучения BP, когда градиент передается на нижний слой Embedded, легко возникает проблема исчезновения градиента, однако, по сравнению с DNN, NFM имеет более мелкую слой, который способствует передаче градиента, тем самым ускоряя изучение слоя встраивания.
Благодаря офлайн-исследованиям после добавления NFM, хотя скорость конвергенции обучения увеличивается, AUC значительно не улучшается. Причина анализа заключается в том, что функции, добавляемые в модель NFM, все еще относительно ограничены, что ограничивает эффект обучения. В будущем мы постараемся добавить больше доменов функций, чтобы предоставить достаточно информации, чтобы помочь NFM выучить полезные выражения и использовать потенциал NFM.
Вектор интереса пользователей
Как важная функция, пользовательский интерес обычно отражается в историческом поведении пользователя. Вводя исторические последовательности поведения пользователей, мы пытаемся векторизовать интересы пользователей различными способами.
-
Векторизованное выражение элемента. Элементы в распечатанной онлайн-последовательности действий пользователя существуют в форме идентификаторов, поэтому сначала необходимо внедрить элемент, чтобы получить его векторизованное выражение. Сначала мы пытались обучаться, случайным образом инициализируя вектор встраивания элементов и обновляя его параметры во время обучения. Однако из-за разреженности идентификатора элемента описанный выше метод случайной инициализации подвержен переобучению. Позже сначала был сгенерирован вектор внедрения элемента, инициализирован этим вектором и обучен тонкой настройкой в процессе обучения.
-
Векторизованное выражение пользовательского интереса: чтобы сгенерировать вектор интереса пользователя, мы объединили вектор элемента в последовательности поведения пользователя, включая среднее объединение, максимальное объединение и взвешенное объединение. Среди них взвешенный пул относится к реализации DIN, сначала получает последовательность поведения пользователя и изучает вес (выравнивание вектора) каждого элемента поведения для текущего элемента, который будет предсказан через слой нелинейной сети (сеть внимания). к изученному весу, взвешенное объединение выполняется для последовательности поведения, и, наконец, генерируется вектор интереса пользователя. Процесс расчета показан на следующем рисунке:
Благодаря автономному сравнению AUC эффект объединения средних значений является оптимальным для текущих обучающих данных. Сравнение эффектов показано на следующем рисунке:
Рис. 13. Сравнение AUC для разных методов объединения.Вышеизложенный наш опыт оптимизации и попытки в структуре модели.Ниже мы представим работу по оптимизации производительности фреймворка для повышения эффективности обучения модели.
Оптимизация эффективности обучения
После обширных исследований и выбора платформ с открытым исходным кодом мы выбрали PS-Lite в качестве обучающей среды для модели DNN. PS-Lite — это реализация DMLC сервера параметров с открытым исходным кодом, которая в основном включает две роли: сервер и рабочий.Сторона сервера отвечает за хранение и обновление параметров модели, а рабочая сторона отвечает за считывание обучающих данных, построение сетевых структур, и выполнение вычислений градиента. По сравнению с другими фреймворками с открытым исходным кодом его существенными преимуществами являются:
- Платформа PS: PS-Lite может лучше использовать разреженность функций в дизайне PS-Lite, что подходит для рекомендаций сценариев с большим количеством отдельных функций.
- Разумная инкапсуляция: коммуникационная среда и алгоритмы отделены друг от друга, мощный и понятный API, а интеграция более удобна.
В процессе разработки мы также столкнулись и решили некоторые проблемы с оптимизацией производительности:
-
В целях экономии памяти воркера все данные обычно не хранятся в памяти, а предварительно выборкой данных с жесткого диска пачками, но в этом процессе много процессов парсинга данных, а некоторые метаданные неоднократно вычисляется (много сортировки ключей и дедупликации и т. д.), это также значительный совокупный расход. В ответ на эту проблему мы изменили метод чтения данных, сериализовали рассчитанные метаданные на жесткий диск и заранее загрузили данные в соответствующую структуру данных с помощью многопоточности, избегая траты здесь больших денег. пересчитать.
-
В процессе обучения на вычислительную эффективность Worker влияет нагрузка в реальном времени и аппаратные условия хоста, и могут быть различия в ходе выполнения между разными Worker (как показано на рисунке ниже, для экспериментального теста). данных, большинство Рабочих завершит цикл за 700 секунд (круглое обучение, в то время как самому медленному Рабочим потребуется 900 секунд). Обычно после обучения Эпохи необходимо синхронизировать контрольную точку модели и расчет показателей оценки, поэтому самый медленный узел будет тормозить весь процесс обучения. Учитывая, что эффективность выполнения воркеров примерно подчиняется распределению Гаусса, лишь небольшое количество воркеров крайне неэффективны, поэтому добавляем в процесс обучения механизм прерывания: когда большинство машин закончили выполнение текущей Эпохи, оставшиеся воркеры прерываются , а часть обучающих данных по небольшому количеству воркеров приносится в жертву, чтобы процесс обучения не блокировался на долгое время. В начале следующей Эпохи прерванный рабочий процесс продолжит обучение из прерванного пакета, чтобы гарантировать, что медленный узел также сможет использовать все обучающие данные.
3. Резюме и перспективы
После внедрения модели глубокого обучения в рекомендательный сценарий, бизнес-показатели значительно улучшились, в дальнейшем мы углубимся в понимание бизнес-сценария и предпримем дальнейшие попытки оптимизации.
Что касается бизнеса, мы попытаемся абстрагировать больше бизнес-правил и добавить их в модель в виде целей обучения. Бизнес-правила обычно предлагаются, когда мы решаем бизнес-задачи в краткосрочной перспективе, но способ решения проблемы, как правило, недостаточно гладок, и правила не адаптируются к изменениям на сцене. Благодаря многозадачному методу предвзятость бизнеса абстрагируется в цель обучения, а изучение модели направляется в процессе обучения, так что бизнес-задачи можно элегантно решать с помощью модели.
Что касается функций, мы продолжим проводить углубленные исследования по добыче и использованию функций. В отличие от других сценариев рекомендаций, для бизнеса O2O функция контекста играет очень важную роль, и такие факторы, как время, местоположение и погода, будут влиять на принятие решения пользователем. В будущем мы продолжим анализировать различные контекстные функции и использовать разработку функций или модели для объединения функций для оптимизации выражения образцов.
Что касается моделей, мы продолжим изучать структуру сети, пробовать новые функции моделей и подгонять их под характеристики сцены. Успешный опыт в научных кругах и промышленности ценен и дает нам новые идеи и методы, однако из-за различных бизнес-задач, с которыми мы сталкиваемся, и данных, накопленных в сценариях, нам все еще необходимо адаптироваться к сценариям для достижения бизнес-целей.
использованная литература
[1] Му Ли, Дэвид Г. Андерсен, Александр Смола и Кай Ю. Эффективное коммуникационное распределенное машинное обучение с сервером параметров, NIPS, 2014b. [2] Рич Каруана, Многозадачное обучение, Betascript Publishing, 1997. [3] Xiangnan He и Tat-Seng Chua, Машины нейронной факторизации для разреженной прогнозной аналитики, Материалы 40-й Международной конференции ACM SIGIR по исследованиям и разработкам в области информационного поиска (2017). [4] Guorui Zhou, Chengru Song и др. Сеть Deep Interest для прогнозирования кликабельности.Препринт arXiv arXiv:1706.06978,2017 [5] Дмитрий Богданов, Кёнхён Чо и Йошуа Бенжио, Нейронный машинный перевод путем совместного обучения выравниванию и переводу, ICLR ’15, май 2015 г. [6] Х.-Т. Ченг, Л. Кок, Дж. Хармсен, Т. Шакед, Т. Чандра, Х. Арадье, Г. Андерсон, Г. Коррадо, В. Чай, М. Испир и др. Уайд и глубокое обучение для рекомендательных систем, препринт arXiv arXiv: 1606.07792, 2016.
об авторе
Шао Чжэ, который был принят на работу в оригинальный Meituan в 2015 году, в основном занимается работой, связанной с моделью ранжирования рекомендаций. Лю Жуй последовательно работал в сфере рекомендаций в Baidu и Alibaba, а сейчас работает в центре рекомендательных технологий платформы Meituan, занимаясь исследованиями и разработкой моделей глубокого обучения.
Если вы заинтересованы в нашей команде, вы можете следить за нашимистолбец. Платформа Meituan рекомендует технологический центр, и все таланты могут присоединиться. Пожалуйста, присылайте свое резюме по адресу: caohao#meituan.com
исходный адрес:Специальности.Meituan.com/recommend_'s…