一、CTR预估的数据特点
1.输入中包含类别型和连续型数据。类别型数据需要one-hot,连续型数据可以先离散化再one-hot,也可以直接保留原值
2.维度非常高
3.数据非常稀疏
4.特征一般可以按Field分组
5. 样本量一般都非常大,模型指标也相对非常稳定
二、CTR预估的核心点
1.核心点在于学习组合特征,包括二阶、三阶和更高阶,越高阶越不容易学习;
2.Google论文指出,低阶特征和高阶特征都很重要,且组合在一起效果更好;
3.如何提取组合特征
(1)人工特征;
(2)模型支持特征交叉;
三、CTR预估的模型演进历史
1.线性模型:LR、FTRL
取得了很好的效果,就算是目前应用也非常广泛;
缺点:1)无法提取高阶组合特征;2)样本中没有出现过的特征组合无法提取;
2.FM模型
通过隐向量做内积来表示特征组合,理论上解决了特征组合问题,但是受限于计算,一般只考虑2阶交叉;
3.FFM模型
在FM的基础上,提出Field的概念,每个特征会针对其他特征的每个field学习一个隐变量Vi,而不是FM中一个特征的隐变量是固定的;
4.深度学习
(1)最基本的DNN
(2)相继提出了使用CNN或RNN来做CTR预估的模型。但是,CNN模型的缺点是:偏向于学习相邻特征的组合特征。 RNN模型的缺点是:比较适用于有序列(时序)关系的数据。
(3)FNN:两阶段训练,先预训练得到FM的隐向量,然后隐向量作为DNN的输入;
FNN缺点:
a. Embedding的参数受FM的影响,不一定准确,且第二阶段会对预训练结果造成偏移;
b. 预训练阶段增加了计算复杂度,训练效率低;
c. FNN只能学习到高阶的组合特征。模型中没有对低阶特征建模。
(4)PNN:在embedding层和first hidden layer之间,增加了一个product layer;根据product layer使用内积、外积、混合分别衍生出IPNN, OPNN, PNN*三种类型。
PNN缺点:
a. 内积外积计算复杂度高。采用近似计算的方法外积没有内积稳定;
b. product layer的输出需要与第一个隐藏层全连接,导致计算复杂度居高不下;
c. 和FNN一样,只能学习到高阶的特征组合。没有对于1阶和2阶特征进行建模。
(5)Wide & Deep模型,混合了一个线性模型和一个Deep模型,解决低阶特征组合问题,Wide部分,仍然依赖人工特征工程;
Wide&Deep缺点:需要人工特征工程
(6)DeepFM:
A) 不需要预训练FM得到隐向量;
B) 不需要人工特征工程;
C) 能同时学习低阶和高阶的组合特征;
D) FM模块和Deep模块共享Feature Embedding部分,可以更快的训练,以及更精确的训练学习;
网友评论