原文作者:Dr. Edel Garcia
- 摘要:本快速教程提供了使用奇异值分解(SVD)计算方法和Term Count Model对查询和文档评分以及对结果排序的说明。
- 关键词:潜在语义索引,LSI,奇异值分解,SVD,特征向量,文档,查询,余弦相似度,term count model
- 背景:以下LSI示例摘自Grossman和Frieder的Information Retrieval, Algorithms and Heuristics (1)的第71页
一个collection由下面的documents组成:
- Shipment of gold damaged in a fire.
- Delivery of silver arrived in a silver truck.
- Shipment of gold arrived in a truck.
作者使用Term Count Model计算term weights和query weights,因此将local weights定义为词汇出现的频率,还使用了下面的文档索引规则:
- 停用词不会被忽略
- 文本都是已分词(tokenized)且小写的
- 词干化(stemming)不会被用到
- 词语按照字母顺序排列
在本教程中,我们想使用这个例子来说明LSI是如何工作的。现在我们知道,大多数当前的LSI模型不仅仅基于local weights,而是基于包含local、global和document normalization weights模型。其他的还有entropy weights和link weights。我们还知道,现代的模型都忽略了停用词和在文档中只出现了一次的词。词干化和以字母顺序排列是可选的。对于这个快速教程,这个例子已经足够好了。
- 问题:当以gold silver truck为搜索词时,使用潜在语义索引(LSI)对这些文档进行排名。
1.计算term weights并且构造词-文档矩阵A和查询矩阵:
2.分解矩阵A,并找到U、S和V,使得
3.通过保留u和v的第一列以及s的第一列和第一行来实现秩2近似。
4.在这个降维的二维空间中找到新的文档向量坐标。
V的行向量保留特征向量,这些是单独的文档向量(document vectors)的坐标,因此:
d1(-0.4945,0.6492)
d2(-0.6458,-0.7194)
d3(-0.5817,0.2469)
5.在降维的二维空间中找到新的查询向量坐标。
注意:这是二维中的查询向量(query vector)的新坐标。请注意现在这个矩阵与步骤1中给出的原始查询矩阵q不同。
6.按照查询-文档的余弦相似度的降序排列文档。
计算余弦相似度的公式如下,首先计算查询向量和文档向量之间的点积,然后除以查询向量和文档向量模的乘积。
我们可以看到文档d2的分数高于d3和d1,它的向量比其他向量更接近查询向量。请注意,词向量理论仍然应用于LSI的开始与结尾。