ACL 2019 | 基于知识增强的语言表示模型,多项NLP任务表现超越BERT(附论文解读)

本文涉及的产品
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
简介: 本文提出了一种新方法,将知识图谱的信息加入到模型的训练中。

来源:PaperWeekly

作者:张琨

文章来源:微信公众号 数据派THU

本文共2000字,建议阅读10分钟。

本文提出了一种新方法,将知识图谱的信息加入到模型的训练中。


image.png

论文动机

自从 BERT 被提出之后,整个自然语言处理领域进入了一个全新的阶段,大家纷纷使用 BERT 作为模型的初始化,或者说在 BERT 上进行微调。BERT 的优势就在于使用了超大规模的文本语料,从而使得模型能够掌握丰富的语义模式。

但 BERT 是否还有改进的空间呢?如下图,当提到“鲍勃迪伦”的时候,单纯依靠大规模的普通文本很难理解到底是指音乐家还是作者,但如果加入充分的先验知识,那么模型可能就会学习到更加精细化的语义表示,如何让 BERT 掌握更多的人类先验知识呢?

本文就提出了一种方法,将知识图谱的信息加入到模型的训练中,这样模型就可以从大规模的文本语料和先验知识丰富的知识图谱中学习到字、词、句以及知识表示等内容,从而有助于其解决更加复杂、更加抽象的自然语言处理问题。

image.png

模型结构

整个模型的动机就是将知识图谱的信息有效融入到模型的训练中,考虑到 BERT 的复杂结构,如何将知识图谱的信息进行有效融合呢?作者提出了如下的结构:

image.png

可以看出,模型将 BERT 中的 Encoder 替换为了 T-Encoder+K-Encoder,T-Encoder 依然是对原来的文本进行编码,这部分和 BERT 是一样的,在 K-Encoder 中,可以看到输入输出都变成了两个,多了 entity 的信息。

具体来说,首先可以利用 TransE 的方法对知识图谱中的内容进行表示,并对文本中的实体进行识别,这样文本中的实体都会有一个来自知识图谱的实体表示,需要注意的是文本的长度和实体的长度并不相等,然后先用 mutli-head attention 对文本和实体分别进行处理,得到在整个序列中情境感知的语义表示:

image.png

接下来就是对这两种信息进行融合,或者说利用实体的信息来增强对文本语义的理解,这个时候就分成两种情况:

  1. 文本中的词有实体对应,一个很简单的思路,通过一个非线性变换,得到融合后的信息:

image.png

  1. 文中的词没有实体对应,为了保证一致性,还是同样的方法,只是只有实体词的输入:

image.png

通过这样的方法,就将实体的知识信息融入到了对文本语义的增强表示中,接下来将相应的单元重复多次,就得到的最终的文本语义表示。

训练细节

从模型上实现了知识图谱信息的有效融合,那如何训练呢?如果单纯还是和 BERT 的训练方式相同,知识图谱的知识信息可能并不能如期望的那样进行有效融合,因此作者参考 Masked Language Model 设计了一个 denoising Entity Auto-encoder (dEA) 任务,用以训练模型对实体信息的感知和对齐,具体内容如下。

dEA 的目的就是要求模型能够根据给定的实体序列和文本序列来预测对应的实体,首先是实体和文本之间的对齐概率计算:

image.png

这个公式也被当作训练 dEA 时的损失函数,有了目标,那么数据该如何准备呢?和 Masked Language Model 类似,作者对实体也做了如下处理:

  1. 对于一个给定的文本-实体对应序列,5% 的情况下,实体会被替换为一个随机的实体,这么做是为了让模型能够区分出正确的实体对应和错误的实体对应;
  1. 对于一个给定的文本-实体对应序列,15% 的情况下,实体会被 mask,这是为了保证模型能够在文本-实体没有被完全抽取的情况下找到未被抽取的对应关系;
  1. 对于一个给定的文本-实体对应序列,剩下的 80% 的情况下,保持不变,这是为了保证模型能够充分利用实体信息来增强对文本语义的表达。

和 BERT 类似,作者也对输入进行了一些调整,从而保证了模型能够自适应不同的任务,下图展示了针对三类自然语言处理任务的输入调整:

image.png

对于一般的 NLP 任务而言,知识在输入的头尾加上特定的开始结束符号,然后送给模型,并取 [CLS] 对应的输出作为输入句子的表示。

对于一些知识驱动的任务,如关系分类,实体类别识别等任务,作者加入了特定的符号用以区分这些任务,对于实体类别识别任务,作者加入了 [ENT] 来指导模型使用文本表示和实体表示进行最后的实体信息识别。

对于关系分类任务,作者加入了 [HD] 和 [TL] 分别表示头实体和尾实体,然后使用 [CLS] 对应的特征向量来进行最后的分类。整个这部分的操作和 GPT-2 的无监督学习有些类似。

实验结果

和 BERT 不同的是,作者首先在两个知识驱动的任务上进行了模型效果的验证:

  1. Entity Typing:给定实体和对应的上下文,模型需要识别该实体的语义类型。
  1. Relation Classification:给定一个句子,模型需要识别出句子中的两个实体之间的关系。

这两个任务都是知识驱动的任务,不单单需要模型能够掌握丰富的语义模型,同时需要模型能够有丰富的先验知识,这样才能进行准确识别和分类,下图是对应的实验结果:

