аплифт что это такое простыми словами
Туториал по uplift моделированию: метрики. Часть 3
В предыдущих туториалах (часть 1, часть 2) мы изучали методы, моделирующие uplift. Это величина, которая оценивает размер влияния на клиента, если мы взаимодействуем с ним. Например, отправляем смс или пуш уведомление. Давайте обсудим: как измерять качество uplift моделей?
Использовать классические метрики качества для оценки обученной модели не получится, так как нет ground truth по каждому объекту выборки или реальных, настоящих значений uplift. Это значит, что если мы предскажем значение, сравнить его будет не с чем. В этом заключается особенность uplift моделирования: нельзя одновременно прокоммуницировать и не прокоммуницировать с клиентом и посмотреть разницу в его реакции. Поэтому все метрики мы будем рассчитывать, так или иначе группируя объекты выборки. Например, рассматривая 10% выборки, 20% и так далее.
Давайте на реальном датасете обучим простую модель, предскажем uplift и посмотрим, какие есть метрики и как они себя ведут. Все примеры кода из статьи есть в ноутбуке. В нем используется питоновская библиотека для uplift моделирования sklift, созданная авторами статьи.
Для примера возьмем датасет от Ленты. Датасет был представлен на хакатоне BigTarget от Ленты и Microsoft летом 2020 года и теперь доступен для скачивания. В нем собраны обезличенные и аггрегированные данные о поведении клиентов супермаркетов до проведения акции на определенную группу товаров. Есть данные о факте взаимодействия с клиентом и факты совершения целевого действия после коммуникации.
Более детально на данные можно посмотреть в документации и ноутбуке.
Метрики
uplift@k
Например, с помощью обученной uplift модели мы хотим отобрать какое-то количество клиентов, с которыми будем коммуницировать. Пусть бюджет рассчитан на k% клиентов. Тогда нам интересно оценить качество прогноза не на всей тестовой выборке, а только на объектах с наибольшими предсказаниями при отсечении по порогу в k процентов.
На практике uplift@k принимает значения от 0 до 1, в зависимости от выбранного значения k, особенностей датасета и качества модели.
Рассчитывать эту метрику можно двумя различными способами: сначала сортировать по предсказанному uplift и далее считать разницу response rate двух групп. Или наоборот, изначально сортировать объекты из контрольной и целевой групп по отдельности.
Обучим простую uplift модель и предскажем величину uplift на валидации
Подробности в этом ноутбуке
Тогда метрику uplift@k можно импортировать и посчитать таким образом:
Uplift by percentile
Бывает так, что со стороны бизнеса не известно значение порога k и хочется посмотреть, как будет вести себя метрика при разных значениях порога k. Такая метрика в литературе [1] упоминается как uplift by decile. Также ее называют uplift by percentile или uplift by bin.
При построении действуем по аналогии с uplift@k:
Сортируем по предсказанному значению uplift
В каждом перцентиле отдельно оцениваем uplift как разность между средними значениями целевой переменной в тестовой и контрольной группах.
Стоит отметить, что в большинстве источников [1] [2] аплифт по перцентилям оценивается независимо в каждом перцентиле, но ничего не мешает вам оценить его кумулятивно.
Результатом этой метрики, как правило, является таблица [3] или ее визуальное представление в виде графика. Давайте также для каждого перцентиля рассчитаем следующие показатели:
С помощью кода ниже можно рассчитать таблицу uplift by percentile. Кроме метрик по каждому перцентилю в последней строке total расположены итоговые метрики для всей выборки.
График uplift by percentile
Если визуализировать таблицу, то получится график uplift by percentile. По нему удобно оценивать эффективность модели. Как его можно интерпретировать? Так как коммуникация будет проводиться с клиентами, получившими наибольшую оценку uplift, то слева на графике должны быть максимальные по модулю положительные значения uplift и в следующих перцентилях значения уменьшаются.
Код построения plot_uplift_by_percentile
Для случайной аплифт модели график uplift by percentile будет выглядеть как линия, параллельная оси Х.
Uplift по перцентилям можно визуализировать не только как bar plot, но и как line plot:
График uplift by percentile в виде line plot
На обоих типах графиков показаны не только значение uplift в каждой точке, но стандартные отклонения. Это сделано для того, чтобы корректно сравнивать метрики от перцентиля к перцентилю с учетом их разброса.
Выведем формулу стандартного отклонения
Чтобы найти стандартное отклонение, вычислим дисперсию и потом возьмем из нее корень:
и бинарный таргет распределен по закону Бернулли, получаем
Weighted average uplift
Формула weighted average uplift
Weighted average uplift лежит в пределах от [-1, 1] и отображается на графике uplift by percentile в названии. Если метрика принимает значение 1, это значит, что реакций Y=1 в контрольной группе нет ни в одном перцентиле: пользователи никогда не выполняют целевое действие самостоятельно, а только при коммуникации. При таком значении метрики нет смысла решать задачу с помощью uplift моделирования, лучше свести постановку задачи к обучению response или look-alike модели.
Uplift curve
Uplift кривая строится как функция от количества объектов, нарастающим итогом. В каждой точке кривой можно увидеть накопленный к этому моменту uplift
Формула uplift curve
На картинке ниже расположен типичный график идеальной (красным), модельной, или реальной (синим) и случайной (черным) кривых. Каждая точка на такой кривой соответствует значению кумулятивного uplift. Чем больше это значение, тем лучше. Монотонно возрастающая случайная кривая показывает, что воздействие всей выборки имеет общий положительный эффект.
Код отрисовки uplift curve
Колоколообразная форма кривых показывает сильные положительные и отрицательные эффекты, присутствующие в наборе данных. Если бы эти эффекты отсутствовали, кривые были бы ближе к случайной линии.
Как выглядит кривая uplift без отрисовки идеальной кривой
Qini curve
Еще одной довольно распространенной кривой при оценке uplift моделей является Qini кривая, впервые введенная в статье [4] и определяющаяся следующим образом:
Формула qini curve
Qini curve, как и другие аплифт метрики, рассчитывается кумулятивно сразу для набора объектов. Кривую Qini для модели тоже сравнивают со случайной кривой (на графике черной линией) и с идеальным случаем (на графике красной линией). Аналогично с uplift кривой, чем выше кривая над случайной кривой, тем лучше.
Код отрисовки qini curve
Физический смысл qini кривой в том, чтобы не давать модели поднимать наверх в ранжировании только целевую (treatment) группу, штрафуя ее за это множителем Nt/Nc, который уменьшает итоговое значение, если Nt сильно больше, чем Nc.
Можно провести очевидную параллель между uplift и qini кривыми:
Например, когда контрольная и целевая группы сбалансированы, то qini кривая будет в два раза ниже, чем uplift.
Qini curve без идеальной кривой
От кривых к числам
Итак, теперь мы знаем, как строить qini и uplift кривые, с помощью которых можно оценить качество модели. При этом сравнивать модели хочется не «на глаз», а с помощью чисел. Как и во многих других метриках машинного обучения, основанных на кривых, предлагается рассчитывать площадь под модельными кривыми и нормировать ее на площадь под идеальной кривой [5]. При этом обычно из площадей под модельной и идеальной кривыми вычитают площадь под случайной кривой, которую называют baseline.
Qini coefficient или AUQC
В случае площади под qini кривой можно посчитать коэффициент qini, или area under qini curve (AUQC). Схематично его расчет можно нарисовать так:
Расчет qini coefficient Код qini_auc_score
Area under uplift curve, AUUQ
Как вы могли заметить, коэффициенты AUQC и AUUC также отображаются на графиках кривых в названии графиков.
Заключение
Целью наших статей (часть 1, часть 2, часть 3) был рассказ об основах uplift моделирования и кейсах его применения. Мы подробно разобрали не только основные методы и метрики, но и дизайн эксперимента для сбора обучающей выборки. Первые части были без кода, поэтому рекомендуем посмотреть практические туториалы здесь.
Мы надеемся, что они дадут базовые знания и возможность самостоятельно углубиться дальше в исследования. Например, на практике вы можете столкнуться с несколькими вариантами коммуникаций или предсказанием непрерывной целевой переменной. В этом вам помогут ссылки на источники.
Статья написана в соавторстве с Максимом Шевченко @maks-sh
Источники
[1] Pierre Gutierrez, Jean-Yves Gérardy. Causal Inference and Uplift Modeling A review of the literature. JMLR: Workshop and Conference Proceedings 67:1–13, 2016
[2] Verbeke, Wouter & Baesens, Bart & Bravo, Cristián. Profit Driven Business Analytics: A Practitioner’s Guide to Transforming Big Data into Added Value, 2018.
[3] René Michel, Igor Schnakenburg, Tobias von Martens. Targeting Uplift. An Introduction to Net Scores. Springer, 2019.
[4] Nicholas J. Radcliffe. Using control groups to target on predicted lift: Building and assessing uplift model. Direct Market J Direct Market Assoc Anal Council, 1:14–21, 2007.
[5] Floris Devriendt, Tias Guns, Wouter Verbeke. Learning to rank for uplift modeling. IEEE Transactions on Knowledge and Data Engineering, 2020
Туториал по uplift моделированию. Часть 1
Команда Big Data МТС активно извлекает знания из имеющихся данных и решает большое количество задач для бизнеса. Один из типов задач машинного обучения, с которыми мы сталкиваемся – это задачи моделирования uplift. С помощью этого подхода оценивается эффект от коммуникации с клиентами и выбирается группа, которая наиболее подвержена влиянию.
Такой класс задач прост в реализации, но не получил большого распространения в литературе про машинное обучение. Небольшой цикл статей, подготовленный Ириной Елисовой (iraelisova) и Максимом Шевченко (maks-sh), можно рассматривать как руководство к решению таких задач. В рамках него мы познакомимся с uplift моделями, рассмотрим, чем они отличаются от других подходов, и разберем их реализации.
Введение
Обычно продвижение продуктов происходит за счет коммуникации с клиентом через различные каналы: смс, push, сообщения чат-бота в социальных сетях и многие другие. Формирование сегментов для продвижения сейчас решается с помощью машинного обучения несколькими способами:
Нельзя просто взять и обучить модель
где – потенциальная реакция человека, если с ним была коммуникация,
– потенциальная реакция человека, если коммуникации не было.
Ни causal effect , ни
для
-го объекта мы наблюдать, и, соответственно, оптимизировать не можем. Поэтому перейдем к оценке
или формуле uplift конкретного объекта:
Где — наблюдаемая реакция клиента в результате маркетинговой кампании, которая определяется следующим образом:
Где – флаг того, что объект попал в целевую (treatment) группу, где была коммуникация,
– флаг того, что объект попал в контрольную (control) группу, где коммуникации не было.
Стоит отметить, что формула для uplift применима только при следующем предположении об условной независимости (Conditional Independence Assumption — CIA): разделение на целевую и контрольную группу происходит случайно, а не в зависимости от значения какого-то признака. Потенциальная реакция объекта — это только следствие характеристик этого объекта
(например, установка приложения по аренде квартир зависит от возраста и города проживания), которое проявляется до того, как он попадет в какую-либо группу (целевую или контрольную). Кратко это можно записать как:
При этом наблюдаемая реакция объекта уже зависит от разделения на целевую и контрольную группу, как следует из определения.
Дизайн эксперимента
Итак, нам нужно оценить разницу между двумя событиями, которые являются взаимоисключающими для конкретного клиента (либо мы коммуницируем с человеком, либо нет; нельзя одновременно совершить два этих действия). Именно поэтому для построения моделей uplift предъявляются дополнительные требования к исходным данным.
Для получения обучающей выборки для моделирования uplift необходимо провести эксперимент:
Собранные данные об откликах на маркетинговое предложение, полученные в рамках такого эксперимента, позволят нам в дальнейшем построить модель прогнозирования uplift.
Перед проведением основной кампании рекомендуется аналогично эксперименту случайным образом выбрать небольшую часть клиентской базы и разбить ее на контрольную и целевую группы. С помощью этих данных можно будет не только адекватно оценить эффективность кампании, но и собрать дополнительные данные для дальнейшего переобучения модели.
Схема взята и адаптирована из [1]
Кроме того, рекомендуется настраивать разработку uplift модели и запуск кампании как итеративный процесс: на каждой итерации будут собираться новые обучающие данные об откликах, которые состоят из комбинирования случайной подвыборки клиентов и клиентов, выбранных моделью.
Результаты воздействия на клиентов, выбранных моделью, не хотелось бы использовать в качестве обучающей выборки, так как клиенты были взяты не случайным образом. Однако эти данные представляют большую ценность, поэтому их следует изучить и использовать для дальнейшего совершенствования модели и увеличения отклика от будущих кампаний.
Типы клиентов
Принято выделять 4 типа клиентов по реакции на коммуникацию:
Таким образом, предсказывая uplift и выбирая топ предсказаний, мы хотим найти только один из четырех типов — убеждаемый. Есть несколько способов это сделать.
Одна модель с признаком коммуникации
Treatment Dummy approach, Solo model approach, Single model approach, S-Learner
Самое простое и интуитивное решение: модель обучается одновременно на двух группах, при этом бинарный флаг коммуникации выступает в качестве дополнительного признака. Каждый объект из тестовой выборки скорим дважды: с флагом коммуникации равным 1 и равным 0. Вычитая вероятности по каждому наблюдению, получим искомый uplift.
В некоторых статьях, например [2], предлагается увеличить количество признаков вдвое, добавив произведение каждого признака на флаг взаимодействия: :
Две независимые модели
Two models approach, T-learner, difference two models
Подход с двумя моделями один из самых популярных и достаточно часто встречается в статьях, например [3] и [4]. Метод заключается в отдельном моделировании двух условных вероятностей на целевой и контрольной группах, а именно:
Две зависимые модели (зависимое представление данных)
Dependent Data Representation, Dependent Feature Representation
Подход зависимого представления данных, представленный в [5], основан на методе цепочек классификаторов, первоначально разработанном для задач многоклассовой классификации. Идея состоит в том, что при наличии различных меток можно построить
различных классификаторов, каждый из которых решает задачу бинарной классификации. В процессе обучения каждый следующий классификатор использует предсказания предыдущих в качестве дополнительных признаков. Авторы данного метода предложили использовать ту же идею для решения проблемы uplift моделирования в два этапа. Вначале мы обучаем классификатор по контрольным данным:
затем выполним предсказания в качестве нового признака для обучения второго классификатора на тестовых данных, тем самым вводя зависимость между двумя наборами данных:
Чтобы получить uplift для каждого наблюдения, вычислим разницу:
Так второй классификатор изучает разницу между ожидаемым результатом в тесте и контроле, т.е. сам uplift.
Две зависимые модели (перекрестная зависимость)
Метод основывается на построении двух моделей, так же, как и в двух предыдущих подходах. Авторы статьи [6] рекомендуют применять его тогда, когда целевая группа достаточно маленькая. В этом случае есть риск, что модель, построенная на целевой группе, будет обладать недостаточной обобщающей способностью. Поэтому создается перекрестная зависимость двух моделей, чтобы усилить одну модель данными другой.
1. Сначала обучаем параллельно две модели: одну на контрольной группе, другую — на целевой (как в методе с двумя независимыми моделями):
2. Затем преобразуем обе целевые переменные, используя предсказания контрольной модели на данных целевой группы и предсказания целевой модели на данных контрольной группы. Полученные величины обозначаются как и
и называются вменяемым эффектом от воздействия.
Если оценки и
были бы не предсказаниями, а реальными величинами (которые мы на самом деле не можем пронаблюдать), то
и
были бы равны uplift, то есть
3. Обучим две новые модели на преобразованных таргетах и
:
4. Взвешенная с некоторым коэффициентом сумма предсказаний этих моделей и будет uplift. Поэтому процесс применения модели будет выглядеть следующим образом:
Рекомендуется выбирать , если размер целевой группы большой по сравнению с размером контрольной группы, и
, если наоборот. Кроме того,
можно рассматривать не только как константу, а как некоторую функцию от объекта —
.
Заключение
В этой статье были рассмотрены особенности uplift моделей, процесс сбора данных и проведения маркетинговых кампаний, а также базовые методы моделирования uplift. В следующей части мы продолжим говорить о более интересных подходах.
Статья написана в соавторстве с Ириной Елисовой (iraelisova)