[Система рекомендаций] Модель прогнозирования CTR (1): LR+GBDT

машинное обучение

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

1. Определение CTR

Оценка CTR может быть абстрагирована как проблема бинарной классификации. Задача, которую он решает, заключается в следующем: при наличии запроса и объявления, соответствующего запросу, предсказать вероятность получения клика после показа объявления. Ярлык можно получить из фактических данных о доставке. В исторических результатах доставки запись о клике помечена как 1, а реальный остаток помечен как 0.

ctr_1

На рисунке выше схематически представлена ​​запись данных обучения/тестирования в модели оценки рейтинга кликов. В поле слева перечислены характеристики, соответствующие этой записи данных, включая пользователя (теги пользователя), контекст (дата, город, рекламный обмен, домен, ...), рекламодателя (идентификатор объявления), объявление (размер объявления) и другие. связанные особенности. В тренировочной записи, если запись наконец-то щелкнула, она записывается как 1, в противном случае записывается как 0; при прогнозировании локтя нам нужно предсказать вероятность нажатия на эту запись, то есть CTR (Click-Through Rate). ).

2. LR+GBDT

Эта модель представлена ​​​​Facebook в их статье 2014 года для решения проблемы комбинации функций модели LR с помощью модели GBDT. Идея очень проста.Разработка функций разделена на две части.Одна часть функций используется для обучения модели GBDT.Номер конечного узла каждого дерева модели GBDT используется как новая функция,добавляемая к исходной набор функций, а затем модель LR используется для обучения окончательной модели. Основным ориентиром для оценки CTR до этой модели была логистическая регрессия (LR).

2.1 LR

Поскольку CTR сам по себе является проблемой бинарной классификации, LR, как очень классическая модель классификации, очень рано использовалась для предсказания CTR. Его структура проста, временная сложность невелика, и его можно распараллелить в большом масштабе.Поэтому в ранних задачах прогнозирования CTR в основном используются ручной дизайн перекрестных признаков и дискретизация признаков, чтобы придать линейной модели LR нелинейный характер. изучение набора данных Возможности, высокоуровневые дискретные функции + ручные кросс-функции составляют основные функции оценки CTR.

lr

Структура модели:f(x)=w0+i=1nwixi,y=sigmoid(f(x))f\left ( x \right )=w_0+\sum_{i=1}^{n}w_ix_i,y=sigmoid(f(x))

целевая функция:J(w)=1mi=1m(yilogfw(xi)+(1yi)log(1fw(xi)))J(w)=-\frac{1}{m}\sum_{i=1}^{m}(y^i\log f_w(x^i)+(1-y^i) \log(1-f_w(x^i)))

Преимущество:

  • Модель проста и имеет определенную степень интерпретируемости.
  • низкая вычислительная сложность времени
  • Инжиниринг можно массово распараллелить

недостаточный:

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

2.2 GBDT

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

Полное название GBDT — дерево решений с повышением градиента. Сначала обучите начальное дерево решений какft1(x)f_{t-1}(x), функция потерьL(y,ft1(x))L(y,f_{t-1}(x)), то текущий целевой номер итерации находит обучаемый дерево регрессии CARTht(x)h_t(x), пусть функция проигрыша этого раундаL(y,ft(x))=L(y,ft1(x)+ht(x))L(y,f_{t}(x))=L(y,f_{t-1}(x)+h_t(x))минимум. То есть дерево решений, найденное в этой итерации, должно минимизировать потери выборки. И окончательный результат прогноза — это сумма значений прогноза всех деревьев.

Алгоритм повышения дерева

  1. Повышенное дерево инициализируется первымf0(x)=0f_0(x)=0,

  2. заm=1,2,...,Mm=1,2,...,M

    1. тогда остатокrmi=yifm1(x),i=1,2,...,Nr_{mi}=y_i-f_{m-1}(x),i=1,2,...,N

    2. подходят остаткиrmir_{mi}Изучая дерево регрессии, получаемhm(x)h_m(x)

    3. возобновитьfm(x)=fm1(x)+hm(x)f_m(x)=f_{m-1}(x)+h_m(x)

  3. получить усиленное дерево для задачи регрессииfM(x)=m=1Mhm(x)f_M(x)=\sum_{m=1}^{M}h_m(x)

Предположим, что сильный ученик, полученный на предыдущей итерации,ft1(x)f_{t-1}(x), функция потерьL(y,ft1(x))L(y,f_{t-1}(x)), то целевое число этого раунда итераций находит слабого ученикаht(x)h_t(x)Свести к минимуму потери в этом раунде

