笔记:ML-LHY-13:Unsupervised Learning - Linear Methods

    科技2024-11-15  10

    介绍了无监督学习 本文主要介绍Dimension Reduction,顺便介绍了聚类算法 维度缩减主要介绍经典的PCA算法和SVD算法,以及他们之间的关系 如何使用NN进行维度缩减(模拟PCA) PCA/SVG在推荐系统,文本处理上的应用 pdf 视频

    Unsupervised Learning

    无监督学习有2种

    Dimension Reduction

    Clustering

    K-means 算法:

    X = { x 1 , ⋯   , x n , ⋯   , x N } X=\left\{x^{1}, \cdots, x^{n}, \cdots, x^{N}\right\} X={x1,,xn,,xN}未标签数据,目的分成K类初始化聚类中心 c i , i = 1 , 2 , … K ( c^{i}, \mathrm{i}=1,2, \ldots \mathrm{K}\left(\mathrm{}\right. ci,i=1,2,K( random x n x^{n} xn from X ) \left.X\right) X)重复: 遍历X中所有数据 x n x^{n} xn b i n { 1 x n  is most  ′ ′  close  ′ ′  to  c i 0  Otherwise  b_{i}^{n}\left\{\begin{array}{ll}1 & x^{n} \text { is most }^{\prime \prime} \text { close }^{\prime \prime} \text { to } c^{i} \\ 0 & \text { Otherwise }\end{array}\right. bin{10xn is most  close  to ci Otherwise  b n b^n bn是一个one hot向量更新所有 c i c^i ci:对所有属于i类的 x n x^n xn做平均就有, c i = ∑ x n b i n x n / ∑ x n b i n c^{i}=\sum_{x^{n}} b_{i}^{n} x^{n} / \sum_{x^{n}} b_{i}^{n} ci=xnbinxn/xnbin

    HAC(Hierarchical Agglomerative Clustering)算法:

    建树 每次取最相似的2个,建立父节点,直到根节点 选择一个阈值,进行切分 上面是2种聚类算法,聚类算法使得一个对象只能属于一个类, 有点以偏概全。下面的Distributed Representation,一个对象会和多类关联。

    Distributed Representation

    其实,假如是一张图片,我们也是用上述方法,把图片描述成各个属性的权重,这就是把高维的image进行Dimension Reduction。

    Dimension Reduction

    上面这个问题,单纯考虑颜色,其实可以把3D降维为2D,没必要在复杂的3D空间上求解。

    怎么做Dimension Reduction?

    特征选择 这种方法在左边有效,但是在右边,拿点1D是没法很好转成2D的。主成分分析 PCA(Principle component analysis)

    PCA

    PCA的目的: Z = W x Z=W x Z=Wx PCA根据大量x找W,使得Z的维度小于x


    ok,先考虑简单case,1D的情况: z 1 = w 1 ⋅ x z_{1}=w^{1} \cdot x z1=w1x 并且假设w1的长度为1:

    ∥ w 1 ∥ 2 = 1 \left\|w^{1}\right\|_{2}=1 w12=1

    x是高维空间的一个点,w1是高维的一个向量,做内积求x在w1上的投影

    那么要选择怎样的w呢? 直觉上,我们应该选择的w要使得z的variance最大。 比如攻击力和防御力(2D)都很大,则认为能力(1D)很大。这就是2D -> 1D。 还是以w1来说: Var ⁡ ( z 1 ) = 1 N ∑ z 1 ( z 1 − z 1 ‾ ) 2 \operatorname{Var}\left(z_{1}\right)=\frac{1}{N} \sum_{z_{1}}\left(z_{1}-\overline{z_{1}}\right)^{2} Var(z1)=N1z1(z1z1)2

    我们希望 Var ⁡ ( z 1 ) \operatorname{Var}\left(z_{1}\right) Var(z1)最大。


    上面是把高维投影到1D的情况。如果我们希望把高维投影到2D平面时:

    z 1 = w 1 ⋅ x z 2 = w 2 ⋅ x \begin{array}{l} z_{1}=w^{1} \cdot x \\ z_{2}=w^{2} \cdot x \end{array} z1=w1xz2=w2x

    z1求法和上面一样,z2不能再和z1一样,所以我们可以认为w1和w2正交。所以有下面约束:

    Var ⁡ ( z 1 ) = 1 N ∑ z 1 ( z 1 − z ˉ 1 ) 2 ∥ w 1 ∥ 2 = 1 Var ⁡ ( z 2 ) = 1 N ∑ z 2 ( z 2 − z 2 ‾ ) 2 ∥ w 2 ∥ 2 = 1 w 1 ⋅ w 2 = 0 \operatorname{Var}\left(z_{1}\right)=\frac{1}{N} \sum_{z_{1}}\left(z_{1}-\bar{z}_{1}\right)^{2} \\ \left\|w^{1}\right\|_{2}=1 \\ \operatorname{Var}\left(z_{2}\right)=\frac{1}{N} \sum_{z_{2}}\left(z_{2}-\overline{z_{2}}\right)^{2} \\ \left\|w^{2}\right\|_{2}=1 \\ w^{1} \cdot w^{2}=0 Var(z1)=N1z1(z1zˉ1)2w12=1Var(z2)=N1z2(z2z2)2w22=1w1w2=0

    投影到更多维: W = [ ( w 1 ) T ( w 2 ) T ⋮ ] W=\left[\begin{array}{c} \left(w^{1}\right)^{T} \\ \left(w^{2}\right)^{T} \\ \vdots \end{array}\right] W=(w1)T(w2)T 由于 w i w^i wi互相正交且长度为1,所以W是正交矩阵


    怎么求w?

    下面是数学部分,求w,还是以w1为例:

    先推导 z 1 ‾ \overline{z_{1}} z1

    z 1 = w 1 ⋅ x z 1 ‾ = 1 N ∑ z 1 = 1 N ∑ w 1 ⋅ x = w 1 ⋅ 1 N ∑ x = w 1 ⋅ x ˉ \begin{array}{l} z_{1}=w^{1} \cdot x \\ \overline{z_{1}}=\frac{1}{N} \sum z_{1}=\frac{1}{N} \sum w^{1} \cdot x=w^{1} \cdot \frac{1}{N} \sum x=w^{1} \cdot \bar{x} \end{array} z1=w1xz1=N1z1=N1w1x=w1N1x=w1xˉ 那么 Var ⁡ ( z 1 ) = 1 N ∑ z 1 ( z 1 − z ˉ 1 ) 2 \operatorname{Var}\left(z_{1}\right)=\frac{1}{N} \sum_{z_{1}}\left(z_{1}-\bar{z}_{1}\right)^{2} Var(z1)=N1z1(z1zˉ1)2转化为: = 1 N ∑ x ( w 1 ⋅ x − w 1 ⋅ x ˉ ) 2 = 1 N ∑ ( w 1 ⋅ ( x − x ˉ ) ) 2 \begin{array}{l} =\frac{1}{N} \sum_{x}\left(w^{1} \cdot x-w^{1} \cdot \bar{x}\right)^{2} \\ =\frac{1}{N} \sum\left(w^{1} \cdot(x-\bar{x})\right)^{2} \end{array} =N1x(w1xw1xˉ)2=N1(w1(xxˉ))2

    根据: ( a ⋅ b ) 2 = ( a T b ) 2 = a T b a T b = a T b ( a T b ) T = a T b b T a \begin{array}{l} (a \cdot b)^{2}=\left(a^{T} b\right)^{2}=a^{T} b a^{T} b \\ =a^{T} b\left(a^{T} b\right)^{T}=a^{T} b b^{T} a \end{array} (ab)2=(aTb)2=aTbaTb=aTb(aTb)T=aTbbTa

    可以进一步转化:

    = 1 N ∑ ( w 1 ⋅ ( x − x ˉ ) ) 2 = 1 N ∑ ( w 1 ) T ( x − x ˉ ) ( x − x ˉ ) T w 1 = ( w 1 ) T 1 N ∑ ( x − x ˉ ) ( x − x ˉ ) T w 1 = ( w 1 ) T Cov ⁡ ( x ) w 1 \begin{array}{l} =\frac{1}{N} \sum\left(w^{1} \cdot(x-\bar{x})\right)^{2} \\ =\frac{1}{N} \sum\left(w^{1}\right)^{T}(x-\bar{x})(x-\bar{x})^{T} w^{1} \\ =\left(w^{1}\right)^{T} \frac{1}{N} \sum(x-\bar{x})(x-\bar{x})^{T} w^{1} \\ =\left(w^{1}\right)^{T} \operatorname{Cov}(x) w^{1} \quad \end{array} =N1(w1(xxˉ))2=N1(w1)T(xxˉ)(xxˉ)Tw1=(w1)TN1(xxˉ)(xxˉ)Tw1=(w1)TCov(x)w1 用S化简: S = Cov ⁡ ( x ) S=\operatorname{Cov}(x) S=Cov(x)

    所以最后化简为: 找 w 1 w^1 w1,使得 Var ⁡ ( z 1 ) \operatorname{Var}\left(z_{1}\right) Var(z1)最大 还得满足长度为1约束。 Var ⁡ ( z 1 ) = ( w 1 ) T S w 1 ∥ w 1 ∥ 2 = ( w 1 ) T w 1 = 1 \begin{array}{c} \operatorname{Var}\left(z_{1}\right) = \left(w^{1}\right)^{T} S w^{1} \\ \left\|w^{1}\right\|_{2}=\left(w^{1}\right)^{T} w^{1}=1 \end{array} Var(z1)=(w1)TSw1w12=(w1)Tw1=1

    我们可以使用拉格朗日乘数法来求w1: g ( w 1 ) = ( w 1 ) T S w 1 − α ( ( w 1 ) T w 1 − 1 ) g\left(w^{1}\right)=\left(w^{1}\right)^{T} S w^{1}-\alpha\left(\left(w^{1}\right)^{T} w^{1}-1\right) g(w1)=(w1)TSw1α((w1)Tw11) 由于 w 1 w^1 w1是个向量,对elemen求偏微分: ∂ g ( w 1 ) / ∂ w 1 1 = 0 ∂ g ( w 1 ) / ∂ w 2 1 = 0 \begin{array}{l} \partial g\left(w^{1}\right) / \partial w_{1}^{1}=0 \\ \partial g\left(w^{1}\right) / \partial w_{2}^{1}=0 \end{array} g(w1)/w11=0g(w1)/w21=0 得到:

    S w 1 − α w 1 = 0 S w 1 = α w 1 \begin{array}{l} S w^{1}-\alpha w^{1} = 0 \\ S w^{1}=\alpha w^{1} \end{array} Sw1αw1=0Sw1=αw1

    所以认为 w 1 w^1 w1是S的特征向量,在进一步两边都左乘 w 1 w^1 w1 ( w 1 ) T S w 1 = α ( w 1 ) T w 1 = α \left(w^{1}\right)^{T} S w^{1}=\alpha\left(w^{1}\right)^{T} w^{1} = \alpha (w1)TSw1=α(w1)Tw1=α

    结论:所以当 w 1 w^1 w1为矩阵S的最大特征向值 α = λ 1 \alpha = \lambda_{1} α=λ1对应的特征向量时, ( w 1 ) T S w 1 \left(w^{1}\right)^{T} S w^{1} (w1)TSw1最大


    同理:找 w 2 w^2 w2,使得 Var ⁡ ( z 2 ) \operatorname{Var}\left(z_{2}\right) Var(z2)最大 还多了一项约束: Var ⁡ ( z 2 ) = ( w 2 ) T S w 2 ∥ w 2 ∥ 2 = ( w 2 ) T w 2 = 1 ( w 2 ) T w 1 = 0 \begin{array}{c} \operatorname{Var}\left(z_{2}\right) = \left(w^{2}\right)^{T} S w^{2} \\ \left\|w^{2}\right\|_{2}=\left(w^{2}\right)^{T} w^{2}=1 \end{array} \\ \left(w^{2}\right)^{T} w^{1}=0 Var(z2)=(w2)TSw2w22=(w2)Tw2=1(w2)Tw1=0 同样使用拉格朗日乘数法: g ( w 2 ) = ( w 2 ) T S w 2 − α ( ( w 2 ) T w 2 − 1 ) − β ( ( w 2 ) T w 1 − 0 ) g\left(w^{2}\right)=\left(w^{2}\right)^{T} S w^{2}-\alpha\left(\left(w^{2}\right)^{T} w^{2}-1\right)-\beta\left(\left(w^{2}\right)^{T} w^{1}-0\right) g(w2)=(w2)TSw2α((w2)Tw21)β((w2)Tw10) 求偏微分:

    ∂ g ( w 2 ) / ∂ w 1 2 = 0 ∂ g ( w 2 ) / ∂ w 2 2 = 0 \begin{array}{l} \partial g\left(w^{2}\right) / \partial w_{1}^{2}=0 \\ \partial g\left(w^{2}\right) / \partial w_{2}^{2}=0 \end{array} g(w2)/w12=0g(w2)/w22=0 得到: S w 2 − α w 2 − β w 1 = 0 S w^{2}-\alpha w^{2}-\beta w^{1}=0 Sw2αw2βw1=0 左乘 ( w 1 ) T (w^1)^T (w1)T: ( w 1 ) T S w 2 − α ( w 1 ) T w 2 − β ( w 1 ) T w 1 = 0 ( w 1 ) T S w 2 − α 0 − β 1 = 0 \left(w^{1}\right)^{T} S w^{2}-\alpha\left(w^{1}\right)^{T} w^{2}-\beta\left(w^{1}\right)^{T} w^{1}=0 \\ \left(w^{1}\right)^{T} S w^{2} - \alpha0 - \beta1 = 0 (w1)TSw2α(w1)Tw2β(w1)Tw1=0(w1)TSw2α0β1=0 其中 ( ( w 1 ) T S w 2 ) T = ( w 2 ) T S T w 1 = ( w 2 ) T S w 1 = λ 1 ( w 2 ) T w 1 = 0 \begin{array}{l} \left(\left(w^{1}\right)^{T} S w^{2}\right)^{T}=\left(w^{2}\right)^{T} S^{T} w^{1} \\ =\left(w^{2}\right)^{T} S w^{1}=\lambda_{1}\left(w^{2}\right)^{T} w^{1}=0 \end{array} ((w1)TSw2)T=(w2)TSTw1=(w2)TSw1=λ1(w2)Tw1=0 所以最后: 0 − α 0 − β 1 = 0 β = 0 0 - \alpha0 - \beta1 = 0\\ \beta = 0 0α0β1=0β=0 也就有: S w 2 − α w 2 = 0 S w 2 = α w 2 S w^{2}-\alpha w^{2}=0\\ S w^{2}=\alpha w^{2} Sw2αw2=0Sw2=αw2

    结论:所以当 w 2 w^2 w2为矩阵S的第二大特征向值 α = λ 2 \alpha = \lambda_{2} α=λ2对应的特征向量时, ( w 2 ) T S w 2 \left(w^{2}\right)^{T} S w^{2} (w2)TSw2最大 解释为什么选第二大:如果选最大则不会和 w 1 w^1 w1正交,但是由于S的对称矩阵,所以可以第二大

    ok,数学分析部分结束


    PCA - decorrelation

    PCA也可用来去相关,我们来看z的协方差矩阵: Cov ⁡ ( z ) = 1 N ∑ ( z − z ˉ ) ( z − z ˉ ) T = W S W T \operatorname{Cov}(z)=\frac{1}{N} \sum(z-\bar{z})(z-\bar{z})^{T}=W S W^{T} Cov(z)=N1(zzˉ)(zzˉ)T=WSWT 转换步骤可以参考上面数学部分,其中, S = cov ⁡ ( x ) S=\operatorname{cov}(x) S=cov(x) 进一步转换: Cov ⁡ ( z ) = W S [ w 1 ⋯ w K ] = W [ S w 1 ⋯ S w K ] = W [ λ 1 w 1 ⋯ λ K w K ] = [ λ 1 W w 1 ⋯ λ K W w K ] = [ λ 1 e 1 ⋯ λ K e K ] = D \begin{array}{ll} \operatorname{Cov}(z)=W S\left[w^{1} \quad \cdots \quad w^{K}\right]=W\left[S w^{1} \quad \cdots \quad S w^{K}\right] \\ =W\left[\lambda_{1} w^{1} \quad \cdots \quad \lambda_{K} w^{K}\right]=\left[\lambda_{1} W w^{1} \quad \cdots \quad \lambda_{K} W w^{K}\right] \\ =\left[\begin{array}{lll} \lambda_{1} e_{1} & \cdots & \lambda_{K} e_{K} \end{array}\right]=D \end{array} Cov(z)=WS[w1wK]=W[Sw1SwK]=W[λ1w1λKwK]=[λ1Ww1λKWwK]=[λ1e1λKeK]=D 所以协方差矩阵时对角矩阵(只有对角线上有非0元素的矩阵)

    图像描述: 那么为什么要做decorrelation?

    目的就是使得参数变得简单,比如一个generative模型,用高斯分布来描述数据分布,如果做了PCA decorrelation,就可以认为输入数据的协方差矩阵是对角矩阵,就可以减少参数量,从而避免过拟合。

    PCA – Another Point of View(SVD)

    从另一角度来说明PCA

    一个数字图片可以描述成多个笔画组成,后面加平均表示所有数字图片的共有特性。

    x ^ \hat{x} x^表示重建 x − x ˉ ≈ c 1 u 1 + c 2 u 2 + ⋯ + c k u K = x ^ x-\bar{x} \approx c_{1} u^{1}+c_{2} u^{2}+\cdots+c_{k} u^{K}=\hat{x} xxˉc1u1+c2u2++ckuK=x^ 我们希望找到 { u 1 , … , u K } \left\{u^{1}, \ldots, u^{K}\right\} {u1,,uK}使得重建误差最小: ∥ ( x − x ˉ ) − x ^ ∥ 2 \|(x-\bar{x})-\hat{x}\|_{2} (xxˉ)x^2 即: L = min ⁡ { u 1 , … , u K } ∑ ∥ ( x − x ˉ ) − ( ∑ k = 1 K c k u k ) ∥ 2 L=\min _{\left\{u^{1}, \ldots, u^{K}\right\}} \sum\left\|(x-\bar{x})-\left(\sum_{k=1}^{K} c_{k} u^{k}\right)\right\|_2 L={u1,,uK}min(xxˉ)(k=1Kckuk)2 每笔数据可以表示成: x 1 − x ˉ ≈ c 1 1 u 1 + c 2 1 u 2 + ⋯ x 2 − x ˉ ≈ c 1 2 u 1 + c 2 2 u 2 + ⋯ x 3 − x ˉ ≈ c 1 3 u 1 + c 2 3 u 2 + ⋯ x^{1}-\bar{x} \approx c_{1}^{1} u^{1}+c_{2}^{1} u^{2}+\cdots \\ x^{2}-\bar{x} \approx c_{1}^{2} u^{1}+c_{2}^{2} u^{2}+\cdots \\ x^{3}-\bar{x} \approx c_{1}^{3} u^{1}+c_{2}^{3} u^{2}+\cdots x1xˉc11u1+c21u2+x2xˉc12u1+c22u2+x3xˉc13u1+c23u2+ 所以我们希望L最小,也就是矩阵x要越接近U·C,我们知道任何矩阵都可以使用SVD分解成: X = U Σ V T X=U\Sigma V^T X=UΣVT,所以可以使用SVD求U和C。 我们只需要紧奇异值分解: 所以当 U = { u 1 , u 2 , … u K } U= \left\{u^{1}, u^{2}, \ldots u^{K}\right\} U={u1,u2,uK} V = C V = C V=C。L取得最小值。

    SVD和PCA经典解法的关系

    回顾PCA: z = W x \quad z=W x z=Wx

    [ z 1 z 2 ⋮ z K ] = [ ( w 1 ) T ( w 2 ) T ⋮ ( w K ) T ] x \left[\begin{array}{c} z_{1} \\ z_{2} \\ \vdots \\ z_{K} \end{array}\right]=\left[\begin{array}{c} \left(w_{1}\right)^{\mathrm{T}} \\ \left(w_{2}\right)^{\mathrm{T}} \\ \vdots \\ \left(w_{K}\right)^{\mathrm{T}} \end{array}\right] x z1z2zK=(w1)T(w2)T(wK)Tx

    我们希望 Var ⁡ ( z 1 ) \operatorname{Var}\left(z_{1}\right) Var(z1) Var ⁡ ( z 2 ) \operatorname{Var}\left(z_{2}\right) Var(z2) Var ⁡ ( z 3 ) \operatorname{Var}\left(z_{3}\right) Var(z3)…最大,即 Cov ⁡ ( z ) \operatorname{Cov}(z) Cov(z)最大。


    此时当 W W W为矩阵 S = C o v ( x ) S=Cov(x) S=Cov(x)的特征向值 α = λ \alpha = \lambda α=λ对应的特征向量时, C o v ( z ) = W T S W {Cov}(z) = W^{T} S W Cov(z)=WTSW最大。 而在SVD中,矩阵U为 X X T = ( x − x ˉ ) ( x − x ˉ ) T XX^T = (x-\bar{x})(x-\bar{x})^T XXT=(xxˉ)(xxˉ)T的特征向量。

    S = C o v ( x ) = 1 N ∑ ( x − x ˉ ) ( x − x ˉ ) T S=Cov(x) = \frac{1}{N} \sum(x-\bar{x})(x-\bar{x})^{T} S=Cov(x)=N1(xxˉ)(xxˉ)T

    X X T = ( x − x ˉ ) ( x − x ˉ ) T X X^{T}=(x-\bar{x})(x-\bar{x})^{T} XXT=(xxˉ)(xxˉ)T


    也就证明了: { u 1 , u 2 , … u K } = { w 1 , w 2 , … w K } \left\{u^{1}, u^{2}, \ldots u^{K}\right\} = \left\{w^{1}, w^{2}, \ldots w^{K}\right\} {u1,u2,uK}={w1,w2,wK} 时,L就取得最小。

    总结:在PCA中找到的W对应SVD中的U,在PCA中降维的输出z对应SVD中就是V。

    Autoencoder(neural network)

    假如使用PCA已经求出 w k w^k wk x ^ = ∑ k = 1 K c k w k ⟷ x − x ˉ \hat{x}=\sum_{k=1}^{K} c_{k} w^{k} \longleftrightarrow x-\bar{x} x^=k=1Kckwkxxˉ 由于 w k w^k wk是标准正交基,所以: c k = ( x − x ˉ ) ⋅ w k c^{k}=(x-\bar{x}) \cdot w^{k} ck=(xxˉ)wk 假设K=2: 使用神经网络+GD,输入是 x − x ˉ x-\bar{x} xxˉ,输出是 x ^ \hat{x} x^,损失函数和上面类似: L = ( x − x ˉ ) − x ^ L =(x-\bar{x}) - \hat{x} L=(xxˉ)x^ 那么使用GD方法不可能找出的 w k w^k wk比PCA找出的重建误差还要小。 所以在linear情况下,用PCA是比较方便的,而用神经网络可以更深,也就是 Deep Autoencoder。

    PCA缺点

    PCA是基于无标签的数据做处理,如果有标签使用PCA的话,可能会使得橙色和蓝色混在一起,有标签数据可以使用LDA(linear discriminant analysis)处理。

    没法做非线性变换

    PCA 例子 - Pokémon

    有6个特征,所以会有6个特征值,对应特征向量是6维的。我们可以做截断式奇异值分解(有损压缩),比如只保留4个特征值,去掉2个不太重要的特征。

    那么对应的特征向量,或者说w,或者u就是: PC1:代表综合能力的特征 PC2:代表防御但速度低的特征

    PCA 例子 - 图像

    MNIST

    图片看作是矩阵,可以分解成Eigen-digits或者Eigen-face。

    由于c(或者上面的a)的元素可以是正或负,所以特征可以是全部数字笔画或者一个完整的轮廓。 使用NMF(non-negative matrix factorization)可以强制 a 1 , a 2 … … a_{1}, a_{2} \ldots \ldots a1,a2非负,强制 w 1 , w 2 … … w^{1}, w^{2} \ldots \ldots w1,w2非负,所以每个特征就只能相加,从而更像component。

    Matrix Factorization

    矩阵分解是推荐系统中一个经典算法,这里再回顾一下和PCA的关系

    根据用户对物品的喜爱程度,有下表: 我们希望通过矩阵分解得到用户对各个特征(特征个数K是经验值)的喜爱程度以及物体在各个特征上的强度,也就是在选定特征组成空间中的点。 具体做法: 上面表我们表示成矩阵X,用户数表示M,物体数表示N,潜在特征有K个 K中r是1xk的行向量,N中的r是kx1的列向量。 比如下面的例子: 把一个矩阵X分解,降为2个特征Dim1 和 Dim2 U k U_k Uk表示用户对2个特征的喜爱程度 V k V_k Vk表示物体在2个特征上的强度 这种完整的矩阵分解称为Pure MF/ Pure SVD,但是在真实数据中往往是比较稀疏的,存在很多空缺,需要推荐算法进行补充(也就是推荐)

    利用GD求用户和物品的隐含向量表示。这种方法被称为FunkSVD。

    也就求得:

    然后就可以预测空缺的地方: 如果值比较大就可以进行推荐。


    上面的例子在文章上表示就是LSA

    More Related Approaches

    降维的方法有很多,这里再列举一些与PCA有关的方法:

    Multidimensional Scaling (MDS) [Alpaydin, Chapter 6.7]

    MDS不需要把每个data都表示成feature vector,只需要知道特征向量之间的distance,就可以做降维,PCA保留了原来在高维空间中的距离,在某种情况下MDS就是特殊的PCA

    Probabilistic PCA [Bishop, Chapter 12.2]

    PCA概率版本

    Kernel PCA [Bishop, Chapter 12.3]

    PCA非线性版本

    Canonical Correlation Analysis (CCA) [Alpaydin, Chapter 6.9]

    CCA常用于两种不同的data source的情况,比如同时对声音信号和唇形的图像进行降维

    Independent Component Analysis (ICA)

    ICA常用于source separation,PCA找的是正交的组件,而ICA则只需要找“独立”的组件即可

    Linear Discriminant Analysis (LDA) [Alpaydin, Chapter 6.8]

    LDA是supervised的方式

    以上参考李宏毅老师视频和ppt,仅作为学习笔记交流使用

    Processed: 0.079, SQL: 8