推荐系统笔记7-Product-based Neural Networks for User Response Prediction
本文介绍Product-based Neural Networks for User Response Prediction(简称PNN),原文Paper链接。
摘要
本文和上次介绍的FNN一样,针对用户响应问题(如CTR、CVR等)建模,因为这类问题往往是类别型并且存在多个field,所以传统模型只能挖掘较浅的数据模式,且DNN不能直接用来处理高维稀疏输入(因特征空间过大),文章提出通过PNN来学习类别特征的Embedding表示,Product层用来捕获层间类别的交互模式,用更深的全连接层来进一步提取高阶交互特征。
一、介绍
通常再信息检索领域,包括推荐系统,其数据格式通常是多个field的,比如 [Weekday=Tuesday, Gender=Male, City=London] ,通过One-hot编码转换为稀疏数据,一般可通过LR、FM、GBDT来处理并能得到较不错的结果,但是这些模型依赖特征工程;文章指出FNN的弊端:1、FM限制了Embedding的质量;2、“add”操作不足以提取出多个field的交互特征;所以进而提出了通过product来处理交互;
提出PNN模型:1、直接从Embedding开始,而不需要预训练;2、使用product 层基于Embedding来建模交互特征(包括内积和外积);3、进一步通过FC来提取高阶特征模式;
二、DEEP LEARNING FOR CTR ESTIMATION
2.1、Product-based Neural Network**
多个field的特征,如用户信息(City,hour),广告信息(ID,活动ID),除了FNN中提出的不同field做One-hot编码以外,还存在field中的局部依赖性和层级结构,所以作者提出PNN(FM是经过两个特征向量的内积来实现交互的)。接下来作者详细介绍所提出的两种网络Inner Product-based Neural Network (IPNN)和Outer Product-based Neural Network(OPNN) ;
PNN的网络结构如下图所示:
采取从上到下的描述:PNN的输出是一个概率值,,,,其中**函数用的relu,而不是FNN中的tanh,且对于层来说,是线性信号,是二阶信号;
定义内积操作如下:
首先是对于A和B的每个元素对应相乘,然后将结果求和;那么的计算公式为:
也就是说,既保持了原来的线性信号,也提取了二阶信号;
其中是隐层向量,定义了特征交互;其中Embedding向量同FNN定义,损失函数使用交叉熵:
2.2、Inner Product-based Neural Network
本节详细介绍IPNN,其中内积定义为;下面介绍上面的,其中:且上式中应该是对称的(上式中的是N*M维,因为有N个Embedding,且每个Embedding是M维的,所以内积操作产生一个标量);但是这种内积操作会导致复杂度变大,由FM的启发。作者也提出了一种简化的操作;
假设,可以简化为
这也就是SVM中核函数的操作了,为了方便,使用来表示内积操作结果,并且,所以的公式重写为:
由此,大大减少了时间复杂度和空间复杂度;
2.3、Outer Product-based Neural Network
内积和外积的不同的地方在于:内积输出一个标量,而外积输出一个矩阵;外积定义,因此,,因为这种操作的时间复杂度是,过于复杂,所以提出一种叠加思想;
通过元素相乘的叠加,也就是先叠加N个field的Embedding向量,然后做乘法,可以大幅减少时间复杂度,定义为
时间复杂度变为。
2.4、Discussion
和FNN相比,PNN多了一个product层,和FM相比,PNN多了隐层,并且输出不是简单的叠加;在训练部分,可以单独训练FNN或者FM部分作为初始化,然后BP算法应用整个网络,那么至少效果不会差于FNN和FM;
三、EXPERIMENTS
使用Criteo和iPinYou的数据集,并用SGD算法比较了7种模型:LR、FM、FNN、CCPM、IPNN、OPNN、PNN(拼接内积和外积层),正则化部分(L2和Dropout);
实验结果如下图所示:
结果表明PNN提升还是蛮大的;这里介绍一下关于**函数的选择问题,作者进行了对比如下:
从图中看出,好像tanh在某些方面要优于relu,但作者采用的是relu,relu的作用: 1、稀疏的**函数(负数会被丢失);2、有效的梯度传播(缓解梯度消失和梯度爆炸);3、有效的计算(仅有加法、乘法、比较操作);
注:上述图片均来自于原文