【JackDiamond的回答(20票)】:
我不是很确定双向和单向的理解是否有道理,估计是那人的个人理解吧,即使是正确的好像也没什么用。还是尝试重新解释下PCA和factor analysis吧,数据是随机变量
的抽样:
1. PCA的目标是简化数据,特别是当
很大时,希望用
来代替
,其中每一个
都是
的线性组合:
PCA得到的主成分(principal component)
,可以看做是correlation的推广。Correlation描述两个变量之间的协变关系,principal component描述多个变量之间的协变关系。熟知
表示在随机波动时,
和
这两个随机变量“共进退”。那么相应地,例如第一主成分
中前三个分量系数都是
后面都是0,这可以解释成
这三个随机变量在波动时“共进退”,第一主成分描述了这三个变量的“高阶”的“相关性”。
以上解释的是principal components,也就是eigenvectors的interpretation,现在把eigenvalues也考虑进来。PCA的哲学是:看似随机向量
在
维空间里波动,但是由于分量之间的相关性,其实这个随机向量绝大部分的随机波动落在某个
维子空间里。这也就是dataset上PCA的sample version解释:这
个变量上观察到的波动总量接近原来
个变量上的波动总量,或者说这
个变量的“随机性”几乎capture了原来
个变量的“随机性”。PCA给出的eigenvectors,即principal components指出了这
个“主方向”,而eigenvalues分别指出投影在每个主方向上的随机波动总量。
所以不难理解为什么人们常说PCA用来给数据“降维”。
2. Factor analysis(FA)的目标是解释
之间的相关性。FA的理论是,
之所以会互相相关,原因是他们都来源于同一组隐含变量
,每一个
都是
的线性组合。一般都会假设这些
是零均值、单位方差和互不相关的。
举特殊情形为例解释一下:要是
和
的主成分“完全不同”,即在
和
中对任意
,
和
至少有一个是0,那么
和
就独立。反之,它们的系数(那些
)越相似,它们的相关性就越强。
总之,PCA和FA都在寻找
的简洁表示,大致可以理解为:PCA在对随机变量做归纳总结,将
个变量总结为
个(这里的“相关”是1.中所谓“高阶”的“相关性”)的变量;而FA则是在挖掘
背后的结构,将它们各自分解成一组共同的隐含变量不同的线性组合,从而解释它们相关性的来源。两者虽然乍看很相似,但其实在要解决的问题、formulation、估计方法、具体计算等各个方面都有本质区别。
顺便提一下,有个东西叫Probabilistic PCA,在某些条件下做Probabilistic PCA和做FA数学上等价,有兴趣可以自己研读相关论文。
【王芊的回答(2票)】:
个人理解:
PCA完全等价于去中心化的SVD,和SVD相比他只关心方差的变化,去掉了本身的偏置。
而Latent Factor Model又被称作SVD,但是它和pureSVD还是有区别的,首先LMF只用2个矩阵,而SVD有3个,其次,它的优化目标函数RMSE就是矩阵的F范数,这个和SVD一样,但是还要加个正则项。这就意味除了低秩和F范数近似,SVD的假设是正交性,而LFM的假设是use矩阵和item矩阵的范数要尽量小,正交性个人认为这个在推荐里是不存在的,推荐里的latent factor比如足球和鞋类,明显不是正交的,还有一点LFM可以加bias和feature,这点比pureSVD灵活多了
综合可以看出,PCA要求的factor是独立,LFM的要求是factor的系数不能过大
单双向的说法我也不能理解
原文地址:知乎
联系客服