1. 概述
CTR预估是现如今的搜索、推荐以及广告中必不可少的一部分,CTR预估的目标是预估用户点击给定item的概率。经过这么多年的发展,CTR预估算法得到了较大的改进,从开始的线性模型LR,发展到带有特征交叉的FM算法,随着深度网络的发展,CTR预估也逐渐发展到如今的基于深度模型的CTR预估,期间出现了较大一批成功在业界得到广泛应用的算法模型,如Wide & Deep,DeepFM,DIN,DIEN等等。
近年来深度学习技术在NLP以及CV领域得到了充分的发展,提出了很多优秀的模型结构,如在NLP领域,从MLP到CNN,RNN,LSTM,GRU,再到现如今被广泛研究的基于Transformer的算法。在CTR预估方面,相比较于NLP和CV领域,其特征相对是大规模的,且是稀疏的,为了能够使用深度网络对CTR数据建模,需要在结构上做相应的调整,使得数据能够适应深度网络模型。
2. 深度CTR建模
2.1. Base模型
参考[1]中给出了深度CTR预估的Base模型结构,如下图所示:
在Base模型结构中,主要包括了输入层,Embedding层,全连接层以及输出层。
2.2. 输入层
上述的Base模型中,输入层包括四个输入模块,分别为:用户画像特征(User Profile Features),用户行为特征(User Behaviors),候选Ad特征(Candidate Ad)和上下文特征(Context Features)。
对于User Profile Features,通常包含了诸如请求用的性别,年龄,购买力,手机品牌等一些静态的特征,还包括请求用户的一些统计信息,如月度点击数,月度访问数,月度使用时间等;对于User Behaviors特征和Candidate Ad特征,通常可以包含商品的一些静态特征,如id,标题分词,标题tagging,类目,品牌,价格等,还可以包含一些统计的特征,如历史统计的CTR,7日PV,7日UV等;对于Context Features,通常是客户端带的信息,在用户授权的前提下可以直接获取,比如请求时间、用户手机品牌、手机型号、操作系统、当前网络状态(3g/4g/wifi)、用户渠道等实时属性特征以及之间的 cross 特征。
不同类型的特征需要采用不同的处理方式。根据特征的形式的不同,可以将特征分为三类,分别为类别特征(Categorical),数值特征(Numeric)和多值特征(Multi-valued)[2]。
Categorical类特征,一般是离散的值,特征中只包含一个值,典型的如性别特征。对于Categorical类特征,处理方法通常是使用one-hot编码,将其转换成离散的表示,如“gender=Female”,通过one-hot编码后,其特征编码为。
Numeric类特征,主要有两种处理的方法,一种方式是对其离散化,将其转化成Categorical类特征的处理;另一种是对其进行归一化,将其归一化到区间上。如“age=33”,经过离散化和one-hot编码后,其特征编码为。
Multi-valued类特征,与Categorical类特征的处理类似,只是在Categorical类特征经过one-hot编码后只有一维的值为,而在Multi-valued类特征经过编码后,有多维的值为。
以下图[1]为例,经过转换后的对照关系如下图所示:
对于Numeric类特征,也有不经过Embedding的处理方法,如参考[3]中的ranking模型,直接对其对数值上的转换后与Embedding结果concat在一起,如下图所示:
上图中的特征time since last watch与特征previous impressions可以看成是Numeric类特征。
2.3. Embedding层
Embedding层的作用是把高维稀疏的特征转化成低维的embedding的稠密表达,以满足深度网络的要求。一般处理这种转换关系是初始化一个lookup table,这个lookup table是一个矩阵(可学习的),矩阵的行数为上述经过编码后的总维数,矩阵的列数是低维稠密向量的维数。
假设输入经过编码后总维数为维,那么lookup table就有行,其中第行是第维对应的embedding。然而对于Multi-valued类特征,一组特征通常编码后会出现多维值为的情况,如得到的embedding结果为,通常采用sum或者avg的方法将其转换成一维:
2.4. 全连接层和输出层
全连接层和输出层是多层感知器(multiple layer perceptron, MLP)中的基本结构,定义了第层到第层的非线性映射关系,它的主要作用是使模型具备非线性拟合能力。假设为第层的输入向量,为第层的输出向量,为连接第层到第层的权重矩阵,为层的偏置向量,为非线性激活函数(sigmoid,tanh,relu等),那么和的关系为:
2.5. 损失函数
在CTR建模过程中,通常使用交叉熵(cross-entropy)作为模型的损失函数,其具体形式如下所示:
其中,是所有训练数据的集合,和表示的是样本真实的标签和CTR预估的结果,且
其中,是Sigmoid函数。
3. 深度CTR模型在问题求解上的发展
参考[4]中给出了近年来深度CTR模型本身的发展,详细介绍了每一个模型在先前工作上的一些改进,下面是我在阅读一些文章后,结合参考[4]给出的深度CTR模型在问题求解思路上的发展,具体如下图所示:
上图仅代表目前我了解到的文章,后期看到新的文章或思路会继续更新该图。
如上图所示,在基于Base DNN的基础上,目前我了解到的在求解思路上的模型优化主要有四个方面:
- 模型融合
- 特征交叉
- 序列建模
- 加入Attention
- 多目标
模型融合主要是指在DNN的基础上,加入之前已经成功应用在CTR问题求解的线性模型LR,典型的模型结构是Wide&Deep[5],当然在Wide&Deep的基础上提出了很多模型层面的优化,分为在Wide侧,如增加交叉特征的DCN[6],DeepFM[7]等,在Deep侧的NFM[8]。
特征交叉是指在DNN的Embedding层的基础上,再增加一个特征的交叉层,能够进一步挖掘出对CTR预估有效的交叉特征,在众多的实验中,也能看出交叉特征对于CTR结果的重要性,这其中比较典型的如PNN[9]。
序列建模是指对于用户的行为序列建模,上述的方法都没有利用用户行为上的时序关系,基于序列建模,能够更好地挖掘出用户的兴趣,这其中比较典型的如基于GRU的时序建模方法GRU4Rec[10],以及基于Transformer的BST[11]。
加入Attention是指在用户行为与目标之间必定会存在一定的关系,加入Attention旨在挖掘出用户与目标之间的相关兴趣,有助于建模对目标的点击概率,其中比较典型的算法如DIN[1],结合序列建模,建模用户兴趣的演化过程,又衍生出DIEN[12]以及DSIN[13]。
多目标指的是在同一个模型中训练多个目标,CTR建模中通常会与CVR模型一起,模型结构完全一致,只是训练目标不一致。最简单的方法是分别用一个模型训练CTR和CVR,也可以一起训练,采用多目标的框架结构,在多目标模型中,比较典型的是MMoE[14]。
4. 总结
深度学习模型在CTR问题上的探索还在继续,在CTR建模上也有更多更复杂的模型出现,在模型迭代的过程中,挖掘出更多有用的特征也是一条不断探索的道路。
参考文献
[1] Zhou G, Zhu X, Song C, et al. Deep interest network for click-through rate prediction[C]//Proceedings of the 24th ACM SIGKDD international conference on knowledge discovery & data mining. 2018: 1059-1068.
[2] Zhu J, Liu J, Yang S, et al. Open Benchmarking for Click-Through Rate Prediction[C]//Proceedings of the 30th ACM International Conference on Information & Knowledge Management. 2021: 2759-2769.
[3] Covington P, Adams J, Sargin E. Deep neural networks for youtube recommendations[C]//Proceedings of the 10th ACM conference on recommender systems. 2016: 191-198.
[4] 谷歌、阿里、微软等10大深度学习CTR模型最全演化图谱【推荐、广告、搜索领域】
[5] Cheng H T, Koc L, Harmsen J, et al. Wide & deep learning for recommender systems[C]//Proceedings of the 1st workshop on deep learning for recommender systems. 2016: 7-10.
[6] Wang R, Fu B, Fu G, et al. Deep & cross network for ad click predictions[M]//Proceedings of the ADKDD’17. 2017: 1-7.
[7] Guo H, Tang R, Ye Y, et al. DeepFM: a factorization-machine based neural network for CTR prediction[J]. arXiv preprint arXiv:1703.04247, 2017.
[8] He X, Chua T S. Neural factorization machines for sparse predictive analytics[C]//Proceedings of the 40th International ACM SIGIR conference on Research and Development in Information Retrieval. 2017: 355-364.
[9] Qu Y, Cai H, Ren K, et al. Product-based neural networks for user response prediction[C]//2016 IEEE 16th International Conference on Data Mining (ICDM). IEEE, 2016: 1149-1154.
[10] Hidasi B, Karatzoglou A, Baltrunas L, et al. Session-based recommendations with recurrent neural networks[J]. arXiv preprint arXiv:1511.06939, 2015.
[11] Chen Q, Zhao H, Li W, et al. Behavior sequence transformer for e-commerce recommendation in alibaba[C]//Proceedings of the 1st International Workshop on Deep Learning Practice for High-Dimensional Sparse Data. 2019: 1-4.
[12] Zhou G, Mou N, Fan Y, et al. Deep interest evolution network for click-through rate prediction[C]//Proceedings of the AAAI conference on artificial intelligence. 2019, 33(01): 5941-5948.
[13] Feng Y, Lv F, Shen W, et al. Deep session interest network for click-through rate prediction[J]. arXiv preprint arXiv:1905.06482, 2019.
[14] Ma J, Zhao Z, Yi X, et al. Modeling task relationships in multi-task learning with multi-gate mixture-of-experts[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018: 1930-1939.