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

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

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

编辑:黄继彦

校对:林亦霖

目录
相关文章
|
13天前
|
机器学习/深度学习 存储 自然语言处理
【NLP自然语言处理】探索注意力机制:解锁深度学习的语言理解新篇章(上)
【NLP自然语言处理】探索注意力机制:解锁深度学习的语言理解新篇章(上)
|
16天前
|
自然语言处理 PyTorch 算法框架/工具
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
【10月更文挑战第1天】随着深度学习技术的进步,预训练模型已成为自然语言处理(NLP)领域的常见实践。这些模型通过大规模数据集训练获得通用语言表示,但需进一步微调以适应特定任务。本文通过简化流程和示例代码,介绍了如何选择预训练模型(如BERT),并利用Python库(如Transformers和PyTorch)进行微调。文章详细说明了数据准备、模型初始化、损失函数定义及训练循环等关键步骤,并提供了评估模型性能的方法。希望本文能帮助读者更好地理解和实现模型微调。
41 2
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers
【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers
17 1
|
13天前
|
机器学习/深度学习 存储 自然语言处理
【NLP自然语言处理】探索注意力机制:解锁深度学习的语言理解新篇章(下)
【NLP自然语言处理】探索注意力机制:解锁深度学习的语言理解新篇章(下)
【NLP自然语言处理】探索注意力机制:解锁深度学习的语言理解新篇章(下)
|
11天前
|
机器学习/深度学习 自然语言处理 并行计算
探索深度学习中的Transformer模型及其在自然语言处理中的应用
【10月更文挑战第6天】探索深度学习中的Transformer模型及其在自然语言处理中的应用
34 0
|
16天前
|
机器学习/深度学习 自然语言处理 异构计算
【NLP自然语言处理】初识深度学习模型Transformer
【NLP自然语言处理】初识深度学习模型Transformer
|
16天前
|
机器学习/深度学习 自然语言处理 算法
【NPL自然语言处理】带你迅速了解传统RNN模型
【NPL自然语言处理】带你迅速了解传统RNN模型
|
5月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图 REV1
Bert Pytorch 源码分析:五、模型架构简图 REV1
83 0
|
5月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图
Bert Pytorch 源码分析:五、模型架构简图
62 0
|
11天前
|
机器学习/深度学习 自然语言处理 知识图谱

热门文章

最新文章