点击上方,选择星标置顶,每天给你送干货

阅读大概需要10分钟

跟随小博主,每天进步一丢丢

每日英文

Time flies never to be recalled.

光阴一去不复返呀。

Recommender:云不见

作者:刘子仪

编辑:王萌

目前解决复杂KBQA(Knowledge Base Question Answering)的难点主要在于:问题带限制以及问题里包含有多个关系。这篇文章提出了一个query graph生成方法解决这个问题。

1. 背景介绍

在了解本文具体做什么之前,需要再明确下什么是带限制的问题和multi-hop of relations。带限制的问题,其实就是带限定词,例如Who was the first president of the U.S,这里的first就是限定词。multi-hop问题,例如像Who is the wife of the founder of Facebook, 包含两个关系,wife of和founder of,这就是多跳问题。目前的工作对于这两个难点都有一些研究进展,但是大多都是解决其中一个问题,针对第一个问题,已有的方法是先识别出一个relation path,再加限定词去形成一个query graph,针对第二个问题,最直接的思路就是扩展relation path,像广度优先搜索那样,但这种方法的问题是随着relation path变长,搜索空间会指数级增大。目前的工作很少有将两个问题一起解决,这篇文章提出一个改进的阶段性问题图生成方法,在延长relation path加入限定词来剪枝,有效的减少了搜索空间。

2. 方法

论文给了一个例子就是下图的Who is the first wife of TV producer that was nominated for The Jeff Probst Show? 这句话中有两个relation——“wife of”, “nominated for”, 两个constraint——”first“,”TV producer”。

接下来我们以一种比较直观的方式根据下图看看如何生成query graph,首先从一个grounded entity “The Jeff Probst Show”出发,找到一条核心relation path连接entity和answer,如果没有多余的限定词和其他关系,那这个answer就是图中的x,但是因为还有限定词,所以这个x变成了y1,一个中间节点。从y1接着往下走,加入问题中的限定词(如图所示的两个constraints,其中第二个argmin代表的是first,可以理解为在众多选项中选择最小的一个)。当我们已经找到所有候选query graphs,再通过和问题相似度进行排名,这一步通常使用CNN实现。最后选择分数最高的query graph来答题。

上述的方法是最近几年query graph生成概括性的总结,这篇文章也总结了之前方法中出现的问题:目前的成果只考虑了只有一个hop的relation path(或者是two hops with a CVT node),如果把核心relation path加长,假设加长到3个hop,那么可能会有10000个核心relation path,这会带来巨大的计算量。

所以本文的思路是在扩展relation path时加入限定词,可以减少搜索空间,并使用beam search和语义匹配来剪枝。

对于整体思路以及作者想要做什么有了了解之后,我们再来看看这篇文章的算法细节。

作者使用了三种action:extend,connect,aggregate来添加节点,这三个action其实就是上述过程的一个细分。如下图所示,extend的作用是找到relation,在图中第一个迭代找到了nominated for,通过extend把spouse,也就是wife这个信息加进来,并把原先的x换成一个中间节点;connect的作用是找到问题中其他grounded entity连接到已有的节点上;aggregate的作用是生成aggregation function的节点,例如图中的argmin,作者预先设定了一些关键词集合(e.g first, last most, least…)的aggregate function。

每一次迭代结束后,都会对候选query graphs进行排序,排序的方法是对每一个query graph进行一个7-dimensional向量的求导,在把这些向量送入一个全连接层,最后用softmax算出概率。

向量的第一维是BERT的词向量,第二维是所有grounded entity的linking scores,第三维是所有出现在query graph里的grounded entities的数量,四五六分别是实体类别,短语和最高级词语的数量,最后一维是答案的数量。

3. 实验与结果

(1) 实验设置

实验数据使用了三个数据集:Complex WebQuestions(CWQ), WebQuestionSP(WQSP)和ComplexQuestions(CQ)。实验使用了BERT base,BERT模型的超参数的dropout ratio设置为0.1。Knowledge base使用的是最新发布的Freebase,beam search的beam size K设为3。

(2) 实验结果

实验结果如图所示,作者和之前的一些模型进行了对比。图片中列举的前三个是不能解决multi-hop问题,第四个是没有使用beam search或者constraints来减少搜索空间。第五个是使用了beam size为1的beam search但没有解决constraints。六七两个是把复杂问题解构成简单问题。

实验结果证明作者的方法要好于前人的工作。

作者为了证明模型的有效性并不是依赖BERT,他们把BERT换成了LSTM,分数依然超越之前的模型。同时,作者还测试了去除掉extend/connect/aggregate三个动作的分数,结果如下图

(3) 错误分析

实验随机抽取了一百个error case并分析了错误原因。其中65%的错误是因为query graph的错误预测,问题中的关系人也很难观察到;27%是因为实体或者短语连接错误,一些限制type没有在连接过程中探测到;剩下6%是因为问题图生成有局限,一些问题找不到对应的策略去生成graph。

4. 总结

这项工作的主要创新点是把constraints和multi-hop结合起来解决,在生成query graph时,通过连接限定词来减少搜索域。我个人认为这篇文章没有太多给人耳目一新的地方,但是它很好地融合了前人的工作,并且对于query graph以及KBQA都做了详尽的解释,提出了extend,connect,aggregate等概念,把一些复杂问题简单化,很适合初次接触这个领域的人看。

下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!后台回复【五件套】
下载二:南大模式识别PPT后台回复【南大模式识别】

