广告行业中那些趣事系列53:多模态学习在CTR预估模型中的应用实践

导读:本文是“数据拾光者”专栏的第五十三篇文章,这个系列将介绍在广告行业中自然语言处理和推荐系统实践。本篇分享了多模态学习在CTR预估模型中的应用实践及效果展示,对于想要将多模态学习应用到CTR预估模型中的小伙伴可能有所帮助。

欢迎转载,转载请注明出处以及链接,更多关于自然语言处理、推荐系统优质内容请关注如下频道。

知乎专栏:数据拾光者

公众号:数据拾光者

6affd8ba8d081a1db0f5c95b9749740e.png

摘要:本篇分享了多模态学习在CTR预估模型中的应用实践及效果展示。首先是背景介绍,通过多模态学习可以更好的处理多模态信息,从而得到更丰富的特征信息,可以更好的提升CTR模型效果;然后重点介绍了多模态学习在CTR模型中的应用实践及效果展示,主要包括多模态实验流程介绍、文本模态和图像模态的应用实践及效果展示和后续优化工作。对于想要将多模态学习应用到CTR预估模型中的小伙伴可能有所帮助。

下面主要按照如下思维导图进行学习分享:

566d092f3aca7fb03f7c54793e589946.png

01

背景介绍

最近主要在做品牌广告CTR预估项目,特征方面主要使用的是传统广告特征,比如ad、user、user点击ad、时序等相关特征,而对于广告点击影响最直观的广告素材图片和标题等多模态数据并没有被应用到CTR模型中。由于不同模态的表现方式不同,看待事物的角度不同,对于事物的理解也会不同,通过多模态学习可以更好的处理多模态信息,从而得到更丰富的特征信息。结合之前在NLP和CV领域中的技术积累,将多模态学习(主要是文本模态(广告品牌和标题)和图像模态(广告素材图片))应用到CTR预估模型并落地到实际业务中带来效果提升就变成我当前最重要的任务之一。接下来主要分享我把文本模态和图片模态特征应用到CTR模型中的技术实践以及离线带来的效果提升情况。

02

多模态在CTR模型的应用实践及效果展示

2.1 多模态实验流程介绍

这里先介绍下多模态实验配置情况,对照组中将传统广告特征embedding放入到DNN模型(4层全连接层[256,128,32,1])中进行训练,模型评估指标用的是AUC和GAUC。实验组中将多模态数据特征embedding通过concat方式添加到传统广告特征embedding后使用相同的DNN模型结构训练,实验主要从特征层面对比多模态特征带来的模型效果提升情况。需要说明的是多模态特征还有很多高阶使用方式,这里先通过最常用的concat方式快速实验查看效果并决定是否进行更深入的研究。

2.2 文本模态应用实践及效果展示

2.2.1 获取高质量的文本模态embedding

上面实验流程介绍中也说了会将多模态数据特征embedding通过concat方式添加到传统广告特征embedding后,这里最重要的是如何获取高质量的文本模态embedding

首先当前NLP中获取文本embedding常规做法是使用BERT类预训练模型作为encoder进行编码,这里需要考虑的是预训练模型权重的选择问题;然后获取到文本embedding之后需要考虑是否要进行降维操作,如果使用BERT-base进行编码会得到768维向量,将高维向量直接concat到传统广告embedding之后可能会挤占其他特征,从而影响其他特征带来的作用。一个不错的方式是使用苏神提出的BERT-whitening白化方式,一方面可以提高BERT语义向量的质量,另一方面可以降低BERT语义向量的维度;最后需要考虑多个文本特征的使用方式,广告文本模态数据主要包括广告标题和品牌两个字段,下面是广告文本模态数据示例:

de632366e1deaec16c8938200389ca4d.png

图1 广告文本模态数据示例

2.2.2 多个文本特征的使用方式实验

本实验主要对比添加多模态特征对CTR模型效果的影响,模型均使用DNN。广告文本模态主要有广告标题和广告品牌两个字段,分别从仅使用标题、仅使用品牌和同时使用品牌和标题进行对比。因为同一个广告可能有多个品牌名和标题,所以这里会以广告粒度对品牌名和标题进行分组拼接操作,比如ad1有brand1、brand2、brand3,这里会将ad1的品牌加工成brand1@@ brand2 @@ brand3,拼接字符使用的是“@@”。同时拼接的时候需要注意顺序,如果有两个广告ad1和ad2,它们的品牌都是brand1、brand2、brand3,拼接的时候如果不注意顺序可能拼接之后得到的文本是不同的。实验组中均使用4层Transformer的BERT模型得到312维,同时使用BERT-whitening白化操作并降维到64维向量,其中4层Transformer的BERT模型权重使用的是追一科技开源的预训练模型,模型地址如下:

https://github.com/ZhuiyiTechnology/pretrained-models

实验配置如下:

  • 对照组:传统广告embedding;

  • Lab1:仅添加文本模态特征brand;

  • Lab2:仅添加文本模态特征title;

  • Lab3:将brand和title文本数据拼接,添加文本模态特征;

  • Lab4:将Lab1和Lab2作为两个特征同时加入;

  • Lab5:将Lab1、Lab2和Lab3作为三个特征同时加入;

实验结果如下:

f4d456a2d3ecf69c60d2964030a257e5.png

图2 多个文本特征的使用方式实验结果

整体来看添加文本模态特征带来的效果提升非常明显,AUC提升比例最高为3.54%,GAUC提升比例最高为6.56%。多个文本特征使用方式上将brand和title的文本进行拼接后得到embedding的GAUC效果是最好的。

2.2.3 预训练模型实验

