前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PPM: 把预训练模型作为插件嵌入CTR模型中

PPM: 把预训练模型作为插件嵌入CTR模型中

作者头像
秋枫学习笔记
发布2024-03-26 14:57:55
3110
发布2024-03-26 14:57:55
举报
文章被收录于专栏:秋枫学习笔记

标题: PPM : A Pre-trained Plug-in Model for Click-through Rate Prediction 地址:https://arxiv.org/pdf/2403.10049.pdf 公司:京东 会议:WWW 2024

1. 导读

相对于传统的ID形式的推荐系统(IDRec),本文在模型中引入预训练模型,但预训练模型的参数很多,会导致延迟增加。因此,大部分无法在推荐系统中使用。本文提出一种即插即用的方法,即PPM。PPM采用多模态特征作为输入,并利用大规模数据进行预训练。然后,将PPM插入到IDRec模型中,以提高统一模型的性能和迭代效率。在合并IDRec模型后,缓存网络内的某些中间结果,只有参数的子集参与训练和推理。因此,可以部署端到端模型,而不会增加延迟。

2.方法

alt text

2.1 预训练的ctr模型

2.1.1 模态编码层

模态编码器层(ME)可以获得高质量的模态表征(图像、文本)。在这一层中,通过query匹配任务和实体预测任务,使用电商数据对预训练模型(BERT和ResNet)进行微调,得到给定商品的图像和文本表示。

query匹配任务

基于SimCSE,使用对比query匹配任务来训练具有用户反馈的文本模型。

x_i,y_i

表示文本对的集合,每个文本对由搜索查询和来自用户搜索目录的点击商品的文本信息序列形成。然后通过文本模型对文本对进行编码以获得嵌入对

h_{x_i},h_{y_i}

,训练目标为下式,其中B为batch size

\mathcal{L}_{Q M}=-\sum_{i} \log \frac{e^{\operatorname{sim}\left(h_{x_{i}}, h_{y_{i}}\right) / \tau}}{\sum_{j=1}^{B} e^{\operatorname{sim}\left(h_{x_{i}}, h_{y_{j}}\right) / \tau}}
实体预测任务

使用预训练的视觉模型ResNet-101作为基础模型。为了使通用视觉模型适用于电商推荐,对ResNet-101进行了产品预测任务的微调。对于商品图片

I_i

, 预测给定图像中的关键实体

P(E|I_i)

,训练目标为下式:

\mathcal{L}_{E P}=-\sum_{i} \log P\left(E_{i} \mid I_{i}\right)

将从冻结的文本和视觉模型中提取的固定长度的emb拼接后,得到给定商品的多模态特征。

2.1.2 行为transformer层

为了基于用户和商品之间的历史交互来学习用户偏好,首先从模态编码器层提取商品表征,然后使用双向transformer来捕获上下文信息,如图1左上角所示。同时在序列emb中需要考虑位置编码和时间间隔编码

E=E_{model}+E_{position}+E_{recency}

点击的商品的模态表征序列经过多层双向transformer块得到对应的emb,h为序列表征Trm()表示transformer,输入为q,k,v

\begin{aligned}h_0^u&=[e_1^u,e_2^u,...,e_{|S^u|}^u]\\\\h_i^u&=\operatorname{Trm}(h_{i-1}^u,h_{i-1}^u,h_{i-1}^u)\end{aligned}

2.1.3 点击率预估

最后使用上述方法产生的emb和目标item的emb预测点击率,构造交叉熵损失函数

L=-\frac{1}{N}\sum_{(x,y)\in\mathcal{D}}ylogp(x)+(1-y)log(1-p(x))

2.2 统一排序模型

预训练的CTR模型可以集成到IDRec模型中,用于端到端训练。为了加快训练过程并最大限度地减少在线延迟,首先缓存多模式特征,从而能够在行为transformer层和CTR预测层内训练参数,包括基于ID的序列模块(IDSM)、PPM和多任务模块。

2.2.1 基于ID的序列模块

在序列模块中,用户交互序列为

s=\{i_1,...,i_n\}

,其中n是序列s的长度,i是一些ID信息(类别id,品牌id等)。双向transformer层(Trm)对用户行为序列进行编码,并对用户和商品的关系进行建模。同时加入位置信息和时间间隔,整体和2.1.2中是类似的就是前面用的模态表征这里用的id信息。下面的id信息表示库存,商户,品牌和类别id

E_{ID}=[E_{\mathrm{sku\_id}}|E_{\mathrm{shop\_id}}|E_{\mathrm{brand\_id}}|E_{\mathrm{category\_id}}]+E_{\mathrm{position}}+E_{\mathrm{recency}}

2.2.2 PPM

在本模块中,每个商品i由ME层提取的标题和图像表征。为了加速训练过程并最大限度地减少在线延迟,这些表征被缓存在hdfs中,而其他参数则通过预加载预训练的CTR模型来初始化。

E_{MO}=[E_{\mathrm{title}}|E_{\mathrm{image}}]+E_{\mathrm{position}}+E_{\mathrm{recency}}

2.2.3 多任务模块

多任务预测用户点击、下单或加购的概率。这些任务之间既有相互关系,也有区别。例如,用户在下单前肯定会点击一款产品,但他们点击的产品不一定是为了购买,可能只是出于对新发布的手机的好奇。利用MMoE对任务关系进行建模,并学习特定任务的特征以利用共享表示。N个专家和K个任务表示为下式,g为gate

f^k(x)=\sum_{i=1}^ng_i^k(x)f_i(x)
\begin{aligned}g^k&=\text{softmax}(xW^k+b^k)\\x&=[U_{ID}|I_{ID}|U_{MO}|I_{MO}|D]\end{aligned}

融合不同expert的emb后基于不同任务的tower进行预测

y^k(x)=t^k(f^k(x))

3. 结果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 导读
  • 2.方法
    • 2.1 预训练的ctr模型
      • 2.1.1 模态编码层
      • 2.1.2 行为transformer层
      • 2.1.3 点击率预估
    • 2.2 统一排序模型
      • 2.2.1 基于ID的序列模块
      • 2.2.2 PPM
      • 2.2.3 多任务模块
  • 3. 结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档