说个正事哈

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

推荐两个专辑给大家:

专辑 | 李宏毅人类语言处理2020笔记

专辑 | NLP论文解读

专辑 | 情感分析


整理不易,还望给个在看!

【ACL2020】使用问题图生成解决multi-hop复杂KBQA相关推荐

  1. ie显示服务器拒接链接,IE浏览器拒接访问是怎么回事 IE浏览器显示拒接访问的有效解决方法...

    IE浏览器是我们安装完系统后自带的浏览器,很多老用户都用习惯了,当你用IE浏览器的时候长了之后,你会遇到很多你没遇到过的问题,在昨天有网友就向小编请教了关于IE浏览器的事,IE浏览器显示拒接访问,之前 ...

  2. MyEclipse破解 注册机“System id无法生成” 解决方法:出现com.jniwrapper.util.ProcessorInfo

    本人卸载了原来的jdk后无法运行注册机,点击Systemid出现:com.jniwrapper.util.ProcessorInfo. 网上一堆人,都是说废话的,不是抄袭人家,就是乱来,没点实质性. ...

  3. 导入android源码有错,R.java文件不能自动生成解决方法 http://caizi12.iteye.com/blog/975125

    最近几天学习android ,学习时候难免要导入一些示例,目的为了更加了解android各种API用法,顺便也可以学习下别人代码的写法.可是导入android源码后,基本都有错误,R.java也不会自 ...

  4. 面试官问:生成订单30分钟未支付,则自动取消,该怎么实现?

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源 | https://blog.csdn.net/hjm4702192/article/details/80519010 在开发 ...

  5. 面试官问你如何解决web高并发这样回答就好了

    所谓高并发,就是同一时间有很多流量(通常指用户)访问程序的接口.页面及其他资源,解决高并发就是当流量峰值到来时保证程序的稳定性.如何做到高并发优化 我们一般用QPS(每秒查询数,又叫每秒请求数)来衡量 ...

  6. 你问我答 | 解决关于入托的8个疑问

    很多新手家长对于送孩子入托有很多顾虑,这次我们通过"你问我答"让家长更了解托班的意义. Q:不好好吃饭的小宝宝,适合入托吗? A:适合.吃饭是孩子生活能力培养的重要部分,大部分孩子 ...

  7. MyEclipse破解 注册机“System id无法生成”解决方法

    这种情况多半是电脑中装了64位的JDK,而注册机不能解析64位的JDK,导致Systemid无法生成,最终导致MyEclipse无法破解. 知道了原因,那就好办了. 只要下载一个32位的JDK安装一下 ...

  8. scanf返回值被忽略如何解决?

    问题图: 解决办法: 在第一行写入:#define _CRT_SECURE_NO_WARNINGS1即可 具体产生的原因和多种解决办法可以推荐一个非常详细的博主,链接如下:(3条消息) scanf返回 ...

  9. Visual Question Answering概述

    目录 任务描述 应用领域 主要问题 主流框架 常用数据集 Metrics 部分数据集介绍摘自这篇博客 任务描述 输入:图片III.由nnn个单词组成的问题Q={q1,...,qn}Q=\{ q_1,. ...

  10. 电脑常识:连不上网络,只显示飞行模式?

    电脑常见问题:连不上网络,只显示飞行模式 有的时候,我们突然打开笔记本,会发现电脑突然就连不上网了,各种重启电脑都没用,是怎么回事啊?并且显示只有飞行模式,但是飞行模式并未开启啊,且网络状态显示未连接 ...

最新文章

  1. C++ warning:’xxx‘ has no out-of-line virtual method definitions...
  2. Windows Server 2003域和活动目录
  3. PMP读书笔记(第11章)
  4. php短网址案例,php生成短网址原理与实例
  5. 将TreeView中导出为XML数据
  6. 《网管员必读——网络组建》(第2版)导读
  7. SQLServer 批量插入数据的两种方法
  8. mysql如何保证数据不丢失_23 | MySQL是怎么保证数据不丢的?
  9. 深度学习打造精准推荐系统,细说国美互联网 AI 发展的进击之路
  10. python安装什么版本比较好_安装好python之后 python哪个版本最好用
  11. iwconfig工具
  12. 软件后台《积分制 / 绩效考核表》管理制度
  13. 前段时间 qq大战 360..
  14. canon科学计算机说明书,canon相机使用说明 各个按键的使用说明【图解】
  15. 二分图(染色法+匈牙利法)学习笔记
  16. TTL、RS232、485到底能传输多远距离?
  17. 能量时域空间物理_2.1时域数学建模,二阶系统阻尼比与品质因数存在这样奇妙的关系...
  18. 【笔记】三张图读懂机器学习:基本概念、五大流派与九种常见算法
  19. 采集百度图片不显示 怎么办
  20. 【空间/通道注意模型:Nest连接:IVIF】

热门文章

  1. 第一章 项目管理引论
  2. ABP框架详解(一)ABPBootstrapper
  3. 微软开放技术热烈祝贺开源社成立!
  4. Java的多线程机制系列:(四)不得不提的volatile及指令重排序(happen-before)
  5. Android设计模式--之命令模式
  6. 中国统计网又出干货了——会员分层与顾客忠诚度分析
  7. [2010-9-8]
  8. 哥写的不是代码,是寂寞
  9. HDU 1251 - 统计难题(字典树模板题)
  10. 解数独(Python)