分享
京东——多模态预训练模型推荐系统
输入“/”快速插入内容
京东——多模态预训练模型推荐系统
用户2749
用户2749
2025年9月23日修改
京东PPM:多模态预训练模型当作插件用于CTR预估
1.
前言
当前
推荐系统
还严重依赖
ID特征
, 下文记为IDRec, 它存在两方面问题:
1.
物品冷启动问题, 这些ID embedding未充分训练, 表现会差很多
2.
受迭代效率限制, IDRec通常没法使用太长时间的数据进行训练
引入多模态预训练模型的先验知识可以部分
缓解物品冷启动
问题, 同时
减少对训练数据样本量的依赖
。但预训练模型的参数量很大, 推理延迟会增加, 业务上落地困难, 同时, 如果想要使用
End2End
的方式
训练
, 训练成本也会非常高, 这些都阻碍了预训练多模态模型在推荐场景的落地应用。
💾
为了缓解这个问题, 提出了一种
插件式
的多模态预训练模型(Pre-trained Plug-in Model, 简称
PPM
), 它以多模态
特征
为输入, 使用大规模数据集
预训练
, 然后集成到
IDRec
模型中, 这里, PPM会缓存网络中的部分中间结果, 只有少部分子集的参数会参与
训练
与
推理
, 可以实现
End2End
部署, 而不增加推理延迟。
2.
方法
PPM
的整体框架如下图所示, 主要分成两部分
2.1
预训练的
CTR模型
这一部分的模型, 以多模态信息为输入, 与ID无关, 并辅以CTR作为监督信号进行学习, 主要包含
以下3层
:
2.1.1
模态编码层(Modality Encoder Layer,
简称ME
)
💾
模态编码层
(ME)用于获取高质量的
文本模态
表征和
图像视觉模态
表征, 在这一层中, 会基于电商场景数据, 使用查询匹配(Query Matching)任务和实体预测(Entity Prediction)任务对预训练模型(
BERT
和
ResNet
)进行
微调
。微调后
文本模型
和
视觉模型
会被冻结住, 然后从这些冻结后的文本模型和视觉模型中分别提取出固定长度的
dense表征
, 将它们拼接后,就得到给定商品的
多模态表征
。
1.
查询匹配任务
同SimCSE, 结合用户行为反馈(是否点击), 使用对比查询匹配任务来微调文本模型。记(𝑥𝑖,𝑦𝑖)为文本的
pair对
, 分别表示搜索的
Query
以及对应用户点击商品的文本序列信息, 在经过文本模型编码后, 得到对应的文本表征, 分别记为
和
。然后使用对比学习(InfoNCE Loss)进行训练:
其中
表示batch size, 而𝜏 为温度系数.
2.
实体预测任务
使用
ResNet-101
作为
Vision
基础模型, 然后使用电商
场景数据
, 基于物品预测任务来进行
模型微调
。具体地, 在给定商品
的图片, 模型的目标是要去
预测
图片中的关键实体
, 训练目标是:
2.1.2
行为变换层(Behavior-Transformer Layer)
为了从用户物品的交互历史中学习到
用户偏好
, 首先从模态编码层抽取
物品表征
, 如下图所示, 其中,
为用户的交互历史的
物品表征
。
然后再使用
双向
Transformer
去捕获上下文信息, 如下图所示:
一步步来看这里的过程:
Step1
: 以用户交互历史的
模态表征
为输入, 同时也考虑
位置编码
和
时间间隔编码
, 即:
这里位置编码和时间间隔编码一开始是做
随机初始化
。
Step2
: 拼接用户交互历史表征:
Step3
: 基于双向Transformer模块计算:
其中,
表示Transformer模块的第
层,
Trm
表示双向
Transformer
模块, 其对应的输入𝑞
、
𝑘、𝑣都使用
。
Step4:
以
Target Item
的模态表征作为
Query
, 上面的输出作为
Key
和
Value
, 再做
Target Attention
, 最后一层的输出即作为融合
User
和
Item
后的表征。
2.1.3
CTR预测层