Метод добавления плотных признаков в модель предсказания CTR

машинное обучение
Метод добавления плотных признаков в модель предсказания CTR

Плотные признаки, как правило, являются относительно разреженными. Мы знаем, что признаки категорий относительно разрежены после горячего кодирования. Например, категории ['котенок', "щенок", "медведь", "обезьяна"] кодируются горячим способом. структура данных [[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]], вы можете увидеть это данные очень разрежены, но данные о плотных функциях, такие как длина таблицы, обычно [3.4, 2.6, 8.9, 6.7]. Как правило, для функций категорий разреженные функции преобразуются в плотные функции путем встраивания слов, а затем вводятся в нейронную сеть. В противном случае прямой ввод приведет к таким проблемам, как взрыв размерности. Итак, как добавить плотные данные в модель сети прогнозирования CTR? ?

нормальный метод

1. Как показано на рисунке 1, исходные плотные признаки напрямую связаны с полносвязным слоем, а плотные признаки категорий, преобразованные встраиванием слов, не пересекаются:

▲ Рис. 1. Полное соединение с прямой подачей

Функции категорий справа отображаются в вектор после встраивания слов, а перекрестные функции получаются посредством операций кроссовера между векторами разных категорий. Исходная плотная функция слева не пересекается с функцией категории и напрямую сращивается с пересекающейся функцией высокого порядка в качестве входных данных полносвязного слоя.

2. Как показано на рисунке 2, дискретизируйте исходные плотные признаки, преобразуйте их в дискретные признаки, а затем выполните встраивание слов с признаками исходной категории, а затем выполните пересечение признаков. В этот момент можно обнаружить, что это эквивалентно исходному плотному объекту, участвующему в пересечении объектов:

▲ Рисунок 2. Дискретная обработка

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

▲ Рисунок 3. Плотный признак, умноженный на вектор встраивания

Малоизвестный метод Key-Value Memory

В статье ICMEW предлагается метод применения памяти «ключ-значение» [1] для обработки плотных признаков.Как показано на рисунке 4, видно, что вход этой модели — плотный признак.[公式], выход представляет собой вектор признаков[公式], то есть реализовано преобразование 1-мерного пространства признаков в многомерное, поэтому давайте посмотрим, как это реализовано.

Рисунок 4. Структура модели Key-Value Memory [1]

вектор[公式]Расчет выполняется путем применения каждого вектора вложения[公式]Получена взвешенная сумма, и формула выражается как

[公式] ,

в[公式]рассчитывается как[公式] ,

[公式]Расчет равен[公式] ,

из которых[公式]нормализовать. Насколько я понимаю, нужно указать значение плотной функции[公式]Сопоставьте с распределением веса, а затем используйте это распределение веса, чтобы поддерживать и поддерживать[公式]Взвешенная сумма векторов вложения и, наконец, получен вектор с той же размерностью, что и вложение слова.[公式]. получить вектор[公式]После этого, как и в предыдущем способе, вы можете выполнить пересечение признаков с признаками категории.

использованная литература

[1] Multi-modal Representation Learning for Short Video Understanding and Recommendation. ICME Workshops 2019: 687-690