返回介绍

数学基础

统计学习

深度学习

工具

Scala

十四、ERNIE-Huawei [2019]

发布于 2023-07-17 23:38:25 字数 61611 浏览 0 评论 0 收藏 0

  1. 预训练的 language representation model ,包括基于特征的方法和微调的方法,可以从文本中捕捉丰富的语言信息,从而使许多NLP 应用受益。BERT 作为最近提出的模型之一,通过简单的微调在各种 NLP 应用中获得了 SOTA 的结果,这些任务包括命名实体识别、问答、自然语言推理和文本分类。

    尽管预训练的language representation model 已经取得了可喜的成果,但它们忽略了为语言理解纳入知识信息。如下图所示,在不知道 "Blowin’ in the Wind" 是一首歌、以及 "Chronicles: Volume One" 是一本书的情况下,在 entity typing 任务(即,实体分类)中很难识别 Bob Dylan 的两个职业(即 "songwriter""writer" )。此外,在关系分类 relation classification 任务中,几乎不可能提取细粒度的关系,如 composer 作曲家和 author 作者。 对于现有的预训练的 language representation model 来说,下图例子中的两个句子在语法上是模糊 ambiguous 的,比如 "UNK wrote UNK in UNK"。因此,考虑丰富的知识信息可以导致更好的语言理解,并相应地有利于各种 knowledge-driven 的应用,例如 entity typingrelation classification

    将外部知识纳入 language representation model 有两个主要挑战:

    • Structured Knowledge Encoding:对于给定的文本,如何为 language representation model 有效地在知识图谱中抽取和编码该文本相关的 informative fact ,这是一个重要的问题。
    • Heterogeneous Information Fusion:针对 language representation 的预训练程序与 knowledge representation 程序截然不同,这导致了两个独立的向量空间。如何设计一个特殊的预训练目标来融合词法 lexical 的、句法 syntactic 的和知识knowledge 的信息是另一个挑战。

    为了克服上述挑战,论文 《ERNIE: Enhanced Language Representation with Informative Entities》提出了 Enhanced Language RepresentatioN with Informative Entities: ERNIE ,它同时在大规模文本语料和知识图谱上预训练 language representation model

    • 为了抽取和编码 knowledge informationERNIE 首先识别文本中提到的命名实体,然后将这些提到的实体与知识图谱中的相应实体对齐。ERNIE 不直接使用知识图谱中的 graph-based facts ,而是用 TransEknowledge embedding 算法对知识图谱的图结构进行编码,然后将 informative entity embedding 作为 ERNIE 的输入。基于文本和知识图谱之间的对齐 alignmentsERNIEknowledge module 中的 entity representation 集成到 semantic moduleunderlying layer
    • BERT 类似,ERNIE 采用 masked language modelnext sentence prediction 作为预训练目标。此外,为了更好地融合 textual featureknowledge feature ,论文设计了一个新的预训练目标,即随机掩码输入文本中的一些token-entity alignment ,要求模型从知识图谱中选择合适的实体来完成对齐alignment 。与现有的预训练 language representation model 只利用局部上下文来预测 token 不同,ERNIE 的目标要求模型同时聚合上下文和 knowledge fact 来同时预测 token 和实体,并导致一个 knowledgeable language representation model
    • 论文对两个 knowledge-drivenNLP 任务进行了实验,即 entity typingrelation classification 。实验结果表明:通过充分利用词法 lexical 的、句法 syntactic 的和知识knowledge 的信息,ERNIE 在这些 knowledge-driven 的任务上明显优于 BERT 。论文还在其他常见的 NLP 任务上评估了 ERNIEERNIE 仍然取得了可比 comparable 的结果。

    预训练语料库容易获得,但是知识图谱一般比较难以获得。

    本文中提到的 ERNIE 指的是 《ERNIE: Enhanced Language Representation with Informative Entities》 ,而不是 Ernie: Enhanced representation through knowledge integration》

  2. 相关工作:预训练方法可以分为两类,即 feature-based 的方法和 finetuning 方法。

    • 早期的工作主要是采用 feature-based 的方法,将单词转化为 distributed representation 。由于这些预训练的 word representation 捕捉了文本语料中的句法信息 syntactic information 和语义信息 semantic information ,它们经常被用作各种 NLP 模型的 input embedding 和初始化参数,并且比随机初始化参数有显著的改进。由于这些 word-level 模型经常受到单词多义性的影响,ELMo 进一步采用 sequence-level 模型来捕捉不同语言上下文下的复杂的 word feature ,并使用ELMo 来生成 context-aware word embedding
    • 与上述 feature-based 的方法只使用 pretrained language representation 作为 input feature 不同,《Semi-supervised sequence learning》 在未标记的文本上训练自编码器,然后将预训练的模型架构和参数作为其他 specific NLP model 的起点。受该论文的启发,人们提出了更多用于微调的预训练 language representation model,如 GPTBERT

    虽然 feature-based 的和 finetuninglanguage representation model 都取得了巨大的成功,但它们忽略了纳入知识信息。 正如最近的工作所证明的那样,注入额外的知识信息可以大大增强原始模型。因此,我们认为,额外的知识信息可以有效地有助于现有的预训练模型。事实上,一些工作已经尝试对单词和实体进行联合的 representation learning ,以有效利用外部知识图谱,并取得了可喜的成果。《Ernie: Enhanced representation through knowledge integration》提出了 knowledge masking 策略用于 masked language model 从而通过知识来增强 language representation 。在本文中,我们进一步利用语料库和知识图谱来训练 BERT-basedenhanced language representation

