如何应用Markov Chain归因?

解读

面试官问“如何应用”,不是让你背公式,而是想知道三件事:

  1. 能否把用户旅程抽象成状态转移
  2. 能否用Markov Chain算出每个触点的真实贡献
  3. 能否把结果落地到用户运营动作(预算、人群、内容、时机)。
    在国内面试场景里,还要体现你对数据合规(个人信息保护法)多端数据打通(小程序+APP+企微)、**业务节奏(大促、日常、冷启动)**的体感。

知识点

  1. 状态定义:把“曝光、点击、加购、下单、复购”等业务里程碑映射成Markov状态,状态必须互斥且完备
  2. 转移矩阵:用30天滑动窗口内去重用户的事件序列,统计状态间转移概率;**删除循环路径(如曝光→曝光)**以避免自环干扰。
  3. 移除效应(Removal Effect):计算去掉某一触点后在整体旅程中无法到达转化状态的概率增量,即为该触点归因权重。
  4. 数据层落地
    • 埋点用埋点3.0规范(Who-When-Where-How-What),确保user_id与device_id可合规映射;
    • 小程序端用微信openID+unionID,APP端用OAID+IDFA(需用户授权),统一落Snowflake ID到Hive表。
  5. 运营层落地
    • 预算侧:把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直接复用。”

拓展思考

  1. **长周期品类(大家电)的用户决策路径长达60天,如何把Markov Chain与Survival Analysis结合,识别“时间衰减”**对Removal Effect的影响?
  2. iOS 14.5+隐私政策导致IDFA缺失率>70%,如何用“概率图模型+联邦学习”不碰原始设备号**的前提下,继续训练Markov转移矩阵?
  3. 当公司进入多品牌矩阵,不同品牌间存在交叉推荐如何把品牌作为新的状态维度,用高阶Markov甚至Hidden Markov评估品牌间溢价值,从而决定是否共用预算池