一、概要
该文章发于EMNLP 2013,作者提出训练一个语义解析器(semantic parser),基于该语义解析器进行KBQA(knowledge base question answering),具体步骤是语义解析器把输入问题解析为logical forms,再基于这种结构化的表达从知识库(knowledge base)中寻找答案。其中面临的困难的怎么从问题句子中降低可能的logical predicates,作者提出了mapping from phrases to predicates和bridging operation两种方法进行解决。
二、模型方法
2.1 任务介绍
在给定的知识库K和训练集question-answer pairs{
(xi,yi)ni=1 }下,训练出一个语义解析器,然后对新问题x进行解析得到logical forms,在通过查询知识库得到答案y。
其中E表示实体集(如:BarackObama),P表示属性集(如:PlaceOfBirth),知识库K是三元组 (e1,p,e2)∈E×P×E 集合(如:BarackObama, PlaceOfBirth, Honolulu))。
2.2 Logical forms
Logical forms是在知识库中的一种查询语句,其中Lambda Dependency-Based Compositional Semantics ( Lambda-DCS)是一种经典的逻辑语言,它用于处理逻辑形式(在实际操作中,逻辑形式会转化SPARQL query,可以在Virtuoso engine上对Freebase进行查询)。
逻辑形式分为一元形式(unary)和二元形式(binary)。比如对于一个一元实体e,可以查询出对应知识库中的实体,给定一个二元实体关系p,可以查到它在知识库中所有与该实体关系p相关的三元组中的实体对。除此之外,还可以跟数据库语言一样,进行连接Join,求交集Intersection和聚合Aggregate(如计数,求最大值等等)操作。具体来说,逻辑形式(符号为z)有以下形式和操作:
① Unary base case: If e ∈ E is an entity (e.g:Seattle), then e is a unary logical form with [z]K=e .
②Binary base case: If p ∈ P is a property (e.g:PlaceOfBirth), then p is a binary logical form with [p]K=(e1,e2):(e1,p,e2)∈K.2
③Join: If b is a binary and u is a unary,then b.u (e.g:PlaceOfBirth.Seattle) is a unary denoting a join and project: [b.u]K = {
e1∈E:∃e2.(e