1. 前言
基于 ID Embedding 主导的传统深度推荐系统,在新冷内容推荐上由于新冷内容用户行为非常稀疏,ID Embedding 欠学习导致经常表现不佳。因此,对于这部分新冷内容,业界一般会更多地结合内容(如本文讨论的多模态信息)本身来做推荐。
将多模态信息应用于推荐系统可能会面临两个主要挑战:
- 表征空间不一致问题:推荐系统的 ID Embedding 是用户行为(协同过滤)驱动的,而一般的多模态表征(如使用 BERT 的文本表征)是基于内容本身来学习的,它们的表征空间是不一致的,存在 Gap。这也是业界大家一般不会将 ID Embedding 与多模态原始表征直接 Concat 的主要原因。
- 用户对多模态的偏好不一:不同用户对不同模态的敏感度不同。例如,有些人喜欢一首歌曲是因为歌曲动听的旋律,而有些人喜欢一首歌曲可能是因为歌曲的歌词让人共情。快手这里则提出要显式建模用户对内容的不同模态(文本、视觉和音频)的不同偏好。
为了克服这两个问题,快手提出了 M3CSR 方法,下面详细介绍。
2. 方法
快手所提方法的整体框架如下图所示,其主体框架是双塔结构,在 User 塔和 Item 塔都引入了多模态信息以提升新冷内容推荐上的效果。

2.1 预处理
快手这里的多模态推荐遵循着业界的一般实践,也是一种 Two-Stage 方案。即对于新内容,会先提取出多模态表征存下来,然后再使用这预先提取的多模态表征用于下游推荐任务的学习。
快手所提方法在预处理阶段,主要处理两个事情:
2.1.1 多模态表征提取
对于新内容,快手这里会基于内容的三种模态提取出三种模态表征:
- 文本模态:使用 Sentence-BERT 提取文本表征,记为 $v_t$。
- 视觉模态:使用 ResNet 提取视觉表征,记为 $v_v$。
- 音频模态:使用 VGGish 提取音频表征,记为 $v_a$。
2.1.2 多模态聚类
在获取视频的多模态表征后,快手这里还会做 K-means 聚类处理以得到新视频的聚类 ID 信息。具体地,作者将多模态表征都 concat 起来,再使用数千万的多模态表征做 K-means 聚类,共 1000 个聚类中心,每个新视频都可以得到对应的聚类中心标签。
2.2 模态 Encoder
模态 Encoder 包含两个操作,如下图所示:

2.2.1 降维映射
对于每种模态表征,单独过个映射网络函数,实现模态空间到用户行为空间的映射,记映射后对应模态的表征为 $\hat{v}_m$。这种方式旨在解决前述的表征空间不一致问题,使多模态特征能够与 ID 特征在同一空间内有效交互。
2.2.2 多模态聚类处理
前面提到,每个短视频都对应着一个聚类 ID,这样可以再过个 embedding layer,将聚类 ID 转换成低维的可学习的隐向量,这种方式的好处是它的聚类 ID Embedding 是可学习的,以克服原始多模态 Embedding 不可学习的缺点。
然后,再将这两个表征做 Fusion(其实就是直接 Concat 起来)作为内容最终的多模态表征,形式化描述如下:
$$ v_{item} = [\hat{v}_t; \hat{v}_v; \hat{v}a; E{cluster}] $$
其中,$W_m$ 和 $b_m$ 是模态的映射矩阵参数。
2.3 User 塔处理
2.3.1 用户序列建模
在 User 塔的序列建模上,一方面,会正常使用 ID Embedding 做多头注意力计算:
$$ Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})V $$
其中,$Q$ 表示用户历史交互序列的 Id Embedding。
另一方面,作者会使用前面融合计算出的文本、图片、音频的多模态表征,分别计算多头注意力:
这里,ID Embedding 会作为多头注意力计算的 Query,它是 Stop Gradient 的,而 $\hat{v}_m$ 为对应模态的模态表征,会作为多头注意力的 Key 和 Value。可以看出,这种方式其实是让 ID Embedding 去引导多模态表征的学习映射过程,确保多模态特征对齐到用户的兴趣空间。
2.3.2 用户多模态兴趣强度
考虑到不同用户对不同模态的兴趣偏好/强度可能会有差异,作者还使用了基于 ID 计算出来的注意力结果去做多模态注意力结果的缩放,具体地:
首先,计算各模态表征的缩放因子(兴趣强度)$\alpha_m$。
再将对应的多模态表征进行缩放 $\tilde{v}_m = \alpha_m \cdot \hat{v}_m$。
然后,再将缩放后的多模态表征与 ID Embedding 直接 Concat 起来作为 User 塔最后的表征。
2.4 Item 塔处理
考虑到新冷内容的 ID Embedding 可能学习不充分,因此,作者这里引入受欢迎程度的门控网络来控制 ID Embedding 和多模态 Embedding 的表达,让热门内容更多依赖 ID Embedding,而新冷内容则减少 ID Embedding,以使在冷启阶段更好的捕获内容的多模态信号。
具体的实现中,作者使用了视频的交互次数来做分桶,使用可学习的分桶 Embedding,即上面的 $E_{bucket}$。
理想情况下,建议可使用 Item 被参与训练的次数作为这里门控机制的输入,因为离在线的可能存在的一些 diff,热门的 Item 在推理时它的 Item Embedding 可能学习的也不充分。虽然这个被参与训练的次数信息在获取会比较麻烦,但确实是可以直接在框架层去实现的。
最后,将门控的权重加上再拼接起来后,就得到 Item 塔最后的表征:
$$ v_{final} = Gate \cdot v_{id} + (1 - Gate) \cdot v_{multi-modal} $$
2.5 训练与预测
对于多模态表征,作者额外增加了多模态间的约束,鼓励不同模态之间的语义一致性。
预测时,令 $u$ 为用户向量,$i$ 为正样本物品向量,$j$ 为负样本物品向量,然后计算 BPR Loss:
$$ L_{BPR} = -\sum \ln \sigma(\hat{y}{ui} - \hat{y}{uj}) $$
最终的 Loss 为:
$$ L = L_{BPR} + \lambda_1 L_{modal} + \lambda_2 L_{reg} $$
其中,$\lambda_1$ 和 $\lambda_2$ 为对应的超参。
3. 实验部分
3.1 整体效果
M3CSR 模型在离线指标上相比基线模型有显著提升,特别是在新冷内容场景下。

3.2 消融实验
通过消融实验验证了各个模块的有效性,包括模态编码器、聚类 ID 以及门控机制等组件的贡献。

3.3 不同模态的对比
在不同数据集上不同模态重要程度不一,说明针对特定业务场景可能需要调整模态权重或选择重点模态。

3.4 兴趣强度可视化
可视化结果显示,不同用户确实对不同的模态表现出显著不同的兴趣强度,验证了显式建模偏好的必要性。

3.5 线上实验
新冷内容的表现在线上 A/B 测试中得到验证,点击率和转化率均有提升。

3.6 Case Study
通过具体案例展示模型如何根据视频内容特征进行更精准的推荐。

4. 总结
M3CSR 方法通过引入多模态信息并解决表征空间不一致及用户偏好差异问题,有效提升了短视频冷启动推荐的效果。该方案结合了 ID Embedding 与多模态特征的优势,并通过门控机制动态调整两者权重,为工业界推荐系统提供了新的思路。