点击预估PNN模型,丰富特征交叉的方式
目录
1. 前言
2. PNN模型结构
3. PNN模型原理
3.1 介绍PNN模型 Product Layer 的线性部分
3.2 介绍PNN模型 Product Layer 的非线性交叉部分
3.2.1 Inner Product(内积) 交叉形式,IPNN
3.2.2 Outer Product(外积) 交叉形式,OPNN
1. 前言
说在前面,点击预估模型在广告、搜索、推荐领域应用比较广泛。从传统的协同过滤、机器学习等方法逐渐过渡到深度学习领域,模型的复杂度在不断地提高,当然效果也在不断地提升。虽然目前发表论文时,总会将源代码放到网上,但是作为算法工程师要尽量的理解算法原理,并达到复现论文的能力。静下心阅读论文、拿出纸和笔推导公式,一定能掌握论文原理的整个脉络。一起加油学习吧,奥利给!
本文主要介绍一下 Product-based Neural Networks for User Response Prediction (PNN) 点击预估模型,PNN 结构网络相对传统结构的 Embedding+MLP(Multi-layer Perceptron) 点击预估模型,在 Embedding 层后增加了 Product Layer(特征乘积层),以捕捉基于 Field 的二阶特征相关性。并定义了Inner Product,Outer Product等多种Product的操作捕捉不同的交叉信息,增强了模型表征不同数据模式的能力 。
MLP有对特征进行高阶交叉的作用,但是MLP的特征交叉的能力是比较弱的,这也是为什么很多深度学习点击预估模型加入 Product Layer 的原因。
补充一个小问题:为什么MLP有对特征进行高阶交叉的作用?
答:因为**函数的存在,为MLP提供了非线性拟合能力。特征加权求和的结果,通过sigmoid、tanh等**函数之后,与其他神经元的输出进行进一步的混合,再通过下一层神经元的**函数增加非线性。经过层层神经网络处理后,使MLP具备了特征交叉的能力,甚至在N层之后,就具备了拟合任意函数的能力。
2. PNN 模型结构
PNN 网络结构图如图 1 所示。接下来介绍一下PNN模型的网络结构。
图1 PNN网络结构图
输入层:多个类别 Field 变量,输入变量个数为 ;
Embedding Layer:对 Field 类别做Embedding映射,Embedding维度长度相同,均为 维;
Product Layer:分为 部分(线性部分,保留低阶特征); 部分(又分为Inner Product(内积)、Outer Product(外积) 两种形式,提供非线性/交叉信息);
Hidden Layer 1:将Product Layer的结果输入到第一层隐层,
Hidden Layer 2:将Hidden Layer 1的结果输入到第二层隐层,
输出层:将Hidden Layer 1的结果经过Sigmoid层输出预估值,
3. PNN 模型原理
PNN模型的创新点在于 Product Layer,此处主要介绍该部分的原理部分。Product Layer 可以分成两个部分,一部分是线性部分 ,一部分是非线性部分 。具体形式如下:
3.1 介绍PNN模型 Product Layer 的线性部分
的表达式如下所示:
其中:
(1)
可以认为 就是Embedding层的复制品;
(2)
的长度为 ,表示第一个隐层的输出节点个数,每个元素 是一个标量,每个元素中的权重矩阵 是不同的。计算时 是共享的,为输入Embedding 矩阵。
线性部分的权重矩阵参数情况: 。
3.2 介绍PNN模型 Product Layer 的非线性交叉部分
的表达式如下所示:
其中:
3.2.1 Inner Product(内积) 交叉形式,IPNN
此时定义:
其中:
优化前时间复杂度分析:
此时得到一个
文章对这一结构进行了优化,可以看到
第
优化后时间复杂度分析:
得到
3.2.2 Outer Product(外积) 交叉形式,OPNN
当 Product Layer 使用外积时,
为了进行计算优化,作者引入叠加的概念(sum pooling)。将
此时:
所以,优化后的
优化后时间复杂度分析:
那么OPNN的时间复杂度由
好了,本文主要内容 Product Layer 介绍到此结束。
参考:
Product-based Neural Networks for User Response Prediction (https://arxiv.org/pdf/1611.00144.pdf)
欢迎加入我们,一起交流学习!