其他分享
首页 > 其他分享> > 实践案例丨ACL2020 KBQA 基于查询图生成回答多跳复杂问题

实践案例丨ACL2020 KBQA 基于查询图生成回答多跳复杂问题

作者:互联网

摘要:目前复杂问题包括两种:含约束的问题和多跳关系问题。本文对ACL2020 KBQA 基于查询图生成的方法来回答多跳复杂问题这一论文工作进行了解读,并对相关实验进行了复现。

1、摘要

1.1 复杂问题

1)带约束的问题

2)多跳关系问题

1.2 提出一种改进的阶段式查询图生成方法

1.3 三份数据集上达到SOTA:CWQ、WQSP、CQ

2、介绍

2.1 复杂问题

(1)单跳关系带约束的问题

(2)多跳关系问题

2.2 解决方法:考虑更长的关系路径,但是搜索空间会随着路径的变长呈指数性增长

2.3 挑战:如何限制搜索空间?以前也有一些方法,提出的只考虑匹配的最佳关系,而不是所有关系。但是没有同时处理两种类型的复杂问题。

2.4 方案:束搜索(beam search)

2.5改进:路径扩展 + 合并约束,串行 → 并行,有效地减少了搜索空间

3、方法

3.1、预备工作

(1)KB

(2)KBQA:给定一个问题Q,从KB中找到一个答案a

3.2、阶段查询图方法

(1)四种类型的节点,如下图所示

(2)查询图的边是KB中的 r

(3)查询图的生成过程就是SPARQL查询语句生成的过程,如下图所示。注:与上图例子不完全符合。

其中,ns:m.0k2kfpc 是接地实体的MID(Freebase),?name3 是未知变量,?e1、?e2、?e3、?e4 等是中间变量。

3.3、阶段查询图生成的一般过程

1)从问句中的一个接地实体(topic entity)开始,识别一条核心关系路径(core relation path),将主题实体连接到一个lambda变量;

2)给核心关系路径添加一个或多个约束,这个约束包含一个接地实体或者一个带关系的聚合函数;

3)生成候选查询图,度量和问句的相似度,排序(CNN等神经网络);

4)取top1,在知识图谱上执行查询图,获得答案。

注:核心关系路径,在其他论文里叫核心推理链,或者叫基本查询图

3.4、动机

(1)问题:

(2)束搜索(beam search)

(3)改进的阶段式查询图生成方法

3.5、查询图生成

(1)束搜索生成查询图

(2)扩展操作(extend)

(3)连接操作(connect)

(4)聚合操作(aggregate)

(5)方法的创新性:扩展操作可以应用在连接或者聚合操作后面,以前的方法不行。

3.6、查询图排序

(1)方法:第 t 次迭代,排序候选查询图 G′_t,通过生成一个7维的特征向量,输入到全连接层,计算分数。

(2)特征

第1维:

第2维:所有接地实体的实体链接得分累加和;(谷歌的实体链接工具:https://developers.google.com/knowledge-graph)

第3维:接地实体的数量;

第4维:实体类型的数量;

第5维:时间表达式的数量;

第6维:最高级表达式的数量;

第7维:答案实体的数量。

(3)强化学习方法,学习决策函数。

4、实验

(1)数据

(2)结果

(3)消融实验

模型性能的提升,不仅仅与BERT有关。

论文:Lan Y, Jiang J. Query Graph Generation for Answering Multi-hop Complex Questions from Knowledge Bases[C]//Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. 2020: 969-974.

链接:https://www.aclweb.org/anthology/2020.acl-main.91/

代码:https://github.com/lanyunshi/Multi-hopComplexKBQA

 

 

点击关注,第一时间了解华为云新鲜技术~

标签:关系,路径,查询,变量,实体,KBQA,生成,ACL2020
来源: https://blog.51cto.com/u_15214399/2824547