《统计学习方法》学习笔记 第十七章 LSA(latent semantic analysis)

1 单词向量空间与话题向量空间

1.1 word vector space

含有n个文本的集合 D = { d 1 , d 2 , ⋯   , d n } D=\{d_1,d_2,\cdots,d_n\} D={d1,d2,,dn}
在文本中出现的m个单词的集合 W = { w 1 , w 2 , ⋯   , w m } W=\{w_1,w_2,\cdots,w_m\} W={w1,w2,,wm}
(word-document matrix) X = [ x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋮ x m 1 x m 2 ⋯ x m n ] X=\left[ \begin{matrix} x_{11}&x_{12}&\cdots&x_{1n}\\ x_{21}&x_{22}&\cdots&x_{2n}\\ \vdots&\vdots&&\vdots\\ x_{m1}&x_{m2}&\cdots&x_{mn} \end{matrix} \right] X=x11x21xm1x12x22xm2x1nx2nxmn
X是一个稀疏矩阵。

权值通常用单词频率-逆文本频率(term frequency-inverse document frequency,TF-IDF) 表示
T F I D F i j = t f i j t f ⋅ j log ⁡ d f d f i , i = 1 , 2 , ⋯   , m ; j = 1 , 2 , ⋯   , n TFIDF_{ij}=\frac{tf_{ij}}{tf_{\cdot j}}\log\frac{df}{df_i},\quad i=1,2,\cdots,m;\quad j=1,2,\cdots,n TFIDFij=tfjtfijlogdfidf,i=1,2,,m;j=1,2,,n
t f i j tf_{ij} tfij是单词 w i w_i wi出现在文本 d j d_j dj中的频数
t f ⋅ j tf_{\cdot j} tfj是文本 d j d_{j} dj中出现的所有单词的频数之和
d f i df_i dfi是含有单词 w i w_i wi的文本数
d f df df是文本集合D的全部文本数

直观上,一个单词在一个文本中出现的频数越高,这个单词在这个文本中的重要度就越高;一个单词在整个文本集合中出现的文本数越少,这个单词就越能表示其所在文本的特点,重要度就越高;一个单词在一个文本的TF-IDF是两种重要度的积,表示综合重要度。

两个单词向量的内积或标准化内积(余弦)表示对应的文本之间的语义相似度。
文本 d i d_i di d j d_j dj之间的相似度为 x i ⋅ x j , x i ⋅ x j ∣ ∣ x i ∣ ∣ ∣ ∣ x j ∣ ∣ x_i\cdot x_j,\frac{x_i\cdot x_j}{||x_i||||x_j||} xixj,xixjxixj

单词向量空间模型的局限性:
①polysemy:apple → \to apple computer,fruit
②synonymy:airplane,aircraft

1.2 topic vector space

假设所有文本共含有k个话题。假设每个话题由一个定义在单词集合W上的m维向量表示,称为话题向量,即
t l = [ t 1 l t 2 l ⋮ t m l ] , l = 1 , 2 , ⋯   , k t_l=\left[ \begin{matrix} t_{1l}\\ t_{2l}\\ \vdots\\ t_{ml} \end{matrix} \right],\quad l=1,2,\cdots,k tl=t1lt2ltml,l=1,2,,k
其中 t i l t_{il} til是单词 w i w_i wi在话题 t l t_l tl的权值,权值越大,该单词在该话题中的重要度就越高。

(word-topic matrix) T = [ t 11 t 12 ⋯ t 1 k t 21 t 22 ⋯ t 2 k ⋮ ⋮ ⋮ t m 1 t m 2 ⋯ t m k ] = [ t 1 t 2 ⋯ t k ] T=\left[ \begin{matrix} t_{11}&t_{12}&\cdots&t_{1k}\\ t_{21}&t_{22}&\cdots&t_{2k}\\ \vdots&\vdots&&\vdots\\ t_{m1}&t_{m2}&\cdots&t_{mk} \end{matrix} \right]=[t_1\quad t_2\quad\cdots\quad t_k] T=t11t21tm1t12t22tm2t1kt2ktmk=[t1t2tk]

考虑文本集合D中的文本 d j d_j dj,在单词向量空间由一个向量 x j x_j xj表示,将 x j x_j xj投影到话题向量空间T中,得到在话题向量空间的一个向量 y j y_j yj
y j = [ y 1 j y 2 j ⋮ y k j ] , j = 1 , 2 , ⋯   , n y_j=\left[ \begin{matrix} y_{1j}\\ y_{2j}\\ \vdots\\ y_{kj} \end{matrix} \right],\quad j=1,2,\cdots,n yj=y1jy2jykj,j=1,2,,n
y l j y_{lj} ylj是文本 d j d_j dj在话题 t l t_l tl的权值,权值越大,该话题在该文本中的重要度就越高。
(topic-document matrix) Y = [ y 11 y 12 ⋯ y 1 n y 21 y 22 ⋯ y 2 n ⋮ ⋮ ⋮ y k 1 y k 2 ⋯ y k n ] = [ y 1 y 2 ⋯ y n ] Y=\left[ \begin{matrix} y_{11}&y_{12}&\cdots&y_{1n}\\ y_{21}&y_{22}&\cdots&y_{2n}\\ \vdots&\vdots&&\vdots\\ y_{k1}&y_{k2}&\cdots&y_{kn} \end{matrix} \right]=[y_1\quad y_2\quad \cdots\quad y_n] Y=y11y21yk1y12y22yk2y1ny2nykn=[y1y2yn]

潜在语义分析: X ≈ T Y X\approx TY XTY

2 潜在语义分析算法——矩阵奇异值分解算法

