Product-based Neural Networks for User Response Prediction阅读笔记

动机

本文是2016年的一篇文章,提出了经典的推荐模型PNN。传统的推荐模型例如LR、GBDT、FM等在挖掘高阶关系和学习到高质量特征表示受到限制,而当时的深度学习模型存在着不同的问题,例如FNN不是端到端训练的模型,同时不足以提取出多个field的交互特征,CCPM只能做邻域特征交叉,无法进行全局特征交叉。本文提出的PNN可以解决上述模型的问题。

方法

PNN整体结构如下。

文章中讲述这个模型是自顶向下的,这里也按照这个顺序讲述。
首先因为本文是以广告中的预估CTR任务为例,最终的预测结果是CTR,因此有

这里W和b是可训练的参数(之后的W和b若无特殊说明都是这样设定),\(l_2\)是第2个hidden layer的输出,\(\sigma\)是sigmoid函数,接着往下

\(l_1\)是第一个hidden layer的输出


其中符号⊙表示

这里z表示线性信号,p表示二次信号,由product layer产生,具体下面会叙述。

\(f_i\)就是通过embedding layer得到的embedding向量。
损失函数采用交叉熵损失函数。

inner product

在product layer部分,作者提供了两种方法。首先是inner product。
对于线性部分

对于二次信息部分,定义为

这里\(p_{i,j}\)定义为\(f_i\)\(f_j\)的内积。
为了简化计算,将\(w^n_p\)进行矩阵分解

outer product

对于outer product,线性部分是一样的,二次信息部分由原来的内积变为外积,即原来这部分输出是一个标量,这里变成了一个矩阵。为了简化计算,做以下处理。

实验结果

IPNN是product layer为inner product,OPNN是outer product,PNN*是将inner product和outer product连接起来的方法。PNN模型取得最好的效果。

总结

本文提出的模型PNN非常经典,至今还有不少论文把它当作baseline。本文的重点我认为在product layer这部分,通过内积或外积的方式让特征更好地交叉,同时也通过一系列简化策略,在尽可能不影响模型性能的情况下减少计算量。

posted @ 2022-07-11 11:25  South1999  阅读(76)  评论(0编辑  收藏  举报