首页 > 人工智能 > 基于网络搜索的知识库填充方法

基于网络搜索的知识库填充方法

 

目前公开的知识库中(比如:Freebase,NELL和YAGO),尽管数据量看似很大,但依然是高度不完善的。比如Freebase中,有70%的人出生地是未知的,有99%的人种族信息是未知的。Google在文章 Knowledge Base Completion via Search-Based Question Answering 中提出了一种基于网络搜索的问答技术来完善现有知识库中的缺失信息。

典型的填充知识库的方法是采用批处理方式处理大量的文档,然后根据关系抽取进行命名实体消岐,这称为”push”模式,因为它把文档中所有信息 都”push”到知识库中。相比而下,这里要讲的方法是一种”pull”的模式,它采用基于网络搜索的问答技术来抽取特定的主题关系对。

这篇文章的主要思路是:对于每个实体的某种属性,通过学习得到一组最佳的问题集(最佳是指:在搜索引擎上搜索这组问题集返回的答案片段是最可能包含该属性正确答案的最佳集合),再对所有问题在搜索引擎返回的结果进行融合得到最终想要的答案。整个系统的概况图如下:

基于网络搜索的知识库填充方法 - 第1张  | 新闻中心

1. 离线训练阶段

1.1 从搜索日志中挖掘模板

查询模板从搜索引擎的查询日志中进行挖掘。对于日志中的每条搜索请求记为q,根据q得到的查询模板记为t,实体和属性之间关系记为R,目标是计算出每个关系-模板对(R,t)的数量,可采用以下的步骤在搜索日志上进行迭代:

  • 对每条q(比如: Who Is Frank Zappa’s Mother)进行命名实体识别,并采用相似串匹配技术关联实体识别的结果,如果q不包含任何实体,则抛弃掉;
  • 设S(比如: Frank Zappa)是q中包含的主题实体,通过把q中的S替换为下划线可得到一个查询模板t,比如: Parents of Frank Zappa 通过替换可得到模板parents of ____;
  • 在上图中的问答系统(QA)中查询q,获取排名第一的答案字符串a(比如:Francis Zappa),把a连接到知识库得到实体A;
  • 如果(S,A)在知识库中是关系R下的一组映射,那么把关系-模板对(R,t)的计数加1。

1.2 扩展查询模板

上述方法得到的查询模板质量很大程度上会依赖于主题,比如,搜索Frank Zappa mother得到的答案片段中基本不会包含正确答案,而是Frank Zappa的乐队名,但在查询时增加一些额外信息可以很好的提高查询质量,比如,搜索Frank Zappa mother Baltimore (注:Baltimore是Frank Zappa的出生地)可以得到正确的答案,我们把这种增加了额外信息的查询称为查询扩展(query augmentation)。随后提到的查询模板,都默认包含了主查询模板和扩展查询模板,其中,后者可以简单的用一个属性实例来代替,比如上述的出生地。

2. 选择查询模板

之所以不使用全部的查询模板,是因为:计算资源是有限的;并非所有的查询模板都是有助于得到正确答案的。用来衡量模板查询质量的一个方法是采用可视化的热图(heatmap),如下图所示(其中,横轴是主查询模板,纵轴是扩展查询模板),其中,不同的颜色表示实例化后的查询模板的平均查询质量,查询质量用真实答案的平均倒序排名(MRR)来衡量,MRR的值越大越好。从图中可以看出,有些主查询模板本身的质量就比较高,有些扩展查询模板能显著提供查询的质量。

基于网络搜索的知识库填充方法 - 第2张  | 新闻中心

接下来要做的就是从热图中选择出合适的查询模板。一种方法是采用贪婪的方式,直接选取热图中值最大的查询模板;另一种方法是从热图中进行不放回的采样,然后把采样的模板样本通过softmax函数转换为概率分布:基于网络搜索的知识库填充方法 - 第3张  | 新闻中心γ=0时,相当于随机选择模板,随着γ值增加,倾向于选择MRR值较大的模板。这种选择模板的方式可以增加模板选择的多样性。

当模板选择的方式确定后,另一个问题是要选择多少个模板。

3. 问答系统(QA)

输入:可以用短语作答的一条查询语句,可能是一个问题(who was Frand Zappa’s mother),也可能是更简洁的查询(Frank Zappa mother Baltimore)。
输出:一组按照答案质量排序的候选答案。

具体步骤如下:

  • 在搜索引擎中输入query,取前n个结果片段(比如n=50);
  • 对结果片断中的每个短语根据输入的query进行打分。每个短语可由一组特征向量表示,打分可以按照这些特征的加权和得到,其中,权重根据有监督的机器学习计算得到;
  • 这一步通过机器学习对每个短语计算其总得分,因为同一个短语可能在所有的搜索结果中出现多次,每次出现都按照上一步的方式独立的计算出评分,可以采用机器学习的方法对其汇总。

4. 答案解析

对于每个query,QA系统返回的是一个答案字符串列表A,但我们想得到的是实体列表ε,因此,需要用到一些结合上下文的实体链接技术,同时,因为我们事先知道需要的实体类型,也可据此过滤掉那些类型不正确的答案实体。

5. 答案整合

经过上面的步骤后,每个查询qi(i=1,…,n)都可以得到一组类型正确的答案实体εi(i=1,…,n)。对于一个主题-关系对(S,R),有基于网络搜索的知识库填充方法 - 第4张  | 新闻中心个查询基于网络搜索的知识库填充方法 - 第5张  | 新闻中心,那么就会有基于网络搜索的知识库填充方法 - 第6张  | 新闻中心基于网络搜索的知识库填充方法 - 第7张  | 新闻中心。设Ω为所有εi中出现过的实体的集合,单个实体E∈Ω在每个εi中都有一个得分,记作si(E).如果E没在εi中出现过,则si(E)=0.这样,通过计算S(E)=基于网络搜索的知识库填充方法 - 第8张  | 新闻中心得到每个实体E在所有εi中的评价得分。这种方式可以排除那些在某次排名εi中很靠前的false postitives,此外,如果某个实体出现在很多排名中,但并不是很靠前,通过这种整合方式可以使它们的有一个较高的得分排名。

6. 答案校准

答案校准的目标是把QA系统的分数转换为的概率,这可以直观的对一个实体是否为正确答案做出解释,这个转换可以采用logistic回归(需要在独立的测试集上建立模型)。需要注意的是,有些属性的答案可能不止一个,比如有多个配偶,所以答案概率加起来可能不为1。

论文后续又通过一系列的实验证明了这套系统能以很高的置信度抽取出属性答案,从工程的角度验证了系统的实用性。由于时间和篇幅有限,本文只是概括性的对整个系统进行了描述,如果您确实从事该方面的研究,可以详细阅读下原论文,写作不当之处还请多多包涵。

最后编辑:
作者:兴明
这个作者貌似有点懒,什么都没有留下。

留下评论

你的email不会被公开。