X = U k Σ k V k T = [ u 1 u 2 ⋯ u k ] [ σ 1 0 ⋯ 0 0 σ 2 ⋯ 0 ⋮ ⋮ ⋮ 0 0 ⋯ σ k ] [ v 1 T v 2 T ⋮ v k T ] X=U_k\Sigma_kV_k^T=[u_1\quad u_2\quad \cdots\quad u_k]\left[ \begin{matrix} \sigma_1&0&\cdots&0\\ 0&\sigma_2&\cdots&0\\ \vdots&\vdots&&\vdots\\ 0&0&\cdots&\sigma_k \end{matrix} \right]\left[ \begin{matrix} v_1^T\\ v_2^T\\ \vdots\\ v_k^T \end{matrix}\right] X=UkΣkVkT=[u1u2uk]σ1000σ2000σkv1Tv2TvkT
式中 k ≤ n ≤ m k\le n\le m knm,矩阵 U k U_k Uk的每一个列向量表示一个话题,称为话题向量; Σ k V k T \Sigma_kV_k^T ΣkVkT是文本在话题空间的表示。

3 非负矩阵分解算法

若一个矩阵X所有的元素非负,则称该矩阵X为非负矩阵,记作 X ≥ 0 X\ge0 X0
给定一个 X ≥ 0 X\ge0 X0,找到两个 W ≥ 0 W\ge0 W0 H ≥ 0 H\ge0 H0,使得 X ≈ W H X\approx WH XWH
假设非负矩阵 X ∈ R m × n , W ∈ R m × k , H ∈ R k × n X\in R^{m\times n},W\in R^{m\times k},H\in R^{k\times n} XRm×n,WRm×k,HRk×n,假设 k < min ⁡ ( m , n ) k<\min(m,n) k<min(m,n),即W和H小于原矩阵。

设两个非负矩阵 A = [ a i j ] m × n , B = [ b i j ] m × n A=[a_{ij}]_{m\times n},B=[b_{ij}]_{m\times n} A=[aij]m×n,B=[bij]m×n,平方损失函数定义为
∣ ∣ A − B ∣ ∣ 2 = ∑ i , j ( a i j − b i j ) 2 ||A-B||^2=\sum\limits_{i,j}(a_{ij}-b_{ij})^2 AB2=i,j(aijbij)2;散度(divergence)损失函数定义为 D ( A ∣ ∣ B ) = ∑ i , j ( a i j log ⁡ a i j b i j − a i j + b i j ) D(A||B)=\sum\limits_{i,j}(a_{ij}\log\frac{a_{ij}}{b_{ij}}-a_{ij}+b_{ij}) D(AB)=i,j(aijlogbijaijaij+bij)

min ⁡ W , H ∣ ∣ X − W H ∣ ∣ 2 s . t . W , H ≥ 0 \min\limits_{W,H}||X-WH||^2 \quad s.t. W,H\ge0 W,HminXWH2s.t.W,H0
min ⁡ W , H D ( X ∣ ∣ W H ) s . t . W , H ≥ 0 \min\limits_{W,H}D(X||WH) \quad s.t. W,H\ge0 W,HminD(XWH)s.t.W,H0

Theorem1 ∣ ∣ X − W H ∣ ∣ 2 ||X-WH||^2 XWH2对下列乘法更新法则
H l j ← H l j ( W T X ) l j ( W T W H ) l j H_{lj}\leftarrow H_{lj}\frac{(W^TX)_{lj}}{(W^TWH)_{lj}} HljHlj(WTWH)lj(WTX)lj
W i l ← W i l ( X H T ) i l ( W H H T ) i l W_{il}\leftarrow W_{il}\frac{(XH^T)_{il}}{(WHH^T)_{il}} WilWil(WHHT)il(XHT)il
是非增的。当且仅当W和H是平方损失函数的稳定点时函数的更新不变。

Theorem2 D ( X ∣ ∣ W H ) D(X||WH) D(XWH)对下列乘法更新法则
H l j ← H l j ∑ i [ W i l X i j / ( W H ) i j ] ∑ i W i l H_{lj}\leftarrow H_{lj}\frac{\sum_i[W_{il}X_{ij}/(WH)_{ij}]}{\sum_iW_{il}} HljHljiWili[WilXij/(WH)ij]
W i l ← W i l ∑ j [ H l j X i j / ( W H ) i j ] ∑ j H l j W_{il}\leftarrow W_{il}\frac{\sum_j[H_{lj}X_{ij}/(WH)_{ij}]}{\sum_jH_{lj}} WilWiljHljj[HljXij/(WH)ij]
是非增的。当且仅当W和H是散度损失函数的稳定点时函数的更新不变。

J ( W , H ) = 1 2 ∣ ∣ X − W H ∣ ∣ 2 = 1 2 ∑ i , j [ X i j − ( W H ) i j ] 2 J(W,H)=\frac{1}{2}||X-WH||^2=\frac{1}{2}\sum_{i,j}[X_{ij}-(WH)_{ij}]^2 J(W,H)=21XWH2=21i,j[Xij(WH)ij]2
用梯度下降法求解。(略)

算法(非负矩阵分解的迭代算法)
输入:单词-文本矩阵 X ≥ 0 X\ge0 X0,文本集合的话题个数k,最大迭代次数t;
输出:话题矩阵W,文本表示矩阵H。
(1)初始化
W ≥ 0 W\ge0 W0,并对W的每一列数据归一化;
H ≥ 0 H\ge0 H0
(2)迭代
对迭代次数由1到t执行更新步骤。

总结

我讨厌矩阵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值