argminL(y,ft(x))=argminL(y,ft1(x)+ht(x))\arg \min L(y,f_t(x))=\arg \min L(y,f_{t-1}(x)+h_t(x))

При использовании квадрата разницы в качестве функции потерь

L(y,ft1(x)+ht(x))=(yft1(x)ht(x))2=(rht(x))2L(y,f_{t-1}(x)+h_t(x))\\=(y-f_{t-1}(x)-h_t(x))^2\\=(r-h_t(x))^2

здесьrrЭто остаток, поэтому повышающему дереву нужно просто подогнать остаток текущей модели, чтобы достичь цели минимизации функции потерь.

Повышение градиента

вttкруглыйiiФункция потерь выборок - это когда выбрана квадратичная функция потерь.

[L(y,f(xi))f(xi)]f(x)=ft1(x)=yf(xi)-\left [\frac{\partial L(y,f(x_i))}{\partial f(x_i)} \right ]_{f(x)=f_{t-1}(x)}=y-f(x_i)

В это время будет обнаружено, что отрицательный градиент GBDT является остатком, который также является остаточным приближением алгоритма подъемного дерева, предложенного Фридманом, с использованием отрицательного градиента функции потерь. Модель регрессии GBDT должна соответствовать остаткам,

Алгоритм регрессии GBDT

Обучающие образцыT=(x1,y1),(x2,y2),...,(xm,ym)T={(x_1,y_1),(x_2,y_2),...,(x_m,y_m)}, максимальное количество итераций T, функция потерь L

  1. Инициализируйте слабого ученика:f0(x)=argminci=1NL(yi,c)f_0(x)=\arg \min _c\sum _{i=1}^{N}L(y_i,c)

  2. правильноt=1,2,...,Tt=1,2,...,Tимеют:

    1) Для каждого образцаi=1,2,...,mi=1,2,...,m, вычисляет отрицательный градиент (остаток)

    rti=[L(yi,f(xi))f(xi)]f(x)=ft1(x)r_{ti}=-\left [\frac{\partial L(y_i,f(x_i))}{\partial f(x_i)} \right ]_{f(x)=f_{t-1}(x)}
    1. Остаток, полученный на предыдущем шаге, используется как новое истинное значение выборки, и данные(xi,rti),i=1,2,..m(x_i,r_{ti}), i=1,2,..mСопоставьте дерево регрессии CART, чтобы получить первоеttдерево регрессииft(x)f_{t} (x)Соответствующая ему площадь листового узла равнаRtj,j=1,2,...,JR_{tj}, j =1,2,..., J. вJJ— количество листовых узлов дерева регрессии t.

    2. на площадь листаj=1,2,...,Jj=1,2,...,JРассчитать наилучший вариант

    ctj=argmincxiеRtjL(yi,ft1(xi)+c)c_{tj}=\arg \min _c\sum_{x_i \in R_{tj}}L(y_i,f_{t-1}(x_i)+c)
    1. Обновление сильного ученика
    ft(x)=ft1(x)+j=1JctjI(xеRtj)f_t(x)=f_{t-1}(x)+\sum_{j=1}^{J}c_{tj}I(x \in R_{tj})
  3. стать сильным ученикомf(x)f(x)выражение

    ft(x)=fT(x)=f0(x)+t=1Tj=1JctjI(xеRtj)f_t(x)=f_{T}(x)=f_0(x)+\sum _{t=1}^{T}\sum_{j=1}^{J}c_{tj}I(x \in R_{tj})

Алгоритм классификации GBDT

Идея алгоритма классификации и алгоритма регрессии одинакова, но вывод выборки не является непрерывным значением, поэтому ошибка вывода категории не может быть подобрана непосредственно из типа вывода. Тогда функция потерь, используемая в алгоритме классификации, имеет видЭкспоненциальная функция потерьифункция потерь логарифмического правдоподобия. Последний используется во второй классификации (вторая классификация в модели GBDT+LR).

L(y,f(x))=log(1+exp(yf(x)))L(y,f(x))=log(1+\exp(-yf(x)))

Тогда ошибка отрицательного градиента равна

rti=[L(yi,f(xi))f(xi)]f(x)=ft1(x)=yi1+exp(yif(xi))r_{ti}=-\left [\frac{\partial L(y_i,f(x_i))}{\partial f(x_i)} \right ]_{f(x)=f_{t-1}(x)}=\frac{y_i}{1+\exp(y_if(x_i))}

Затем для сгенерированного дерева решений наилучшее значение аппроксимации отрицательного градиента каждого конечного узла равно

