问题背景
大型产品不断引入新的内容入口点——个性化模块、AI 推荐或替代导航模式。没有对蚕食现象的分析,团队可能会错误地将新特性的成功归因于其本身,而实际上只是用户在屏幕之间的流动,没有提高整体收入。
问题
需要将增量效果(没有新模块就不会发生的新交易)与蚕食(从旧类别转移到新模块的交易)分开。标准的 A/B 测试在用户层面无法解决这个问题,因为用户同时看到两个渠道,它们之间的选择会导致内生性。
解决方案
使用 地理实验 与合成控制法或按会话进行的集群随机化。我们随机指定地理区域参与测试和对照,测量 GMV 的变化,不仅在整个平台层面上,而且在导航类别上进行拆分。应用 差异中的差异 方法,将类别视为面板数据,以从总体增长中扣除蚕食的收入。
问题描述
在移动电子商务应用中推出了基于 TensorFlow 排名模型的新模块“为您推荐”。一个月后,类别的点击指标下降了 25%,而整体 GMV 仅增长了 5%。产品团队争论:这是蚕食还是用户路径的真正优化?需要确定 5% 中有多少是真正的增长,多少是现有需求的转移。
考虑的解决方案
方案一:对比“之前/之后”的整体 GMV。这种方法假设没有新模块,指标将保持不变。优点:速度快,不需要实验基础设施。缺点:忽略季节性、营销活动和自然增长趋势,导致 15-20% 的偏差评估。
方案二:经典的 user_id 层面的 A/B 测试,采用 50/50 的分流通过 Splitting 服务。这假设如果对照组隐藏模块,GMV 的差异将显示真实效果。优点:易于实现,统计方法熟悉。缺点:测试中的用户仍然可以通过搜索或类别找到商品,在测试组内产生直接的蚕食,而没有模块的对照组产生较少用于类别比较的数据。
方案三:地理实验与合成控制法(SCM)。我们选择了 20 个 GMV 动态相似的城市,将 10 个随机分配到测试组(模块已显示),10 个分配到对照组(模块未显示)。为了控制,构建了权重城市的总和,尽可能接近测试城市的“之前”期间。优点:能够在集成市场层面测量效果,自然考虑城市内不同类别之间的蚕食。缺点:需要大型样本(城市),对区域促销敏感,二阶误差计算复杂。
选择的解决方案和理由
选择了第三种方案——地理实验与 合成控制法。关键因素是无法通过传统的 A/B 测试在单个用户内测量蚕食,因为即使在没有模块的对照组中,我们也看不到那些在测试组中会转移到模块的交易的“反事实”命运。地理层面使我们能够看到整体上类别购买结构的变化。
结果
发现从整体 GMV 的 5% 增长中,3.2% 是蚕食(从长尾类别转移到模块中的前 3 种商品),而只有 1.8% 是真实增量效果。基于这些数据,我们调整了排名算法,对热门商品进行惩罚,使净增量提高到 4.1%。
问题 1:为什么不能仅仅查看新模块的点击与类别点击下降之间的相关性?
答案在于自我选择的内生性。点击新模块的用户与访问类别的用户有不同的意图结构(高购买意图与浏览),直接相关性会导致辛普森悖论:在聚合数据中,似乎模块“窃取”了流量,但在具有高意图的队列水平上,我们会看到他们仍然会购买,只是更快。必须使用 因果森林 或 倾向评分匹配 来比较在模块曝光“之前”具有相同行为历史的用户。
问题 2:如何计算针对蚕食实验的最小显著效应(MDE),如果对某些类别的效应可能是负的,而对其他类别是正的?
在这里,候选人会犯错,应用标准公式计算平均效应。在蚕食的情况下,各类别之间的方差增加,因为我们面临不平衡:某些类别损失,其他类别获益。需要使用 线性混合模型,带有类别的随机效应,并计算组合指标的功效:整体 GMV 减去蚕食类别的加权 GMV 的下降,加上风险补偿系数。
问题 3:产品中实验测量蚕食与社交网络中干扰问题的原则区别是什么?
在产品分析中,蚕食是一种在单个主体(用户)内的“需求转移”形式,这通常不被建模为单位之间的干扰。在社交网络(例如 Facebook)中,干扰是通过社交图谱发生的用户之间的溢出。为了对抗蚕食,我们使用基于时间或行为类型的聚类,而不是图随机化。重要的是要理解,在这里,处理指定是接触新的用户界面,而不是用户之间的交流,因此像 自我聚类随机化 这样的办法并不适用;我们使用的是用户分段水平的 换回实验。