天天看点

《中国人工智能学会通讯》——7.23 知识图谱在信息检索中的应用

随着知识图谱相关技术的逐渐成熟,近年来,学术界也开始了对知识图谱的在搜索引擎中的应用的探索。目前常用的方法是:先通过实体标注等技术将搜索引擎和知识图谱联系起来;然后利用知识图谱中的信息来更好地理解查询词条和改进排序模型。

知识图谱和搜索引擎的结合

知识图谱和之前搜索引擎中常见的数据有很大不同。首先,知识图谱是图结构的,而搜索引擎中更常见的是文本和网页;同时,知识图谱中的信息更语义化。要想能够在搜索引擎中使用知识图谱,首要要做的是把知识图谱,或者更具体地说,其中的实体,和搜索引擎给对接起来。目前常见的方法有如下四种。

●  人工标注:人工挑选相关和查询词条相关的实体。这种方法直观、可靠。但是只能一定程度上代表知识图谱效果的某种上限,很难大规模使用。

●  搜索词条中的实体标注[3] :使用实体标注系统找出在搜索词条中出现的实体,并连接到知识图谱中对应的节点上。因为实际用户在搜索词条中提到的实体很大概率上反映用户的意图,所以通过搜索词条上的实体标注可以提供相对高质量的相关实体。

●  实体搜索:建立一个实体搜索引擎,将查询词条的前几条实体搜索结果当作相关实体[5] 。

●  文档实体标注:对候选文档进行实体标注,然后所有候选文档的实体标注中选择最频繁出现的那部分当作相关实体。这种方法使用了经典的伪相关反馈假设。即被搜索引擎排在前面的文档结果应当是相关的,这些文档中常出现的实体也应该是相关的[4] 。

总的来说,这四种方法各有特点。人工标注能够保证相关实体的准确性,但是只具有指导意义;搜索词条中的实体标注能够提供更直接、更精确的相关实体,但是数量有限;实体搜索和文档实体标注结果从不同角度提供了更丰富的相关实体,但是也引入了更多噪声。表 1 给出了几种不同的方法找出的相关实体结果,作为示例。

《中国人工智能学会通讯》——7.23 知识图谱在信息检索中的应用

基于知识图谱的用户查询词条理解

得到了查询词条的相关实体之后,最直观的方法是用这些实体来帮助理解查询词条。目前主要的方法有查询词条扩展和排序模型的特征扩展两种。

基于 Freebase 的查询词条扩展[6]

本 方 法 利 用 Freebase 这 个 目 前 最 大、 覆盖面最广的知识图谱,来提升查询扩展(queryexpansion)的效果。查询扩展是搜索中很常用的技术。一般用户给的查询词条很短,平均约 2~3 词。这导致了用户意图很难被搜索引擎准确理解。为了解决这个问题,查询扩展技术找到一系列能够反映用户意图的词语(扩展词),作为查询词条的补充。

在知识图谱里,实体的文本描述是由领域专家提供的对实体的解释。这些文本解释不但质量比网页更高,也提供了更丰富的语义信息。例如,“微软中国”这个实体的文本描述中会提到大量的微软公司以及中国分公司的知识。这些知识能够帮助搜索引擎更好地理解和“微软中国”相关的搜索词条。

具体做法可以分成两步。第一步,先找到查询词条的相关实体。由于查询扩展一般需要一个较大的候选集合来投票得出扩展词。这里主要使用的方法是实体搜索和文档实体标注来找到相关实体。第二步,从相关实体的文本描述中选择扩展词。这一步也有两种方法:第一种方法用经典的 TF-IDF,在文本描述中选择出现更频繁(TF),在整个数据集中又相对少见(IDF)的词。第二种方法用Freebase 中的分类信息训练一个分类器,将查询词和候选词语分类。之后再选择和查询词在类别上相似的词语作为扩展词。

本方法在 TREC 评测中网页搜索的数据集上,将查询扩展的效果提升了 10%~30%。和之前的方法相比,这个方法主要的区别就是使用了知识图谱中的信息。这样能带来最高可达 30% 搜索效果的提升,也反映了知识图谱在搜索中的有效性。

排序模型中特征扩展[7]

搜索引擎中目前常见的排序方法都是基于机器学习的(learning to rank)。一个好的排序算法可以分为特征和模型两个部分。知识图谱中的信息,除了可以拿来扩展查询词条之外,也可以给排序算法提供更丰富的特征。

