非负矩阵分解:交替最小二乘法

Ufu*_*ici 5 matlab matrix linear-algebra matrix-factorization

我正在尝试使用交替最小二乘法来实现 NMF。我只是好奇问题的以下基本实现: 在此输入图像描述

如果我理解正确的话,我们可以在没有非负性约束的情况下求解该伪代码中所述的每个矩阵方程,使用封闭形式解并将负项设置为 0,以强力方式。这种理解正确吗?这是更复杂、受限的优化问题(例如我们使用投影梯度下降)的基本替代方案吗?更重要的是,如果按照这种基本方式实现,算法还有什么实用价值吗?我想使用 NMF 来减少变量,并且使用 NMF 很重要,因为我的数据根据​​定义是非负的。我正在寻找对此的意见。

jti*_*usj 3

  1. 如果我理解正确的话,我们可以在没有非负性约束的情况下求解该伪代码中所述的每个矩阵方程,使用封闭形式解并将负项设置为 0,以强力方式。这种理解正确吗?是的。

  2. 这是更复杂、受限的优化问题(例如我们使用投影梯度下降)的基本替代方案吗?——某种意义上来说,是的。这确实是非负因式分解的一种快速方法。然而,与NMF相关的文章会指出,这种方法虽然速度快,但并不能保证非负因子的收敛。更好的实现是 NMF 的分层交替最小二乘法 (HALS-NMF)。查看这篇论文,了解一些流行的 NMF 算法的比较:http://www.cc.gatech.edu/~hpark/papers/jgo.pdf

  3. 更重要的是,如果按照这种基本方式实现,算法还有什么实用价值吗?根据我的经验,我想说结果不如 HALS 或 BPP(块枢转原理)。