半非负矩阵分解(Semi-NMF 或 Semi-Nonnegative Matrix Factorization)是一种矩阵分解方法,它是非负矩阵分解(NMF)的扩展。
NMF要求分解出的所有矩阵元素都是非负的,而Semi-NMF只对分解矩阵之一(通常是编码矩阵V施加非负约束,而对另一矩阵(通常是基矩阵U)和原始数据矩阵X没有非负性的限制。这使得Semi-NMF能够处理含有负值的数据集,而不仅仅是非负数据集。

半非负矩阵分解的公式

给定一个数据矩阵 什么是半非负矩阵分解?_矩阵分解,Semi-NMF的目标是找到一个基矩阵 什么是半非负矩阵分解?_矩阵分解_02 和一个非负编码矩阵 什么是半非负矩阵分解?_迭代_03,使得 什么是半非负矩阵分解?_线性代数_04 能够逼近 什么是半非负矩阵分解?_矩阵_05,其中 什么是半非负矩阵分解?_数据_06

标准的Semi-NMF的目标函数可以表示为:

什么是半非负矩阵分解?_线性代数_07

其中,什么是半非负矩阵分解?_迭代_08 表示Frobenius范数,什么是半非负矩阵分解?_迭代_03表示 什么是半非负矩阵分解?_矩阵_10所有元素非负。

半非负矩阵分解的优化

为了优化上述目标函数,可以采用迭代更新规则,其中(U)和(V)交替更新。当(V)固定时,(U)可以通过求解最小二乘问题来更新,反之亦然。更新规则可以类似于NMF中的更新规则,但在Semi-NMF中仅保持(V)的非负性。

示例

假设我们有以下数据矩阵(X):

什么是半非负矩阵分解?_矩阵_11

我们想要对其进行半非负矩阵分解,假设(k=2)。我们初始化(U)和(V)(这里(V)需要初始化为非负值),然后根据Semi-NMF的更新规则迭代更新(U)和(V),直到收敛或达到最大迭代次数

最终,我们得到(U)和(V),它们的乘积 什么是半非负矩阵分解?_线性代数_04

例如,我们可能得到如下(U)和(V):

什么是半非负矩阵分解?_矩阵分解_13

注意(V)中的所有元素都是非负的,而(U)可以包含负数。然后 什么是半非负矩阵分解?_线性代数_04

结论

半非负矩阵分解是一种强大的工具,它扩展了NMF的能力,使之能够处理更广泛的数据类型包括含有负值的数据

通过只对编码矩阵施加非负约束,Semi-NMF在保持NMF的基于部分(parts-based)表示的优点的同时,增加了其应用范围。