AutoRec
h
(
r
;
θ
)
=
f
(
W
?
g
(
V
r
+
μ
)
+
b
)
h ( \boldsymbol { r } ; \theta ) = f ( \boldsymbol { W } \cdot g ( \boldsymbol { V } \boldsymbol { r } + \mu ) + b )
h(r;θ)=f(W?g(Vr+μ)+b) 损失函数:
min
?
θ
∑
i
=
1
n
∥
r
(
i
)
?
h
(
r
(
i
)
;
θ
)
∥
O
2
+
λ
2
?
(
∥
W
∥
F
2
+
∥
V
∥
F
2
)
\min _ { \theta } \sum _ { i = 1 } ^ { n } \left\| \boldsymbol { r } ^ { ( i ) } - h \left( \boldsymbol { r } ^ { ( i ) } ; \theta \right) \right\| _ { O } ^ { 2 } + \frac { \lambda } { 2 } \cdot \left( \| \boldsymbol { W } \| _ { F } ^ { 2 } + \| \boldsymbol { V } \| _ { F } ^ { 2 } \right)
θmin?i=1∑n?∥∥∥?r(i)?h(r(i);θ)∥∥∥?O2?+2λ??(∥W∥F2?+∥V∥F2?) 其中
r
\boldsymbol {r}
r表示m个用户对它的评分,即共现矩阵中的列向量。 经过自编码器生成的输出向量,不会完全等同于输入向量,也因此具备了一定的缺失维度的预测能力。 以上是I-AutoRec,如果换做用户的评分向量,则得到U-AutoRec。优势在于输入一次就得到目标用户对所有物品的预测评分,劣势在于用户向量的稀疏性会影响模型的结果。
优点:具备一定泛化能力和表达能力 缺点:表达能力不足
Deep Crossing
主要包括4层:Embedding层,Stacking层,Multiple Residual Units层和Scoring层。
- Embedding层:Embedding层的作用是将稀疏的类别型特征转换成稠密的Embedding向量。一般来说Embedding向量的维度应远小于原始的稀疏特征向量。
- Stacking层:拼接Embedding特征。
- Multiple Residual Units层:主要结构是多层感知机,采用了多层残差网络(Multi-Layer Residual Network)
- Scoring层:对于CTR预估这类二分类问题,可用逻辑回归模型。对于多分类,可采用softmax模型。
优点:深度特征交叉
NeuralCF
“多层神经网络+输出层”替代“矩阵分解中的内积”
优点: 1、让用户向量和物品向量进行充分的交叉 2、引入更多的非线性特征
PNN
PNN和Deep Crossing模型的区别在于用Product层替代了Stacking层。分为内积操作和外积操作,但外积操作用于形成矩阵,因此可以考虑池化层来减少训练负担。
PNN在于强调特征向量之间的交叉方式是多样化的。
Wide&Deep
由单层的Wide部分和多层的Deep部分组成的混合模型。其中,Wide作用是让模型具有较强的“记忆能力”;Deep作用是让模型具有“泛化能力”。
“记忆能力”可以被理解为模型直接学习并利用历史数据中物品或者特征的“共现频率”的能力。 “泛化能力”可以被理解为模型传递特征的相关性,以及发掘稀疏甚至从未出现过的稀有特征与最终标签相关性的能力。
Deeo部分的输入是全量的特征向量。Wide部分的输入仅仅是已安装应用和曝光应用两类特征。可以用Cross替代Wide,改进为Deep&Cross,增加特征间的交互。
优点: 能够融合传统模型记忆能力和深度学习模型泛化能力的优势 模型的结构不复杂,容易部署上线
FM与深度学习模型结合
FNN
由于Embedding层的输入极端稀疏化,参数量很大,导致Embedding层的收敛速度很慢,因此用FM的隐向量完成Embedding层初始化。FM数学形式:
y
F
M
(
x
)
:
=
sigmoid
?
(
w
0
+
∑
i
=
1
N
w
i
x
i
+
∑
i
=
1
N
∑
j
=
i
+
1
N
?
v
i
,
v
j
?
x
i
x
j
)
\boldsymbol { y } _ { \mathrm { FM } } ( x ) : = \operatorname { sigmoid } \left( w _ { 0 } + \sum _ { i = 1 } ^ { N } w _ { i } x _ { i } + \sum _ { i = 1 } ^ { N } \sum _ { j = i + 1 } ^ { N } \left\langle \boldsymbol { v } _ { i } , \boldsymbol { v } _ { j } \right\rangle x _ { i } x _ { j } \right)
yFM?(x):=sigmoid(w0?+i=1∑N?wi?xi?+i=1∑N?j=i+1∑N??vi?,vj??xi?xj?)
DeepFM
DeepFM对Wide&Deep模型的改进之处在于,它用FM替代了原来的Wide部分,加强了浅层网络部分特征组合的能力。
NFM
NFM模型的主要思路是用一个表达能力更强的函数替代原FM中二阶隐向量内积部门。
注意力机制
AFM
注意力网络的作用是为每一个交叉特征提供权重,也就是注意力得分。
f
A
t
t
(
f
P
I
(
ε
)
)
=
∑
(
i
,
j
)
∈
R
x
a
i
j
(
v
i
⊙
v
j
)
x
i
x
j
a
i
j
=
′
h
T
ReLU
?
(
W
(
v
i
⊙
v
j
)
x
i
x
j
+
b
)
a
i
j
=
exp
?
(
a
i
j
′
)
∑
(
i
,
j
)
∈
R
x
exp
?
(
a
i
j
′
)
f _ { \mathrm { Att } } \left( f _ { \mathrm { PI } } ( \varepsilon ) \right) = \sum _ { ( i , j ) \in \mathcal { R } _ { x } } a _ { i j } \left( v _ { i } \odot v _ { j } \right) x _ { i } x _ { j } \\ \begin{array} { c } a _ { i j = } ^ { \prime } \boldsymbol { h } ^ { \mathrm { T } } \operatorname { ReLU } \left( \boldsymbol { W } \left( \boldsymbol { v } _ { i } \odot v _ { j } \right) x _ { i } x _ { j } + \boldsymbol { b } \right) \\ a _ { i j } = \frac { \exp \left( a _ { i j } ^ { \prime } \right) } { \sum _ { ( i , j ) \in \mathcal { R } _ { x } } \exp \left( a _ { i j } ^ { \prime } \right) } \end{array}
fAtt?(fPI?(ε))=(i,j)∈Rx?∑?aij?(vi?⊙vj?)xi?xj?aij=′?hTReLU(W(vi?⊙vj?)xi?xj?+b)aij?=∑(i,j)∈Rx??exp(aij′?)exp(aij′?)??
DIN
在计算一个用户是否点击一个广告 a 时,模型的输人特征自然分为两大部分:一部分是用户的特征组,另一部分是候选广告 a 的特征组。利用候选商品和历史行为商品之间的相关性计算出一个权重,这个权重就代表了注意力的强弱。表示如下:
V
u
=
f
(
V
a
)
=
∑
i
=
1
N
w
i
?
V
i
=
∑
i
=
1
N
g
(
V
i
,
V
a
)
?
V
i
\boldsymbol { V } _ { \mathrm { u } } = f \left( \boldsymbol { V } _ { \mathrm { a } } \right) = \sum _ { i = 1 } ^ { N } w _ { i } \cdot \boldsymbol { V } _ { i } = \sum _ { i = 1 } ^ { N } g \left( \boldsymbol { V } _ { i } , \boldsymbol { V } _ { \mathrm { a } } \right) \cdot \boldsymbol { V } _ { \boldsymbol { i } }
Vu?=f(Va?)=i=1∑N?wi??Vi?=i=1∑N?g(Vi?,Va?)?Vi? 其中,
V
u
V_u
Vu?是用户的 Embedding 向量,
V
a
V_a
Va?是候选广告商品的 Embedding 向量,
V
I
V_I
VI?是用户
u
u
u的第
i
i
i次行为的 Embedding 向量。这里用户的行为就是浏览商品或店铺,因此行为的 Embedding 向量就是那次浏览的商品或店铺的 Embedding 向量。
因为加入了注意力机制,所以
V
u
V_u
Vu?从过去
V
i
V_i
Vi?的加和变成了
V
i
V_i
Vi?的加权和,
V
i
V_i
Vi?的权重
w
i
w_i
wi?就由
V
i
V_i
Vi?与
V
a
V_a
Va?的关系决定,也就是中的
g
(
V
i
,
V
a
)
g(V_i,V_a)
g(Vi?,Va?)即“注意力得分”。
那么,
g
(
V
i
,
V
a
)
g(V_i,V_a)
g(Vi?,Va?)函数到底采用什么形式比较好呢?答案是使用一个注意力激活单元来生成注意力得分。这个注意力激活单元本质上也是一个小的神经网络。
DIEN
(1)它加强了最近行为对下次行为预测的印象。 (2)序列模型能够学习到购买趋势的信息。 兴趣进化网络分为三层,从下至上依次是: (1)行为序列层:其主要作用是把原始的id类行为序列转换成Embedding行为序列。 (2)兴趣抽取层:其主要作用是通过模拟用户兴趣迁移过程,抽取用户兴趣。 (3)兴趣进化层:其主要作用是通过在兴趣抽取层基础上加入注意力机制,模拟与当前目标广告相关的兴趣进化过程。
总结
|