低秩矩阵分解笔记
Notes on Low-rank Matrix Factorization
Yuan Lu,Jie Yang
1.介绍
低秩矩阵分解(MF)是数据科学领域重要的技术。矩阵分解的关键是数据中存在潜在结构,我们通过发现这种潜在结构来获得数据的压缩表示。MF通过将一个原矩阵分解成低秩矩阵为降维、聚类、矩阵补全提供了一种统一的方法。
MF有几个非常好的特性:
1)在解决稀疏矩阵问题时可以通过矩阵分解发现数据的潜在结构
2)矩阵分解拥有优雅的概率解释
3)它可以轻易地结合特定领域的先验知识完成扩展,因此能适应现实世界中的各种问题
4)许多的优化算法能(如随机梯度下降方法)被应用于此去发现一个更好的解决方案。
本文中我们将回顾几种重要的MF变体,包括:
- 基本MF(Basic MF)
- 非负MF(Non-negative MF)
- 正交非负MF(Orthogonal non-negative MF)
我们可以从名字上看出:非负MF和正交非负MF是基本MF在非负和正交约束条件下的变体。这种约束在特定的情况下是非常有用的。在本文的第一部分我们将会介绍这几种模型以及它们的应用场景,并分析它们各自的特点与优化方法。对于优化算法,本文主要使用交替算法,会在后面给出更新规则的推导并给出正确性与收敛性的证明。作为参考,矩阵分解与优化可以分别参考文献[2]和[1]。
通过适当调整MF,我们能超出聚类与矩阵补全问题。本文的第二部分将会使用各种正则化方法将MF拓展到系数矩阵构造方面,并通过引入潜在空间的增强与变换将MF应用到(半)监督学习中。我们将会看到MF不仅是一种实用的模型也是一种灵活的框架,它可以应用在各种预测问题中。
2.理论
这一部分将会介绍低秩分解矩阵的理论,在进行介绍之前,本文将会介绍以下的三种矩阵分解:
- Basic MF
- Non-negative MF
- Orthogonal non-negative MF
2.1Basic MF
我们首先给出Basic MF模型的表达式:
X∈Rm×n
X
∈
R
m
×
n
是将要去近似的数据矩阵,
U∈Rm×k
U
∈
R
m
×
k
,
V∈Rn×k
V
∈
R
n
×
k
是两个低维矩阵(k远小于n).L(U,V)是为了避免过拟合而添加的正则项。正则化在预测权衡偏差与方差是通常是必须的。
注:
过拟合:为了得到一致假设而变得过度严格,表现为训练集表现良好,在训练集以外的数据集上表现差。
过拟合可通过正则化解决:在进行目标函数或代价函数优化时,在其后添加一个正则项。一般有L1正则进和L2正则(L1范数、L2范数)
L1范数:指向量中各个元素绝对值之和
L2范数:指向量中各个元素的平方和再开根号
2.11梯度下降优化
我们将表达式1进行如下实例化:
我们使用F范数是因为模型存在高斯噪声,而且目标函数可以很容易的转换成矩阵迹的表示:
在转换中使用的矩阵计算规则如:
∥A∥F=Tr(ATA)−−−−−−−−√
‖
A
‖
F
=
T
r
(
A
T
A
)
迹有很多不错的特性比如:
Tr(A)=Tr(AT)
T
r
(
A
)
=
T
r
(
A
T
)
和
Tr(AB)=Tr(BA)
T
r
(
A
B
)
=
T
r
(
B
A
)
这些性质经常会被用到如下的派生中。根据迹的导数
∂Tr(AB)∂A=BT
∂
T
r
(
A
B
)
∂
A
=
B
T
和如下的规则:
通过使用这两个导数,可以通过梯度下降算法交替地更新 U,V U , V 。
注意,导数也可以用在矩阵 U,V U , V 初始项中的各个条目上,实际上,这是矩阵计算的原始定义。这样的元素导数在随机优化中特别有用。我们将在下面简要讨论不同的算法方案。
2.12协同过滤算法和其他
对于协同过滤,我们通常将X中的一个评分条目的子集作为训练集,其余的评分条目作为验证集。一个重要的实现策略是;对于训练集中的每个额定条目,因为整行或整列涉及到对额定条目的近似,因此我们更新整行
U
U
和整列。同样的更新机制可以应用于随机算法中。
类似于随机算法,这种类型的更新在每次更新迭代中并没有充分利用数据矩阵。原因在于,整行
U
U
(和整列)不仅与到数据矩阵
X
X
中的单个条目相关,而且一整行(和一整列
VT
V
T
)还会影响
X
X
的一整行(列)。因此为了更快的收敛,我们建议更新矩阵时充分使用数据矩阵
X
X
。
由于目标函数是由的耦合性所决定的非凸函数,我们可以在每次迭代中交替更新
U和V
U
和
V
。在任意的·这种矩阵中,更新应该像所有基于梯度的方法中那样同时执行。注意,我们仍然需要选择一个很小的学习率来确保目标函数是单调递减的。有趣的是,备选优化方案更适合于非负MF,我们将在下面的小节中看到。