Product-based Neural Networks for User Response Prediction
目标:CTR预估。
文中指出LR,GBDT,FM虽然在工业中广泛应用,但是这些模型挖掘高阶隐特征(high-order latent pattern)或者是学习高质量的特征表达的能力是有限的。
本文提出了PNN(Product-based Neural Network)模型,具体的包括的两种IPNN(Inner Product-based Neural Network)和OPNN(Outer Product-based Neural Network)。
Product-based Neural Network
从上到下,output输出y ^ ∈(0,1)作为预估的CTR(一个简单的sigmoid操作)
第二个hidden layer的输出l2(relu做激活的全连接层)
第一个hidden layer的输出l1
b1是bias。
定义tensor的内积(inner product)操作为
内积操作得到的是一个数。
Wnz和Wnp是product layer的权重。(需要注意的是product layer往第一个hidden layer传递时,z和p是分别全连接向前传的,然后再和bias一起add起来)(再仔细一想,分开传和stacking起来一起传没有任何区别啊)
其中fi是特征域i的embedding向量。z就是简单的把所有的特征embedding给stack起来(图中1和feature1相互作用仍然得到feature1)。pi,j = g(fi,fj)定义了两个特征之间的交互关系。通过定义不同的操作g,可以有不同的PNN具体实现。本文讨论了IPNN和OPNN。
特征域i的embedding向量fi(M维)为embedding layer的输出
x为整个input feature vector,其中包含了多个特征域。以下图为例,就包含了三个特征域。
x[starti : endi]表示特征域i对应的one-hot向量。W0为embedding layer的参数,W0i(M * (endi-starti+1)维)和特征域i是全连接的。
最后,最小化log loss
Inner Product-based Neural Network
定义了向量的内积操作(inner product): g(fi, fj) = <fi, fj>
由于常量符1的存在,线性信息z可以被保留(N个特征域,每个特征域的embedding为M维)
对于二次信息p,两两内积g(fi, fj)构成p(N * N维)
从FM中获得启发,可以通过矩阵分解来降低复杂度。
Outer Product-based Neural Network
在OPNN中,定义特征交互为
此时,p中的每个元素pi,j是一个M * M维的矩阵。
为了降低复杂度,文中提出了element-wise superposition(逐元素叠加)
简单来说,就是把所有的外积矩阵进行叠加。
总结:PNN最大的创新点就是product layer的构造,其他部分基本上都是常规操作。文中说道,如果移除product layer的lp部分,PNN和FNN是一样的。就内积操作而言,PNN和FM也是很相似的。如果没有hidden layer,并且在output layer使用均匀的权重简单的求和,PNN和FM是一样的。因此,可以首先训练部分PNN(比如FNN或者FM部分)作为初始化,然后做fine-tuning。
防止过拟合可以考虑加L2正则项和dropout。