其他分享
首页 > 其他分享> > 《Learning to Answer Complex Questions over Knowledge Bases with Query Composition》论文笔记

《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

首先来看之前留下的概念: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 = z1​z2​…zn​, 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

定义两个集合:

至于 A e 、 A r 、 A c A_{e}、A_{r}、A_{c} Ae​、Ar​、Ac​具体怎么操作就不赘述了。而 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数据集上的表现亮出来以后确实让我很惊讶,这样看来那篇文章的方法应该有很严重的过拟合。

标签:partial,computation,join,over,Bases,Learning,Query,query,Gi
来源: https://blog.csdn.net/qq_42791848/article/details/122795641