e2=(rij−r^ij)2=(rij−∑l=1kpil×qlj)2
e
2
=
(
r
i
j
−
r
^
i
j
)
2
=
(
r
i
j
−
∑
l
=
1
k
p
i
l
×
q
l
j
)
2
另外我们使用
L2
L
2
正则化,
L2=∑l=1k(p2il+q2lj)
L
2
=
∑
l
=
1
k
(
p
i
l
2
+
q
l
j
2
)
其中
i∈[1,m],j∈[1,n]
i
∈
[
1
,
m
]
,
j
∈
[
1
,
n
]
, k是我们所指定的大小,因此最终的损失函数为,
loss(pil,qlj)=e2+β2L2其中pil,qlj即为分解的两个矩阵中的元素,也就是求解参数
l
o
s
s
(
p
i
l
,
q
l
j
)
=
e
2
+
β
2
L
2
其
中
p
i
l
,
q
l
j
即
为
分
解
的
两
个
矩
阵
中
的
元
素
,
也
就
是
求
解
参
数
接下来我们就可以使用梯度下降算法求解
Pm×k
P
m
×
k
和
Qk×n
Q
k
×
n
∇ploss=∂loss∂pil=−2(rij−r^ij)qlj+βpil=−2eijqlj+βpil
∇
p
l
o
s
s
=
∂
l
o
s
s
∂
p
i
l
=
−
2
(
r
i
j
−
r
^
i
j
)
q
l
j
+
β
p
i
l
=
−
2
e
i
j
q
l
j
+
β
p
i
l
∇qloss=∂loss∂qlj=−2(rij−r^ij)pil+βqlj=−2eijpil+βqlj
∇
q
l
o
s
s
=
∂
l
o
s
s
∂
q
l
j
=
−
2
(
r
i
j
−
r
^
i
j
)
p
i
l
+
β
q
l
j
=
−
2
e
i
j
p
i
l
+
β
q
l
j