1 背景
Deep Crossing通过“Embedding + MLP”的范式,奠定了深度学习在推荐算法中的重要地位,引领了一股学术界和工业界不断应用和优化深度学习推荐算法的风潮。上海交通大学提出了PNN模型,通过在Embedding层之后引入一个Product层,加强了二阶特征交叉能力,有利于捕捉特征之间相关性,从而提升模型整体表达能力。
2 PNN模型结构
PNN全称“Product-based Neural Networks for User Response Prediction”[5],由上海交通大学于2016年提出。跟Deep Crossing类似,它也是应用于点击率预估场景。模型结构同样遵循了“Embedding + MLP”的基本范式,与Deep Crossing类似。主要区别在于Stacking特征融合层。
Deep Crossing的Stacking层,直接将特征拼接(Concat)起来,表达能力偏弱。PNN认为进入MLP深度神经网络前,有必要先进行显式特征交叉,从而捕捉特征之间的相关性。它的Stacking特征融合层包括两部分。一部分与Deep Crossing相似,直接将Embedding层输出的特征拼接起来。另一部分则通过Product操作,将特征两两交叉后,再拼接起来。这一部分是PNN区别于Deep Crossing的关键所在,也是它最重要的创新点。Product操作有内积和外积两种方法,分别为IPNN和OPNN。
模型整体结构如图4-5所示。自下而上分为4层。
- Embedding层:将高维稀疏的输入特征,转变为低维稠密的输出特征。同时实现特征的语义化,提升整体泛化能力。
- Product层:一部分直接将Embedding层输出的特征,拼接成一个长向量,如图4-5中所示的z部分。另一部分将Embedding层输出的特征,两两进行Product操作,最后再拼接成一个长向量。Product操作又分为内积和外积两种,实际应用时可以灵活选用。
- 全连接层:分为两层,如图4-5中所示的l1和l2。先将Product层中的z向量和p向量分别进行全连接操作后,再相加并经过ReLU激活函数,得到l1层。然后将l1层的输出,全连接并经过ReLU激活函数,得到l2层。
- 输出层:将全连接l2层的输出,通过一个线性变换,然后经过Sigmoid函数处理,使之归一化为0到1之间的数值,即得到最终的CTR预估概率。目标函数采用LogLoss,建模CTR预估值和真实值之间的损失,利用梯度下降反向传播,不断更新模型参数,使损失降低。从而实现模型整体的监督学习。这部分与Deep Crossing基本相似。
3 PNN特征交叉实现方式
PNN整体模型结构与Deep Crossing比较像,主要区别在于Product层中加入了特征两两Product交叉的操作。Product操作可以分为内积和外积两种,使用内积操作的为IPNN( Inner Product-based Neural Network),使用外积操作的为OPNN( Outer Product-based Neural Network)。
所有特征向量求和池化,其实不那么合理。不同特征,其含义不同,经过Embedding编码后,向量空间也不一样。比如商品标题和商品价格,二者特征向量相加,不具备任何含义。通常只对同类特征进行池化操作。比如对物品标题的所有词向量,进行平均池化(mean-pooling),可以得到物品标题的句向量。另外,将用户点击过的多个物品的id的向量,进行平均池化,可以得到点击行为序列建模结果。池化操作简化了外积计算,但也损失了大量有用信息。对于OPNN,要谨慎使用。
4 PNN总结
PNN的设计初衷十分纯粹。不同于将特征交叉全部交给深度神经网络,PNN还通过内积和外积操作,显式加强了特征两两间的相关性,从而提升模型表达能力。但同时也增加了计算复杂度。OPNN中的求和池化(sum-pooling),会损失大量有用信息。实际应用中,不必对所有特征进行两两Product操作。可以加入一定的人工先验知识,选取某些特征进行Product。在深度学习时代,推荐算法从业者对业务的理解同样十分重要。
另外,PNN作者认为,MLP层的全连接,本质上是线性加权求和,主要表征的是特征间“或”的关系。但在推荐系统中,特征间的共现关系,也就是“且”的关系,显然更为重要。比如对“小孩性别为男”且“小孩年龄低于1岁”的人群,推荐“一岁男童服装”,准确率会比较高。如果是“或”的关系,则不那么准确了。所以需要加入内积或外积这种基于乘法的操作,来增强“且”的关系的表达。这一点个人不敢苟同。单层全连接确实是基于加法操作的,但叠加多层全连接后,则可以表达乘法“且”的关系,从而实现自动特征交叉。深度神经网络具有拟合一切的能力,其上限远高于线性模型。
5 参考文献
- Yanru Qu, Han Cai, Kan Ren, et al. 2016. Product-based neural networks for user response prediction. In Data Mining (ICDM), 2016 IEEE 16th International Conference on. IEEE, 1149–1154.
6 作者新书推荐
历经两年多,花费不少心血,终于撰写完成了这部新书。本文在4.4节中重点阐述了。
源代码:扫描图书封底二维码,进入读者群,群公告中有代码下载方式
微信群:图书封底有读者微信群,作者也在群里,任何技术、offer选择和职业规划的问题,都可以咨询。
详细介绍和全书目录,详见
《精通推荐算法》,限时半价,半日达https://u.jd.com/VbCJsCz