推荐系统-重排序-CTR-DCN-CIN-xDeepFM

一个总结
https://www.cnblogs.com/xianbin7/p/10661572.html

特征交叉的 元素级bit-wise VS 向量级vector-wise

元素级别的特征交叉,典型的就是神经网络。向量级特征交叉典型的就是向量点乘。
a=(a_0,a_1,a_2),b=(b_0,b_1,b_2)

Cross_{bit}(a,b)=\sum w_ia_ib_i

Cross_{vec}(a,b)=w \sum a_ib_i
两者区别就是,对于特征交叉来说,从直观上,vector-wise的形式更能理解。而bit-wise则显得更加隐晦。同时,vector-wise会引入更少的参数。

我们的目的是引入更多的交叉特征,至于交叉特征的权重,我们交由模型去学习。但是,有效地提供交叉特征这一步,有很多困难。
FM实现了二阶交叉特征。但是,当涉及更高阶的交叉特征时,就会因为参数太多而乏力。
DNN实现了更高阶的特征交叉,但是,这些特种特征交叉是bitwise的,同样也有参数过多的问题。
现在我们思考这个问题。要实现特征交叉,就必然会面临指数级增长的参数。但是,并不是所有特征交叉都是有用的。如果我们能使用高阶交叉特征,同时又减小参数,那么就需要做一件事---压缩。把高阶特征数量压缩下来。

DCN(Deep&Cross Network )

dcn.png

这里最关键的就是中间左侧黄点框。即cross-network
x_{l+1} = x_0 x_l^T w_l + b_l + x_l
x_1=x_0x_0^Tw_0+b_0+x_0
这里面x_l,w_l,b_l 都是列向量即shape=(n,1)
x_0=(x_{01},x_{02},...,x_{0n})^T
\begin{alignedat}{2} x_1&=x_0x_0^Tw_0+b_0+x_0\\ &=\begin{bmatrix} x_{01}x_{01} &x_{01}x_{02} &... &x_{01}x_{0n} \\ x_{02}x_{01} &x_{02}x_{02} &... &x_{02}x_{0n} \\ ... &... &... &... \\ x_{0n}x_{01} &x_{01}x_{02} &... &x_{0n}x_{0n} \\ \end{bmatrix} \begin{bmatrix} w_{01}\\ w_{02}\\ ...\\ w_{0n} \end{bmatrix} +b_0+x_0 \\ &=\begin{bmatrix} w_{01}x_{01}x_{01}+w_{02}x_{01}x_{02}+...+w_{0n}x_{01}x_{0n}+b_{01}+x_{01} \\ w_{01}x_{02}x_{01}+w_{02}x_{02}x_{02}+...+w_{0n}x_{02}x_{0n}+b_{02}+x_{02} \\ ... \\ w_{01}x_{0n}x_{01}+w_{02}x_{0n}x_{02}+...+w_{0n}x_{0n}x_{0n}+b_{0n}+x_{0n} \end{bmatrix} \\ &=\begin{bmatrix} (w_{01}x_{01}+w_{02}x_{02}+...+w_{0n}x_{0n}+1)x_{01}+b_{01} \\ (w_{01}x_{01}+w_{02}x_{02}+...+w_{0n}x_{0n}+1)x_{02}+b_{02} \\ ... \\ (w_{01}x_{01}+w_{02}x_{02}+...+w_{0n}x_{0n}+1)x_{0n}+b_{0n} \end{bmatrix} \\ &=x_0(x_0^T w_0)+x_0+b_0 \\ &=a^1x_0+b_0 \\ \\ hare\\a^1&=x_0^T w_0+1 \\\\ let\\b_l&=0 \\ \\ x_1&=a^1x_0\\ x_2&=x_0x_1^Tw_1+x_1\\ &=x_0(a^1x_0^Tw_1 ) +a^1x_0 \\ &=x_0(a^1(x_0^Tw_1+1)) \\ let\\a^2&=x_0^Tw_1+1 \\ \text{we get} \\x_2&=a^1a^2x_0\\ ... \\ x_l&=(\prod_{i=1}^{l-1}a^i)x_0 \\ a^l&=x_0^T w_{l-1} +1 \end{alignedat}

这些推导下来,在中间发现确实有特征交叉,但是最后发现,因为a^l是实数,所以最终变成了x_0 的倍数变化。即高阶特征交叉和一阶特征有很大的相关。

这说明DCN虽然可以自如地控制和使用高阶特征交叉,但是在高阶特征交叉方面还是有一定局限性的。同时特征交叉依旧是bitwise的。

CIN 压缩交互网络

一个m*D的矩阵 X^0
m是初始稀疏特征数
D是每一个特征的Embedding维度
X^0就是m个Embedding向量组合
表示未做特征组合的原始向量

X^{k-1}表示做k-1阶特征组合,它有H_{k-1}个D维向量组成
那么
X^{k}是由X^{k-1}X^{0} 以某种形式组合而成的,具体来说
X^{k-1}X^{0} 相当于分别H_{k-1}个和m个D维向量
那么X^{k-1}_1X^{0}_1分别代表第一个k-1阶特征的D维向量和第一个原始向量
定义Z^k_{11}=X^{k-1}_1 \circ X^0_1 = (X^{k-1}_{11}X^0_{11},X^{k-1}_{12}X^0_{12},...,X^{k-1}_{1D}X^0_{1D})
Z^k_{11}也是一个D维向量
这样的话,因为X^{k-1}X^{0} 分别有H_{k-1}个和m个D维向量
那么就有H_{k-1}*mZ^k_{ij}
Z^k就是一个D*m*H_{k-1}的三维矩阵(张量)
而现在的目的是,把这个三维张量压缩成H_{k}*D维的二维向量

CIN.png

Z^k也可以看成m*H_{k-1}个D维向量。我们对这m*H_{k-1}个D维向量用W_{ij}加权求和会得到一个D维向量。
这样,我们设置H_kW分别做加权求和,就能得到H_k个D维向量。这样,就完成了压缩。得到了而X^k

CIN2.jpg

最终得到1阶2阶。。k阶的特征组合,每一阶都有个D维向量。
最后把D维sum成1维,我们就得到了 个数,这些数组成一个向量p
即上图的黄点方框

CIN 结合了CNN的思想。不是把特征的Embedding向量拼接组成一行,而是组成了一个矩阵。特征交叉变成了两个矩阵的操作。这个操作把结果变成了一个3维矩阵。然后在把3维变2维的过程中,使用了卷积层的概念。使用H_l个卷积核每个卷积核可以把一个3维矩阵变成1维向量(长度为D)。在最后一步,使用了pooling层的概念。
CIN实现了vector-wise的高阶特征交叉,同时带有压缩。

xDeepFM

理解了CIN就比较好理解xDeepFM 了


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