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

介绍了无监督学习
本文主要介绍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)
  • 重复:
  1. 遍历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向量
  2. 更新所有 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)算法:

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

Distributed Representation

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

Dimension Reduction

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

怎么做Dimension Reduction?

  1. 特征选择
    在这里插入图片描述
    这种方法在左边有效,但是在右边,拿点1D是没法很好转成2D的。
  2. 主成分分析 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,仅作为学习笔记交流使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值