Introduction
Memorization记忆能力(Wide):
可以简单定义为学习item和features的共同出现频率以及在历史数据中的协同关系。
Generalization泛化能力(Deep):
可以简单认为是基于相关关系的传递性去发掘在历史没出现过或者很少出现新的特征组合。
Wide & Deep Learning
Wide部分
Wide部分是形式为
y
=
w
T
x
+
b
y=\boldsymbol w^T\boldsymbol x+b
y=wTx+b
的广义线性模型。
其中(向量默认为列向量):
- y \boldsymbol y y为预测值
- x = [ x 1 , x 2 , . . . , x d ] x = [x_1,x_2,...,x_d] x=[x1,x2,...,xd]为特征向量
- w = [ w 1 , w 2 , . . . , w d ] w = [w_1,w_2,...,w_d] w=[w1,w2,...,wd]为模型参数
- b b b为偏置项
特征集合包括原始特征值以及经过转换(tranformed)后的特征(特征既可以是连续的,也可以是稀疏的),其中最为重要的就是cross-product transformation。
定义:
ϕ
k
(
x
)
=
∏
i
=
1
d
x
i
c
k
i
c
k
i
∈
{
0
,
1
}
\phi_k(\boldsymbol x) = \prod_{i=1}^dx_i^{c_{ki}}\quad c_{ki}\in \{0,1\}
ϕk(x)=i=1∏dxickicki∈{0,1}
其中
c
k
i
c_{ki}
cki是一个布尔值,当第i个特征是第k个tranformation的"一部分"(part of)时为1,否则为0。
这个看起来有些复杂的式子可以简单理解为one-hot特征之后进行组合而来的新特征,transformation ϕ k \phi_k ϕk及其所用到的原始特征都是我们自己定义的,只不过组合的方式是将特征值进行类乘。
cross-product transformation只用于在二值(稀疏)特征中学习组合特征,并为模型增加非线性。
Deep部分
Deep部分为一个前馈神经网络,主要作用就是E mbedding(从稀疏高维的categorical features嵌入(Embedding)到一个低维实数域的向量)。Embedding向量维度多数在[10,100]区间内。
隐藏层(hidden layer)的计算表达式:
a
(
l
+
1
)
=
f
(
W
(
l
)
a
(
l
)
+
b
(
l
)
)
a^(l+1) = f(W^{(l)}a^{(l)}+b^{(l)})
a(l+1)=f(W(l)a(l)+b(l))
其中:
l
l
l为隐藏层序号,
f
f
f为激活函数(通常使用ReLUs)
W
(
l
)
W^{(l)}
W(l)、
a
(
l
)
a^{(l)}
a(l)、
b
(
l
)
b^{(l)}
b(l)为l层的参数、输入、偏置。
Wide & Deep 联合训练
对Wide和Deep部分所输出的对数几率进行加权求和作为prediction,并fed到logistic损失函数中进行训练。
原论文中使用FTRL+L1正则作为Wide部分的优化器,使用AdaGrad作为Deep部分的优化器。
Wide & Deep融合后图示如上图,数学表达如下:
P
(
Y
=
1
∣
x
)
=
σ
(
w
w
i
d
e
T
[
x
,
ϕ
(
x
)
+
w
d
e
e
p
T
a
(
l
f
)
+
b
]
)
P(Y=1|x) = \sigma(\boldsymbol w_{wide}^T[\boldsymbol x,\phi(\boldsymbol x)+\boldsymbol w_{deep}^Ta^{(l_f)}+b])
P(Y=1∣x)=σ(wwideT[x,ϕ(x)+wdeepTa(lf)+b])
其中:
Y
Y
Y为二值标签,
σ
(
⋅
)
\sigma(·)
σ(⋅)为sigmoid函数,
ϕ
(
x
)
\phi(\boldsymbol x)
ϕ(x)为对原始特征
x
x
x的cross-product transformation,
b
b
b为偏置项,
w
w
i
d
e
\boldsymbol w_{wide}
wwide为Wide部分权重,
w
d
e
e
p
\boldsymbol w_{deep}
wdeep为应用到最后激活层
a
(
l
f
)
a^{(l_f)}
a(lf)的权重。