НЛП против рекомендации

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

Традиционный подход заключается в статистической обработке этих последовательностей, т.е. совместная фильтрация, которая вычисляет вероятность того, что пользователь, купивший товар А, купит товар Б в качестве рекомендательного балла. Или подсчет среднего количества просмотров пользователем категории/магазина, количества действий за определенный интервал времени для моделирования признаков и так далее. Однако когда дело доходит до последовательностей, обработка естественного языка (NLP) по существу решает проблемы такого типа. Предложение — это последовательность, а разговор — это комбинация последовательностей предложений. Итак, в области НЛП исследователи думали о том, как эффективно охарактеризовать предложения или даже цепочки диалогов (абзацы).

Как показано выше, примерно в 2015 году мы можем наблюдать серию прорывов в моделях, начиная с RNN -> LSTM/GRU -> Внимание -> Трансформатор -> Берт -> Варианты Берта, и наблюдаем, как список SOTA продолжает вращаться и ломаться, в то время как методы эти модели также начинают бродить в других областях. Например, в области зрения Transformer использовался для различных задач, например. Улучшения обнаружения объектов на основе DETR также дали результаты SOTA. В области речи присутствие Transformer можно увидеть в распознавании речи, синтезе речи и преобразовании текста в речь. В области поиска и толчка он также следует за эволюцией НЛП. От GRU4Rec -> NARM -> SASRec -> Bert4Rec он прошел публичное тестирование и прорывы. То же самое можно сказать и о новостных рекомендациях, которые больше относятся к НЛП, и, кроме того, точная настройка с помощью PLM (предварительно обученная языковая модель) дала очень хорошие результаты.

Однако помимо академических знаний важно знать, действительно ли это может улучшить бизнес-сценарии. В частности, функции НЛП просты и состоят в основном из предложений и слов, а в некоторых сценариях добавляются ключевые слова и лексические свойства. Однако в случае с рекомендациями есть много других функций, влияющих на клики и покупки пользователей (например, день суперраспродаж/цены на товары/скидки и т. д.). Представьте, что мы часто покупаем вещи, которые обычно не купили бы из-за скидки в Черную пятницу.

Сегодня мы рассмотрим, как мы используем исторические данные о поведении пользователей SmartNews в рекламном сценарии, и поделимся нашими советами, как это сделать на практике.

Сценарий рекламы SmartNews

В SmartNews Ads есть много рекламодателей, которые хотят рекламировать продукты, которые будут представлены заинтересованным пользователям и приведут к покупкам или установкам приложений. Например, как и у рекламодателей электронной коммерции, могут быть десятки миллионов товаров, и наша платформа должна рекомендовать нужные товары разным пользователям, чтобы соответствовать ожиданиям рекламодателя по CPA/ROAS на основе разных целей оптимизации.

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

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

Техническая деталь / хитрость

1. Выбор модели

Как упоминалось ранее, в области рекомендаций существует ряд моделей, которые также пытаются работать с последовательностями. Здесь мы выбрали SASRec в качестве основы для наших экспериментов, которая представляет собой архитектуру модели, основанную на самоконтроле, с четкой идеей использования прошлых последовательностей N продуктов для прогнозирования N + 1-го продукта. Общая структура показана на рисунке ниже, используя механизм Multi-head Attention для получения вектора первых N элементов, надеясь, что внутренний продукт вектора со следующим элементом больше, чем другие элементы отрицательной выборки. Вывод делается путем включения в модель исторического поведения пользователя, получения вектора и использования ИНС для поиска следующего наиболее вероятного элемента TopK из пула из 10 миллионов элементов.

2. Повысить скорость обучения

Чтобы использовать последовательное моделирование, общая структура обучения напоминает двойную башню (как показано на рис. 5), где левая башня представляет собой представление пользователя, то есть прошлое историческое поведение пользователя. Правая башня — это следующий элемент, который, наконец, сравнивается с меткой (положительной или отрицательной) с помощью точки или косинуса. Если есть 10 миллионов пользователей, и каждый пользователь берет 50 различных исторических последовательностей поведения и 3 отрицательных образца, то всего имеется 2 миллиарда (10 миллионов * 50 * (1 + 3)) образцов, что является очень большим временем обучения и итерации. расходы.

Точка оптимизации здесь заключается в том, что большая часть исторических данных о поведении одного и того же пользователя вычисляется повторно. Например, первая последовательность выборок — от T0 до T50, вторая последовательность выборок — от T1 до T51, а средняя последовательность (от T2 до T50) фактически одинакова. Подход SASRec к обучению значительно решает эту проблему. Для каждого пользователя мы берем последовательность исторических поведений (например, от T0 до T50, затем T0 предсказывает T1, от T0 до T1 предсказывает T2 и так далее). Поскольку Self Attention просматривает всю последовательность, вводится маска для маскировки элементов справа от целевого элемента, чтобы избежать обхода сообщения из-за поведения кликов в будущем. Таким образом, проходя по Attention, мы фактически получаем вектор из N различных последовательностей и обучаем N выборок. Этот способ обучения сокращает общую скорость обучения, для миллиарда уровней данных о кликах требуется всего 3–4 часа, чтобы получить хороший результат сходимости, и нам также удобно выполнять точную настройку параметров и итерацию модели.

3. K+1 кросс-энтропия

