Natural Language Processing 简明教程

NLP - Information Retrieval

信息检索 (IR) 可以定义为一个软件程序,该程序处理信息库(尤其是文本信息)中的组织、存储、检索和评估。该系统协助用户查找所需信息,但它不会明确返回问题的答案。它会通知包含所需信息的文档的存在和位置。满足用户需求的文档称为相关文档。一个完美的信息检索系统只会检索相关文档。

借助以下图表,我们可以了解信息检索 (IR) 的过程:

relevant output about information

从上图可以明显看出,需要信息的用户必须以自然语言查询的形式制定请求。然后,IR 系统会通过以文档的形式检索所需信息的相关输出作出响应。

Classical Problem in Information Retrieval (IR) System

信息检索研究的主要目标是开发一个用于从文档库中检索信息的模型。这里,我们将讨论一个经典的问题 ad-hoc retrieval problem ,该问题与 IR 系统相关。

在即席检索中,用户必须以描述所需信息的自然语言输入查询。然后,IR 系统将返回与所需信息相关的所需文档。例如,假设我们在互联网上搜寻某样东西,它提供了符合我们要求的一些确切页面,但也可能有一些不相关的页面。这是由于即席检索问题。

Aspects of Ad-hoc Retrieval

以下是 IR 研究中涉及的即席检索的一些方面:

  1. 用户在相关反馈的帮助下如何改进对查询的原始表述?

  2. 如何实现数据库合并,即如何将来自不同文本数据库的结果合并到一个结果集中?

  3. 如何处理部分损坏的数据?哪种模型适合同样情况?

Information Retrieval (IR) Model

在数学上,模型在许多科学领域中使用,旨在了解现实世界中的一些现象。信息检索模型预测并解释用户将在与给定查询相关的内容中找到什么。IR 模型基本上是一种模式,它定义了检索过程的上述方面,并包括以下内容:

  1. A model for documents.

  2. A model for queries.

  3. 将查询与文档进行比较的匹配功能。

在数学上,检索模型包括:

D - 文档表示。

R - 查询表示。

F - D、Q 及其之间关系的建模框架。

R (q,di) - 根据查询对文档进行排序的相似性函数。它也称为排名。

Types of Information Retrieval (IR) Model

信息模型 (IR) 模型可以分为以下三种模型:

Classical IR Model

它是实现最简单、最容易的 IR 模型。此模型基于容易识别和理解的数学知识。布尔、向量和概率是三个经典的 IR 模型。

Non-Classical IR Model

它与经典 IR 模型完全相反。这种 IR 模型基于相似性、概率和布尔运算之外的原则。信息逻辑模型、情景理论模型和交互模型是非经典 IR 模型的示例。

Alternative IR Model

增强经典信息检索模型并利用其他一些领域中的部分特定技术。群集模型、模糊模型和潜在语义索引 (LSI) 模型就是替代信息检索模型的示例。

Design features of Information retrieval (IR) systems

下面我们来了解信息检索系统的设计特征。

Inverted Index

大多数信息检索系统的主要数据结构是以倒排索引的形式存在的。我们可以将倒排索引定义为一种数据结构,针对每一个单词,列出所有包含该单词的文档以及该单词在各文档中出现的频率。这使得针对查询词搜索“命中”结果变得轻而易举。

Stop Word Elimination

停用词是指这些高频词不太可能用于搜索。它们具有较低的语义权重。所有此类词都在称为停用词表的一个列表中。例如,冠词“a”、“an”、“the”和介词“in”、“of”、“for”、“at”等都是停用词的示例。停用词表可以显著减少倒排索引的大小。根据齐普夫定律,涵盖几十个单词的停用词表将倒排索引的大小减少近一半。另一方面,有时停用词的排除可能会导致消除对搜索有用的术语。例如,如果我们从“维生素 A”中删除字母“A”,那么它将没有任何意义。

Stemming

词干提取作为形态分析的简化形式,是一种通过切断单词末尾来提取单词基本形式的启发式过程。例如,单词 laughing、laughs、laughed 将被词干提取为词根 laugh。

在我们的后续章节中,我们将讨论一些重要且有用的信息检索模型。

The Boolean Model