14.1 模型

  1. 我们记一个 token 序列为{w1,w2,,wn}$ \{w_1,w_2,\cdots,w_n\} $ ,其中n$ n $ 为 token 序列的长度。同时, 我们用{e1,e2,,em}$ \{e_1,e_2,\cdots,e_m\} $ 对齐了给定 token 序列的实体序列 entity sequence ,其中m$ m $ 为实体序列的长度。注意,在大多数情况下,mn$ m \ne n $ ,因为在知识图谱中,并不是每个 token 都能对齐一个实体。此外,我们把包含所有 token 的整个词表 vocabulary 表示为V$ \mathcal V $ ,把包含知识图谱中所有实体的 entity list 表示为E$ \mathcal E $ 。如果一个 tokenwV$ w\in \mathcal V $ ,并且它有一个对应的实体eE$ e\in \mathcal E $ ,那么 tokenentity 之间的对齐 alignment 定义为:f(w)=e$ f(w) = e $ 。在本文中,我们将实体与它的命名实体短语 named entity phrase 中的第一个 token 对齐。

    实体有两种位置:第一种位置是位于知识图谱中的实体,第二种位置是位于文本句子中的实体。除了特别说明之外,本文中的实体都指的是位于文本句子中的实体。

    这篇文章价值不大,实验部分参考意义也不大(用了预训练好的 BERT 参数来初始化,这导致不公平的比较,而且效果反而不如 BERT )。浪费时间。

