第 85 题:双塔模型的特征交互限制,何时必须引入显式交叉?
题目
双塔模型的特征交互限制,何时必须引入显式交叉?
完整讲解
一、双塔模型的特征交互限制
双塔结构:用户侧 $u = f_u(x_u)$,物品侧 $v = f_v(x_v)$,得分 $s = u^\top v$(或余弦)。用户塔与物品塔在最后一层才通过内积交互,中间层无显式交叉;因此无法对「用户特征 × 物品特征」的细粒度交叉建模(如「年轻用户 × 某品牌」),只能依赖两塔各自学到的抽象向量在空间中对齐,表达能力受限于单塔的表达与内积的线性匹配。
二、何时必须引入显式交叉
- 强依赖细粒度交叉的场景:如某些品类/品牌与人群的交互很强、或决策依赖「用户属性 × 物品属性」的匹配规则,纯双塔可能欠拟合,需要显式交叉。
- 引入方式:
- 轻量交叉:在最后一层内积前,用少量交叉特征(如 user_id × item_id 的共现统计、或若干离散交叉)拼接到 $u$ 或 $v$ 再内积;或双塔输出后加一个小的交叉 MLP。
- 交叉层:在双塔中间某层引入 user 与 item 的交叉(如 attention、双线性),再分别得到 $u,v$;会牺牲一部分「离线算 item 向量、在线只算 user」的便利性(若交叉在 item 侧依赖 user,则 item 向量无法完全离线)。
- 权衡:显式交叉提升表达与排序能力,但增加计算、可能影响离线预计算与检索流程;粗排/召回常用纯双塔求速度,精排可引入交叉或单塔。
三、实践建议
- 先验证双塔是否足够:A/B 看加交叉后增益;若增益大且可接受延迟与工程成本,再在合适阶段(如精排)加显式交叉。
- 显式交叉尽量放在最后一小段或单独小模块,便于在检索链路中做「双塔 + 轻量交叉」的混合部署。
面试要点
- 能说明双塔限制:仅最后内积交互,无中间显式特征交叉;无法细粒度「用户×物品」交叉。
- 能说何时要交叉:强依赖细粒度交叉、规则式匹配时;可用交叉特征、小 MLP 或中间交叉层。
- 能权衡:交叉提升表达与排序,但增加计算、可能影响离线 item 向量;召回/粗排多用纯双塔,精排可加交叉。
记忆要点
- 双塔限制:仅最后内积,无显式交叉;细粒度「用户×物品」依赖交叉。
- 引入交叉:交叉特征、小 MLP、或中间交叉层;注意对离线预计算的影响。
- 召回/粗排多纯双塔;精排可加显式交叉。