原创作者 | 朱林

论文解读:

Facts as Experts: Adaptable and Interpretable Neural Memory over Symbolic Knowledge

论文作者:

Google Research

论文地址:

https://arxiv.org/abs/2007.00849

收录会议:

NAACL 2021

01 介绍

大规模语言模型,如BERT、Transformer等是现代自然语言建模的核心,其已被证明可以编码进大量的常识和事实(Fact)信息,是许多下游应用的基础。

然而,这些知识只存在于模型的潜在参数中,无法进行检查和解释。更糟糕的是,随着时间和外部环境的变化,从训练语料库中学习并记忆的事实信息可能会过时或出错。

为了解决这些问题,本文作者开发了一种神经语言模型Facts-as-Experts (FaE),其在神经网络语言模型和符号知识库(symbolic KB)之间建立了一个桥梁,将深度神经网络的表达能力优势和符号知识库的推理能力优势进行了有机结合。

实验表明,该模型在两个知识密集型问答任务中显著提高了性能。更有趣的是,该模型可以通过操纵其符号表示来更新模型而无需重新训练,且该模型允许添加新的事实并以早期模型不可能的方式覆盖现有的事实。

02 模型

符号定义

总体架构

Facts-as-Experts(FaE)模型建立在最新提出的专家实体语言模型Entities-as-Experts(EaE)上,EaE是一种可以直接从文本中学习与实体相关Memory的新模型,参数规模小于Transformer模型,但是性能优于Transformer架构。

FaE模型在EaE基础上包含一个称为Fact Memory的附加Memory,它从符号知识库中编码出三元组。每个三元组都是由组成它实体的EaE-learned嵌入组成的。这个Fact Memory用一个键值对表示,可以用来检索知识库中的信息。

如图1所示,虚线内的模型是EaE,右侧是Fact Memory。首先输入一段文本,使用[MASK]作为对Fact Memory的查询,使用Transformer层对其进行上下文编码。

然后,通过上下文查询得到事实的Key(如[Charles Darwin, born in]),以及该Key的Values(如{United Kingdom})。返回被合并回上下文中以进行最终预测。事实中的键值与EaE实体Memory共享。

通过这种组合产生了一个新的神经语言模型,该模型能有效结合符号知识图中的信息。

图1 Facts-as-Experts模型架构

附加和集成

03 实验

数据集

本文在两个开放域问答数据集上进行了评估:FreebaseQA和WebQuestionsSP,这两个数据集都是从Freebase创建的。Freebase是个类似Wikipedia的创作共享类网站,所有内容都由用户添加。

结果

表1 两个数据集上的评估

如表1所示,作者将FaE与三个基线模型进行比较:FOFE、EmQL和Entity-as-Expert(EaE)。

FOFE是一种前馈语言模型,旨在对长序列进行编码,并且是FreebaseQA数据集上之前最先进的模型。EmQL是作为知识库上的查询嵌入引入的,是WebQuestionsSP上之前最先进的模型。另外还有上文提到的EaE模型。

结果显示,FaE在FreebaseQA数据集上的准确率高于其他基线模型近10个百分点。在WebQuestionsSP完整数据集上FaE的性能相对较低,但这主要是由于Freebase和Wikidata之间的映射导致知识库不完整导致的。

04 讨论

数据重叠

本文模型主要关注对模型使用外部知识回答问题的能力,而不是学习识别语义相同的问题。

不幸的是,对这两个数据集的分析表明,许多测试答案也显示为某些训练集问题的答案:FreebaseQA测试数据中75.0%的答案和WebQuestionsSP中57.5%的答案都是这种情况。

这表明了一种可能性,即模型的某些高性能可能归因于简单地记住特定的问题/答案对。

为了解决这个问题,作者丢弃了重叠部分查询实验。当应用重叠过滤之后,模型的表现要差得多,并且它们被迫依赖于跨多个示例进行推理的能力,在FaE中指的是Fact Memory。

新事实注入

因为作者的模型只是象征性地定义了事实,原则上它可以注入Memory中新的事实,而无需重新训练模型的任何参数。

为了测试模型执行此任务的能力,作者比对了模型在给定完整知识、过滤知识和注入知识的情况下的结果,如表2所示。过滤知识和注入知识的方法差距证明模型能够很好地结合新引入的事实。

表2 注入新的事实的对比结果

更新陈旧Memory

作者希望模型能很好地对知识进行表示,并且这种知识表示可以通过随外界环境变化而增量更新来避免数据过时。

为了探究这种能力,作者模拟了这个场景的一个极端版本,其中FreebaseQA测试集中对问答对的所有答案都替换为合理的其他值。

05 结论

在本文中,作者提出了一种将神经网络语言模型与可解释的符号知识库相结合的新模型FaE。该模型在事实性问答任务方面表现出与高性能语言模型相当或更好的性能,且该模型可以通过仅修改非参数的Memory部分而无需任何额外训练来更改语言模型的输出,是值得深入研究的一个新方向。

06 思考

本文留给了我们一些启发与思考:

(1) 深度神经网络语言模型实验效果很好,但是依赖于超大的数据集和深度的不可解释的参数空间,是一个典型的黑盒模型,实际应用很难调节和解释。而目前越来越的新方法尝试与符号知识库等有推理能力和解释能力的模型进行结合,以提高可解释性。

(2) 结合符号逻辑或者可解释的严谨的数学模型,我们可以构造出仅仅需要改变外部结构就能泛化到别的应用场景能力,而不用每次都拿新的数据喂给模型重新训练参数,如果这个思路可行,在实际工程中就可以节省很多训练时间和存储空间,是个值得研究的方向。