这是最古老的信息检索 (IR) 模型。该模型基于集合论和布尔代数,其中文档为术语集,而查询是对术语的布尔表达式。布尔模型可以定义为:

  1. D − 一组单词,即文档中出现的索引术语。这里,每个术语要么存在 (1),要么不存在 (0)。

  2. Q − 布尔表达式,其中项是索引项而运算符是逻辑积 − AND,逻辑和 − OR 和逻辑差 − NOT

  3. F − 布尔代数介于项集以及文档集如果我们谈论相关性反馈,那么在布尔信息检索模型中,相关性预测可以定义如下 −

  4. R − 当且仅当文档满足查询表达式时,被预测为与查询表达式相关 −

((𝑡𝑒𝑥𝑡 ˅ 𝑖𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛) ˄ 𝑟𝑒𝑟𝑖𝑒𝑣𝑎𝑙 ˄ ˜ 𝑡ℎ𝑒𝑜𝑟𝑦)

我们可以通过将查询项解释为文档集的明确定义来解释这个模型。

例如,查询项 “economic” 定义索引有项 “economic” 的文档集。

现在,在将项与布尔 AND 运算符组合之后结果会是什么?它会定义小于或等于任何单独项的文档集。例如,带有项 “social”“economic” 的查询将产生同时索引有这两个项的文档集。换句话说,具有两种集合交集的文档集。

现在,在将项与布尔 OR 运算符组合之后结果会是什么?它会定义大于或等于任何单独项的文档集。例如,带有项 “social”“economic” 的查询将产生索引有项 “social”“economic” 的文档集。换句话说,具有两种集合并集的文档集。

Advantages of the Boolean Mode

布尔模型的优点如下 −

  1. 基于集合的最简单的模型。

  2. 易于理解和实现。

  3. 仅检索完全匹配

  4. 为用户提供对系统的掌控感。

Disadvantages of the Boolean Model

布尔模型的缺点如下 −

  1. 模型的相似度函数为布尔。因此,不会有部分匹配。这可能让用户烦恼。

  2. 在这个模型中,布尔运算符的使用比关键单词有更大的影响。

  3. 查询语言富有表现力,但也很复杂。

  4. 对检索到的文档没有排名。

Vector Space Model

由于布尔模型的上述缺点,Gerard Salton 和他的同事们提出了一个基于 Luhn 相似度准则的模型。Luhn 制定的相似度准则指出,“两个表示在给定元素及其分布上越一致,则它们表示相似信息的概率就越高。”

考虑以下重要方面,以便更多地了解向量空间模型 −

  1. 索引表示形式(文档)和查询被视为嵌入在高维欧几里得空间中的向量。

  2. 文档向量与查询向量的相似度测量通常是它们之间夹角的余弦。

Cosine Similarity Measure Formula

余弦是一种归一化点积,可以用以下公式计算:

得分\lgroup\vec{d}\vec{q}\rgroup= \frac{\sum_{k=1}^m d_{k}\:.q_{k}}{\sqrt{\sum_{k=1}^m\lgroup d_{k}\rgroup^2}m\lgroup q_{k}\rgroup^2 }

得分\lgroup \vec{d} \vec{q}\rgroup =1\:当\:d =q

得分\lgroup\vec{d}\vec{q}\rgroup=0\:当\:d\:和\:q\:不共享任何项目时

Vector Space Representation with Query and Document

查询和文档由一个二维向量空间表示。术语为 carinsurance 。在向量空间中有一个查询和三个文档。

two dimensional vector space

作为对术语汽车和保险的响应,排名最高的文档将为文档 d2 ,因为 qd2 之间的角度最小。造成这一结果的原因在于,汽车和保险这两个概念在d2中都很突出,因此具有较高的权重。另一方面, d1d3 也提到了这两个术语,但在每个案例中,其中一个在文档中都不是一个中心重要的术语。

Term Weighting

术语加权表示向量空间中术余的权重。术语的权重越高,术语对余弦的影响就越大。应该为模型中更重要的术语分配更多权重。现在这里出现的问题是,我们如何对此建模。

执行此操作的一种方法是将文档中的单词作为其术语权重计数。但是,您认为这会是一种有效的方法吗?

