矩阵分解方法(主要是非负矩阵分解)–学习笔记

  • Post author:
  • Post category:其他


  1. 非负矩阵分解可用于任何非负评分矩阵,最大的可解释性优势:用户具有指定喜欢某一个item权利,但不具有指定不喜欢某个item的机制。
  2. 隐式反馈可被认为是类似于分类和回归建模中的正未标记学习问题:

    1. 在分类和回归建模中,当已知正类是一个非常小的少数类时,通过将未标记的item视为负类,通常可以得到合理的结果。
    2. 通过将缺少条目设置为0,可以得到很稳健的结果。
    3. 不必要的复杂性总是导致过度拟合,在较小的数据集中尤为显著
  3. 本质:将非负的大矩阵分解成两个非负的小矩阵:V=WH:

    1. H(kXm)中的每一列为V投影到W上得到的向量)
    2. W(nXk)为能直观反应V中数据分布规律的基
    3. V(nXm)为原始矩阵
  4. 对比几种矩阵分解方法的效果差异:

    1. VQ:要求H的每一列只有一个元素为1,其他为0。相当于将m个数据归纳为k个代表,原数据映射即取k个基当中与原向量距离最小的来重新表示,所以VQ的基都是一个完整的数据,是最具代表性的数据。VQ其实就像kmeans,它的基都落在原数据的最具代表性的位置上。
    2. PCA:

      1. 求一组标准正交基,第一个基的方向取原数据方差最大的方向,第二个基在于第一个基正交的所有方向中再取方差最大的,一直取到k个基。所以PCA的基没有直观的物理意义,而且W和H里面的元素都是可正可负的,这就意味着还原时是用W的基加加减减得到的。
      2. PCA的基则是指向四面八方的,相互正交着。
    3. NMF:

      1. 因为约束了非负,所以只准把基相加,不能相减,这就意味着基与基是通过拼接组合来还原原象的。
      2. 所以可以看到NMF用于分解人脸数据的每个基实际上在表示着脸部的某个部件。
      3. NMF比SVD(奇异值分解)块,scikit-learn中NMF的库目前是使用坐标轴下降法来求解的,即在迭代时,一次固定m*k + k*n-1个参数,仅仅最优化一个参数。



版权声明:本文为weixin_45647721原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。