KD+SM Uplift Modeling. Вошли и вышли, приключение на 20 минут

Введение

В современном интернет-маркетинге уделено довольно мало внимания Uplift моделированию. Cам Uplift не страдает от недостатка внимания со стороны маркетинга, а вот его корректный расчет — да. Как правило, Uplift моделирование представляет собой набор неких эвристик, незамысловатой статистики и различных бизнес-инструментов. В лучшем случае, это относительно современные и простые ML-модели, которые совершают расчеты с большим количество допущений, что влечет за собой некорректные и нестабильные результаты.

Такие решения, как правило объясняются желанием со стороны бизнес-заказчика или же отдела аналитики сделать продукт «быстро и сердито», без долгого и тяжелого вовлечения во все нюансы и подводные камни Uplift моделирования. Задача действительно непростая, пользователи видят десятки рекламных баннеров, успевают повидать по несколько вариаций дизайна страниц сайта, при всем этом получая электронные письма, либо пуши с предложением скидки на продукцию. Конечно же, при такой «бомбардировке» пользователя довольно трудно понять на частном уровне, какая кампания лучше поспособствовала формированию желания что-то у Вас купить.

Это цикл статей, посвященный KD+SM Uplift моделированию (Knowledge Distillation and Sample Matching) — относительно новой архитектуре Uplift моделирования, использующей весь современный арсенал ML и DL решений на текущий день. Можно сказать, что KD+SM это даже целый pipeline решений, который состоит из препроцессинга данных, нескольких ML моделей, и нейронных сетей. Модели «общаются» друг с другом, на каждом из этапов обогащают данные новыми синтетическими знаниями и передают уже модифицированные данные дальше по pipeline. Именно поэтому мы уложим всю работу в несколько статей, начиная с вводной статьи и заканчивая прикладным применением KD+SM Uplift на реальных данных.

Данная статься является вводной (101), чтобы в самом начале дать определения терминам и ввести обозначения, которые нам потребуется в будущем и более к ним не возвращаться.

101

Uplift моделирование ставит перед собой задачу оценки эффекта (инкремента или uplift) воздействия на результат или конечное решение пользователя. По-другому uplift называется еще как individual treatment effect (ITE). Итак, давайте более детально разберем каждое из определений упомянутых выше, чтобы была возможность математически точно описать что же из себя представляет та самая «оценка воздействия»(инкремент) .

\begin{cases}      \ f^{W=1}(u_{i})\in R & \text treatment=True\\ f^{W=0}(u_{i}) \in R & \text treatment=False&            \end{cases}

  • Результат. Конечное решение пользователя. Под конечным решением (outcome) пользователяu_{i}, мы имеем ввиду например, факт покупки (купил / не купил), кликнул на баннер или не кликнул или же сумму покупки, время проведенное на странице сайта или приложения и т.д. Отметим, что результат бывает нескольких типов:

Без привязки к функционалу (дискретный или гладкий) обозначим результат какY(target). Для упрощения дальнейших изложений, положим, что имеем дело с дискретным функционаломY= \{0,1\}, гдеY = 0если конверсии (покупки) не случилось, аY = 1если конверсия произошла.P(y)определяет вероятностное распределение переменной, в зависимости от значенияY=y, аP(Y|W)определяет условную вероятность распределения переменной Y, в зависимости от значения переменнойW.

\begin{cases}      \ Y = f^{W}(u_{i}), Y\in \{0,1\} & \text binary\\ \lim_{x\to a} f^{W}(u_{i})=  a, Y =a  & \text smooth\\      \end{cases}

Теперь мы подошли вплотную к возможности дать определение эффекту взаимодействия с пользователемu_{i}. Перед тем как дать определение рассмотрим один прикладной пример для упрощения дальнейшего понимания оценки инкремента на уровне конкретного пользователя. Многие из нас, скорее всего, раньше ходили в известные магазины спортивной одежды и обуви с уже вполне явным намерением купить там пару кроссовок. И вот Вы сами туда пришли, сами выбрали пару обуви, попросили консультанта принести Ваш размер, померили, а после того, как решили ее купить — консультант понес ее на кассу, где отметился, что именно он обслужил Вас. Так вот, с точки зрения Uplift, продавец-консультант не принес никакого инкремента. Вы бы и так купили эту пару обуви, его инкремент равен 0. Uplift случился бы в случае, если бы он сумел продать вам то, что вы покупать не собирались (носки или спортивный костюм например).

Вывод : для того, чтобы оценить инкремент, нельзя просто построить модель-классификатор, который бы прогнозировал вероятность совершения конверсии, потому что модель-классификатор отвечает на вопрос -«купит ли пользователь товар/услугу».

Бизнес же (и нас) интересует совсем иной вопрос: «купит ли пользователь товар / услугу, в следствии того, что мы провзаимодействовали с ним?». Исходя из этого, мы даем определения инкремента, который несет конкретный пользователь как:

\tau_{i} = f^{W=1}_{i}(u_{i}) - f^{W=0}_{i}(u_{i})

где\tau_{i}, и есть искомый нами персональный инкремент. Стоит на всякий случай отметить, что значение инкремента\tau_{i}, может принимать как положительные, так и отрицательные значения. Например, нашей активностью мы не только побуждаем пользователей к некой активности с их стороны, но и вполне можем их раздражать или спамить рекламой например, что, конечно же, негативно скажется на продажах.