本方法首先利用实体搜索和查询词条,以及文档上实体标注,从 Freebase 中找到到相关实体。然后,将相关实体的各种文本属性,包括类别名、名称,以及实体在文档中的上下文等,作为虚拟的子查询词条。这些子查询词条和文档的各种文本相似度被当作新的特征加入到现有的排序模型中。这些排序特征引入了来自于知识图谱不同维度的语义信息,提供了一个更大的模型空间供机器学习模型来学习排序函数。在 TREC 的网页搜索任务上和新闻搜索数据集上,这个方法能够达到或者超过之前的排序模型效果。

基于知识图谱的排序模型

之前的方法是首先通过知识图谱来扩展查询词条,或者抽取更多特征,然后在此基础上应用传统的模型进行排序。相比之下,一个更直观做法是从最终的查询结果优化的角度出发,直接利用知识图谱构建新的搜索模型。目前有效的做法是将找到的相关实体作为联系查询词条和文档之间的桥梁,并在排序模型中统一考虑查询词条、相关实体和候选文档之间的联系。根据是否使用了训练数据,现今做法可以分为无监督和有监督这两类。

无监督的实体隐变量模型(LES) [8]

本方法使用人工标注的实体来作为查询词条和候选文档之间的中间层,然后利用标注的实体的文本描述和查询词条,以及文档的文本相似度对文档进行排序。

具体来说,假定查询词条是 q,一篇候选文档是 d,则传统语言模型假设下的相关性可以认为是p(q|d),即文档 d 的语言模型生成 q 的概率。而给定相关实体之后,可以假设 q 和 d 之间的互动是通过相关实体作为中间层实现的。这样的话,相关性可以被表示为e /p(q|e)p(e|d)。其中 e 表示一个相关实体,p(e|d) 和 p(q|e)则通过文档、实体和查询词条的文本描述的文本相似度来计算。

作为一个简单的无监督方法,此模型在 2015年的 TREC 网页搜索比赛中获得了最好的搜索效果,超过了诸多基于机器学习和传统排序特征的有监督模型。当然,这种方法很依赖相关实体的精确度,目前主要依靠人工标注来保证效果,很难自动地在实际系统中上使用。但是,作为一个简单的方法,它的效果也进一步反映了知识图谱在排序模型中的潜力。

有监督的实体隐变量模型 (EsdRank) [9]

EsdRank 和 LES 同样将相关实体作为排序模型中的查询词和文档之间的隐含层进行建模。不同的是 EsdRank 利用各种特征表示查询词、相关实体和文档之间的相关性,并使用 Learning to Rank学习这些特征的权重。通过使用有监督的模型和相关性标注数据,EsdRank摆脱了对人工标注的依赖,可以在自动得到相关实体上也获得好的效果。

EsdRank 中的相关实体也来自查询词条中的实体标注、实体搜索和候选文档的实体标注。实体和查询词条之间的关系,以及实体和候选文档之间的关系,均用特征来表示。查询词条和实体之间的特征可以是查询词条和实体各个属性(文本描述、名称等)的文本相似度,以及查询词和实体在知识图谱中所在类别的相似度、实体和查询词在实体标注中的关系、实体本身的重要性等。实体和文档之间的特征包括类似的文本、分类、实体标注,以及知识图谱中的距离等。这些特征既包含了传统的排序模型中的文本特征,也引入了知识图谱特中的语义信息。

整个排序过程被一个两层的生成式模型刻画。模型首先从查询词条生成相关实体(p(e|q)),进而根据相关实体对相关文档进行排序(p(d|e))。其中相关实体则是隐含变量。模型的训练使用了 EM 方法,直接从查询词 - 文档的相关性中学习实体的打分和文档的排序。

EsdRank 在医疗搜索和网页搜索这两个不同的搜索领域上,都显著提高了搜索精确度。在医疗搜索上,EsdRank 选择了传统的 MeSH 控制词表作为知识图谱;在网页搜索上,EsdRank 选择的是Freebase。面对这两个不同的搜索领域和不同的知识图谱,EsdRank 使用了相同的框架、相同的模型和几乎一样的特征,并均取得了好的效果。这个结果也反映了知识图谱目前在搜索上已经接近,或者达到了实际可用的效果,并对不同的搜索领域有一定的普世性。

继续阅读