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). Итак, давайте более детально разберем каждое из определений упомянутых выше, чтобы была возможность математически точно описать что же из себя представляет та самая “оценка воздействия”(инкремент) .
Воздействие (Взаимодействие). Под воздействием на пользователя подразумевается, например, отправка электронного письма, показ баннера на главной странице сайта или конкретной вариации A/B теста. Обозначим некого пользователя
, а факт взаимодействия (treatment) с ним обозначим через бинарную переменную , где , если никакого воздействия не было, а , если было. А само воздействие как функцию .
Результат. Конечное решение пользователя. Под конечным решением (outcome) пользователя
, мы имеем ввиду например, факт покупки (купил / не купил), кликнул на баннер или не кликнул или же сумму покупки, время проведенное на странице сайта или приложения и т.д. Отметим, что результат бывает нескольких типов: Дискретный. Купил / Не купил
Гладкий. Сумма покупки
Без привязки к функционалу (дискретный или гладкий) обозначим результат как
Теперь мы подошли вплотную к возможности дать определение эффекту взаимодействия с пользователем
Вывод : для того, чтобы оценить инкремент, нельзя просто построить модель-классификатор, который бы прогнозировал вероятность совершения конверсии, потому что модель-классификатор отвечает на вопрос -”купит ли пользователь товар/услугу”.
Бизнес же (и нас) интересует совсем иной вопрос: “купит ли пользователь товар / услугу, в следствии того, что мы провзаимодействовали с ним?”. Исходя из этого, мы даем определения инкремента, который несет конкретный пользователь как:
где
Мы дали определения инкремента для конкретного пользователя, теперь же дадим определения инкремента для множества пользователей. Конечный инкремент на множестве всех пользователей представляет собой математическое ожидание индивидуальных(персональных) инкрементов каждого из пользователей этого множества.
Пользователь
Теперь же, имея на руках математическое определение инкремента, мы можем приступить к описанию подходов (моделей) расчета итогового инкремента. Существует два довольно популярных и распространенных подхода для расчета конечного
response modeling
direct uplift modeling
Забегая вперед, сразу оговоримся, что оба подхода имеют довольно серьезные недостатки и страдают от низкого уровня performance. Мы опишем их здесь исключительно, для того, чтобы выделить их слабые места и подчеркнуть те грубые допущения с которыми они работают, и в дальнейшем показать как KD+SM Uplift modeling удается их нивелировать, тем самым показывая наилучшие результаты сред них всех. Но прежде чем говорить о моделях нам придется ввести еще некоторые математические обозначения.
Итак, глобально у нас есть два множества пользователей. Множество пользователей, с кем не было взаимодействия
Теперь к моделям.
response modeling
Первое, что приходит в голову для того, чтобы посчитать конечный инкремент
Недостатки:
Обучается сразу две модели, у которых, соответственно, разный уровень точности: одна предсказывает лучше, другая хуже, что ведет за собой нестабильность и неточность прогноза.
Модели обучаются на совершенно разных данных. Ранее мы установили, что
, а потому treatment group и control group никак не пересекаются. То есть, для расчета индивидуального инкремента используются данные не одного и того же пользователя, а двух совершенно разных пользователей с разным набором фичей , что конечно же некорректно. Высокая разрежённость (низкая плотность) данных. Значительная доля фичей
, у большинства пользователей будет иметь нулевые (или же пустые) значения, что негативно скажется на обобщающих способностях моделей и возможном переобучение.
direct uplift modeling
Второй подход гласит следующее: обучим уже одну модель
Недостатки:
И опять мы натыкаемся на проблему, что для персонального расчета инкремента пользователя, мы вынуждены использовать данные двух совершенно разных пользователей. Для расчета
один пользователь , другой , а как мы уже знаем . Высокая разрежённость (низкая плотность) данных.
Давайте сделаем краткое резюме проблем, с которыми мы сталкиваемся и которые требуют определённого дальнейшего решения.
Что в первом, что во втором случае мы вынуждены использовать двух совершенно разных пользователей, чтобы рассчитать индивидуальный пользовательский инкремент. Оно и понятно, потому что мы никак не могли провзаимодействовать с пользователем, и в тоже время не провзаимодействовать с ним, чтобы собрать опытный датасет. Он (пользователь) либо видел наш баннер, либо нет, третьего не дано. У этой проблемы есть даже отдельное название - counterfactual sample pairs problem.
Разрежённость данных. Для того, чтобы получать высокий AUC-ROC моделей, нам предстоит каким-то образом сокращать разрежённость.
На этом пока все. В этой статье мы определили для себя базовую терминологию и обозначения. Следующая статься будет посвящена уже непосредственно самой архитектуре KD+SM Uplift modeling: разберем, что же из себя представляют модели T-learner и S-learner, что такое статистическая дивергенция и для чего она нужна.