14.1.1 模型架构

  1. 如下图所示,ERNIE 的整个模型架构由两个堆叠的模块组成:

    • T-Encoder:底层的文本编码器 textual encoder 负责从 input token 中获取基本的词法信息和句法信息。
    • K-Encoder:上层的知识编码器 knowledgeable encoder 负责将额外的 token-oriented knowledge information 集成到底层的文本信息中,这样我们就可以将 token 和实体的异质信息 heterogeneous information 表示为一个统一的特征空间 feature space

    此外,T-Encoder 的层数记做N$ N $ ,K-Encoder 的层数记做M$ M $ 。

    这里的 Entity Input 是实体经过 TransE 算法之后得到的 entity embedding

  2. 具体而言,给定一个 token 序列{w1,,wn}$ \{w_1 ,\cdots,w_n\} $ 及其对应的实体序列{e1,,em}$ \{e_1, \cdots,e_m\} $ ,文本编码器首先将每个 tokentoken embeddingsegment embeddingpositional embedding 相加从而计算其 input embedding ,然后计算词法特征 lexical featuresyntactic feature{w1,,wn}$ \left\{\mathbf{\vec w}_1,\cdots,\mathbf{\vec w}_n\right\} $ 如下:

    (20){w1,,wn}=T-Encoder({w1,,wn})

    其中T-Encoder()$ \text{T-Encoder}(\cdot ) $ 是一个多层双向的 Transformer encoder 。由于T-Encoder()$ \text{T-Encoder}(\cdot ) $ 与 BERT 中的实现相同,而且 BERT 很流行,我们不再对这个模块进行详述。

    在计算完{w1,,wn}$ \left\{\mathbf{\vec w}_1,\cdots,\mathbf{\vec w}_n\right\} $ 后,ERNIE 采用 knowledgeable encoderK-Encoder )将知识信息注入 language representation 中。具体而言,我们用 entity embedding{e1,,em}$ \left\{\mathbf{\vec e}_1,\cdots,\mathbf{\vec e}_m \right\} $ 来表示这些实体{e1,,em}$ \{e_1,\cdots,e_m\} $ ,这是由有效的 knowledge embedding 模型 TransE 预训练的。然后,{w1,,wn}$ \left\{\mathbf{\vec w}_1,\cdots,\mathbf{\vec w}_n\right\} $ 和{e1,,em}$ \left\{\mathbf{\vec e}_1,\cdots,\mathbf{\vec e}_m \right\} $ 都被馈入K-Encoder ,从而融合异质信息并计算 final output embedding

14.1.2 Knowledgeable Encoder

  1. Figure 2 所示,K-Encoder 由堆叠的 aggregator 组成,这些 aggregator 被设计用来对 token 和实体进行编码,并融合它们的异质特征 heterogeneous feature 。在第i$ i $ 个 aggregator 中,来自前一个 aggregator 的输出被作为 input token embedding{w1(i1),,wn(i1)}$ \left\{\mathbf{\vec w}_1^{(i-1)},\cdots,\mathbf{\vec w}_n^{(i-1)}\right\} $ 和 entity embedding{e1(i1),,em(i1)}$ \left\{\mathbf{\vec e}_1^{(i-1)},\cdots,\mathbf{\vec e}_m ^{(i-1)}\right\} $ 分别被馈入两个多头自注意力 multi-head self-attention: MH-ATT

    (21){w~1(i),,w~n(i)}=MH-ATT({w1(i1),,wn(i1)}){e~1(i),,e~m(i)}=MH-ATT({e1(i1),,em(i1)})

    然后,第i$ i $ 个 aggregator 采用信息融合层 information fusion layertoken 序列和实体序列进行相互集成 mutual integration ,并计算出每个 token 和实体的 output embedding 。对于一个 tokenwj$ w_j $ 及其对齐的实体ek=f(wj)$ e_k=f(w_j) $ ,信息融合过程如下:

    (22)hj=σ(W~t(i)w~j(i)+W~e(i)e~k(i)+b~(i))wj(i)=σ(Wt(i)hj+bt(i))ek(i)=σ(We(i)hj+be(i))

    其中:

    • hj$ \mathbf{\vec h}_j $ 为同时集成了 token 信息和实体信息的 inner hidden state
    • σ()$ \sigma(\cdot) $ 为非线性激活函数,通常是 GELU 函数。

    information fusion layer 其实就是单层前馈神经网络。

    对于没有相应实体的 tokeninformation fusion layer 计算 output embedding 而不进行集成,如下所示:

    (23)hj=σ(W~t(i)w~j(i)+b~(i))wj(i)=σ(Wt(i)hj+bt(i))

    为简单起见,第i$ i $ 个 aggregator 的操作表示如下:

    (24){w1(i),,wn(i)},{e1(i),,em(i)}=Aggregator({w1(i1),,wn(i1)},{e1(i1),,em(i1)})

    最顶部 aggregator 计算的、token 和实体的 output embedding 将被用作 K-Encoderfinal output embedding