本实验主要对比不同的BERT预训练模型对CTR模型效果的提升情况,实验组预训练模型会分别使用12层ROBERTA-WWM得到768维句向量、4层Transformer的BERT模型得到312维句向量,实验组同时经过BERT-whitening加工成64维embedding,多个文本特征使用方式选择将brand和title拼接后得到embedding进行添加。

实验配置如下:

  • 对照组:传统广告embedding

  • Lab3:使用4层BERT,BERT-whitening加工成64维embedding(和上个实验Lab3相同);

  • Lab6:使用12层ROBERT,BERT-whitening加工成64维embedding;

实验结果如下:

2a20fed2acfe93d78232d552dd74ed2b.png

图3 预训练模型实验结果

通过lab3和lab6可以看出,4层BERT预训练模型的效果要优于12层ROBERTA-WWM模型。

2.2.4 BERT-whitening降维实验

通过BERT-whitening不仅可以提高文本语义向量质量的效果,而且还能降低BERT语义向量的维度。本实验对比使用BERT-whitening将预训练模型得到的句向量降低成不同维度带来的效果提升情况,多个文本特征使用方式选择将brand和title拼接后得到embedding进行添加。

实验配置如下:

  • 对照组:传统广告embedding

  • Lab3:使用4层BERT,BERT-whitening加工成64维embedding(和上个实验Lab3相同);

  • Lab7:使用4层BERT,BERT-whitening加工成32维embedding;

实验结果如下:

7a7f2c2715d889b331a3da2953541bf8.png

图4 BERT-whitening降维实验结果

通过lab3和lab7可以看出,AUC提升比例差别不大,lab3带来的GAUC提升效果更加明显,说明使用BERT-whitening降维到64维效果会更好。

小结下,整体来看文本模态实验结果,将brand和title文本拼接,使用4层BERT,同时使用BERT-whitening加工成64维embedding对CTR预估模型离线效果提升是最好的。

2.3 图片模态应用实践及效果展示

图片模态实验和文本模态实验类似,模型使用DNN,只是在传统广告特征embedding后添加图片模态embedding。

2.3.1 获取高质量图片模态embedding

熟悉我的小伙伴知道我主要研究领域是NLP,对CV了解不深,但NLP和CV很多地方是相通的,和文本模态类似,获取高质量图片模态embedding主要有以下几个因素:首先是图像预训练模型的选择。因为我对CV领域预训练模型研究不深,所以这里仅使用resnet18模型获取图片embedding,后续会根据业务需要进一步研究CV领域中的主流预训练模型;然后是同一个广告多个素材图片embedding的获取方式;最后是否需要通过whitening白化操作降维等。

2.3.2 同一个广告多个素材图片获取embedding实验

因为一个广告可能会对应多个素材图片,而我们需要的是ad粒度的图片素材embedding,所以同一个广告多个素材图片获取embedding的方式可以是根据一定的策略选择一个素材图片的embedding(这个策略可以是随机选择素材图片,也可以根据时间选择广告最近使用的素材图片),还可以将同一个广告下多个素材图片得到embedding取均值。实验组均使用resnet18模型获取图片512维embedding。

实验配置如下:

  • 对照组:传统广告embedding

  • Lab1:同一个广告多个素材图片随机选择一张图片的embedding添加;

  • Lab2:同一个广告多个素材图片的embedding取均值添加;

实验结果如下:

66f0572b6b74a96e25b42556fa078f67.png

图5 一个广告多个素材图片获取embedding实验结果           

整体来看添加图片模态特征对CTR预估模型的效果也有很不错的效果提升,AUC最高提升3.41%,GAUC最高提升6.43%,和文本模态特征带来的效果提升相当。其中lab1效果整体优于lab2,说明同一个广告多个素材图片embedding取均值效果不如随机采样一张图片embedding的效果好。

2.3.3 图片素材whitening降维实验

本实验将素材图片通过resnet18模型获取图片512维embedding,对比通过whitening白化操作降维对模型的效果提升情况,实验组中同一个广告多个素材图片均随机采样一张图片获取embedding。

实验配置如下:

  • 对照组:传统广告embedding

  • Lab1:不使用whitening白化操作降维(和上个实验Lab1相同);

  • Lab3:使用whitening白化操作将512维向量降维到128维;

  • Lab4:使用whitening白化操作将512维向量降维到64维;

实验结果如下:

0e682868d655b06a16e4a3f2a4eb36b8.png

图6 图片素材whitening降维实验结果

从上述实验结果可以看出使用whitening白化操作降维反而会产生逆向效果。

小结下,整体来看图片模态实验结果,同一个广告多个素材图片随机选择一张图片embedding,直接使用resnet18模型获取图片512维,不进行whitening白化操作降维对CTR预估模型离线效果提升是最好的。

2.4 后续工作

上面主要从多模态学习方向将文本模态和图片模态特征添加到CTR预估模型中,整体来看效果提升比较明显,证明多模态学习潜力巨大,后续会进行深入的学习,下面是后续的工作:

  • 图像模态使用主流效果更好的预训练模型获取高质量embedding;

  • 图像模态和文本模态的联合使用方式研究;

  • 不仅仅是常用的concat,进一步研究多模态特征更高阶的使用方式。

03

总结及反思

本篇分享了多模态学习在CTR预估模型中的应用实践及效果展示。首先是背景介绍,通过多模态学习可以更好的处理多模态信息,从而得到更丰富的特征信息,可以更好的提升CTR模型效果;然后重点介绍了多模态学习在CTR模型中的应用实践及效果展示,主要包括多模态实验流程介绍、文本模态和图像模态的应用实践及效果展示和后续优化工作。对于想要将多模态学习应用到CTR预估模型中的小伙伴可能有所帮助。

最新最全的文章请关注我的微信公众号或者知乎专栏:数据拾光者。

62dae261d3be66c18155491ecd386911.png

码字不易,欢迎小伙伴们点赞和分享。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值