Цепи Маркова: почти инкрементальность

В прошлый раз я отмахнулся от «data-driven» одним абзацем: тот же дележ, только дороже. Несправедливо. Внутри этого класса есть одна модель, которая разбора заслуживает. Она умнее всех остальных. Она даже почти задаёт правильный вопрос.
Цепи Маркова.
Коротко, о чём был спор
Атрибуция делит одну покупку между каналами. Она всегда выдаёт ровно 100% — даже если реклама не сделала ничего. Числа для дележа берутся с потолка: почему 40% первому, а не 35 — «потому что».
Инкрементальность спрашивает другое: что сломается, если канал выключить? Ответ бывает и нулевым. Считается не в отчёте, а экспериментом.
Так вот. Цепи Маркова — единственная модель атрибуции, которая пытается задать вопрос инкрементальности, не выходя из отчёта. Спойлер: не выходя из отчёта, задать его нельзя. Но попытка красивая, и понять, где именно она ломается, полезно.
Путь как переходы между станциями
Марина снова хочет рюкзак. Её путь: Соцсеть → Поиск → Письмо → Покупка. Но одна Марина — это анекдот, а не данные. Возьмём десятки тысяч Марин. Пути у всех разные: кто-то дошёл до покупки, кто-то ушёл на любом шаге.
Цепь Маркова — это карта всех таких путей разом. Станции — ваши каналы плюс два финала: Купил и Ушёл. Стрелки между станциями — вероятности перехода, посчитанные по реальным данным: из скольких «Соцсетей» люди идут в «Поиск», из скольких «Уходят».
Возьмём игрушечный магазин с тремя каналами. Карта переходов:
Старт ─┬─▶ Соцсеть 0.5
└─▶ Поиск 0.5
Соцсеть ─┬─▶ Письмо 0.5
└─▶ Ушёл 0.5
Поиск ─┬─▶ Купил 0.6
└─▶ Ушёл 0.4
Письмо ─┬─▶ Купил 0.7
└─▶ Ушёл 0.3
У модели одно жёсткое допущение — память длиной в один шаг. Марина на станции «Письмо» ведёт себя одинаково, пришла она туда из «Соцсети» или напрямую. Это упрощение, и это неправда. Но без него ничего не посчитать, а с ним получается достаточно похоже на жизнь.
Removal effect — ради чего всё затевалось
Как модель понимает вклад канала? Она его убирает. Буквально стирает станцию: все стрелки, которые вели в неё, теперь ведут в «Ушёл». И смотрит, насколько упала общая вероятность дойти до покупки.
Погодите-ка. «Насколько упадёт результат, если выключить канал» — это же дословно вопрос про инкрементальность из прошлой статьи.
Да. Removal effect — это инкрементальность, посчитанная в симуляции. Ближе к правильному вопросу атрибуция не подходила никогда. Поэтому цепи Маркова и стоит знать: это самый честный из нечестного семейства.
Считаем на пальцах
Сначала — базовая вероятность покупки. До финала «Купил» ведут два маршрута:
Старт → Соцсеть → Письмо → Купил = 0.5 × 0.5 × 0.7 = 0.175
Старт → Поиск → Купил = 0.5 × 0.6 = 0.300
базовая конверсия = 0.475
Теперь по очереди выключаем каждый канал и пересчитываем.
| Убираем | Что остаётся | Конверсия без него | Removal effect |
|---|---|---|---|
| Соцсеть | только маршрут через Поиск | 0.300 | (0.475−0.300)/0.475 = 36,8% |
| Поиск | только маршрут через Соцсеть→Письмо | 0.175 | (0.475−0.175)/0.475 = 63,2% |
| Письмо | только маршрут через Поиск | 0.300 | (0.475−0.300)/0.475 = 36,8% |
| Сумма | 136,8% |
Вот теперь внимание.
Где 136,8% превращаются в 100%
Removal effects не складываются в сотню. Они складываются в 136,8%.
Помните начало прошлой статьи — 1 460 продаж из 1 000? Вот те же лишние проценты, вид сбоку. Каналы перекрываются: и «Поиск», и «Письмо» оказываются «нужны» одной и той же покупке, потому что подстраховывают друг друга. Модель это честно видит — сумма больше 100% и есть доказательство перекрытия.
И что она с этим делает? Нормирует. Делит каждый removal effect на 136,8% и получает ровный пирог ровно на 100%:
| Канал | Доля | На 1 000 продаж |
|---|---|---|
| Соцсеть | 26,9% | 269 |
| Поиск | 46,2% | 462 |
| Письмо | 26,9% | 269 |
Перекрытие, которое модель только что честно обнаружила, она же и заметает под ковёр — чтобы отчёт сошёлся к сотне. Умнее, чем «40 первому, 40 последнему». Но в последнем шаге — та же капитуляция перед священными 100%.
Где снова стоит Скорая помощь
Посмотрите на «Поиск»: 63,2% removal effect, почти вдвое больше остальных. Модель уверена, что это главный канал.
А теперь вспомните, кто на самом деле ходит через брендовый поиск. Люди, которые уже решили купить и вбивают название магазина. В симуляции, когда мы стираем станцию «Поиск», этим людям некуда идти — они падают в «Ушёл», и конверсия рушится. Модель видит обвал и осыпает «Поиск» заслугами.
В жизни эти люди не исчезнут. Не найдя вас в поиске, они наберут адрес руками, вспомнят приложение, спросят у подруги. «Поиск» был симптомом их решения, а не причиной. Та же Скорая помощь, которую хвалят за то, что она чаще всех оказывается на месте аварии.
Симуляция унаследовала кривизну данных, на которых построена. Она стала умнее в арифметике, но не прозрела насчёт причин и следствий — а это ровно то, ради чего атрибуцию и затевали.
Что это было
Цепи Маркова — самый умный способ поделить одну покупку. Он не берёт веса с потолка, он их выводит. Он единственный смотрит на путь целиком и на роль канала в связке. И он единственный формулирует правильный вопрос — «что сломается без канала».
Но отвечает он на этот вопрос в симуляторе, а не в мире. А симулятор собран из тех же наблюдений, где брендовый поиск выглядит героем, а покупатели, которые пришли бы сами, аккуратно разложены по каналам.
Умный дележ — всё ещё дележ.
Настоящий removal effect у вас уже есть, он в конце прошлой статьи: выключить канал в половине регионов на две недели и посмотреть на выручку. Цепи Маркова — это репетиция того же жеста на бумаге. Полезная: она подскажет, какой канал не жалко выключить первым.
Дальше — выключайте по-настоящему.
Комментарии
Пока никто не высказался. Будьте первым.