14.1.3 Pre-training for Injecting Knowledge

  1. 为了通过 informative entitylanguage representation 注入知识,我们为 ERNIE 提出了一个新的预训练任务,即随机掩码一些 token-entity alignment ,然后要求系统根据 aligned token 来预测所有相应的实体。由于我们的任务类似于训练降噪自编码器 denoising auto-encoder ,我们把这个过程称为 denoising entity auto-encoder: dEA 。考虑到E$ \mathcal E $ 的规模对于 softmax 层来说是相当大的,因此我们仅要求系统根据给定的实体序列而不是知识图谱中的所有实体来预测。

    这里把候选的实体集合从E$ \mathcal E $ 缩小到实体序列{e1,,em}$ \{e_1,\cdots,e_m\} $ ,相当于是负采样策略,只是负样本局限在当前 token 序列所对应的实体集合中。由于当前 token 序列所对应的实体集合存在一定的相关性,因此这些负样本和 ground-truth 实体之间是相关的,因此是 hard 负样本。因此,建议随机从知识图谱中采样K$ K $ 个负样本,作为 easy 负样本。

    给定 token 序列{w1,,wn}$ \{w_1 ,\cdots,w_n\} $ 及其相应的实体序列{e1,,em}$ \{e_1,\cdots,e_m\} $ ,我们为 tokenwi$ w_i $ 定义 aligned entity distribution 为:

    (25)p(ejwi)=exp(linear(wio)ej)k=1mexp(linear(wio)ek)

    其中:

    • linear()$ \text{linear}(\cdot) $ 是一个线性层(用于将 token embedding 空间映射到 entity embedding 空间)。
    • wi(o)$ \mathbf{\vec w}_i^{(o)} $ 是 tokenwi$ w_i $ 的 final output embedding
    • ej$ \mathbf{\vec e}_j $ 为 entityej$ e_j $ 的 entity embedding

    entity embedding 没有采用 final output 的,因为候选的 entity 可能没有馈入模型(如,某些 entitymasked 了)。

    然后我们根据p(ejwi)$ p(e_j\mid w_i) $ 来计算 dEA 的交叉熵损失函数。

    如何进行掩码?作者并未详细说明。读者猜测:以第一个实体为例,假设第一个实体对应 token{w1,w2}$ \{w_1,w_2\} $ ,那么 input 变成:token 序列{[MASK],[MASK],w3,,wn}$ \{\text{[MASK]},\text{[MASK]},w_3,\cdots,w_n\} $ 。模型需要从候选的实体序列{e1,,em}$ \{e_1,\cdots,e_m\} $ 中预测被掩码的实体。

    但是根据 Figure 2,感觉作者是把 token 序列{[MASK],[MASK],w3,,wn}$ \{\text{[MASK]},\text{[MASK]},w_3,\cdots,w_n\} $ 和 entity embedding 序列{e1,,em}$ \left\{\mathbf{\vec e}_1,\cdots,\mathbf{\vec e}_m \right\} $ 都作为输入。这种做法产生了信息泄露,会降低模型的预测能力。

  2. 考虑到在 token-entity alignment 中存在一些错误,我们对dEA 进行了以下操作:

    • 5% 的时间里,对于一个给定的 token-entity alignment ,我们用另一个随机的实体替换该实体,这旨在训练我们的模型来纠正如下错误: tokenaligned 以一个 wrong entity
    • 15% 的时间里,我们掩码了 token-entity alignment ,这旨在训练我们的模型来纠正如下错误: entity alignment system 没有抽取所有现有的 alignment
    • 在其余的时间里,我们保持 token-entity alignment 不变,这旨在鼓励我们的模型将实体信息集成到 token representation 中,以便更好地理解语言。
  3. BERT 类似,ERNIE 也采用了 masked language model: MLMnext sentence prediction: NSP 作为预训练任务,以便 ERNIE 能够从文本中的 token 中获取词法信息 lexical information 和句法信息 syntactic information 。总体的预训练损失是dEAMLMNSP 损失之和。