另一种更有效的方法是使用 term frequency (tfij), document frequency (dfi)collection frequency (cfi)

Term Frequency (tfij)

可以将其定义为 djwi 出现的次数。术语频率捕获的信息是一个词在给定文档中的显着程度,或者换句话说,我们可以说,术语频率越高,该词就越能很好地描述该文档的内容。

Document Frequency (dfi)

可以将其定义为集合中出现wi的文档总数。这是信息性的一个指标。与语义不集中的单词不同,语义集中的单词将在文档中多次出现。

Collection Frequency (cfi)

可以将其定义为集合中 wi 出现的总数。

数学上,$df_{i}\leq cf_{i}\:and\:\sum_{j}tf_{ij} = cf_{i}$

Forms of Document Frequency Weighting

现在,让我们了解文档频率加权的不同形式。形式如下所述:

Term Frequency Factor

这也称为术语频率因子,这意味着如果某个术语 t 经常出现在某个文档中,那么包含 t 的查询应检索该文档。我们可以将单词 term frequency (tfij)document frequency (dfi) 组合成一个权重,如下所示:

权重 \left ( i,j \right ) =\begin{cases}(1+log(tf_{ij}))log\frac{N}{df_{i}}\:如果\:tf_{i,j}\:\geq1\\0 \:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\: 如果\:tf_{i,j}\:=0\end{cases}

在此 N 是文档的总数。

Inverse Document Frequency (idf)

这是另一种文档频率加权形式,通常称为 idf 加权或逆文档频率加权。idf 加权的重要点在于该术语在集合中的稀缺度是其重要性的衡量标准,而重要性与出现频率成反比。

在数学上,

idf_{t} = log\left(1+\frac{N}{n_{t}}\right)

idf_{t} = log\left(\frac{N-n_{t}}{n_{t}}\right)

在此,

N = 集合中的文档

nt = 包含术语 t 的文档

User Query Improvement

任何信息检索系统的首要目标都必须是准确性,即根据用户要求生成相关文档。然而,这里出现的问题是我们如何通过改进用户的查询形成样式来改进输出。当然,任何 IR 系统的输出都取决于用户的查询,格式良好的查询会产生更准确的结果。用户可以在 relevance feedback 的帮助下改进自己的查询,这是任何 IR 模型的一个重要方面。

Relevance Feedback

相关反馈采集到最初因给定查询而返回的输出。此初始输出可用于收集用户信息,并了解该输出是否与执行新查询相关。反馈可分类如下:

Explicit Feedback

它可以定义为从相关性评估者获得的反馈。这些评估者还将指示从查询中检索到的文档的相关性。为了改进查询检索性能,相关反馈信息需要与原始查询插值。

系统评估者或其他用户可以通过使用以下相关性系统明确指示相关性:

  1. Binary relevance system − 此相关反馈系统指示文档是针对给定查询相关 (1) 还是不相关 (0)。

  2. Graded relevance system − 分级相关反馈系统根据使用数字、字母或描述的分级来指示文档针对给定查询的相关性。描述可以是“不相关”、“有点相关”、“非常相关”或“相关”。

Implicit Feedback

它是从用户行为中推断出的反馈。行为包括用户花在查看文档上的时间、选择了哪些文档进行查看、哪些未查看、页面浏览和滚动操作等。隐式反馈的一个最佳示例是 dwell time ,它衡量用户在搜索结果中链接到的页面上花费了多少时间。

Pseudo Feedback

它也称为盲反馈。它提供了一种自动局部分析的方法。相关反馈的人工部分在伪相关反馈的帮助下实现自动化,这样用户无需进一步交互即可获得改进的检索性能。此反馈系统的主要优点是它不需要像明确相关反馈系统那样的评估者。

考虑以下步骤来实施此反馈:

  1. Step 1 − 首先,必须将初始查询返回的结果视为相关结果。相关结果的范围必须处于前 10-50 个结果中。

  2. Step 2 − 现在,从文档中选择 20-30 个最相关的术语,例如使用词频 (tf)-逆文档频率 (idf) 权重。

  3. Step 3 − 将这些术语添加到查询中,并匹配返回的文档。然后返回最相关的文档。