Первоначальная функция потерь была обучена различать бинарную классификацию, предполагая, что цель состоит в том, щелкает пользователь или нет, а метка — щелчок/нет щелчка. Однако, поскольку в рекламе наш сценарий впервые используется на этапе отзыва, нам не нужно учитывать точность значения CTR, а скорее точность рекомендуемой последовательности. Поэтому, чтобы ускорить обучение модели, функция потерь также используется таким же образом, как DSSM, где каждая положительная выборка объединяется с K отрицательными выборками, а затем эти оценки K+1 передаются через Softmax, который оценивает правильность предсказания положительных образцов. Этот подход обеспечивает более быструю сходимость и экономит время обучения, обеспечивая при этом правильность последовательности (надеюсь, максимизируя количество положительных образцов). Этот подход к обучению часто используется и в других сценариях. Например, в задаче НЛП, где мы хотим знать, за чем, скорее всего, последует следующее предложение в предложении, то же самое можно преобразовать в задачу классификации и обучить с большим эффектом.

4. Интеграция других функций

SASRec использует идентификатор элемента только как функцию. Однако существует много дополнительной информации, которая может помочь в обучении, например, название/описание/изображение/категория и другие мультимодальные функции, которые могут лучше охарактеризовать элементы. Самый простой способ сделать это — соединить эти функции и превратить их в фиксированный вектор после MLP. В этой статье FDSA представляет механизм внимания с идеей, что внимание используется для изучения того, какие функции больше всего влияют на выбор пользователя. Однако в наших экспериментах большинство функций id легко обучаются и работают хорошо. Однако в некоторых вертикалях, таких как недвижимость/подержанные автомобили, добавление некоторых функций может значительно повысить коэффициент конверсии. Например, тип дома/цена/расстояние от станции метро и т. д., а также пробег/марка/цена подержанного автомобиля — все это важные переменные для конверсии. Также при холодном старте предмета полезно обобщать характеристики предмета.

5. Автонастройка

Хотя общее время обучения может быть сокращено до 3–4 часов, особенно много времени уходит на настройку (например, размерность/скорость отсева/скорость обучения/мульти-головка/блоки и т. д.), если ее нельзя выполнять параллельно. Благодаря команде SmartNews AI-Infra, которая внедрила NNI от Microsoft для поддержки быстрой автоматической настройки, платформа может автоматически получать наилучшие параметры из определенного диапазона параметров с помощью ряда алгоритмов поиска и поддерживает параллельное обучение. Экспериментальные результаты также показывают, что соответствующие параметры различаются в разных вертикальных областях и размерах данных. При такой тренировке CTR можно увеличить на 5–10%. Уровень отказов пользователя также снижается еще на 10%.

Сценарий холодного запуска

У нас есть два типа холодного старта, новые предметы и новые пользователи. На самом деле коэффициент удержания отличается для разных предметов в разных областях. Например, в сценарии электронной коммерции доля новых товаров относительно низка по сравнению со старыми товарами. Таким образом, даже если мы используем только идентификаторы продуктов для моделирования, мы все равно можем получить хорошие результаты. Однако в сценарии аукциона, такого как eBay, где многие предметы продаются с аукциона и исчезают, доля новых предметов особенно высока, поскольку новые предметы постоянно выставляются на аукцион. Это требует использования мультимодальности для обобщения элементов, чтобы дать рекомендации для новых элементов (например, FDSA с мультимодальными функциями).

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

Производительность

Мы обучили отдельные модели для разных доменов, таких как электронная коммерция/недвижимость/автомобилестроение/аукцион, и смогли повысить рейтинг кликов на 10–20% по сравнению с исходной моделью CF i2i. Некоторым небольшим рекламодателям в некоторых вертикалях даже удалось увеличить свой CVR примерно на 30%, что было очень впечатляющим, хотя модели не были специально оптимизированы для CVR. Однако в случае крупных интернет-магазинов с более чем 10 млн товаров преимущество не столь очевидно. Рейтинг кликов увеличивается примерно на 5%. Но еще одним значительным улучшением является процент отказов пользователей, который можно снизить примерно на 10–20%. Мы интерпретируем это как модель, рекомендующую продукты, которые больше соответствуют интересам пользователя, чтобы пользователь не чувствовал раздражения на рекламу, улучшая общее взаимодействие с пользователем.

Будущая работа

1. Новости рекламы

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

2. Как добавить любые функции

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

3. PLM-модель

В области NLP общепринятой парадигмой является использование Bert для крупномасштабного обучения, а затем точной настройки для последующих задач. В рекомендации, если объем данных достаточно велик, мы также можем попытаться обучить базовую модель с помощью собственных данных и использовать обучение с самоконтролем для обучения модели в качестве модели перед обучением для последующих задач, что может ускорить конвергенцию. а также принести пользу некоторым мелким рекламодателям. Например, во многих новых исследованиях в «Рекомендациях по новостям» для точной настройки используется модель предварительной подготовки НЛП, которая может дать лучшие результаты.

Ссылка

[1] Последовательная рекомендация с самостоятельным вниманием
[2] Сеть более глубокого самоанализа на уровне функций для последовательной рекомендации
[3] Transformers4Rec: преодоление разрыва между НЛП и последовательным / Рекомендации на основе сеансов
[4] Изучение глубоко структурированных семантических моделей для веб-поиска с использованием данных переходов
[5] Расширение возможностей рекомендаций по новостям с помощью предварительно обученных языковых моделей
[6 ] Нейросетевой интеллект