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=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2⋯⋯⋯x1nx2n⋮xmn⎦⎥⎥⎥⎤
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=tf⋅jtfijlogdfidf,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}
tf⋅j是文本
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||}
xi⋅xj,∣∣xi∣∣∣∣xj∣∣xi⋅xj
单词向量空间模型的局限性:
①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=⎣⎢⎢⎢⎡t1lt2l⋮tml⎦⎥⎥⎥⎤,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=⎣⎢⎢⎢⎡t11t21⋮tm1t12t22⋮tm2⋯⋯⋯t1kt2k⋮tmk⎦⎥⎥⎥⎤=[t1t2⋯tk]
考虑文本集合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=⎣⎢⎢⎢⎡y1jy2j⋮ykj⎦⎥⎥⎥⎤,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=⎣⎢⎢⎢⎡y11y21⋮yk1y12y22⋮yk2⋯⋯⋯y1ny2n⋮ykn⎦⎥⎥⎥⎤=[y1y2⋯yn]
潜在语义分析: X ≈ T Y X\approx TY X≈TY
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=[u1u2⋯uk]⎣⎢⎢⎢⎡σ10⋮00σ2⋮0⋯⋯⋯00⋮σk⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡v1Tv2T⋮vkT⎦⎥⎥⎥⎤
式中
k
≤
n
≤
m
k\le n\le m
k≤n≤m,矩阵
U
k
U_k
Uk的每一个列向量表示一个话题,称为话题向量;
Σ
k
V
k
T
\Sigma_kV_k^T
ΣkVkT是文本在话题空间的表示。
3 非负矩阵分解算法
若一个矩阵X所有的元素非负,则称该矩阵X为非负矩阵,记作
X
≥
0
X\ge0
X≥0。
给定一个
X
≥
0
X\ge0
X≥0,找到两个
W
≥
0
W\ge0
W≥0和
H
≥
0
H\ge0
H≥0,使得
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,假设
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
∣∣A−B∣∣2=i,j∑(aij−bij)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(A∣∣B)=i,j∑(aijlogbijaij−aij+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,Hmin∣∣X−WH∣∣2s.t.W,H≥0
②
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(X∣∣WH)s.t.W,H≥0
Theorem1
∣
∣
X
−
W
H
∣
∣
2
||X-WH||^2
∣∣X−WH∣∣2对下列乘法更新法则
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}}
Hlj←Hlj(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}}
Wil←Wil(WHHT)il(XHT)il
是非增的。当且仅当W和H是平方损失函数的稳定点时函数的更新不变。
Theorem2
D
(
X
∣
∣
W
H
)
D(X||WH)
D(X∣∣WH)对下列乘法更新法则
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}}
Hlj←Hlj∑iWil∑i[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}}
Wil←Wil∑jHlj∑j[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)=21∣∣X−WH∣∣2=21∑i,j[Xij−(WH)ij]2
用梯度下降法求解。(略)
算法(非负矩阵分解的迭代算法)
输入:单词-文本矩阵
X
≥
0
X\ge0
X≥0,文本集合的话题个数k,最大迭代次数t;
输出:话题矩阵W,文本表示矩阵H。
(1)初始化
W
≥
0
W\ge0
W≥0,并对W的每一列数据归一化;
H
≥
0
H\ge0
H≥0;
(2)迭代
对迭代次数由1到t执行更新步骤。
总结
我讨厌矩阵