1. Classic Vector Model
每个词项用一个term vector表示
term vector是线性无关的
文档向量和查询向量可以被词向量的线性组合表示
例如,下图是一个文档向量被两个词项向量所表示:
两个文档的相似程度可以用两向量的余弦夹角来进行度量,夹角越小证明相似度越高。
但此模型的缺点是假设词向量之间相互独立且正交,未考虑词项之间的相关性。
查询向量q和文档向量d的表示方法如下:
同样利用余弦相似度计算相关性。
w
i
,
j
w_{i,j}
wi,j和
w
i
,
q
w_{i,q}
wi,q的计算方法如下:
首先计算
f
i
,
j
f_{i,j}
fi,j:
f
r
e
q
i
,
j
freq_{i,j}
freqi,j代表文档dj中词项ki的频率
分母表示文档dj中频率最高的词项的频率
N: 文档总数
n
i
n_i
ni: 词项
k
i
k_i
ki出现的文档的数目
计算出来做什么用呢?
它们相当于文档向量和查询向量在(词)向量空间的坐标
如下图中的d1 = (2,3,5),d2 = (3,7,1),q = (0,0,2)
总结向量空间模型:
优点:
1.简洁直观,可以应用到很多领域(文本分类、生物信息学等)2.支持部分匹配和近似匹配,结果可以排序 3. 检索效果不错
缺点:
1.理论上支持不够,基于直觉的经验性公式。 2. 特征项之间相互独立的假设与实际不符。
2. Generalized Vector Space Model
项矢量线性无关,但两两之间不正交。
项矢量不是空间的基,而是由更小的部分组成。
将项矢量扩展到
2
t
2^t
2t维空间上。
这里定义一个miniterm:
t维空间扩展成
2
t
2^t
2t维空间后两两正交
索引项在文档内的共现:索引项的相关度
接下来举例进行计算:
示例3维变成8维,共有3个索引项,20篇文档
第一个索引项矢量如何用8维扩展基矢量表示:
C
1
,
5
C_{1,5}
C1,5:这里的1是指term 1,而m5 = (1,0,0),因此去寻找只含有第一个索引项的文档,分别是d1、d4,所以计算w11,w14
C
1
,
6
C_{1,6}
C1,6:同时含有第一个、第三个索引项,不含有第二个索引项的文档是d12
C
1
,
7
C_{1,7}
C1,7:同时含有第一个、第二个索引项,不含有第三个索引项的文档是d11、 d13、 d14、 d16、 d17、 d18、 d20
C
1
,
8
C_{1,8}
C1,8:同时含有第一、二、三个索引项的文档是d15、 d19
直观地看,只包含k1的文档越多,
C
1
,
5
C_{1,5}
C1,5越大,
k
1
⃗
\vec{k_1}
k1
在扩展的向量空间中就越靠近
m
5
⃗
\vec{m_5}
m5
。
扩展基矢量两两之间正交,但不相互独立。
两个索引项矢量的乘积反映了这两个索引项的共现程度,这就解决了之前不考虑词项相关性的问题。
用这种新的扩展矢量方法表示文档和请求
也采用cosine计算文档和请求的相关度
给定检索请求
计算第一个文档的相关度
经典向量空间模型的算法
扩展向量空间模型的算法:考虑了索引项之间的相关度
相当于利用索引项相关矩阵扩展了查询请求
特别的,当索引项相关矩阵是单位矩阵时,扩展向量空间模型与经典向量空间模型相同。