潜在语义分析和概率潜在语义分析
一、潜在语义分析(LSA)
无监督算法,用于文本的话题分析,特点是通过矩阵分解发现文本与单词之间的基于话题的语义分析。
由来:文本信息处理中,传统方法以单词向量表示文本的语义内容,以单词向量空间中的度量表示文本之间的语义相似度。
潜在语义分析旨在解决该方法不能准确表示语义问题,试图从大量文本中发现潜在的话题,以话题向量表示文本的语义内容,以话题向量空间中的度量表示文本语义相似度
1. 单词向量空间
给定一个文本,用一个向量表示该文本的“语义”,其中向量的每一维对应一个单词,数值为单词在文本中出现的频数或权重
基本假设:
- 文本中的所有单词出现情况表示了文本的语义内容
- 文本集合中每一个文本都可以表示为一个向量,存在一个向量空间
- 向量空间的度量,如内积或标准化内积表示文本之间的语义相似度
给定含有
n
n
n个文本的集合
D
=
{
d
1
,
⋯
,
d
n
}
\mathcal{D}=\{d_{1},\cdots,d_{n}\}
D={d1,⋯,dn},以及所有文章中出现的
m
m
m个单词的集合
W
=
{
w
1
,
⋯
,
w
m
}
\mathcal{W}=\{w_{1},\cdots,w_{m}\}
W={w1,⋯,wm}。将单词在文本中出现的数据用一个单词-文本矩阵表示
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
1
,
x
2
,
⋯
,
x
n
]
X=\begin{bmatrix} x_{11}&x_{12}&\cdots&x_{1n}\\x_{21}&x_{22}&\cdots&x_{2n}\\\vdots&\vdots&\vdots&\vdots\\x_{m1}&x_{m2}&\cdots&x_{mn} \end{bmatrix}=\begin{bmatrix}\boldsymbol{x}_{1},\boldsymbol{x}_{2},\cdots,\boldsymbol{x}_{n} \end{bmatrix}
X=
x11x21⋮xm1x12x22⋮xm2⋯⋯⋮⋯x1nx2n⋮xmn
=[x1,x2,⋯,xn]
其中,
x
i
j
x_{ij}
xij表示单词
w
i
w_{i}
wi在文本
d
j
d_{j}
dj中出现的频数或权值。单词很多,且每个文本中单词种类较少,
X
X
X为稀疏矩阵。
权值可以由TF-IDF(单词频率-逆文本频率)表示:
T
F
−
I
D
F
i
j
=
t
f
i
j
t
f
⋅
j
l
o
g
d
f
d
f
i
TF-IDF_{ij}=\frac{tf_{ij}}{tf_{\cdot j}}log\frac{df}{df_{i}}
TF−IDFij=tf⋅jtfijlogdfidf
其中,
t
f
i
j
tf_{ij}
tfij表示单词
w
i
w_{i}
wi在文本
d
j
d_{j}
dj中出现的频数,
t
f
⋅
j
tf_{\cdot j}
tf⋅j表示文本
d
j
d_{j}
dj中出现的所有单词的频数之和,
d
f
i
df_{i}
dfi表示含有单词
w
i
w_{i}
wi的文本数,
d
f
df
df表示文本集合
D
D
D的全部文本数
1)一个单词在一个文本中出现的频数越高,该单词在文本中的重要度就越高
2)一个单词在整个文本集合中出现的文本数越少,这个单词就越能表示其所在文本的特点,重要度就越高
文本语义相似度可由两个单词向量的内积或余弦表示 x i ⋅ x j , x i ⋅ x j ∥ x i ∥ ⋅ ∥ x j ∥ \boldsymbol{x}_{i}\cdot \boldsymbol{x}_{j} , \frac{\boldsymbol{x}_{i}\cdot \boldsymbol{x}_{j}}{\Vert\boldsymbol{x}_{i}\Vert\cdot \Vert\boldsymbol{x}_{j}\Vert} xi⋅xj,∥xi∥⋅∥xj∥xi⋅xj
优点:模型简单,计算效率高
缺点:内积相似度不能准确表示两个文本的相似度。自然语言具有一词多义,多词同义
2. 话题向量空间
话题是指文本所讨论的内容或主题,可由若干个语义相关的单词表示。同义词可表示一个话题,多义词可表示不同的话题
给定一个文本,用话题空间的一个向量表示文本,向量的每一个分量对应一个话题。
话题的个数通常远小于单词的个数
1. 话题向量空间
给定含有
n
n
n个文本的集合
D
=
{
d
1
,
⋯
,
d
n
}
\mathcal{D}=\{d_{1},\cdots,d_{n}\}
D={d1,⋯,dn},以及所有文章中出现的
m
m
m个单词的集合
W
=
{
w
1
,
⋯
,
w
m
}
\mathcal{W}=\{w_{1},\cdots,w_{m}\}
W={w1,⋯,wm}。将单词在文本中出现的数据用一个单词-文本矩阵表示
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
1
,
x
2
,
⋯
,
x
n
]
X=\begin{bmatrix} x_{11}&x_{12}&\cdots&x_{1n}\\x_{21}&x_{22}&\cdots&x_{2n}\\\vdots&\vdots&\vdots&\vdots\\x_{m1}&x_{m2}&\cdots&x_{mn} \end{bmatrix}=\begin{bmatrix}\boldsymbol{x}_{1},\boldsymbol{x}_{2},\cdots,\boldsymbol{x}_{n} \end{bmatrix}
X=
x11x21⋮xm1x12x22⋮xm2⋯⋯⋮⋯x1nx2n⋮xmn
=[x1,x2,⋯,xn]
假设所有文本共含有
k
k
k个话题,每个话题由一个定义在单词集合
W
\mathcal{W}
W上的
m
m
m维向量表示,称为话题向量,即
t
l
=
[
t
1
l
t
2
l
⋮
t
m
l
]
,
l
=
1
,
2
,
⋯
,
k
\boldsymbol{t}_{l}=\begin{bmatrix}t_{1l}\\t_{2l}\\\vdots\\t_{ml}\end{bmatrix},l=1,2,\cdots,k
tl=
t1lt2l⋮tml
,l=1,2,⋯,k
其中,
t
i
l
t_{il}
til表示单词
w
i
w_{i}
wi在话题
t
l
t_{l}
tl的权值,
i
=
1
,
2
,
⋯
,
m
i=1,2,\cdots,m
i=1,2,⋯,m,
k
k
k个话题向量构成一个话题空间
T
T
T,是单词向量空间
X
X
X的一个子空间。
T
T
T称为单词-话题空间,为
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=\begin{bmatrix} t_{11}&t_{12}&\cdots&t_{1k}\\t_{21}&t_{22}&\cdots&t_{2k}\\\vdots&\vdots&\vdots&\vdots\\t_{m1}&t_{m2}&\cdots&t_{mk} \end{bmatrix}=\begin{bmatrix}\boldsymbol{t}_{1}&\boldsymbol{t}_{2}&\cdots &\boldsymbol{t}_{k}\end{bmatrix}
T=
t11t21⋮tm1t12t22⋮tm2⋯⋯⋮⋯t1kt2k⋮tmk
=[t1t2⋯tk]
2. 文本在话题向量空间的表示
将单词向量空间
X
X
X中的向量
x
j
\boldsymbol{x}_{j}
xj映射到话题向量空间
T
T
T中,得到向量
y
j
\boldsymbol{y}_{j}
yj:
y
j
=
[
y
1
j
y
2
j
⋮
y
k
j
]
\boldsymbol{y}_{j}=\begin{bmatrix}y_{1j}\\y_{2j}\\\vdots\\y_{kj}\end{bmatrix}
yj=
y1jy2j⋮ykj
其中,
y
l
j
y_{lj}
ylj表示文本
d
j
d_{j}
dj中话题
t
l
\boldsymbol{t}_{l}
tl的权值
矩阵
Y
Y
Y表示话题在文本中出现的情况,称为话题-文本矩阵
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
k
]
Y=\begin{bmatrix} y_{11}&y_{12}&\cdots&y_{1n}\\y_{21}&y_{22}&\cdots&y_{2n}\\\vdots&\vdots&\vdots&\vdots\\y_{k1}&y_{k2}&\cdots&y_{kn} \end{bmatrix}=\begin{bmatrix}\boldsymbol{y}_{1}&\boldsymbol{y}_{2}&\cdots &\boldsymbol{y}_{k}\end{bmatrix}
Y=
y11y21⋮yk1y12y22⋮yk2⋯⋯⋮⋯y1ny2n⋮ykn
=[y1y2⋯yk]
3.从单词向量空间到话题向量空间的线性变换
潜在语义分析:单词-文本矩阵
X
X
X可以由单词-话题矩阵
T
T
T和话题-文本矩阵
Y
Y
Y表示
X
≈
T
Y
X\approx TY
X≈TY
即
x
j
≈
y
1
j
t
1
+
y
2
j
t
2
+
⋯
+
y
k
j
t
k
\boldsymbol{x}_{j}\approx y_{1j}\boldsymbol{t}_{1}+y_{2j}\boldsymbol{t}_{2}+\cdots+y_{kj}\boldsymbol{t}_{k}
xj≈y1jt1+y2jt2+⋯+ykjtk
文本语义相似度可由 y i ⋅ y j \boldsymbol{y}_{i}\cdot \boldsymbol{y}_{j} yi⋅yj表示
3. 潜在语义分析算法
3.1 矩阵奇异值分解
将单词-文本矩阵
X
X
X进行截断奇异值分解:
X
≈
U
k
Σ
K
V
k
T
=
[
u
1
,
u
2
,
⋯
,
u
k
]
d
i
a
g
(
σ
1
,
σ
2
,
⋯
,
σ
k
)
[
v
1
T
v
2
T
⋮
v
k
T
]
X\approx U_{k}\Sigma_{K} V_{k}^{T}=[\boldsymbol{u}_{1},\boldsymbol{u}_{2},\cdots,\boldsymbol{u}_{k}]diag(\sigma_{1},\sigma_{2},\cdots,\sigma_{k}) \begin{bmatrix}\boldsymbol{v}_{1}^{T}\\\boldsymbol{v}_{2}^{T}\\\vdots\\\boldsymbol{v}_{k}^{T}\end{bmatrix}
X≈UkΣKVkT=[u1,u2,⋯,uk]diag(σ1,σ2,⋯,σk)
v1Tv2T⋮vkT
则
- U k = [ u 1 , u 2 , ⋯ , u k ] U_{k}=[\boldsymbol{u}_{1},\boldsymbol{u}_{2},\cdots,\boldsymbol{u}_{k}] Uk=[u1,u2,⋯,uk]为单词-话题矩阵,同时构成话题向量空间
- Σ K V k T = [ σ 1 v 11 σ 1 v 21 ⋯ σ 1 v n 1 σ 2 v 12 σ 2 v 22 ⋯ σ 2 v n 2 ⋯ ⋯ ⋯ ⋯ σ k v 1 k σ k v 2 k ⋯ σ k v n k ] \Sigma_{K} V_{k}^{T}=\begin{bmatrix} \sigma_{1}v_{11}&\sigma_{1}v_{21}&\cdots&\sigma_{1}v_{n1}\\ \sigma_{2}v_{12}&\sigma_{2}v_{22}&\cdots&\sigma_{2}v_{n2}\\ \cdots&\cdots&\cdots&\cdots\\ \sigma_{k}v_{1k}&\sigma_{k}v_{2k}&\cdots&\sigma_{k}v_{nk} \end{bmatrix} ΣKVkT= σ1v11σ2v12⋯σkv1kσ1v21σ2v22⋯σkv2k⋯⋯⋯⋯σ1vn1σ2vn2⋯σkvnk 表示话题文本矩阵
3.2 非负矩阵分解
还可以采用非负矩阵分解对
X
X
X进行拆分:
X
≈
W
H
X\approx WH
X≈WH
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}
X∈Rm×n,W∈Rm×k,H∈Rk×n,且
W
W
W表示话题空间,
H
H
H表示话题文本矩阵,即文本在话题向量空间中的表示,可表示为如下优化问题:
m
i
n
W
,
H
∥
X
−
W
H
∥
2
s
.
t
.
W
,
H
≥
0
\underset{W,H}{min}\Vert X-WH\Vert^{2}\\ s.t. W,H\ge 0
W,Hmin∥X−WH∥2s.t.W,H≥0
非负矩阵分解采用迭代算法进行求解:乘法更新规则的迭代算法,交替地对
W
,
H
W,H
W,H进行更新
二、概率潜在语义分析(PLSA)
是一种利用概率生成模型对文本集合进行话题分析的无监督方法。
特点,用隐变量表示话题,整个模型表示文本生成话题,话题生成单词,从而得到单词-文本共现数据的过程
基本想法:对文本进行概率潜在语义分析,可以发现每个文本的话题,以及每个话题的单词。话题是不能从数据中直接观察到的,是潜在的
学习策略是观测数据的极大似然估计,学习算法是EM算法
给定单词-文本矩阵
2.1 生成模型
文本生成话题,话题生成单词,从而得到单词-文本共现数据的过程:假设每个文本由一个话题分布决定,每个话题由一个单词分布决定。单词变量 w w w与文本变量 d d d是观测变量,话题 z z z是隐变量。
生成模型定义如下:
P
(
w
,
d
)
=
Π
(
w
,
d
)
P
(
w
,
d
)
n
(
w
,
d
)
,
P
(
w
,
d
)
=
P
(
d
)
P
(
w
∣
d
)
=
P
(
d
)
∑
z
P
(
w
,
z
∣
d
)
=
P
(
d
)
∑
z
P
(
z
∣
d
)
P
(
w
∣
z
)
P(w,d)=\Pi_{(w,d)}P(w,d)^{n(w,d)},\\ P(w,d)=P(d)P(w\vert d)=P(d)\sum_{z}P(w,z\vert d) =P(d)\sum_{z}P(z\vert d)P(w\vert z)
P(w,d)=Π(w,d)P(w,d)n(w,d),P(w,d)=P(d)P(w∣d)=P(d)z∑P(w,z∣d)=P(d)z∑P(z∣d)P(w∣z)
生成模型假设在话题
z
z
z给定的条件下,单词
w
w
w和文本
d
d
d是条件独立的,有
P
(
w
,
z
∣
d
)
=
P
(
w
∣
z
,
d
)
P
(
z
∣
d
)
=
P
(
z
∣
d
)
P
(
w
∣
z
)
P(w,z\vert d)=P(w|z,d)P(z|d)=P(z\vert d)P(w\vert z)
P(w,z∣d)=P(w∣z,d)P(z∣d)=P(z∣d)P(w∣z)
其中,
n
(
w
,
d
)
n(w,d)
n(w,d)表示
(
w
,
d
)
(w,d)
(w,d)出现次数,
P
(
w
,
d
)
P(w,d)
P(w,d)表示每个文本对出现的概率
2.2 共现模型
描述文本单词数据拥有的模式
共现模型定义如下:
P
(
T
)
=
Π
(
w
,
d
)
P
(
w
,
d
)
n
(
w
.
d
)
P
(
w
,
d
)
=
∑
z
∈
Z
P
(
z
)
P
(
w
,
d
∣
z
)
=
∑
z
∈
Z
P
(
z
)
P
(
w
∣
z
)
P
(
d
∣
z
)
P(T)=\Pi_{(w,d)}P(w,d)^{n(w.d)}\\ P(w,d)=\sum_{z\in Z}P(z)P(w,d|z)=\sum_{z\in Z}P(z)P(w|z)P(d|z)
P(T)=Π(w,d)P(w,d)n(w.d)P(w,d)=z∈Z∑P(z)P(w,d∣z)=z∈Z∑P(z)P(w∣z)P(d∣z)
共现模型假设在话题
z
z
z给定的条件下,单词
w
w
w和文本
d
d
d是条件独立的,有
P
(
w
,
d
∣
z
)
=
P
(
w
∣
z
)
P
(
d
∣
z
)
P(w,d\vert z)=P(w\vert z)P(d\vert z)
P(w,d∣z)=P(w∣z)P(d∣z)
其中,单词变量和文本变量
w
,
d
w,d
w,d为观测变量,话题
z
z
z为隐变量
生成和共现模型区别联系
- 联系:概率公式意义上等价
- 区别:
1. 生成模型刻画文本-单词共现数据生成的过程,共现模型描述文本-单词共现数据拥有的模式
2. 生成模型中单词变量 w w w和文本变量 d d d是非对称的,而共现模型中两者对称