热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

navicat生成er图_实践案例丨ACL2020KBQA基于查询图生成回答多跳复杂问题

摘要:目前复杂问题包括两种:含约束的问题和多跳关系问题。本文对ACL2020KBQA基于查询图生成的方法来回答多跳复杂问题这一论文工作进行了解读
摘要:目前复杂问题包括两种:含约束的问题和多跳关系问题。本文对ACL2020 KBQA 基于查询图生成的方法来回答多跳复杂问题这一论文工作进行了解读,并对相关实验进行了复现。
bbc3462c95a1aa996f58184b2d255d54.png

1、摘要

1.1 复杂问题

1)带约束的问题

2)多跳关系问题

1.2 提出一种改进的阶段式查询图生成方法

1.3 三份数据集上达到SOTA:CWQ、WQSP、CQ

2、介绍

2.1 复杂问题

(1)单跳关系带约束的问题

  • Who was the first president of the U.S.?
  • 单跳关系:“president_of”
  • 已知实体:“U.S.”
  • 约束词:“first”

(2)多跳关系问题

  • Who is the wife of the founder of Facebook?
  • 两跳关系:“wife_of”、“founder_of”

2.2 解决方法:考虑更长的关系路径,但是搜索空间会随着路径的变长呈指数性增长

2.3 挑战:如何限制搜索空间?以前也有一些方法,提出的只考虑匹配的最佳关系,而不是所有关系。但是没有同时处理两种类型的复杂问题。

2.4 方案:束搜索(beam search)

2.5改进:路径扩展 + 合并约束,串行 → 并行,有效地减少了搜索空间

3、方法

3.1、预备工作

(1)KB

    • K={(h,r,t)}
    • h,t 来自实体集合 E
    • r 来自关系集合 R

(2)KBQA:给定一个问题Q,从KB中找到一个答案a

3.2、阶段查询图方法

(1)四种类型的节点,如下图所示

  • A grounded entity 接地实体/对齐实体:KB中已存在的一个实体,至少有一个(阴影矩形)
  • An existential variable 未接地实体/存在变量/中间变量:0个或者多个(无阴影矩形)
  • A lambda variable 未接地实体/未知变量:表示答案,有且只有一个(圆形)
  • An aggregation funciton 聚合函数:最大/最小/求和等操作,0个或者多个(菱形)

(2)查询图的边是KB中的 r

09e711f51b7be80539e4837511cc2a83.png

(3)查询图的生成过程就是SPARQL查询语句生成的过程,如下图所示。注:与上图例子不完全符合。

其中,ns:m.0k2kfpc 是接地实体的MID(Freebase),?name3 是未知变量,?e1、?e2、?e3、?e4 等是中间变量。

6c0e811eb27a73f02f6668722b1e1616.png

3.3、阶段查询图生成的一般过程

1)从问句中的一个接地实体(topic entity)开始,识别一条核心关系路径(core relation path),将主题实体连接到一个lambda变量;

2)给核心关系路径添加一个或多个约束,这个约束包含一个接地实体或者一个带关系的聚合函数;

3)生成候选查询图,度量和问句的相似度,排序(CNN等神经网络);

4)取top1,在知识图谱上执行查询图,获得答案。

注:核心关系路径,在其他论文里叫核心推理链,或者叫基本查询图

3.4、动机

(1)问题:

    • 已有方法只考虑单个关系或两个关系的核心路径,无法解决多关系约束问题;
    • 如果允许核心关系路径变长,搜索空间会剧增;
    • CWQ数据集上,每个问题三跳情况下会有10000条路径。

(2)束搜索(beam search)

    • 在生成 t+1 跳关系路径时,只保留 top-K 个 t 跳关系路径,即每次路径只生成 K 个;
    • 已有方法忽视了约束这个条件,只考虑通过路径减少搜索空间;
    • 问题中的约束也可以帮助减少搜索空间,引导核心路径朝正确的方法生成。

(3)改进的阶段式查询图生成方法

    • 在附加约束前,不需要生成所有的核心关系路径;
    • 束搜索和语义匹配结合,得到一个更小的搜索空间。
    • 给定一个部分核心路径 (The Jeff Probst Show, nominated for, y1, nominee, y2),如果在y2上扩展一个关系,需要考虑KB中连接y2的所有关系,但是如果先加一个约束(is a, TV producer),将只考虑电视制片人被提名为xx show的人。

