推荐系统论文阅读(二十一)-DeepFM升级版xDeepFM

论文:


地址:https://arxiv.org/pdf/1803.05170.pdf

论文题目:《xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems》

为什么要介绍这篇论文呢,因为面试的时候面试官提到了这篇论文还要我推导公式,但是我自己忘了,太尬了,所以决定来复习下了。。。

一 、背景

在前面的文章里面,我们介绍过DeepFM,在这篇论文中,FM将不同特征进行了自动交叉,如果不用FM的话,就需要工作人员自己进行手工特征交叉任务。对于预测性的系统来说,特征工程起到了至关重要的作用。特征工程中,挖掘交叉特征是至关重要的。交叉特征指的是两个或多个原始特征之间的交叉组合。在广告系统中,CTR是一个重要的评价指标,而在ctr预估任务中,各种特征都是至关重要的,有时候多加一个特征都可以让整个广告的ctr提高一点。

但是在特征有限的系统中,该如何去挖掘那些潜在交叉特征呢?

挖掘交叉特征主要依靠人工提取,这种做法主要有以下三种缺点:

1)重要的特征都是与应用场景息息相关的,针对每一种应用场景,算法工程师们都需要首先花费大量时间和精力深入了解数据的规律之后才能设计、提取出高效的高阶交叉特征,因此人力成本高昂;

2)原始数据中往往包含大量稀疏的特征,例如用户和物品的ID,交叉特征的维度空间是原始特征维度的乘积,因此很容易带来维度灾难的问题;

3)人工提取的交叉特征无法泛化到未曾在训练样本中出现过的模式中。

基于以上的分析,我们就必须要设计一种能自动进行特征交叉任务的网络来替代手工制作的交叉特征,让模型的泛化能力更强。在deepfm,dcn中都有自动特征交叉的模块,值得一提的是,在这些模型中,特种的交叉是发生在bit级别的,也就是bit wise级别的特征交叉。什么是bit wise级别的特征交叉呢?

举个例子,比如特征1 = (a,b,c),特征2 = (d,e,f)

那么他们之间的bit wise的特征交叉就是f(w1*a*d, w2*b*e, w3*c*f)比如在DCN中:

可以看到在Cross Network中,特征向量的交叉是bit wise的交叉方式,就是每个level的x都和x0进行bit wise级别的交叉。

另一种特征交叉的方式有vector wise的交叉方式,这种交叉方式的表述为f(w(a*d, b*e,c*f)),可以看到这两个特征是先进行内积操作后才和权值矩阵进行运算的,所以是vector wise的交叉方式。

论文中还提到了两个定义:

explicitly VS implicitly

显式的特征交互和隐式的特征交互。以两个特征为例xi和xj,在经过一系列变换后,我们可以表示成 wij * (xi * xj)的形式,就可以认为是显式特征交互,否则的话,是隐式的特征交互。

二、模型

老规矩,先上模型:

先看图c,xdeepfm是通过一个CIN将得到的向量concat后送到DNN中做ctr预估,这篇论文的关键就是整个CIN了,CIN全称是Compressed Interaction Network,下面来详细介绍下CIN是怎么做的。

2.1 Compressed Interaction Network

为了实现自动学习显式的高阶特征交互,同时使得交互发生在向量级上,文中首先提出了一种新的名为压缩交互网络(Compressed Interaction Network,简称CIN)的神经模型。在CIN中,隐向量是一个单元对象,因此我们将输入的原特征和神经网络中的隐层都分别组织成一个矩阵,记为X0和 Xk。其中,每个Xk都是从上一个的Xk-1推导而来的:

ps:面试的时候这个公式没推导清楚,还是好好讲一下这个公式的计算过程吧。。

CIN的计算分为两个步骤,第一个是利用x^0x^k 来计算z^{k+1}

我们看这个图:

我们要弄明白z^{k+1} 的计算过程,就要先知道几个概念。

inner product:(a,b,c) . (1,2,3) = (1*a,2*b,3*c)

outer product: (a,b,c)  。(1,2,3) =[ [ 1a,2a,3a] , [1b,2b,3b], [1c,2c,3c] ]

弄清楚这两个概念后就可以来看看这个的计算过程了。

首先,我们明确计算方向,我们是沿着D这个方向来计算外积的,所以计算出来的z的深度是D,这个是没有问题的。那么在沿着D上面的截面的计算方式就是我们上面说的outer product的方式来计算了。注意,计算D上每一个维度的切面的时候都是每个维度上单独计算的,举个例子:

x^k  = [a,b,c], [1,2,3], [d,e,f]

x^0  = [x,y,z], [4,5,6]

那么z的计算就为(先忽略w,后面再介绍w的使用)

我们沿着D这个维度,需要计算三个切面。

第一个切面:需要计算(a,1,d) 和(x,4)的外积:

计算的结果为:[[a*x,1*x,d*x] ,[a*4,1*4,d*4]] ,shape = 2*3

第二个切面:需要计算(b,2,e)和(y,5)的外积:

第三个切面同理,就不列出结果了。

三个切面计算玩,我们就得到了shape为3*2*3的z^k

这个计算过程还可以用一张图形象的表示出来:

这里的计算跟上面是一样的,也可以计算每个d维向量的内积然后拼接成柱状体。对于每个切面,我们对这个切面进行加权求和得到一个值,权值矩阵W也成为卷积核的shape跟切面的shape大小一样,我们总共有D个切面,所以就有D个值,这样,我们就将一个三维向量转化成了一维向量:

在上面这张图中,我们可以清楚的知道,如果有H_{k} 个卷积核w,我们就可以得到H_{k} 个向量,也就是得到了下一个X:X^{k+1} ,这个X的维度为H_{k}*D。

CIN的宏观框架可以总结为下图:

我们总共需要进行k个CIN过程的计算,得到k个一维向量。可以看出,它的特点是,最终学习出的特征交互的阶数是由网络的层数决定的,每一层隐层都通过一个池化操作连接到输出层,从而保证了输出单元可以见到不同阶数的特征交互模式。同时不难看出,CIN的结构与循环神经网络RNN是很类似的,即每一层的状态是由前一层隐层的值与一个额外的输入数据计算所得。不同的是,CIN中不同层的参数是不一样的,而在RNN中是相同的;RNN中每次额外的输入数据是不一样的,而CIN中额外的输入数据是固定的,始终是X0。

CIN计算交叉特征的方式是vector wise的,

x1,h的计算方式为:

x2,h的计算方式为:

xk,h的计算方式:

所以是vector-wise的计算方式。

2.2 Combination with Implicit Networks


这个结构其实跟DeepFM是一样的,左边是交叉特征的计算过程,右边是DNN部分。CTR计算方式为:


损失函数为:


三、总结

我们今天介绍的xDeepFM模型,这个模型跟我们之前学习的DeepFM还有DCN是一个类型的网络,都是交叉特征+DNN组成,在xDeepFM中主要是CIN的推导是重点,只要掌握了CIN的计算过程就知道了这篇论文的核心:vector-wise方式的特征交叉。

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

推荐阅读更多精彩内容