04 主题模型 - NMF
02 主题模型 - SVD矩阵分解、LSA模型
03 主题模型 - LSA案例
五、NMF
参考:https://www.csie.ntu.edu.tw/~cjlin/papers/pgradnmf.pdf
NTU 台湾科技大学,林轩田教授的团队每年都会带着学生参加数据建模的比赛。其团队的数据算法功底非常扎实,每次比赛的名词也不错。NMF也是他们研究出来的一个成果。
非负矩阵分解(Non-negative Matrix Factorization, NMF)是一种常用的矩阵分解方式,常用于矩阵分解、降维、主题模型等应用场景。
NMF虽然和SVD一样都是矩阵分解,但是NMF不同的是:它的目标希望是将矩阵分解成为两个子矩阵。
在NMF中求解出来的W和H,分别体现的是文本和主题的概率相关度,以及词和主题的概率相关度;
NMF的期望 是找到两个W、H矩阵,使得WH的矩阵乘积结果和对应的原矩阵V对应位置的值相比误差尽可能的小。
损失函数分析损失函数:
在损失函数中,Vij是原始矩阵。W、H是根据原始矩阵分解出的两个矩阵。
Vij - WH ,类似 真实值-预测值 的概念。
NMF 矩阵分解的结果是非负的,所以要求W、H矩阵中的元素 Wia、Hbj 大于等于0;
思考:NMF的损失函数中包含了多少参数?
W矩阵是m×k矩阵,W矩阵是未知的待求解矩阵。
H矩阵是k×m矩阵,H矩阵也是未知的待求解矩阵。
所以NMF的目标函数 中总共包含了mk+kn个参数,可以直接使用梯度下降法或者拟牛顿法来进行求解。
为了防止过拟合,也可以在NMF的目标函数的基础上添加一个正则化项。
PS:为了防止过拟合,所有模型的解决方案都是比较模式化的。如 ||w||11 是L1正则, ||w||22是L2正则,前面都加上了一个系数,分别表示有多少比例用了L1正则,多少比例用了L2正则。
但是当加入L1正则项后,由于没法求解出正常的导函数出来(导函数不是连续的),也就没法使用梯度下降法和拟牛顿法求解参数,此时一般采用坐标轴下降法来进行参数的求解。