线性回归的局限
传统 MMM 的建模基础是线性回归——Ridge、Lasso、OLS 都是线性模型的变体。线性模型假设每个渠道对销售的贡献是独立可加的:
这个假设的好处是可解释——β₁ 直接告诉你 TV 每增加 1 单位 Adstock 贡献多少销售。但它的局限也很明显:
- 无交互效应:线性模型假设 TV 和 Search 的联合效应等于各自效应之和。但现实中,TV 广告可能提升品牌搜索量,让 Search 广告的转化率上升——这是协同效应,不是简单相加
- 固定的函数形式:Adstock + Hill 变换是预设的函数形状。如果真实的广告-销售关系不是 Hill 形状(比如是 S 型或有阈值效应),模型无法自适应
- 线性可加假设:当渠道数量增多、交互复杂时,线性可加假设的偏差会累积
这些局限在大多数情况下可以接受——Adstock + Hill 已经足够好地描述了广告的衰减和饱和效应。但有些场景下,你确实需要更强的建模能力。
LightGBM:梯度提升树的优势
LightGBM 是微软开源的梯度提升决策树(GBDT)框架,在表格数据上被广泛使用。将它引入 MMM 的动机:
- 自动捕捉非线性:决策树天然可以拟合任意非线性的输入-输出关系,不需要预设 Hill 或 Adstock 函数形式
- 自动捕捉交互:树结构天然建模特征间的交互——TV 和 Search 的联合效应不需要手动构造交互项
- 鲁棒性强:对异常值和缺失值不敏感,不需要严格的特征工程
- 速度快:LightGBM 的 Leaf-wise 生长策略让它在同等精度下比 XGBoost 更快
在 SparkX 中,LightGBM 引擎的输入是原始花费数据 + 时间特征(周几、月份、节假日标记),不经过 Adstock/Hill 预变换——让树自己学衰减和饱和模式。
关键区别:传统 MMM 是"先做特征工程(Adstock+Hill),再线性回归"。LightGBM 路线是"把原始数据喂给树,让它自己学"。前者可解释但假设强,后者灵活但需要额外的解释工具。
SHAP:让黑盒变透明
LightGBM 的最大问题——它是黑盒。树模型可以拟合出精确的预测,但你无法像线性回归那样直接读出"β₁ = 0.35"。
SHAP(SHapley Additive exPlanations)解决了这个问题。基于博弈论的 Shapley 值,SHAP 可以为每个预测计算每个特征的边际贡献:
SHAP 的价值:
- 渠道贡献分解:和传统 MMM 一样,可以将预测销售分解为各渠道的贡献——SHAP 值就是每个渠道的边际贡献
- 方向性:SHAP 值有正有负,告诉你某渠道是推动了销售还是拖了后腿
- 非线性可视化:SHAP dependence plot 可以展示某渠道的贡献如何随花费变化——相当于自动学出来的"饱和曲线"
- 交互量化:SHAP interaction values 可以量化渠道间的交互效应大小
所以在 LightGBM + SHAP 路线下,你仍然能获得 MMM 需要的核心输出:渠道贡献、ROI、饱和曲线——只是它们是从数据中学出来的,不是预设的函数形式。
何时该用 LightGBM
LightGBM 不是"总是更好"。在以下场景考虑使用:
- 渠道多、交互复杂:当你有 10+ 渠道,且怀疑存在显著的协同/替代效应时。线性模型的交互项构造会非常繁琐
- 数据量大:LightGBM 需要足够的数据点来学出稳定的树结构。建议至少 200+ 时间点(日频数据半年以上)
- 函数形式不确定:如果你不确定 Adstock 的衰减是 Geometric 还是 Weibull,不确定 Hill 的形状是否合适,让树自己学
- 作为基准对比:即使你最终用 Ridge,跑一次 LightGBM 作为对照可以检验线性假设是否足够
何时不该用
- 数据量小:少于 100 个时间点时,树模型容易过拟合。线性模型 + 正则化在小数据上更稳定
- 需要严格不确定性量化:LightGBM 不提供后验分布。如果你需要置信区间,用 PyMC Bayesian 引擎
- 需要外推能力:树模型不能外推到训练数据范围之外。如果你想模拟"预算翻倍"的场景,树可能会给出不合理的预测。Hill 饱和曲线的外推性更好
- 需要可审计的方法论:如果你的客户或合规团队需要看到完整的数学推导,线性模型 + Adstock + Hill 更容易解释
实践建议:在 SparkX 中,我们建议先用 Instant Mode(Ridge 引擎)跑一次基线,然后在 Expert Mode 中用同一份数据跑 LightGBM 做对比。如果两者的渠道 ROI 排序一致,说明线性假设足够。如果不一致,说明数据中可能有非线性结构,值得用 LightGBM。
SparkX 中的实现
SparkX 的 LightGBM 引擎在 Expert Mode 中可选。技术细节:
- 输入特征:原始渠道花费 + 时间特征(day-of-week、month、holiday flag),不经过 Adstock/Hill 预变换
- 目标变量:销售额(支持 log 变换选项)
- 超参:num_leaves、learning_rate、n_estimators、min_child_samples 默认值已调好,可手动覆盖
- 输出:SHAP 值矩阵 + 各渠道贡献分解 + SHAP dependence plot(自动生成的饱和曲线)+ SHAP interaction values
- 和 Ridge 对比:Expert Mode 支持同时跑多个引擎,在 Champion 对比中并排看 Ridge vs LightGBM 的 ROI 估计差异
这个引擎是我们 7 引擎矩阵中唯一来自机器学习而非统计建模路线的——它的存在是为了覆盖"线性假设不够用"的场景。
想理解其他引擎的选择逻辑?读 Ridge vs PyMC vs Stan:引擎选择指南。想从零理解 MMM 方法论?看 MMM 入门指南。