潜在语义索引(Latent Semantic Indexing, LSI)——快速教程

原文作者:Dr. Edel Garcia

原文地址:https://apluswebservices.com/wp-content/uploads/2012/05/latent-semantic-indexing-fast-track-tutorial.pdf

  • 摘要:本快速教程提供了使用奇异值分解(SVD)计算方法和Term Count Model对查询和文档评分以及对结果排序的说明。
  • 关键词:潜在语义索引,LSI,奇异值分解,SVD,特征向量,文档,查询,余弦相似度,term count model
  • 背景:以下LSI示例摘自Grossman和Frieder的Information Retrieval, Algorithms and Heuristics (1)的第71页

一个collection由下面的documents组成:

  1. Shipment of gold damaged in a fire.
  2. Delivery of silver arrived in a silver truck.
  3. Shipment of gold arrived in a truck.

作者使用Term Count Model计算term weights和query weights,因此将local weights定义为词汇出现的频率,还使用了下面的文档索引规则:

  1. 停用词不会被忽略
  2. 文本都是已分词(tokenized)且小写的
  3. 词干化(stemming)不会被用到
  4. 词语按照字母顺序排列

在本教程中,我们想使用这个例子来说明LSI是如何工作的。现在我们知道,大多数当前的LSI模型不仅仅基于local weights,而是基于包含local、global和document normalization weights模型。其他的还有entropy weights和link weights。我们还知道,现代的模型都忽略了停用词和在文档中只出现了一次的词。词干化和以字母顺序排列是可选的。对于这个快速教程,这个例子已经足够好了。

  • 问题:当以gold silver truck为搜索词时,使用潜在语义索引(LSI)对这些文档进行排名。

1.计算term weights并且构造词-文档矩阵A和查询矩阵:

潜在语义索引(Latent Semantic Indexing, LSI)——快速教程_第1张图片

2.分解矩阵A,并找到U、S和V,使得A=USV^{T}

潜在语义索引(Latent Semantic Indexing, LSI)——快速教程_第2张图片

3.通过保留u和v的第一列以及s的第一列和第一行来实现秩2近似。

潜在语义索引(Latent Semantic Indexing, LSI)——快速教程_第3张图片

4.在这个降维的二维空间中找到新的文档向量坐标。

V的行向量保留特征向量,这些是单独的文档向量(document vectors)的坐标,因此:

d1(-0.4945,0.6492)

d2(-0.6458,-0.7194)

d3(-0.5817,0.2469)

5.在降维的二维空间中找到新的查询向量坐标。

q=q^{T}U_{k}S_{k}^{-1}

注意:这是二维中的查询向量(query vector)的新坐标。请注意现在这个矩阵与步骤1中给出的原始查询矩阵q不同。潜在语义索引(Latent Semantic Indexing, LSI)——快速教程_第4张图片

6.按照查询-文档的余弦相似度的降序排列文档。

计算余弦相似度的公式如下,首先计算查询向量和文档向量之间的点积,然后除以查询向量和文档向量模的乘积。

潜在语义索引(Latent Semantic Indexing, LSI)——快速教程_第5张图片

我们可以看到文档d2的分数高于d3和d1,它的向量比其他向量更接近查询向量。请注意,词向量理论仍然应用于LSI的开始与结尾。

潜在语义索引(Latent Semantic Indexing, LSI)——快速教程_第6张图片

你可能感兴趣的:(NLP)