多模态在推荐与排序里被寄予了很高期待。但实际做下来,把图像或文本特征直接拼进点击率模型,收益常常不如预期,有时候还会变差。
我的结论:模态不是越多越好,加的前提是它带来独立信息量。
三个现实问题
- 特征对齐。不同模态的特征空间不一致,简单拼接之后模型要额外花容量去对齐。
- 成本。图像编码器带来的计算与延迟开销是实打实的,尤其是要求毫秒级响应的场景。
- 冷启动未必改善。多模态对样本量要求更高,冷启动商品反而可能更差。
第三点最反直觉。直觉上多模态能补足信息不足,实际上它需要更多样本才能学到稳定的映射。
加模态的前提
加一个模态之前,先回答一个问题:这个模态里有没有目标变量独立的信息?
判断方法很朴素——先把该模态单独训一个模型,看它自己的效果。如果单模态模型的排序能力接近随机,把它拼进去大概率只是增加噪声。
对照表
| 配置 | 预期收益 | 主要风险 |
|---|---|---|
| 只有行为特征 | 基线 | 冷启动弱 |
| 加文本特征 | 中等,标题与描述信息量足时明显 | 文本质量差时收益为负 |
| 加图像特征 | 视品类而定,服装家居收益大 | 编码成本高,对齐困难 |
| 图像加文本 | 品类适配时最好 | 工程复杂度与延迟同步上升 |
第三行最能说明问题。同一个图像编码器,在服装类目上收益明显,在标品上几乎没用——因为标品的图高度同质,图片里没有区分信息。
评估时最容易犯的错
离线指标涨了不等于线上点击率涨。我见过离线排序指标提升明显、上线后点击率没动的情况,原因通常是:
- 离线评估用的是历史曝光数据,存在选择偏差。
- 新特征改变了召回结果,而离线评估固定在原召回集上。
- 延迟上升导致部分请求降级。
所以多模态特征上线必须走小流量实验,而且要同时看延迟分位值,不能只看点击率。
流程
- 1单模态验证先单独训一个模型,确认该模态有独立信息量
- 2离线对照在多组配置上做同口径离线对比,看分层增益
- 3成本核算统计特征生成与推理的额外延迟与算力
- 4小流量实验按典型类目分批放量,同看点击与延迟
- 5分层放量只在增益明显的类目上全量,其余保持原方案
第五步是关键。多模态最好按类目差异化使用,全品类统一上,等于让收益低的类目替收益高的类目付成本。
结论
ViT 这类视觉编码器给排序带来的增益是真实的,但它是条件性的:取决于品类、样本量和延迟预算。
判断标准只有一条——去掉它,效果掉多少。掉得不多,就不该留。
一个务实的取舍
如果算力预算有限,我的优先级是先把文本特征用足,再考虑图像。
原因是文本特征的抽取成本远低于图像编码器,而且在标题与描述质量尚可的前提下,它带来的区分度通常已经够用。图像特征留到文本信息确实不足的品类上再上。
这个顺序还有个好处:文本特征的问题更容易定位。文本质量差、分词口径乱,一眼能看出来;图像特征出问题,往往要折腾很久才能确认是编码器还是对齐层的问题。
免责声明:本文为技术方法讨论,所述结论基于个人实践与公开资料,不构成任何投资或采购建议。