Аналитика

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

Аналитика · · 5 мин чтения

Иллюстрация к атрибуции на цепях Маркова

В прошлый раз я отмахнулся от «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 у вас уже есть, он в конце прошлой статьи: выключить канал в половине регионов на две недели и посмотреть на выручку. Цепи Маркова — это репетиция того же жеста на бумаге. Полезная: она подскажет, какой канал не жалко выключить первым.

Дальше — выключайте по-настоящему.

Комментарии

Пока никто не высказался. Будьте первым.