理解ONN(Operation-aware Neural Networks for user response)

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

The architecture of the FFM model.

3.2 Base Model

深度学习引入推荐系统之后,深度学习的优势在于可以获取到特征的高维信息,一般的过程可以概括成以下三步:

  1. 一个embedding layer,负责将离散的feature映射到更低维的表示形式。
    • 对于一个样本的特征表示为f=[x_0, x_1, \ldots x_m]
    • embedding矩阵表示为M = [V^0, V^1, \ldots V^m]
    • 两者作积得到的这一步的输出概括为:
      e = [V^0x_0, V^1x_1, \ldots V^mx_m]
      其中的V^i是中对应ith feature的那一列,x_iith feature的one hot表示。
  2. 对于上一步得到的结果进行operation,这一步可以表示为f = [o_1(e), o_2(e), \ldots o_l(e)]o_i是表示ith operation,这个operation可以是两个向量内积或者外积,在多数的结构中,这个操作只是一个copy操作,暨不进行任何的操作。这种在embedding向量上进行的操作可以看成是一种初期的特种工程。
  3. 第二步得到的结果输入MLP(multi-layer perceptron),最终输出\hat{y} = \sigma(\Phi(f))\sigma是sigmoid函数,\Phi是MLP的非线性转换

3.3 PNN

The architecture of the PNN model.

4 ONN结构

The architecture of the ONN model.

可以看到最大的特点在于对于 i th feature的one-hot表示转换为embedding后拥有多个表示,在进行不同的operation时,采取了不同的表示形式。

4.1 Operation-aware embedding

下面说一下对于 i th feature的具体转换过程。

The structures of the normal embedding layer and the operation-aware embedding layer.

在上图的左边部分中, 是feature的转换后的embedding, 代表对应 th feature的embedding matrix,这样得到的 就只会有一种表示。
而在ONN改进后的右边部分中,设置了 ,其中的 表示对于 th feature的 项操作。这里要注意的是同一种操作比如求内积, 和 求内积与 和 求内积是不一样的操作。
最终的到的 就是一个矩阵,,在进行 项操作时,取出 表示进行操作。
为了表示在 th feature上进行操作 时要使用的 表示定义为:

4.2 Incipient feature extraction layer

在上一个的基础上,来看一下对于一个样例 f的最终输出形式是什么。
f = [e_f, i_f]
其中第一项e_ff的所有特征的embedding vector,表示为:
e_f=[e_1^{\Gamma(o(c, 1), 1)}, e_2^{\Gamma(o(c, 2), 2)}, \dots, e_m^{\Gamma(o(c, m), m)}]
公式中的o(c, i)是指对ith feature进行copy操作
第二项i_f是表示feature interactions,具体的说是两个feature embedding vector的内积。只求两个向量间的内积是再多的就过于复杂,求内积是在之前的实验中证明了内积效果比外积要好(Qu et al., 2016)。公式为:
i_f=[p_{1, 2}, p_{1, 3}, \dots, p_{m-1, m}]
p_{i, j}是指在ith feature和jth feature之间求内积,p_{i, j}=\big \langle e_i^{\Gamma(o(p, i, j), i)}, e_j^{\Gamma(o(p, i, j), j)} \big \rangle

4.3 MLP

两个hidden layer,最后一个sigmoid输出
两个hidden layer的输出表示为:
l_1=BN(relu(W_1\hat{f}+b_1))
loss函数是交叉熵

5 与其它模型(PNN, FFM)的关系

  • 回顾一下PNN模型的结构,和ONN的主要区别在于embedding layer,ONN实现了operation aware,即一个feature有了多种embedding vector,这样对于不同操作可以选择不同的feature表示。这样在训练时就得到了更好的特征表示。
  • 和FFM模型最大的区别在于ONN加入了MLP,加入了深层网络后,深度网络能够更好的挖掘特征深层次的依赖,能够学习到复杂的特征依赖关系

6 实验

6.1 数据集

  1. Criteo: 包含45million条用户点击广告的记录,使用了最后5million作为测试集(8:1),数据集中包括13个连续特征和26个分类特征。通过discrete(x)=\lfloor 2 \times log(x) \rfloor将连续量离散化
  2. 腾讯广告数据集: 包含了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依旧取得了最好的效果。


Model convergence curves on the Criteo dataset.

从上面的收敛趋势可以看到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这种想法可以考虑应用在其它地方
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容