来源:DeepHub IMBA本文约1200字,建议阅读5分钟本文介绍了知识问答的两种主流方法。
什么是知识问答
基于知识的问答是以知识库为认知源,在知识库的基础上回答自然语言问题。
知识库(KB)是一个结构化数据库,其中包含形式<主题,关系,对象>的事实集合,每个事实都可以随附所谓的属性。
例如,“Barack Obama got married to Michelle Obama on 3 October 1992 at Trinity United Church”,会被解析为以下的集合。
一般常用的的知识库有DBpedia和WikiData。
简单问题vs复杂问题
KBQA的早期工作专注于简单的问题回答,其中只涉及一个事实。例如,“JK罗琳在哪里出生?”这是一个简单的问题,可以用《J.K.罗琳》这个事实来回答罗琳,出生地,英国>。
最近人们的注意力转向了回答复杂的问题。所谓的复杂的问题就是涉及到在KB上的多跳推理、约束关系、数值操作或上述的某种组合。
让我们来看一个复杂的KBQA问题:“Who is the first wife of the TV producer that was nominated for The Jeff Probst Show?”
这个问题需要找到以下的组合:
约束关系:我们正在寻找The Jeff Probst Show提名的电视制片人,因此需要找到一个与The Jeff Probst Show提名链接的实体,并且是一个 TV producer。
多跳推理:一旦我们找到电视制作人,我们需要找到他的妻子(wife)。
数值运算:一旦我们找到电视制作人的妻子,我们就会寻找第一任(first )妻子,因此需要比较数字并生成一个排名。
KBQA方法
对于复杂的KBQA,有两种主流方法。这两种方法都是从识别问题中的主题开始,并将其链接到知识库中的实体(称为主题实体)。然后,他们在主题实体的知识库附近获得答案:
通过执行解析后逻辑结构,典型的基于语义解析的方法(基于SP的方法)。会分析执行范式并通过在从KB中提取的特定于问题的图中进行推理,根据其与问题的相关性对提取图中的所有实体进行排名,这是典型的基于信息检索的方法(基于IR的方法)。
基于语义解析的方法
该方法通常将自然语言转化为中间的语义表示,然后将其转化为可以在 KG 中执行的描述性语言。具体有4种方法:1)语义解析(Semantic Parser)过程转化为query map 生成问题的各类方法;2)仅在领域数据集适用的Encoder-Decoder模型化解析方法;3)基于 Transition-Based 的状态迁移可学习的解析方法;4)利用 KV-MemoryNN 进行解释性更强的深度 KBQA 模型。
基于信息检索的方法
该方法首先会确定用户 Query 中的Entity Mention,然后链接到 KG 中的主题实体(Topic Entity),并将与 Topic Entity 相关的子图(Subgraph)提取出来作为候选答案集合,然后分别从 Query 和候选答案中抽取特征。最后利用排序模型对 Query 和候选答案进行建模并预测。
两种方法的优缺点
基于语义解析的方法由于逻辑形式而产生了更可解释的推理过程但是它们严重依赖于中间的语义表示的解析设计,这通常是性能改进的瓶颈。
基于信息检索的方法适合流行的端到端训练,但是推理模型的黑盒式使得中间推理的可解释性降低。
结论
在本文中,我们了解了什么是基于知识的问答(KBQA),以及解决复杂问题的两种主要方法。
如果你对KBQA比较感兴趣,可以从下面两个主要的数据集开始。
DBpedia https://www.dbpedia.org/ :
WikiData https://www.wikidata.org/wiki/Wikidata:Main_Page
编辑:王菁