Мы дали определения инкремента для конкретного пользователя, теперь же дадим определения инкремента для множества пользователей. Конечный инкремент на множестве всех пользователей представляет собой математическое ожидание индивидуальных (персональных) инкрементов каждого из пользователей этого множества.

\tau = E[\tau_{i}]

Пользовательu_{i}, обладает конечным набором параметров, описывающих его (фич) X=x. Запишем, тот же конечный инкремент\tau_{x}, но теперь уже используя фичи пользователей и функции воздействия на них.

\tau(x) = E [ f^{W=1}(x)- f^{W=0}(x)]  \big| X=x

Теперь же, имея на руках математическое определение инкремента, мы можем приступить к описанию подходов (моделей) расчета итогового инкремента. Существует два довольно популярных и распространенных подхода для расчета конечного \tau_{x}:

  • response modeling

  • direct uplift modeling

Забегая вперед, сразу оговоримся, что оба подхода имеют довольно серьезные недостатки и страдают от низкого уровня performance. Мы опишем их здесь исключительно, для того, чтобы выделить их слабые места и подчеркнуть те грубые допущения с которыми они работают, и в дальнейшем показать как KD+SM Uplift modeling удается их нивелировать, тем самым показывая наилучшие результаты сред них всех. Но прежде чем говорить о моделях нам придется ввести еще некоторые математические обозначения.

Итак, глобально у нас есть два множества пользователей. Множество пользователей, с кем не было взаимодействияC (control group, W=0), и множество пользователей, с кем было взаимодействиеT (treatment group W=1). Количество пользователей, принадлежащих множествуC, обозначим какN^{C}, количество пользователей, принадлежащих множествуT, какN^{T}. Заметим что, пользователь может принадлежать одному и только одному множеству и не может находиться одновременно в двух множествах, а также не может не принадлежать ни одному из множеств. Соответственно, N^{C}иN^{T}образуют полное множество пользователейN. Также договоримся, что множестваC иT не могут быть пустыми.

\begin{cases}       N = N^{C} + N^{T} & \text  {}\\       C \cap N = \emptyset\\       C \neq \emptyset  & \text{|non-empty set}\\       T \neq\emptyset & \text{|non-empty set}\\     \end{cases}

Теперь к моделям.

  • response modeling

Первое, что приходит в голову для того, чтобы посчитать конечный инкремент\tau_{x}— это обучить две независимые друг от друга модели. Первая модельM^{T}(X=x) обучается предсказывать вероятность совершения конверсииP(Y|W=1)на treatment group, вторая модельM^{C}(X=x)предсказывать вероятность совершения конверсииP(Y|W=0)на control group. А уже после вычисляется разница вероятностей, предсказанных моделямиM^{T}(X=x)и M^{C}(X=x).

\tau_{i} = M^{T}(X=x) - M^{C}(X=x)

Недостатки:

  1. Обучается сразу две модели, у которых, соответственно, разный уровень точности: одна предсказывает лучше, другая хуже, что ведет за собой нестабильность и неточность прогноза.

  2. Модели обучаются на совершенно разных данных. Ранее мы установили, чтоC \cap N = \emptyset, а потому treatment group и control group никак не пересекаются. То есть, для расчета индивидуального инкремента \tau_{i}используются данные не одного и того же пользователя, а двух совершенно разных пользователей с разным набором фичей X=x, что конечно же некорректно.

  3. Высокая разрежённость (низкая плотность) данных. Значительная доля фичей X=x, у большинства пользователей будет иметь нулевые (или же пустые) значения, что негативно скажется на обобщающих способностях моделей и возможном переобучение.

  • direct uplift modeling

Второй подход гласит следующее: обучим уже одну модельM(X=x,W=w), которая бы просто предсказывала вероятность cовершения конверсии P(Y|y=1). Заметьте, что здесь модель обучается уже не только на фичах пользователяX, но и на дополнительном вектореW(treatment / no treatment). Затем случайным образом из выборки берется пользовательu_{i} \in T и пользовательu_{j} \in C и точно так же, как и в response modeling, находится разница вероятностей совершения конверсии между ними.

\tau_{i} = M(X=x,W=1) - M(X=x, W=0)

Недостатки:

  1. И опять мы натыкаемся на проблему, что для персонального расчета инкремента пользователя, мы вынуждены использовать данные двух совершенно разных пользователей. Для расчета\tau_{i}один пользовательu_{i} \in T, другой u_{j} \in C, а как мы уже знаемC \cap T = \emptyset.

  2. Высокая разрежённость (низкая плотность) данных.

Давайте сделаем краткое резюме проблем, с которыми мы сталкиваемся и которые требуют определённого дальнейшего решения.

  1. Что в первом, что во втором случае мы вынуждены использовать двух совершенно разных пользователей, чтобы рассчитать индивидуальный пользовательский инкремент. Оно и понятно, потому что мы никак не могли провзаимодействовать с пользователем, и в тоже время не провзаимодействовать с ним, чтобы собрать опытный датасет. Он (пользователь) либо видел наш баннер, либо нет, третьего не дано. У этой проблемы есть даже отдельное название — counterfactual sample pairs problem.

  2. Разрежённость данных. Для того, чтобы получать высокий AUC-ROC моделей, нам предстоит каким-то образом сокращать разрежённость.

На этом пока все. В этой статье мы определили для себя базовую терминологию и обозначения. Следующая статься будет посвящена уже непосредственно самой архитектуре KD+SM Uplift modeling: разберем, что же из себя представляют модели T-learner и S-learner, что такое статистическая дивергенция и для чего она нужна.

© Habrahabr.ru