3.1 深度学习在推荐系统中的应用
1.AutoRec模型
利用协同过滤中的共现矩阵完成物品向量(用户向量)的自编码,利用自编码对于评分进行预测。
损失函数:
m
i
n
θ
∑
i
=
1
n
∥
r
i
−
h
(
r
i
;
θ
)
∥
o
2
+
λ
2
(
∥
W
∥
F
2
+
∥
V
∥
F
2
)
\underset{\theta}{min}\sum_{i=1}^n \parallel r^i - h(r^i;\theta) \parallel _o^2 + \frac{\lambda}{2}(\parallel W \parallel _F^2 + \parallel V \parallel_F^2)
θmini=1∑n∥ri−h(ri;θ)∥o2+2λ(∥W∥F2+∥V∥F2)
2.Deep Crossing 模型
不同层解决的问题:
- embedding layer ——> 离散向量的稠密化
- stacking layer ——> 特征拼接
- ResUnits ——> 特征深度交叉
- scoring layer ——> 打分层
3.NeuralCF 模型
从深度学习看矩阵分解,一般处于欠拟合状态。
广义矩阵分解模型( Generalized Matrix Factorization)—— 互操作概念
传统的矩阵分解互操作为内积,可以使用多层网络定义不同的互操作。
NeuralCF模型整合两种互操作,模型结构如下图所示:
4.PNN模型
引入了多种特征,定义了多种特征交叉方式:
- 内积
g i n n e r ( f i , f j ) = f i T f j g_{inner}(f_i, f_j) = f_i^Tf_j ginner(fi,fj)=fiTfj
- 外积(不是叉乘)
g o u t e r ( f i , f j ) = f i f j T g_{outer}(f_i, f_j) = f_i f_j^T gouter(fi,fj)=fifjT
- 减少特征组合爆炸,求外积特征矩阵平均。
等价于平均池化后在进行外积互操作。
KaTeX parse error: Got function '\sum' with no arguments as subscript at position 93: …N f_if_j^T = f_\̲s̲u̲m̲ ̲f_\sum^T
模型结构:z部分代表线性操作,p部分代表乘积操作部分
![](https://i-blog.csdnimg.cn/blog_migrate/b22ce50e5a6f6e625799b49c0213d4e8.png)
5.Wide&Deep模型
google团队2016年提出
- Wide — 记忆能力:浅层网络,利用历史数据中物品特征的共现频率
- Deep — 泛化能力:深层网络,逐渐忘记具体特征,抓取特征模式
![](https://i-blog.csdnimg.cn/blog_migrate/f3f14d67eb097e7ed3d6e9c053946cce.jpeg)
-
模型wide部分选择的特征:可以清楚察觉有共现等规律
-
wide部分,采用的特征函数为“交叉积变换”
Φ k ( x ) = ∏ i = 1 d x i c k i , c k i ∈ { 0 , 1 } \Phi_k(x) = \prod_{i=1}^d x_i^{c_ki} , c_{ki} \in \{0,1\} Φk(x)=i=1∏dxicki,cki∈{0,1} -
Google play例子,wide部分为已安装的应用、曝光应用
6.Deep&Cross模型
- 改进wide网络部分,增强模型规律挖掘能力。
- Cross网络自动特征交叉,避免人工理解特征组合
- 每一层都有第一层特征 x 0 x_0 x0
x l + 1 = x 0 x l T W l + b l + x l x_{l+1} = x_0 x_l^TW_l + b_l + x_l xl+1=x0xlTWl+bl+xl
![](https://i-blog.csdnimg.cn/blog_migrate/ca456ddc10dcd8a8a9786006e3b9ca4a.png)
7.FM 与深度学习的结合
有针对性地加入特征交叉操作,使模型具有更强的非线性特征表达能力。
原始FM模型:
y
F
M
(
x
)
=
s
i
g
m
o
i
d
(
w
0
+
∑
i
=
1
N
w
i
x
i
+
∑
i
=
1
N
∑
j
=
i
+
1
N
<
v
i
,
v
j
>
x
i
x
j
)
y_{FM}(x) = sigmoid(w_0 + \sum_{i=1}^N w_i x_i + \sum_{i=1}^N \sum_{j=i+1}^N <v_i, v_j> x_i x_j)
yFM(x)=sigmoid(w0+i=1∑Nwixi+i=1∑Nj=i+1∑N<vi,vj>xixj)
1) FNN —— 用FM的隐向量对embedding层初始化
![](https://i-blog.csdnimg.cn/blog_migrate/c6c15fe5a9bb7e19072b2e032041bfbf.png)
使用 w,v初始化模型embedding层参数
- DeepFM 模型 —— 采用 FM 替换 wide 模型部分
![](https://i-blog.csdnimg.cn/blog_migrate/24a2b40f8e990c31025532c8d511e175.png)
- NFM 模型
用一个表达能力更强的函数(神经网络拟合任何函数)替代原始FM中的二阶隐向量内积部分。
主要引入了特征交叉池化层的具体操作:
f
B
I
(
V
x
)
=
∑
i
=
1
n
∑
j
=
i
+
1
n
(
x
i
v
i
)
⊙
(
x
j
v
j
)
f_{BI}(V_x) = \sum_{i=1}^n \sum_{j=i+1}^n (x_i v_i) \odot (x_j v_j)
fBI(Vx)=i=1∑nj=i+1∑n(xivi)⊙(xjvj)
图中仅包括,原始模型的二阶部分
![](https://i-blog.csdnimg.cn/blog_migrate/23a6f9b331a6ec48a44f0fed8896df34.jpeg)
8.注意力机制的应用
1)AFM模型
从模型结构改进的尝试
模型结构图:
![](https://i-blog.csdnimg.cn/blog_migrate/6d28c6b29a53e2733fcfd502f7359255.png)
AFM特征交叉方式:元素积操作
加入注意力得分后的池化过程:
f
A
t
t
(
f
P
I
(
ϵ
)
)
=
∑
(
i
,
j
)
∈
R
x
a
i
j
(
v
i
⊙
v
j
)
x
i
x
j
f_{Att}(f_{PI}(\epsilon)) = \sum_{(i,j) \in R_x} a_{ij} (v_i \odot v_j) x_i x_j
fAtt(fPI(ϵ))=(i,j)∈Rx∑aij(vi⊙vj)xixj
注意力计算方式:
e
i
j
=
h
T
R
e
L
U
(
W
(
v
i
⊙
v
j
)
x
i
x
j
+
b
)
a
i
j
=
e
x
p
(
e
i
j
)
∑
(
i
j
)
∈
R
x
e
x
p
(
e
i
j
)
e_{ij} = h^T ReLU(W(v_i \odot v_j) x_i x_j + b) \\ a_{ij} = \frac{exp(e_{ij})}{\sum_{(ij) \in R_x}exp(e_{ij})}
eij=hTReLU(W(vi⊙vj)xixj+b)aij=∑(ij)∈Rxexp(eij)exp(eij)
2) DIN —— 阿里巴巴注意力模型
模型结构:
![](https://i-blog.csdnimg.cn/blog_migrate/117f28db5ae2a3365564c2357e170c34.png)
注意力计算方式:图中右上角所示,元素减 拼接原始向量 送入全连接网络。
V
u
=
f
(
V
a
)
=
∑
i
=
1
N
w
i
V
i
=
∑
i
=
1
N
g
(
V
i
,
V
a
)
V
i
V_u = f(V_a) = \sum_{i=1}^N w_i V_i = \sum_{i=1}^N g(V_i, V_a) V_i
Vu=f(Va)=i=1∑NwiVi=i=1∑Ng(Vi,Va)Vi
其中,
V
u
V_u
Vu为使用历史浏览商品代表的用户变量;
V
a
V_a
Va为候选广告商品或者店铺;
V
i
V_i
Vi是用户浏览历史商品店铺。
注意:候选商铺广告(商品)仅与用户商铺(商品)浏览历史计算注意力;
9.序列模型的应用
序列模型用于模拟用户兴趣的变化过程
序列信息考虑全局序列统计概率。
![](https://i-blog.csdnimg.cn/blog_migrate/e8735ac11d6c557b675854a278f90382.jpeg)
分为三层结构:
- 行为序列层:用户浏览序列转化为embedding序列
- 兴趣抽取层:模拟兴趣迁移过程
- 兴趣进化层:增加attention,考虑与目标广告相关性,使用AUGRU
10.其他深度学习
- 阿里巴巴 多模态多目标
- YouTube 基于session的推荐
- Airbnb 使用Embedding技术构建的搜索推荐模型
以上观点均来自《深度学习推荐系统》王喆著