1 背景
ONN(Operation-aware Neural Networks for user response)是2018年腾讯广告算法比赛最优的推荐算法。主要任务是预测用户点击推荐广告的概率(click-through rate, CTR)或者进行其它期望的行为(conversion rate, CVR)。
2 创新点
2.1 针对的问题
目前的大多数的模型对于一个feature上的embedding vector进行不同的operation都是使用相同的表示。但是对于不同的操作,一个feature的最好表示不总是相同的(Juan et al., 2016; Rendle & Schmidt-Thieme, 2010)
2.2 解决思路
在基本的通用的Base model上,将PNN与FFM结合起来,实现了在embedding层的每一个feature对于不同operation(内积或者外积)有不同的表示,之后进入MLP,得到更好的预测结果
3. 相关的模型
3.1 FFM
3.2 Base Model
深度学习引入推荐系统之后,深度学习的优势在于可以获取到特征的高维信息,一般的过程可以概括成以下三步:
- 一个embedding layer,负责将离散的feature映射到更低维的表示形式。
- 对于一个样本的特征表示为
- embedding矩阵表示为
- 两者作积得到的这一步的输出概括为:
其中的是中对应th feature的那一列,是th feature的one hot表示。
- 对于上一步得到的结果进行operation,这一步可以表示为,是表示th operation,这个operation可以是两个向量内积或者外积,在多数的结构中,这个操作只是一个copy操作,暨不进行任何的操作。这种在embedding向量上进行的操作可以看成是一种初期的特种工程。
- 第二步得到的结果输入MLP(multi-layer perceptron),最终输出,是sigmoid函数,是MLP的非线性转换
3.3 PNN
4 ONN结构
可以看到最大的特点在于对于 th feature的one-hot表示转换为embedding后拥有多个表示,在进行不同的operation时,采取了不同的表示形式。
4.1 Operation-aware embedding
下面说一下对于 th feature的具体转换过程。
在上图的左边部分中, 是feature的转换后的embedding, 代表对应 th feature的embedding matrix,这样得到的 就只会有一种表示。
而在ONN改进后的右边部分中,设置了 ,其中的 表示对于 th feature的 项操作。这里要注意的是同一种操作比如求内积, 和 求内积与 和 求内积是不一样的操作。
最终的到的 就是一个矩阵,,在进行 项操作时,取出 表示进行操作。
为了表示在 th feature上进行操作 时要使用的 表示定义为:
4.2 Incipient feature extraction layer
在上一个的基础上,来看一下对于一个样例 的最终输出形式是什么。
其中第一项是的所有特征的embedding vector,表示为:
公式中的是指对th feature进行copy操作
第二项是表示feature interactions,具体的说是两个feature embedding vector的内积。只求两个向量间的内积是再多的就过于复杂,求内积是在之前的实验中证明了内积效果比外积要好(Qu et al., 2016)。公式为:
是指在th feature和th feature之间求内积,
4.3 MLP
两个hidden layer,最后一个sigmoid输出
两个hidden layer的输出表示为:
loss函数是交叉熵
5 与其它模型(PNN, FFM)的关系
- 回顾一下PNN模型的结构,和ONN的主要区别在于embedding layer,ONN实现了operation aware,即一个feature有了多种embedding vector,这样对于不同操作可以选择不同的feature表示。这样在训练时就得到了更好的特征表示。
- 和FFM模型最大的区别在于ONN加入了MLP,加入了深层网络后,深度网络能够更好的挖掘特征深层次的依赖,能够学习到复杂的特征依赖关系
6 实验
6.1 数据集
- Criteo: 包含45million条用户点击广告的记录,使用了最后5million作为测试集(8:1),数据集中包括13个连续特征和26个分类特征。通过将连续量离散化
- 腾讯广告数据集: 包含了14天内app推荐广告的记录,用户信息,广告信息以及安装的app的记录。论文使用了39个分类特征,去掉了最后2天噪声过大的数据,使用前11天数据作为训练,第12天的数据作为数据。最终22million训练集,2million测试集(11:1)
6.2 对比的方面
分别从AUC,cross entropy,pearson‘s R以及root mean squared error在线下,线上以及采用不同的operation来进行试验
6.2.1 Offline-training performance comparison
从上面这两张表格可以看出来的有:
- PNN这些加入了深度网络的模型效果要优于FM, FFM,说明了深层的模型效果是要优于浅层的网络
- FFM优于FM,ONN优于PNN,说明采用了operation aware embedding是优于一般的embedding层的
- PNN,DeepFM,ONN优于了DNN,说明了进行求积的操作是有效的。
6.2.2 Online-training performance comparison
在线上的测试中,每一个测试样例只能够被训练一次,对于FM, PNN这些只有一种表示形式的模型来说,一次epoch就学到比较好的表示是比较难的。ONN依旧取得了最好的效果。
从上面的收敛趋势可以看到FFM,ONN这样使用了aware的模型,logloss收敛速度是由于其它模型的。
6.2.3 Analysis of different operations
默认情况下ONN是使用内积作为operation,论文中就inner-product, outer-product, sub-network, inner+outer-product四种operation进行了比较。
可以看到inner+outer-product获得了最好的结果,但是优势并不明显,考虑到时间和空间复杂性,它并不是一个很好的选择。所以依旧是使用了inner product。
但需要注意的是,sub-network取得的效果也是非常有竞争性的。而且它在Criteo数据集上的AUC指标上取得了很好的效果,这个可以考虑为下一步的研究方向。
7 总结
- 线上测试的结果表明ONN比较适合于线上的环境。
- operation aware这种想法可以考虑应用在其它地方