ctj=argminxiеRtjlog(1+exp(yi(f(t1)+c)))c_tj=\arg \min \sum_{x_i \in R_{tj}}\log(1+\exp(-y_i(f_(t-1)+c)))

Приведенные выше подогнанные значения оптимизированы с помощью приближений вместо

ctj=xiеRtjrtixiеRtjrti(1rti)c_{tj}=\frac{\sum _{x_i \in R_{tj}}r_{ti}}{\sum _{x_i \in R_{tj}}|r_{ti}|(1-|r_{ti}|)}

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

параметры тренировки

Самые основные тренировочные параметры GBDT:

  • скорость обучения
  • количество итераций (n_trees)
  • глубина одного дерева (max_depth)

преимущество

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

недостаток

  • Массивные функции класса id не могут быть эффективно сохранены

2.3 GBDT+LR

Поскольку самому LR необходимо выполнять множество ручных скрещиваний признаков, GBDT может автоматизировать скрининг и комбинирование признаков для формирования новых дискретных векторов признаков. Итак, соедините эти две модели, используйте GBDT для фильтрации и объединения исходных признаков, а затем выведите их в модель LR для классификации, которая является известной моделью GBDT+LR.

gbdt_lr

Как показано на рисунке выше, во время обучения процесс построения дерева GBDT эквивалентен автоматическому объединению признаков и дискретизации, и тогда путь от корневого узла к конечному узлу можно рассматривать как комбинацию признаков различных признаков. может быть представлено уникальным образом и передано в LR как дискретная функция для обработкисреднее образование. Пример изображения вышеxxВ качестве входной выборки он проходит через левое и правое деревья классификации GBDT и попадает на листовые узлы двух деревьев соответственно.Каждый листовой узел соответствует одномерному признаку LR, а затем все признаки LR, соответствующие образцу получаются путем обхода дерева. Например, два параллельных дерева будут сгенерированы отдельно.[0,1,0][0,1,0]и[1,0][1,0], а затем они объединяются как[0,1,0,1,0][0,1,0,1,0]Затем введите данные в приведенную ниже модель LR, чтобы завершить классификацию.

Во время прогнозирования сначала будет проходиться каждое дерево GBDT, и будет получена дискретная функция, соответствующая листовому узлу, а затем функция будет передана в LR в горячей форме и линейно взвешена с исходной функцией для прогнозирования.

ключевой момент:

  1. Дискретный вектор, полученный после объединения признаков с помощью GBDT, используется в качестве входных данных логистической регрессии вместе с исходными признаками обучающих данных, а не только с дискретными признаками.
  2. Причина использования ансамбля для построения дерева заключается в том, что выразительная способность одного дерева слаба, чего недостаточно для выражения нескольких комбинаций отличительных признаков, а выразительная способность нескольких деревьев сильнее. Каждое дерево GBDT изучает оставшиеся недостатки предыдущего дерева и определяет, сколько деревьев будет сгенерировано за столько итераций.
  3. RF также представляет собой несколько деревьев, но было доказано, что эффект не так хорош, как GBDT. И дерево перед GBDT, разделение признаков в основном отражает признак, который отличает большинство выборок; последнее дерево в основном отражает несколько выборок с большой остаточной ошибкой после прохождения через первые N деревьев. Целесообразнее выбрать признаки, дискриминационные в целом, а затем выбрать признаки, дискриминационные для нескольких выборок, что также должно быть причиной использования GBDT.
  4. В прогнозировании CRT GBDT обычно строит два типа деревьев (один для функций без идентификатора, а другой для функций с идентификатором). Функции AD и ID являются очень важными функциями в прогнозировании CTR. Невозможно построить дерево как функцию, поэтому рассмотрите возможность построения дерева GBDT для каждого AD и ID.
    1. Дерево типов без идентификаторов: не создавайте деревья с детализированными идентификаторами. Этот тип дерева используется в качестве основы. Даже если реклама и рекламодатели с меньшим охватом все еще могут использовать этот тип дерева для получения отличительных признаков и комбинаций признаков.
    2. Дерево классов идентификаторов: создайте дерево классов с подробными идентификаторами, чтобы найти хорошо раскрытые идентификаторы, соответствующие отличительным функциям и комбинациям функций.

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

  1. blog.CSDN.net/rock_have/Aretti…
  2. blog.CSDN.net/Oh Lane Goes Down/Аретти…
  3. blog.CSDN.net/Я боюсь роутера 110/Ах...
  4. zhuanlan.zhihu.com/p/35465875