2.3. 双塔模型

I2I召回通过物品之间的相似性来做推荐,但它始终需要一个“种子物品”作为起点——用户最近交互过什么,就基于什么去扩展。这意味着推荐结果很大程度上被用户的近期行为锁定,难以发现用户潜在但尚未表达过的兴趣。能不能跳过“种子物品”这个中间环节,直接回答“这个用户会喜欢什么”?

双塔模型(也就是U2I召回)给出的方案是把匹配问题拆成两个独立的编码问题。用户塔处理用户的历史行为、画像特征和上下文信息,输出一个用户向量 \(u\);物品塔整合物品的ID、类别和属性特征,输出一个物品向量 \(v\)。匹配度通过两个向量的内积来衡量:

(2.3.1)\[score(u, v) = u \cdot v = \sum_{i=1}^{d} u_i v_i\]

这种拆分带来了工程上的优势:所有物品向量可以离线预计算并存入向量检索系统(如Faiss),线上只需实时计算用户向量,再通过近似最近邻搜索找到最匹配的物品。原本 \(O(U \times I)\) 的匹配复杂度降到了 \(O(U + I)\) 的向量计算复杂度。

本章沿着双塔模型的演进轨迹介绍三个模型:

FM(因子分解机):双塔模型的雏形。FM诞生于深度学习兴起之前,但它首次将用户-物品的复杂交互分解为两个低维向量的内积操作,在思想上是双塔的原型。

DSSM:深度结构化语义模型。FM本质上仍是线性模型,DSSM用深度神经网络替代线性变换,让双塔具备了非线性的特征学习能力。

YouTubeDNN:从匹配到预测用户下一行为。YouTubeDNN在架构上延续了双塔设计,但引入了一个关键的思想转变——把召回任务重新定义为“预测用户下一个会观看的视频”。