14.1.4 Fine-tuning for Specific Tasks

  1. 如下图所示,对于各种常见的 NLP 任务,ERNIE 可以采用类似于BERT 的微调程序。我们可以把第一个 tokenfinal output embedding (这对应于特殊的[CLS] token )作为具体任务的输入序列的representation

    对于一些 knowledge-driven 的任务(例如,relation classificationentity typing ),我们设计了特殊的微调程序。

    • 对于relation classification:该任务要求系统基于上下文对给定 entity pairrelation label 进行分类。对relation classification 进行微调的最直接的方法是:将池化层应用于给定实体的 final output embedding ,并用它们的entity embedding 的拼接来表示给定的entity pair 从而用于分类。在本文中,我们设计了另一种方法,它通过添加两个 mark token 来修改 input token sequence 从而以突出 entity 。这些额外的mark token 起到了类似于 relation classification 模型中 position embedding 的作用。然后,我们也采用 [CLS] token embedding 来进行分类。注意,我们为 head entitytail entity 分别设计了不同的token ,即 [HD][TL]
    • 对于 entity typing:该任务是 relation classification 的简化版。由于之前的 entity typing 模型充分利用了 context embeddingentity embedding ,我们认为:带有 mark token [ENT] 的被修改的输入序列可以引导 ERNIE 结合上下文信息和实体信息。

