Цепи Маркова простыми словами
Карьерник — квиз-тренажёр в Telegram с 1500+ вопросами для собесов аналитика. SQL, Python, A/B, метрики. Бесплатно.
Зачем это знать
Journey пользователя, attribution моделирование, churn prediction на основе состояний — всё это можно моделировать цепями Маркова. В MarTech и web-аналитике Markov chains — рабочий инструмент.
На собесах в FAANG / топовых компаниях могут спросить: «как бы вы моделировали attribution пути пользователя?» — Markov chains один из лучших ответов.
Короткое объяснение
Цепь Маркова — система состояний с вероятностями переходов между ними. Ключевое свойство: будущее зависит только от текущего состояния, а не от истории. Memoryless.
Пример
Пользователь на сайте: состояния Home, Catalog, Product, Checkout, Exit.
Переходы (с какой вероятностью из Home идут куда):
- Home → Catalog: 0.6
- Home → Product: 0.1
- Home → Exit: 0.3
Сумма по каждому состоянию = 1.
Матрица переходов
Home Catalog Product Checkout Exit
Home 0.0 0.6 0.1 0.0 0.3
Catalog 0.1 0.0 0.7 0.0 0.2
Product 0.05 0.1 0.0 0.6 0.25
Checkout 0.0 0.0 0.0 0.0 1.0 (absorbing)
Exit 0.0 0.0 0.0 0.0 1.0 (absorbing)Checkout и Exit — absorbing states (не выходят).
Markov property
P(Xt+1 | X1, X2, ..., Xt) = P(Xt+1 | Xt)Где бы user ни был раньше — следующий шаг определяется только текущим состоянием.
Это сильное допущение. В реальности часто нарушается (память есть).
Стационарное распределение
При большом N user «оседает» в распределении состояний. Это steady state.
Вычисляется через eigenvectors матрицы.
Использование: долгосрочные пропорции времени в каждом состоянии.
Использование
Attribution
Маркетинговые каналы как состояния. Конверсия — absorbing state.
Removal effect: убрать канал из матрицы → насколько упадёт conversion? Это его contribution.
Churn prediction
Пользователь в состояниях: Active, Inactive, Returning, Churned (absorbing).
Вероятность churn за N периодов рассчитывается из матрицы.
Recommendation
Next state prediction: «если сейчас смотрит X, что следующее?».
NLP
Текст как цепь слов. «Почему после "the" чаще встречается noun».
В Python
import numpy as np
# Матрица переходов
P = np.array([
[0.0, 0.6, 0.1, 0.0, 0.3],
[0.1, 0.0, 0.7, 0.0, 0.2],
[0.05, 0.1, 0.0, 0.6, 0.25],
[0.0, 0.0, 0.0, 1.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 1.0]
])
# Через 2 шага
P2 = P @ P # matrix multiplication
# Стартовое состояние: Home
start = np.array([1, 0, 0, 0, 0])
# Распределение после 5 шагов
dist = start @ np.linalg.matrix_power(P, 5)Higher-order chains
Если Markov property нарушено (память важна) — используют n-th order chains, где next зависит от последних n состояний.
На практике редко — увеличивает parameters, требует больше данных.
Hidden Markov Models
Расширение: true состояния скрыты, видны только наблюдения. Applied в speech recognition, bioinformatics.
На собесе
«Что такое Markov chain?» Система состояний с вероятностями перехода, memoryless.
«Где используется в аналитике?» Attribution, churn, next-state prediction.
«Memoryless — это что?» Будущее зависит только от текущего состояния.
«Как найти стационарное распределение?» Eigenvector матрицы переходов с eigenvalue = 1.
Частые ошибки
Memoryless — сильное допущение
В реальности часто пользователи имеют «память» (если посещали catalog 5 раз — больше шанс купить). Простая Markov chain это игнорирует.
Sparsity
Если мало данных — оценки переходов шумные. Нужно regularization.
Absorbing states
Checkout и Exit — absorbing. Если забыть — модель не сойдётся.
Связанные темы
FAQ
Как отличить от другой модели?
Markov chain — дискретные состояния + переходы. Regression — continuous.
Для больших state spaces?
Трудно оценить все вероятности. Используются approximations или neural network.
В Python библиотеки?
pomegranate, hmmlearn, или вручную через numpy.
Тренируйте статистику — откройте тренажёр с 1500+ вопросами для собесов.