向量空间模型 是一个把文本文件表示為标识符(比如索引)向量 的代数模型。它应用于信息过滤 、信息检索 、索引 以及相關排序 。SMART是第一个使用这个模型的信息检索系统。 [來源請求]
定义
文档和查詢都用向量来表示。
d
j
=
(
w
1
,
j
,
w
2
,
j
,
.
.
.
,
w
t
,
j
)
{\displaystyle d_{j}=(w_{1,j},w_{2,j},...,w_{t,j})}
q
=
(
w
1
,
q
,
w
2
,
q
,
.
.
.
,
w
t
,
q
)
{\displaystyle q=(w_{1,q},w_{2,q},...,w_{t,q})}
每一维都對應於一个個別的词组。如果某个词组出现在了文档中,那它在向量中的值就非零。已经發展出了不少的方法来计算这些值,这些值叫做(词组)权重。其中一种最为知名的方式是tf-idf权重(见下面的例子)。
词组的定義按不同應用而定。典型的词组就是一个单一的词、关键词 、或者较长的短语。如果將詞語选为词组,那么向量的维数就是词汇表中的詞語个数(出現在語料庫 中的不同詞語的個數)。
通過向量运算,可以對各文档和各查詢作比較。
应用
據文档相似度理论的假设,如要在一次關鍵詞查詢中計算各文档間的相關排序,只需比较每个文档向量和原先查询向量(跟文檔向量的类型是相同的)之间的角度偏差。
实际上,计算向量之间夹角的余弦 比直接计算夹角本身要简单。
cos
θ
=
d
2
⋅
q
‖
d
2
‖
‖
q
‖
{\displaystyle \cos {\theta }={\frac {\mathbf {d_{2}} \cdot \mathbf {q} }{\left\|\mathbf {d_{2}} \right\|\left\|\mathbf {q} \right\|}}}
其中
d
2
⋅
q
{\displaystyle \mathbf {d_{2}} \cdot \mathbf {q} }
是文档向量(即右图中的d2 )和查询向量(图中的q)的点乘。
‖
d
2
‖
{\displaystyle \left\|\mathbf {d_{2}} \right\|}
是向量d2 的模,而
‖
q
‖
{\displaystyle \left\|\mathbf {q} \right\|}
是向量q的模。向量的模通过下面的公式来计算:
‖
v
‖
=
∑
i
=
1
n
v
i
2
{\displaystyle \left\|\mathbf {v} \right\|={\sqrt {\sum _{i=1}^{n}v_{i}^{2}}}}
由于这个模型所考虑的所有向量都是每個元素严格非负的,因此如果余弦值为零,则表示查询向量和文档向量是正交 的,即不符合(换句话说,就是检索項在文档中没有找到)。如果要了解详细的信息可以查看余弦相似性 這條目。
范例:tf-idf权重
在Salton,Wong和Yang [ 1] 提出的传统向量空间模型中,一个词组在文档向量中的权重就是局部参数和全局参数的乘积,这就是著名的tf-idf模型(词频-逆向文档频率)。文档的权重向量d 就是
v
d
=
[
w
1
,
d
,
w
2
,
d
,
…
,
w
N
,
d
]
T
{\displaystyle \mathbf {v} _{d}=[w_{1,d},w_{2,d},\ldots ,w_{N,d}]^{T}}
,其中
w
t
,
d
=
t
f
t
,
d
⋅
log
|
D
|
|
{
d
′
∈
D
|
t
∈
d
′
}
|
{\displaystyle w_{t,d}=\mathrm {tf} _{t,d}\cdot \log {\frac {|D|}{|\{d'\in D\,|\,t\in d'\}|}}}
t
f
t
,
d
{\displaystyle \mathrm {tf} _{t,d}}
是词组t 在文档d 中出现的频率(一个局部参数)
log
|
D
|
|
{
d
′
∈
D
|
t
∈
d
′
}
|
{\displaystyle \log {\frac {|D|}{|\{d'\in D\,|\,t\in d'\}|}}}
是逆向文档频率(一个全局参数)。
|
D
|
{\displaystyle |D|}
是文档集中的文档总数;
|
{
d
′
∈
D
|
t
∈
d
′
}
|
{\displaystyle |\{d'\in D\,|\,t\in d'\}|}
是含有词组t 的文档数。
文档dj 和查詢q 之间的余弦相似度通过以下公式来计算:
s
i
m
(
d
j
,
q
)
=
d
j
⋅
q
‖
d
j
‖
‖
q
‖
=
∑
i
=
1
N
w
i
,
j
w
i
,
q
∑
i
=
1
N
w
i
,
j
2
∑
i
=
1
N
w
i
,
q
2
{\displaystyle \mathrm {sim} (d_{j},q)={\frac {\mathbf {d_{j}} \cdot \mathbf {q} }{\left\|\mathbf {d_{j}} \right\|\left\|\mathbf {q} \right\|}}={\frac {\sum _{i=1}^{N}w_{i,j}w_{i,q}}{{\sqrt {\sum _{i=1}^{N}w_{i,j}^{2}}}{\sqrt {\sum _{i=1}^{N}w_{i,q}^{2}}}}}}
在較简单的詞組計數模型 (Term Count Model)中,词组的权重不包含全局参数,而是单纯的计算词组出现的次数:
w
t
,
d
=
t
f
t
,
d
{\displaystyle w_{t,d}=\mathrm {tf} _{t,d}}
。
优点
相对于标准布尔模型 (Standard Boolean model),向量空间模型具有如下优点:
基于线性代数的简单模型
词组的权重不是二元的
文档和查詢之间的相似度取值是連續的
允许根据文档間可能的相关性来进行排序
允许局部匹配
局限
向量空间模型有如下局限:
不适用于较长的文档,因为它的相似值不理想(过小的内积 和过高的维数)。
检索词组必须与文档中出现的词组精确匹配;词語子字串 可能会导致“假阳性 ”匹配。
语义敏感度不佳;具有相同的语境但使用不同的词组的文档不能被关联起来,导致“假阴性匹配”。
词组在文档中出现的顺序在向量形式中无法表示出來。
假定词组在统计上是独立的。
权重是直观上获得的而不够正式。
然而,这些局限中的多数能够通过集合各種方法来解决,包括数学上的技术(比如奇异值分解 )和词汇数据库 (比如WordNet )。
基于及扩展了向量空间模型的模型
基于及扩展了向量空间模型的模型包括:
以向量空间模型为工具的软件
使用向量空间模型做实验或者想基于它们实现研究服务的人或许会对以下的这些软件包感兴趣。
免费开放的软件资源
进一步参考
另见
参考文献
^ G. Salton , A. Wong , C. S. Yang, A vector space model for automatic indexing (页面存档备份 ,存于互联网档案馆 ), Communications of the ACM, v.18 n.11, p.613-620, Nov. 1975