14.2 实验

  1. 预训练数据集:对于从头开始训练 ERNIE 的巨大成本,我们采用谷歌发布的 BERT 的参数来初始化 Transformer block 从而用于 编码 token 。由于预训练是一个由NSPMLMdEA 组成的多任务程序,我们使用 English Wikipedia 作为预训练的语料库,并将文本与 Wikidata 对齐。在将语料库转换为预训练的格式化数据后,input 有近 45 亿个 subword1.4 亿个实体,并抛弃了少于 3 个实体的句子。

    采用 BERT 的参数来初始化 ERNIE ,这并不是一个公平的比较。

    在对 ERNIE 进行预训练之前,我们采用 TransEWikidata 上训练的 knowledge embedding 作为实体的 input embedding 。具体来说,我们从 Wikidata 中抽取部分样本,其中包含 5,040,986 个实体和 24,267,796fact 三元组。 entity embedding 在训练期间是固定的,entity encoding module 的参数都是随机初始化的。

  2. 超参数配置和训练细节:我们将 token embeddingentity embedding 的隐层维度分别表示为Hw,He$ H_w,H_e $ ,将自注意力头的数量分别表示为Aw,Ae$ A_w, A_e $ 。详细而言,我们遵从以下的 model sizeN=6,M=6,Hw=768,He=100,Aw=12,Ae=4$ N=6,M=6,H_w=768,H_e=100,A_w=12,A_e=4 $ ,总参数规模约为 114M

    BERT_BASE 的参数总量约为 110M ,这意味着 ERNIEknowledgeable module 要比 language module 小得多,对运行时性能的影响很小。而且,我们只在有标注的语料库上对 ERNIE 进行了一个 epoch 的预训练。为了加速训练过程,我们将最大序列长度从512 减少到 256 ,因为自注意力的计算复杂度是序列长度的二次函数。为了保持一个 batch 中的 token 数量与 BERT 相同,我们将 batch size 加倍到 512 。除了将学习率设置为5×105$ 5\times 10^{-5} $ 之外,我们基本上沿用了 BERT 中使用的预训练超参数。

    对于微调,大多数超参数与预训练相同,除了 batch size、学习率和训练 epoch 数量。我们发现以下可能的数值范围的效果较好: batch size = 32 ,学习率(Adam 优化器)为{5×105,3×105,2×105}$ \left\{5\times 10^{-5},3\times 10^{-5},2\times 10^{-5}\right\} $ , 训练 epoch 数量从 310

    我们还在 distantly supervised dataset (即 FIGER )上评估 ERNIE 。由于深度堆叠的 Transformer block 的强大表达能力,我们发现小的 batch size 会导致模型对训练数据的过拟合。因此,我们使用较大的 batch size 和较少的训练 epoch 来避免过拟合,并保持学习率的范围不变,即批 batch size = 2048、历时数为{2,3}$ \{2,3\} $ 。

    由于大多数数据集没有实体标注,我们使用 TAGME 来抽取句子中提到的实体,并将它们与知识图谱中的相应实体联系起来。

  3. Entity Typing:给定实体及其上下文,entity typing 要求系统为实体标注其各自的语义类型 semantic type 。为了评估这一任务的性能,我们在两个成熟的数据集 FIGEROpen Entity 上对 ERNIE 进行了微调。FIGER 的训练集是用 distant supervision 进行标注的,其测试集是由人类进行标注的。Open Entity 是一个完全由人工标注的数据集。这两个数据集的统计数据如下表所示。我们将我们的模型与以下 entity typingbaseline 模型进行比较:NFGECUFET 。此外,我们还考虑了对 BERT 进行微调的结果,以便进行公平的比较。

    远程监督 distant supervision:对于一个给定的知识图谱中的一个三元组(由一对实体和一个关系构成),假设外部文档库中任何包含这对实体的句子,在一定程度上都反映了这种关系。因此可以利用知识图谱为外部文档库的句子标注 relation

    FIGER 上的结果如下表所示。可以看到,ERNIE 在所有指标上超越了所有的 baseline

    Open Entity 上的结果如下表所示。可以看到,ERNIE 在所有指标上超越了所有的 baseline

  4. Relation Classification:关系分类旨在确定给定句子中两个实体之间的正确关系,这是一项重要的 knowledge-drivenNLP 任务。为了评估这项任务的性能,我们在两个成熟的数据集 FewRelTACRED 上对 ERNIE 进行了微调。这两个数据集的统计数据见下表。由于 FewRel 的原始实验设置是 few-shot learning ,我们重新安排了 FewRel数据集从而用于通用的关系分类。具体来说,我们从每个类中抽取 100 个实例作为训练集,并从每个类中分别抽取 200 个实例作为验证集和测试集。FewRel 中有 80 个类,而 TACRED 中有 42 个类(包括一个特殊的关系 "no relation")。

    我们将我们的模型与下列关系分类的基线模型进行比较:CNNPA-LSTMContextualized GCN: C-GCN。此外,我们还考虑了对 BERT 进行微调的结果,以便进行公平的比较。

    FewRelTACRED 的实验结果如下表所示。可以看到,ERNIE 在所有指标上超越了所有的 baseline

  5. GLUEGeneral Language Understanding Evaluation: GLUE 基准是一个多样化自然语言理解任务的集合。我们在 GLUE8 个数据集上评估了 ERNIE ,并与BERT 进行了比较。

    在下表中,我们报告了我们提交的评估结果和来自排行榜的 BERT 的结果。我们注意到:

    • MNLIQQPQNLISST-2 等大数据集上,ERNIEBERT_BASE 一致。
    • 在小数据集上,结果变得更加不稳定,即,ERNIECoLARTE 上更好,但在STS-BMRPC 上更糟。

    ERNIE 采用了 BERT_BASE 权重初始化,并且模型容量更大,结果反而效果更差?这意味着 ERNIE 没有什么价值,或者 ERNIE 没有被充分训练?

  6. 消融研究:我们利用 FewRel 数据集探讨了 informative entityknowledgeable pretraining taskdEA )对 ERNIE 的影响。w/o entitiesw/o dEA 分别指在没有实体序列输入和预训练任务 dEA 的情况下对 ERNIE 进行微调。如下表所示:

    • 在没有实体序列输入的情况下,dEA 在预训练期间仍然将知识信息注入到 language representation 中,这使F1 分相对于 BERT 增加了 0.9%

      没有实体序列输入,是怎么执行 dEA 的?作者没有讲。

    • 在没有 dEA 的情况下,informative entity 带来了很多知识信息,从直观上有利于关系分类,这使F1 分相对于 BERT 增加了 0.7%

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文