1、背景
在预估模型中,DNN往往是基线模型,也有这强大的特征交叉和非线性表达能力。但是丰富的先验知识,比如特征之间的交叉并不能够简单的通过DNN来学习。所以才有了FM/FFM等模型,来显式的学习模型的特征交叉能力。PNN,全称为Product-based Neural Network,认为在embedding输入到MLP之后学习的交叉特征表达并不充分,提出了一种product layer的思想,既基于乘法的运算来体现体征交叉的DNN网络结构,如下图:

PNN模型
2、动机
相对于FNN只引入FM作为初始化向量,后面使用DNN而言,提升特征交叉的表达能力。
3、方案
通过在Embedding和DNN之间引入Product Layer(内积/外积)来提高交叉特征的表达能力。
主要是在于Product Layer的计算,包括两部分,和
,其中
代表这embedding以后直接concat, 而
代表着,embedding向量两两之间进过inner-product或者outer-product计算。
同时也经过一层线性变换,用来学习特征之间的维度交叉,和维度调整。

product layer
4、总结
和FNN相比,PNN多了一个product层,和FM相比,PNN多了隐层,并且输出不是简单的叠加;在训练部分,可以单独训练FNN或者FM部分作为初始化,然后BP算法应用整个网络,那么至少效果不会差于FNN和FM。
5、参考文献
https://www.jianshu.com/p/be784ab4abc2