在 CIKM 2024 上,小红书中台算法团队提出了一种创新的联合训练框架 AlignRec,用于对齐多模态表征学习模型和个性化推荐模型。本文指出,由于多模态模型与推荐模型在训练过程中存在步调不一致问题,导致联合训练被推荐信号主导,从而丢失大量多模态信息。AlignRec 通过分阶段对齐的方式,设计了三种针对性的优化损失函数,使得联合训练能够同时兼顾多模态信息和推荐信息。实验结果表明,AlignRec 在多个数据集上的性能超过了现有的 SOTA(state-of-the-art)模型。此外,AlignRec 还提供了在当前广泛使用的公开数据集亚马逊上的预处理特征,这些特征的效果显著优于现有的开源特征。
01背景
最近多模态是个非常热门的话题,尤其是在大模型以及 AIGC 领域,多模态基建和技术是走向未来商业化的奠基石。在过去的多模态大模型研究方向上,模态的“对齐”已经被验证非常重要,分布的不一致损害不同模态的理解,我们此次要讨论的核心问题是多模态在推荐中的对齐问题;
在具体介绍论文工作之前,我们先来介绍下我们过去在推荐和电商中的实践工作:
推荐实践
上述方法是我们对 BM3论文进行改进 上线的方案,该方案实际上做的是通过损失函数来实现“对齐”工作。我们的对模型的期望也是保留个性化的同时,能够对齐行为和多模态的空间,进一步增加长尾的个性化分发能力。先说效果:
该模型实验在推荐发现页取得时长、曝光、点击等核心指标收益,除此之外,在长尾分发上,0 粉作者笔记点击和曝光获得大幅增长,整个召回路增加了全局可分发笔记数 6%,分发笔记集中在 1k-5k 的笔记曝光集合;同时,我们的方法也被复用在了电商场景,分发长尾同时,获得 DGMV 等核心指标收益。
很显然,从上述可以看出,“对齐”的效果立竿见影,在业界应用上我们已经取得实质性进展,但本质上这样的设计方案依然并没有完全解决多模态推荐问题,因为我们的多模态模型和推荐模型是相对割裂的,等同于直接拿表征来使用,这样的设计打通了应用范式,却无法判断多模态模型本身能力对效果的上限,对于选择合适多模态表征存在一定的难度。但如果我们引入文本/图等 Encoder(Transformer)等进行联合训练,会引入如下的问题:
在大规模的数据下,分布式训练引入图文 Encoder 会造成资源和性能问题,尤其是注重高时效性的 Streaming Data;
训练步调不一致,往往多模态模型需要大量数据甚至多个 Epoch 才能收敛,但推荐模型通常采取单轮训练,这也导致多模态模型训练不充分;
所以我们设计联合训练模型,通过设计分阶段对齐的方式和中间指标评估,解决上述联合训练问题,并且引入了三种针对性的优化损失函数,使得联合训练能够同时兼顾多模态信息和推荐信息,解决联合训练中的“对齐”问题,提升效果上限。
下面我们从相关工作,核心挑战,模型设计介绍整体工作。
02相关工作
我们在这里通过 (a), (b), (c) 描述了在过往的学术界目前多模态推荐方向的相关工作,总结主要的发展路径:
图(a),直接利用,比如把 embedding,多模态特征作为信号输入网络;
图(b),利用图等方式聚合,希望能得到更丰富的多模态信息表达,这本质上也是增加多模态侧信息的召回率;
图(c),联合优化,把模态损失和行为损失共同优化,但这忽略了本身笔记侧的多模态学习。
在工业界,现阶段推荐系统主要还是依赖于 ID 特征的学习, 大多数多模态推荐把多模态信息作为 sideinfo 去辅助 ID 特征的学习。但是, 多模态之间以及 ID 模型与多模态之间都存在着语义鸿沟, 直接使用甚至可能适得其反。
核心挑战
为了贴合业界实际,设计一款有效的多模态与推荐联合训练模型会遇到如下的挑战:
挑战1: 如何对齐多模态表征。包括内容模态之间(如图文)的对齐,以及内容模态与 ID 模态之间的对齐;
挑战2: 如何平衡好内容模态和 ID 模态之间的学习速度问题。内容模态可能需要超大规模的数据和时间去训练, 而 ID 模态的学习更新可能只需要几个 epoch。
挑战3: 如何评估多模态特征对推荐系统的影响。引入不合适的多模态信息可能需要更多的精力去做纠正, 甚至可能影响推荐系统的性能。
03设计方案
我们所提出的方法命名为 AlignRec,整体框架如下图所示, 主要包含3个模块: Multimodal Encoder Module, Aggregation Module, 以及 Fusion Module, 下面分别进行介绍。
Multimodal Encoder Module
𝑀𝑀𝐸𝑛𝑐是一个预训练的模块, 它以物品的多个内容模态为输入,实现物品侧视觉模态
再将两者的 Loss 进行相加得到预训练阶段的 Loss
在应用时, 取 CLS token 作为物品侧统一的多模态表征。
对于 Open DataSource 我们并不会加入显式的行为信息,确保多模态模型的能力和合理性,但在业界实际使用时,我们通常会加入协同信号;
Aggregation Module
这个模块以 ID 模态和前面统一的内容模态为输入,构建异构图,基于 GCN(作者使用 LightGCN)做多层聚合,从而输出 User 和 Item 的 ID 模态,User 的多模态表征,Item 的多模态表征。
流程上总计分为三个步骤:
User 侧和 Item 侧的 ID 模态,通过图聚合的方式,得到 User 和 Item 的表征,分别表示为
Fusion Module
这个模块的作用在于融合 ID 模态表征和多模态表征, 从而得到 User 侧表征和 Item 侧表征, 用于召回的 topK 向量检索
将相应的表征进行相加:
在得到 User 侧和 Item 侧的表征之后,我们增加了个 User 侧和 Item 侧的对齐,具体地,我们对用户表征
统一训练
推荐任务会使用 BPR 计算损失:
前面挑战 2 提到, 内容模态和 ID 模态的学习速度有很大差异, 因此, 会先在预训练阶段对齐不同内容模态, 得到统一的内容模态表征输出。而在后续的 End2End 训练阶段, 则加权融合推荐任务的损失, 正则化损失, 以及前面多个对齐目标损失, 得到最终的训练损失。
中间评估指标
为了更准确评估多模态特征在推荐系统中的适用性及应用效果, 我们提出了 3 种中间评估方案:
Zero-Shot推荐
用于评估基于用户历史交互行为, 多模态特征能否反映出用户兴趣, 包括 3 个步骤:
按时间顺序对用户历史交互行为排序, 取最后一个行为作为Target Item,其余作为用户历史行为交互
计算
Pretraining 的模型在论文所提各中间评估指标上均超越 CLIP 的表现:
在开源数据集上生产的多模态特征与开源多模态特征对比效果上,AlignRec 的性能明显提升:
下面的表格也展示了不同模块的消融效果:
我们也列出了各个超参数对效果影响:
最后,我们也对比了长尾的效果:
05总结
我们的贡献可以被总结为三点:
我们一直在探索对齐问题,并且通过小红书推荐实践,设计了可复用的多模态召回范式,已经拿到了线上AB收益;
提出AlignRec联合训练方式,深入解决对齐问题,提出分阶段对齐的模式和中间指标评估方式;
最后,我们对Amazon的数据集整体的多模态数据源进行升级,为后续研究打下基础。
还没有评论,来说两句吧...