如何应用Markov Chain归因?
解读
面试官问“如何应用”,不是让你背公式,而是想知道三件事:
- 你能否把用户旅程抽象成状态转移;
- 你能否用Markov Chain算出每个触点的真实贡献;
- 你能否把结果落地到用户运营动作(预算、人群、内容、时机)。
在国内面试场景里,还要体现你对数据合规(个人信息保护法)、多端数据打通(小程序+APP+企微)、**业务节奏(大促、日常、冷启动)**的体感。
知识点
- 状态定义:把“曝光、点击、加购、下单、复购”等业务里程碑映射成Markov状态,状态必须互斥且完备。
- 转移矩阵:用30天滑动窗口内去重用户的事件序列,统计状态间转移概率;**删除循环路径(如曝光→曝光)**以避免自环干扰。
- 移除效应(Removal Effect):计算去掉某一触点后在整体旅程中无法到达转化状态的概率增量,即为该触点归因权重。
- 数据层落地:
- 埋点用埋点3.0规范(Who-When-Where-How-What),确保user_id与device_id可合规映射;
- 小程序端用微信openID+unionID,APP端用OAID+IDFA(需用户授权),统一落Snowflake ID到Hive表。
- 运营层落地:
- 预算侧:把Removal Effect换算成边际ROI,指导大促前三天动态调仓(抖音信息流↑、朋友圈↓);
- 人群侧:对高贡献但低覆盖的触点(如直播回放)做Lookalike 2.0扩展,用京东DMP或阿里达摩盘回传人群包;
- 内容侧:针对“加购→流失”状态链,7天内推送限时券,券面额按归因权重线性递减,避免券疲劳。
答案
“我在上一家公司负责618大促的用户运营,目标是把日均GMV从800万提升到1200万,预算只多了15%。
第一步,我把用户旅程拆成6大状态:曝光、点击、收藏、加购、下单、复购,用过去90天、2.3亿条事件日志训练Markov Chain;
第二步,用PySpark构建转移矩阵,发现‘直播间点击→加购’的Removal Effect高达18.7%,但它在现有预算里只占7%,明显被低估;
第三步,我把18%的预算从搜索竞价挪到抖音直播间,并针对‘曝光后未点击’人群做二次召回,用企业微信社群在48小时内发专属红包券,券使用率做到26.4%,高于日常3倍;
最终大促期间GMV达成1230万,ROI提升32%,且用户7日留存提升5.8个百分点。
事后复盘,我们把Markov Chain做成Airflow每日调度的归因服务,T+1更新,后续双11直接复用。”
拓展思考
- **长周期品类(大家电)的用户决策路径长达60天,如何把Markov Chain与Survival Analysis结合,识别“时间衰减”**对Removal Effect的影响?
- iOS 14.5+隐私政策导致IDFA缺失率>70%,如何用“概率图模型+联邦学习”在不碰原始设备号**的前提下,继续训练Markov转移矩阵?
- 当公司进入多品牌矩阵,不同品牌间存在交叉推荐,如何把品牌作为新的状态维度,用高阶Markov甚至Hidden Markov评估品牌间溢价值,从而决定是否共用预算池?