(3) 目前不少问答数据集存在训练集和测试集重叠的问题,导致了实验结果的“虚高”,值得重新构造恰当的数据集进行实验和探讨,使结果更为严谨。

FaE:基于符号知识的适应性和可解释的神经记忆的更多相关文章

  1. 【论文小综】基于外部知识的VQA(视觉问答)

    ​ 我们生活在一个多模态的世界中.视觉的捕捉与理解,知识的学习与感知,语言的交流与表达,诸多方面的信息促进着我们对于世界的认知.作为多模态领域的一个典型场景,VQA旨在结合视觉的信息来回答所提出的问题 ...

  2. Linux通配符与特殊符号知识大全汇总

    符号 作用 Linux通配符 * 匹配任意(0个或多个)字符或字符串,包括空字符串 ? 匹配任意1个字符,有且只有一个字符 [abcd] 匹配abcd中任何一个字符,abcd也可是其他任意不连续字符 ...

  3. 关于调用约定(cdecl、fastcall、、thiscall) 的一点知识(用汇编来解释)good

    函数调用规范   当高级语言函数被编译成机器码时,有一个问题就必须解决:因为CPU没有办法知道一个函数调用需要多少个.什么样的参数.即计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者 ...

  4. CRM 2011 Plugin 知识的总结加代码解释

    1.??的使用,就是判断值是否为null,为null的话,给赋初值,否则就直接取值. decimal new_amount = 0; if (targetEntity.Contains("字 ...

  5. 知识图谱顶会论文(ACL-2022) ACL-SimKGC:基于PLM的简单对比KGC

    12.(2022.5.4)ACL-SimKGC:基于PLM的简单对比KGC 12.(2022.5.4)ACL-SimKGC:基于PLM的简单对比KGC 摘要 1.引言 2.相关工作 2.1 知识图补全 ...

  6. 简单构建基于RDF和SPARQL的KBQA(知识图谱问答系统)

    本文主要通过python实例讲解基于RDF和SPARQL的KBQA系统的构建.该项目可在python2和python3上运行通过. 注:KBQA即是我们通常所说的基于知识图谱的问答系统.这里简单构建的 ...

  7. 基于机器学习的web异常检测

    基于机器学习的web异常检测 Web防火墙是信息安全的第一道防线.随着网络技术的快速更新,新的黑客技术也层出不穷,为传统规则防火墙带来了挑战.传统web入侵检测技术通过维护规则集对入侵访问进行拦截.一 ...

  8. CS(计算机科学)知识体

    附 录 A                   CS( 计算机科学)知识体 计算教程 2001 报告的这篇附录定义了计算机科学本科教学计划中可能讲授的知识领域.该分类方案的依据及其历史.结构和应用的其 ...

  9. 基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否

    基于机器学习的web异常检测 from: https://jaq.alibaba.com/community/art/show?articleid=746 Web防火墙是信息安全的第一道防线.随着网络 ...

随机推荐

  1. 免密码提交gitlab

    在你的用户目录下新建一个文本文件.git-credentials echo 'https://henry:123456@ggithub.com' > /root/.git-credentials ...

  2. 在js中如何区分深拷贝与浅拷贝?

    一.自我理解 简单来讲就是:深拷贝层层拷贝,浅拷贝只拷贝第一层. 在深拷贝中,新对象中的更改不会影响原对象,而在浅拷贝中,新对象中的更改,原对象中也会跟着改. 在深拷贝中,原对象与新对象不共享相同的属 ...

  3. 业务驱动的全景监控体系在阿里的应用 | 阿里巴巴DevOps实践指南

    编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...

  4. webpack学习:uni运行时代码解读一 (页面初始化加载)

    uni的vue代码是如何在微信小程序里面执行的,对此比较感兴趣所以去调试学习了一波. 准备工作 // 在vue.config.js里打开非压缩的代码 module.exports = { config ...

  5. AT3527 [ARC082D] Sandglass

    解法一 直接考虑在初始为 \(a\) 的情况下时刻 \(t\) 时 \(A\) 中剩余的沙子是行不通的,不妨反过来考虑在时刻 \(t\) 每个初始值 \(a\) 的答案,令其为 \(f_t(a)\). ...

  6. Swift循环的介绍

    循环的介绍 在开发中经常会需要循环 常见的循环有:for/while/do while. 这里我们只介绍for/while,因为for/while最常见 for循环的写法 最常规写法 // 传统写法 ...

  7. rabbitMq使用guest登录不上的问题总结

    自己mac电脑上的mq在电脑关机(直接按电源键关机),在开机后,rabbitMq连不上了,报500错误. 1.在使用brew uninstall rabbitmq --force后; 2.我手动安装了 ...

  8. nginx入门教程 (转)

    1.Nginx 状态码配置和错误文件 server { # 配置访问 /test.js 时报 403 错 location /test.js { return 403; } # 配置访问 /404 时 ...

  9. 认识BufferedReader的readLine、ready,以及InputStream的available

    最近,同学做实验的时候,在读取服务器端返回的时候,使用了BufferedReader类的readLine,他是这么写的,while(reader.ready()) {//执行读取操作,即readLin ...

  10. MyBatis加强(1)~缓存机制(一级缓存、二级缓存、第三方缓存技术redis、ehcache)

    一.缓存机制 使用缓存可以使应用更快地获取数据,避免频繁的数据库交互操作,尤其是在查询越多,缓存命中率越高 的情况下,缓存的作用就越明显. 1.缓存原理:Map ■ 查询时,先从缓存区查询:找到,返回 ...