《Learning to Answer Complex Questions over Knowledge Bases with Query Composition》论文笔记

Learning to Answer Complex Questions over Knowledge Bases with Query Composition

这是一篇密歇根安娜堡发表在CIKM上的文章,主题为KBQA,依然是SP-based。

Overview

这篇文章处理的是复杂问题,主题方法还是通过SP生成query graph,然后使用神经网络的方法进行语义匹配找到最佳的查询图,最后在KB中执行。但是本文的最大创新点在于:作者假设complex question可以被分解为多个simple question。其实这个假设是很合理的,之前的几篇文章曾经总结过复杂问题的主要特点,无外乎就是entity、relation、constraint变多了,需要多跳推理,这也会使得每个问题的search space呈指数级增长。因此本文在所做的就是把多跳推理转化为多个单跳推理,这样一来,search space能大大减小,并且query graph的生成也变得简单。于是,本文的主要问题就转化为了怎么找partial question和怎么根据partial question得到原问题的答案(或者说怎么对partial questions进行composition操作)。

本文的contribution如下:

  1. 设计出了TextRay,一个end-to-end的KBQA系统,可以将问题翻译为可在KB中执行的query
  2. 提出了decomposition-join-execute的方法来通过partial questions构建complex query
  3. 使用了神经网络的semantic matching模型对候选的partial question进行筛选

Approach

首先来看一下整个系统的结构图

在这里插入图片描述

总的概括一下,这个系统有两大核心组件:

  • Query Composition:给定一个问题 Q Q Q,我们希望得到对应的query graph G G G,那么本文的做法是根据computation plan生成一系列的partial query { G i } i = 1 L \{G_{i}\}_{i=1}^{L} {Gi}i=1L,我们后面会说什么是computation plan,这里可以暂时理解为partial query的执行步骤。而在每一步,我们都会生成top-k的candidate,因此表示为 G i ( k ) G_{i}^{(k)} Gi(k)。然后最优的 M M M个会被执行得到相应答案,这些答案会被用来生成第 i + 1 i+1 i+1步的partial query。
  • Semantic Matching:这一部分就是使用神经网络去求 S s e m ( Q , G i ( k ) ) S_{sem}(Q,G^{(k)}_{i}) Ssem(Q,Gi(k)),得到每一步的最优的candidate。

Query Composition

首先来看之前留下的概念:computation plan,包含两个操作: s i m Q A simQA simQA j o i n join join s i m Q A simQA simQA就是生成子问题,而 j o i n join join可以理解为一个条件,代表两个子问题之间互相独立。对于每个问题 Q Q Q,作者使用argumented pointer network来生成computation plan z   =   z 1 z 2 … z n z\ =\ z_{1}z_{2}\dots z_{n} z = z1z2zn z i ∈ { s i m Q A ,   j o i n } z_{i} \in \{simQA,\ join\} zi{simQA, join}。这样一来computation plan其实有两种结构

在这里插入图片描述

一种是(a)这样的并列式,另一种就是(b)这样的递进式。

Partial Query Generation

定义两个集合:

  • 状态集合 S S S { ϕ ,   S e ,   S r ,   S c ,   S t } \{\phi,\ S_{e},\ S_{r},\ S_{c},\ S_{t}\} {ϕ, Se, Sr, Sc, St},分别代表空问题、单个实体、单条关系路径、单个限制、终止状态。当达到终止状态 S t S_{t} St,模型就会去查询computation plan来决定如何生成下一步的 G i + 1 G_{i+1} Gi+1
  • 指令集和 A A A { A e ,   A r ,   A c ,   A t } \{A_{e},\ A_{r},\ A_{c},\ A_{t}\} {Ae, Ar, Ac, At},分别代表找出seed entity(也就是topic entity)、添加一条关系路径、调价一条限制、终止并转移到终止状态。

至于 A e 、 A r 、 A c A_{e}、A_{r}、A_{c} AeArAc具体怎么操作就不赘述了。而 A t A_{t} At是终止操作,达到 S t S_{t} St之后回去查询computation plan,这事就有两种情况:

  1. 如果是join,那么代表 G i + 1 G_{i+1} Gi+1不依赖于 G i + 1 G_{i+1} Gi+1的答案,可以直接进行下一步的生成

  2. 如果是simQA,那么代表 G i + 1 G_{i+1} Gi+1需要 G i G_{i} Gi的答案,这时就要先执行 G i G_{i} Gi得到答案,把答案加入 G i + 1 G_{i+1} Gi+1的候选实体中。

    在这里插入图片描述

Query Composition and Execution

作者管每一步通过beam search得到的候选 G i ( k ) G_{i}^{(k)} Gi(k)叫derivations,得到derivations之后作者训练了一个log-linear model来对这些derivations打分,选出最好的那一个作为当前这一步的partial query。

Semantic Matching Model

本文的semantic matching model和《Knowledge Base Question Answering via Encoding of Complex Query Graphs》这篇文章的基本一样,就是在question encoding的地方加了一个attention,其他没什么区别。

在这里插入图片描述

这里做的任务是判断一个partial query是不是争正确的,因此可以看作二分类,损失函数就是交叉熵

在这里插入图片描述

但是这样就有一个问题,没有标签。如果要人工再去构建一个数据集肯定是不行的,因此作者用了implict supervision的方法。

Experiment

在这里插入图片描述

这篇文章把之前那篇CompQA在CompQWeb数据集上的表现亮出来以后确实让我很惊讶,这样看来那篇文章的方法应该有很严重的过拟合。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值