3.5、查询图生成

(1)束搜索生成查询图

  • 假设第 t 次迭代生成了 K 个查询图,表示为 G_t;
  • 第 t+1 次迭代,对于每个图 g∈G_t,使用三个操作 {extend, connect, aggregate} 增加一条边和一个节点,如下图所示;
  • 所有生成的图集合表示为 G′_(t+1) ,使用得分函数排序,取 top-K 个 ,得到候选查询图 G_(t+1);
  • 继续迭代,直到没有 g∈G_(t+1) 得分比 g∈G_t 高。
482d953e1a03862893beba841bf8801f.png

(2)扩展操作(extend)

    • 增加一个关系;
    • 如果当前查询图只有一个主题实体 e,扩展操作就增加 e 的一个关系 r ,另一端作为lambda变量 x ;
    • 如果当前查询图含有一个lambda变量 x ,扩展操作就将 x 转成一个existential变量 y ,找到 y 的关系 r ,生成新的lambda变量 x 。

(3)连接操作(connect)

    • 除了主题实体外,问题中经常会出现一些其他的接地实体 e ;
    • 连接操作将这个接地实体 e 链接到 lambda 变量 x 或者与 x 连接的existential变量。

(4)聚合操作(aggregate)

    • 预定义一个关键词集合,检测约束词;
    • 聚合操作将约束词作为一个节点连接 lambda 变量 x 或者与 x 连接的existential变量。

(5)方法的创新性:扩展操作可以应用在连接或者聚合操作后面,以前的方法不行。

    • 以前:扩展 → 扩展 →......→ 扩展 → 连接或聚合
    • 现在:扩展、连接、聚合 → 扩展、连接、聚合 →......→ 扩展、连接、聚合

3.6、查询图排序

(1)方法:第 t 次迭代,排序候选查询图 G′_t,通过生成一个7维的特征向量,输入到全连接层,计算分数。

(2)特征

第1维:

      • 基于BERT的语义匹配模型;(Pytorch版:https://github.com/huggingface/transformers)
      • 将查询图 g∈G′_t 转成一个词序列,按照图的生成顺序
      • 忽视中间变量和未知变量
      • 下图的查询图生成的序列:(the, jeff, probst, show, nominated, for, nominee).
c0e0944c3809b51c63a600045e25cae8.png

第2维:所有接地实体的实体链接得分累加和;(谷歌的实体链接工具:https://developers.google.com/knowledge-graph)

第3维:接地实体的数量;

第4维:实体类型的数量;

第5维:时间表达式的数量;

第6维:最高级表达式的数量;

第7维:答案实体的数量。

(3)强化学习方法,学习决策函数。

4、实验

(1)数据

    • ComplexWebQuestons (CWQ) 数据量:34689
    • WebQuestionsSP (WQSP) 数据量:4737
    • ComplexQuestions (CQ) 数据量:2100

(2)结果

bf307396a66a64ea2e01c77d13cafcb2.png

(3)消融实验

模型性能的提升,不仅仅与BERT有关。

77dae890f508b624dbaadb9f84345033.png

论文:Lan Y, Jiang J. Query Graph Generation for Answering Multi-hop Complex Questions from Knowledge Bases[C]//Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. 2020: 969-974.

链接:https://www.aclweb.org/anthology/2020.acl-main.91/

代码:https://github.com/lanyunshi/Multi-hopComplexKBQA

点击关注,第一时间了解华为云新鲜技术~



推荐阅读
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 关于如何快速定义自己的数据集,可以参考我的前一篇文章PyTorch中快速加载自定义数据(入门)_晨曦473的博客-CSDN博客刚开始学习P ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • S3D算法详解
    S3D论文详解论文地址:RethinkingSpatiotemporalFeatureLearning:Speed-AccuracyTrade-offsinVide ... [详细]
  • PyTorch框架中有一个非常重要且好用的包:torchvision,该包主要由3个子包组成,分别是:torchvision.datasets、torchvision.models、torchv ... [详细]
author-avatar
_LiNanaP
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有