这道题其实问的是,在搜索排序这种复杂系统里,怎么科学地调整模型权重,而不只是拍脑袋上线。核心是三个东西:实验设计要能隔离干扰,指标体系要能反映真实效果,因果推断要能排除混淆。我按这个思路来拆。
先说实验设计。我倾向三层分流架构,用户层、请求层、模型层正交。用户层按ID哈希分桶,保证同一用户始终在同一个组,体验一致;请求层随机化能应付用户行为稀疏的情况;模型层专门给特征权重实验用。流量分配上,新特征权重实验我通常开5%到10%的流量,如果核心指标波动敏感,比如GMV,我会压到1%甚至更小,避免影响大盘。这里有个前提:分层必须正交,如果层间流量有重叠,实验会被污染,结果不可信。常见失败场景是多个实验并行时,没有做正交分流,导致A组和B组混进了别的策略,最后结论全错。
再看指标体系。我把它分成三层漏斗。最底层是模型层,用AUC、GAUC、NDCG这些离线指标验证排序能力;中间是在线层,看CTR、CVR、曝光效率,这些是短期效果;最上层是业务层,GMV、留存、LTV,这是长期价值。但关键不是堆指标,而是要设 护栏指标,比如跳出率、负反馈率。你优化CTR可能让点击变多,但用户点进去发现内容不对,跳出率飙升,长期留存反而掉。所以上线我会特别关注护栏指标有没有异常恶化。
因果推断这块,随机化实验本身已经保证了因果性,用t检验或卡方检验看p值就行。但业务场景里常有选择偏差,比如新用户和老用户行为模式不同,分组不均匀。这时候我会用倾向得分匹配,把实验组和对照组在年龄、活跃度这些维度上对齐,再比较。另外,有些策略短期有效长期无效,比如调高某个特征权重,CTR涨了但用户疲劳,两周后回落。这时可以用双重差分,控制时间趋势,看策略的净效应。
迭代流程我习惯这样:离线调权 → 小流量A/B → 全量实验 → 回滚预案 → 长期监控。离线阶段先做个灵敏度分析,把特征权重上下扰动20%,看指标变化幅度,识别哪些特征鲁棒、哪些敏感。然后逐个做消融实验,去掉一个特征,量化它的边际贡献。举个例子,在电商搜索里,价格敏感度这个特征,你调高权重可能让低价商品曝光增加,但用户买得多了退货率也高了,这时候就要看GMV和退货率的联动。
最后是结果评估。统计显著性p<0.05是基础,但业务显著性更重要。CTR提升0.1%可能统计显著,但工程成本很高,不值得全量。我一般设个阈值,比如CTR提升超过0.5%绝对值才考虑。最关键的其实是异质性分析。平均效应常常掩盖结构性问题。比如整体CTR涨了,但拆开看新用户涨、老用户跌,那这策略就是有问题的。我会分人群看效果,新用户、高活、低活都跑一遍。
说到这,我觉得还有一个容易被忽略的点,就是 特征之间的交互效应。权重调整不是独立的,你调高一个特征,可能让另一个特征的贡献被压制,甚至出现负向。比如在搜索场景里,你提高文本匹配权重,可能让个性化特征失效。这时候单纯靠A/B实验不一定能解耦,可能需要更精细的因果图分析。
所以整体上,我更倾向把A/B测试看成是一个 验证工具,而不是决策工具。前提是你的实验设计干净、指标完整、分析到位,否则结论就是错的。