推荐系统(十九)Gate网络:百度GemNN(Gating-Enhanced Multi-Task Neural Networks)
Posted 天泽28
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐系统(十九)Gate网络:百度GemNN(Gating-Enhanced Multi-Task Neural Networks)相关的知识,希望对你有一定的参考价值。
推荐系统(十九)Gate网络(二):百度GemNN(Gating-Enhanced Multi-Task Neural Networks)
推荐系统系列博客:
- 推荐系统(一)推荐系统整体概览
- 推荐系统(二)GBDT+LR模型
- 推荐系统(三)Factorization Machines(FM)
- 推荐系统(四)Field-aware Factorization Machines(FFM)
- 推荐系统(五)wide&deep
- 推荐系统(六)Deep & Cross Network(DCN)
- 推荐系统(七)xDeepFM模型
- 推荐系统(八)FNN模型(FM+MLP=FNN)
- 推荐系统(九)PNN模型(Product-based Neural Networks)
- 推荐系统(十)DeepFM模型
- 推荐系统(十一)阿里深度兴趣网络(一):DIN模型(Deep Interest Network)
- 推荐系统(十二)阿里深度兴趣网络(二):DIEN模型(Deep Interest Evolution Network)
- 推荐系统(十三)阿里深度兴趣网络(三):DSIN模型(Deep Session Interest Network)
- 推荐系统(十四)多任务学习:阿里ESMM(完整空间多任务模型)
- 推荐系统(十五)多任务学习:谷歌MMoE(Multi-gate Mixture-of-Experts )
- 推荐系统(十六)多任务学习:腾讯PLE模型(Progressive Layered Extraction model)
- 推荐系统(十七)双塔模型:微软DSSM模型(Deep Structured Semantic Models)
- 推荐系统(十八)Gate网络(一):新浪微博GateNet
我司这篇文章老实讲,创新点是弱了点,这应该也是被SIGIR’21录用为短文的原因吧。个人认为这篇文章最让人感兴趣的反而不是这个模型结构,而是文章中笔墨不多的凤巢目前模型架构的一些trick,然而遗憾的是不知道是因为短文篇幅受限的原因还是不想过多描述的原因(大概率是这个原因),这部分没有被过多的介绍。
一、GemNN模型中Gate
关于GemNN中gate如图1所示,他这里有三个显著的特点:1. gate的位置在embedding层到MLP全连接层之间。2. 他没有对每个feature单独做gate,而是把所有的feature拼接(concatenation)后,再做gate。3. gate的方式是bit-wise的。
关于第2个特点,可以形式化的来表述下。假设用
E
=
[
e
1
,
e
2
,
.
.
.
,
e
n
]
T
E = [e_1, e_2,...,e_n]^T
E=[e1,e2,...,en]T来表示concatenated embeddings,
n
n
n表示特征的数量,
e
i
∈
R
d
e_i \\in R^d
ei∈Rd表示每个field(比如『性别』作为一个feature,那么『男』就是为性别这个feature的一个field,同样『女』也是为一个filed)的embedding维度为
d
d
d维。然后对
E
E
E以bit-wise方式做gate,
G
=
[
g
1
,
g
2
,
.
.
.
,
g
n
]
T
=
a
c
t
(
W
∗
E
+
b
)
G=[g_1, g_2,...,g_n]^T=act(W*E +b)
G=[g1,g2,...,gn]T=act(W∗E+b),
a
c
t
(
⋅
)
act(\\cdot)
act(⋅)为激活函数,
W
W
W的维度为
R
(
n
d
)
×
(
n
d
)
R^(nd)\\times(nd)
R(nd)×(nd)。这个地方,
W
W
W的维度需要好好理解下,我再来上个公式帮助大家理解:
[
g
1
g
2
.
.
.
g
n
]
=
a
c
t
(
[
w
1
,
1
w
1
,
2
.
.
.
w
1
,
n
d
w
2
,
1
w
2
,
2
.
.
.
w
2
,
n
d
.
.
.
.
.
.
.
.
.
.
.
.
w
n
d
,
1
w
n
d
,
2
.
.
.
w
n
d
,
n
d
]
⋅
[
e
1
,
1
e
1
,
2
.
.
.
e
1
,
d
.
.
.
e
n
,
1
e
n
,
2
.
.
.
e
n
,
d
]
+
[
b
1
b
2
.
.
.
b
n
d
]
)
(1)
\\beginbmatrix g_1\\\\ g_2\\\\ ... \\\\ g_n \\\\ \\endbmatrix = act(\\beginbmatrix w_1,1& w_1,2& ...&w_1,nd \\\\ w_2,1& w_2,2& ...&w_2,nd \\\\ ...& ...& ...& ...\\\\ w_nd,1& w_nd,2& ...&w_nd,nd \\\\ \\endbmatrix\\cdot \\beginbmatrix e_1,1\\\\ e_1,2\\\\ ... \\\\ e_1,d \\\\ ...\\\\ e_n,1\\\\ e_n,2\\\\ ... \\\\ e_n,d \\\\ \\endbmatrix + \\beginbmatrix b_1\\\\ b_2\\\\ ... \\\\ b_nd \\\\ \\endbmatrix) \\tag1
⎣⎢⎢⎡g1g2...gn⎦⎥⎥⎤=act(⎣⎢⎢⎡w1,1w2,1...wnd,1w1,2w2,2...wnd,2............w1,ndw2,nd...wnd,nd⎦⎥⎥⎤⋅⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡e1,1e1,2...e1,d...en,1en,2...en,d⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤+⎣⎢⎢⎡b1b2...推荐系统(十九)Gate网络:百度GemNN(Gating-Enhanced Multi-Task Neural Networks)
推荐系统(十五)多任务学习:谷歌MMoE(Multi-gate Mixture-of-Experts )