image.png

image.png

从实验结果上看,模型取得了非常好的效果,这也说明了模型有效融入了知识图谱的先验信息,实现了文本语义的增强表示,同时作者还在常见的 NLP 任务上和 BERT base 进行了对比,实验结果也证实了模型的有效性。

image.png

总结

自从 BERT 被提出后,NLP 领域的研究形式也开始慢慢向 CV 靠拢,利用这些预训练好的超大模型获得丰富的语义模式,从而通过在具体任务上的微调获得最后的效果。

但 NLP 和 CV 还是有很大不同的,自然语言是一种高度抽象的信息,单纯通过语言模型获取丰富的语义模式并不能一劳永逸地解决所有问题,而这篇文章就进行了这方面的一个尝试,通过引入外部先验知识增强模型的语义理解和表征。那是不是还可以进行不仅仅是文本方面的增强,例如通过语音融入情感信息,通过图像引入视觉信息等,这些都是值得研究的地方。

编辑:黄继彦

校对:林亦霖

目录
相关文章
|
2月前
|
机器学习/深度学习 存储 自然语言处理
NLP参数高效迁移学习:Adapter方法——论文简读
本研究深入探讨了自然语言处理中参数高效的迁移学习方法——Adapter。通过在预训练模型中引入小型可训练模块,仅调整少量额外参数即可完成模型适配。理论分析表明,该方法在初始化时保持网络行为稳定,并通过瓶颈结构大幅压缩参数规模。实验结果显示,Adapter在GLUE基准上仅用3.6%的参数便达到接近全微调的性能,且对学习率具有更强的鲁棒性。相比传统微调和其他参数高效方法,Adapter在多任务场景下展现出更优的存储效率与泛化能力,为大规模模型的实际部署提供了高效可行的解决方案。
216 7
|
11月前
|
人工智能 自然语言处理
Promptriever:信息检索模型,支持自然语言提示响应用户搜索需求
Promptriever 是一种新型信息检索模型,由约翰斯·霍普金斯大学和 Samaya AI 联合推出。该模型能够接受自然语言提示,并以直观的方式响应用户的搜索需求。通过在 MS MARCO 数据集上的训练,Promptriever 在标准检索任务上表现出色,能够更有效地遵循详细指令,提高查询的鲁棒性和检索性能。
252 6
Promptriever:信息检索模型,支持自然语言提示响应用户搜索需求
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
自然语言处理的未来:让机器“听懂”人类语言的奥秘
1. 引言 在数字化浪潮中,自然语言处理(NLP)已经成为人工智能的核心技术之一。无论是智能助手、翻译应用,还是社交媒体的情感分析,NLP正以不可思议的速度改变我们的生活。根据市场研究,NLP的市场规模预计将在未来几年内快速增长,成为众多行业不可或缺的组成部分。本文将深入探讨NLP的基础知识、关键技术、实际应用以及未来的发展趋势,帮助你全面了解这一引人入胜的领域。
|
机器学习/深度学习 自然语言处理 语音技术
探索深度学习中的Transformer模型及其在自然语言处理中的应用
探索深度学习中的Transformer模型及其在自然语言处理中的应用
547 5
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习与自然语言处理的前沿技术:Transformer模型的深度解析
探索深度学习与自然语言处理的前沿技术:Transformer模型的深度解析
568 1
|
机器学习/深度学习 人工智能 自然语言处理
自然语言处理(NLP)是AI的重要分支,旨在让计算机理解人类语言
自然语言处理(NLP)是AI的重要分支,旨在让计算机理解人类语言。本文探讨了深度学习在NLP中的应用,包括其基本任务、优势、常见模型及具体案例,如文本分类、情感分析等,并讨论了Python的相关工具和库,以及面临的挑战和未来趋势。
750 1
|
机器学习/深度学习 自然语言处理 PyTorch
从零开始构建nlp情感分析模型!
本教程介绍了如何使用PyTorch和Hugging Face的Transformers库构建一个情感分析模型。主要内容包括导入所需库、读取训练数据集、加载预训练的BERT模型和分词器、定义情感数据集类、划分训练集和验证集、创建数据加载器、设置训练参数、训练模型、评估模型性能以及定义和测试预测函数。通过这些步骤,可以实现一个简单而有效的情感分析模型。
993 2
|
10月前
|
存储 人工智能 自然语言处理
Pandas数据应用:自然语言处理
本文介绍Pandas在自然语言处理(NLP)中的应用,涵盖数据准备、文本预处理、分词、去除停用词等常见任务,并通过代码示例详细解释。同时,针对常见的报错如`MemoryError`、`ValueError`和`KeyError`提供了解决方案。适合初学者逐步掌握Pandas与NLP结合的技巧。
396 20
|
自然语言处理 API C++
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
SmartVscode插件深度解析:自然语言控制VS Code的革命性工具及其开源框架App-Controller
1684 1
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
|
自然语言处理 算法 Python
自然语言处理(NLP)在文本分析中的应用:从「被动收集」到「主动分析」
【10月更文挑战第9天】自然语言处理(NLP)在文本分析中的应用:从「被动收集」到「主动分析」
336 4

热门文章

最新文章