返回介绍

数学基础

统计学习

深度学习

工具

Scala

十一、ERNIE 1.0 [2019]

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

  1. language representation pre-training 已被证明对改善许多自然语言处理任务很有效,如命名实体识别 named entity recognition: NER、情感分析 sentiment analysis: SA、问答 question answering: QA 。为了得到可靠的 word representation ,神经语言模型 neural language model 被设计为学习单词共现 word cooccurrence ,然后用无监督学习获得 word embeddingWord2VecGlove 中的方法将单词表示为向量,其中相似的单词具有相似的 word representation 。这些 word representation 为其他深度学习模型中的 word vector 提供了一个初始化。最近,很多工作,如 CoveElmoGPTBERT 通过不同的策略改进了 word vector ,这些改进被证明对下游自然语言处理任务更加有效。

    这些研究中,绝大多数都是只通过上下文预测缺失的单词来建模 representation 。这些工作没有考虑句子中的先验知识 prior knowledge 。例如,在 "Harry Potter is a series of fantasy novels written by J. K. Rowling" 这句话中。"Harry Potter" 是一个小说的名字, "J. K. Rowling" 是作者。该模型很容易通过实体(即,小说名字 "Harry Potter")内部的单词搭配来预测实体 "Harry Potter" 的缺失词(如,"[MASK] Potter"),而不需要长的上下文的帮助。该模型不能根据 "Harry Potter ""J. K. Rowling" 之间的关系来预测 "Harry Potter" (即,预测[MASK][MASK] is a series of fantasy novels written by J. K. Rowling)。直观而言,如果模型学习了更多的先验知识,模型就能获得更可靠的 language representation

    在论文 《ERNIE: Enhanced Representation through Knowledge Integration》 中,作者提出了一个叫做ERNIEenhanced representation through knowledge integration)的模型。ERNIE 通过使用知识掩码 knowledge masking 的策略。

    除了基础的掩码 basic masking 策略外,ERNIE 还使用了两种知识策略:短语级 phrase-level 策略和实体级 entity-level 策略。ERNIE 把一个短语或一个实体作为一个单元 unit ,每个单元通常由几个单词组成。在 word representation 训练中,同一单元中的所有单词都被掩码,而不是只有一个单词或字符被掩码。这样一来,短语和实体的先验知识就在训练过程中被隐式地学到了。ERNIE 没有直接加入知识嵌入 knowledge embedding ,而是隐式地学习了知识和更长的语义依赖性,如实体之间的关系、实体的属性和事件的类型,从而指导 word embedding 的学习。这可以使模型具有更好的泛化能力和适应性。

    为了降低模型的训练成本,ERNIE 在异质的中文数据上进行了预训练,然后应用于 5 个中文 NLP 任务。ERNIE 在所有这些任务中都取得了 SOTA 的结果。另外,在 cloze test 中的实验表明,ERNIE 比其他 strong baseline 方法具有更好的知识推断 knowledge inference 能力。

    论文贡献如下:

    • 论文引入了一种新的语言模型学习的处理方法,该方法掩码了短语和实体等单元,以便隐式地从这些单元中学习句法 syntactic information 信息和语义信息 semantic information
    • ERNIE 在各种中文自然语言处理任务上的表现显著优于之前的 SOTA 方法。
    • 论文发布了 ERNIE 和预训练模型的代码,位于 https://github.com/PaddlePaddle/LARK/tree/develop/ERNIE

    论文还介绍了对话语言模型 Dialogue Language Model: DLM,它是在实验部分介绍的(而不是正文部分)。

  2. 相关工作:

    • Context-independent Representation:将单词表示为连续向量的做法由来已久。《A neural probabilistic language model》提出了一个非常流行模型架构用于估计神经网络语言模型 neural network language model: NNLM ,其中一个带有线性投影层和一个非线性隐藏层的前馈神经网络被用来学习 word vector representation

      通过使用大量的无标签数据来预训练语言模型,可以有效地学习 general language representation 。传统的方法侧重于与上下文无关的 word embedding 。诸如 Word2VecGlove 等方法将大型的文本语料库作为输入,并产生 word vector (通常有几百个维度)。它们为词表 vocabulary 中的每个单词生成单个的 word embedding representation

    • Context-aware Representation

      • 然而,一个词在不同的上下文中可以有完全不同的含义。

        • Skip-thought 提出了一种无监督学习方法,用于学习通用的分布式的 sentence encoder
        • Cove 表明,在各种常见的 NLP 任务上,添加这些 context vector 比只使用无监督的 word vectorcharacter vector 提高了性能。
        • ULMFit 提出了一种有效的迁移学习方法,可以应用于 NLP 的任何任务。
        • ELMo 沿着不同的维度推广了传统的 word embedding 研究。他们提出从语言模型中抽取 context-sensitive feature
        • GPT 通过适配 Transformer 从而增强了 context-sensitive embedding
      • BERT 使用两种不同的预训练任务进行语言建模:

        • BERT 随机掩码句子中一定比例的单词,并学习预测这些被掩码的单词。
        • 此外,BERT 学习预测两个句子是否相邻。该任务试图对两个句子之间的关系进行建模,而这是传统的语言模型无法捕获到的。

        因此,这种特殊的预训练方案有助于 BERT 在各种关键的 NLP 数据集上(如 GLUESQUAD 等)以较大的幅度超越 SOTA 的技术。

      • 还有一些研究人员试图在这些模型的基础上增加更多信息。

        • MT-DNN 结合预训练学习和多任务学习来提高 GLUE 中几个不同任务的表现。
        • GPT-2 在预训练过程中加入了任务信息,并使他们的模型适应于 zero-shot 任务。
        • XLMlanguage embedding 添加到预训练过程中,在跨语言任务中取得了更好的结果。
    • 异质数据 heterogeneous data:在异质无监督数据上预训练的语义编码器 semantic encoder 可以提高迁移学习性能。

      • 通用句子编码器(《Universal sentence encoder》)采用了来自 Wikipedia, web news, web QA pages, discussion forum 的异质训练数据。
      • 基于 response prediction 的句子编码器(《Learning semantic textual similarity from conversations》)得益于来自 Reddit 对话的 query-response pair data
      • XLM 将平行语料库 parallel corpus 引入 BERT ,与掩码语言模型masked language model: MLM 任务联合训练。通过在异质数据上预训练的 transformer 模型,XLM在监督/无监督的机器翻译任务和分类任务上显示出巨大的性能增益。

11.1 模型

  1. 我们在本节中介绍了ERNIE 及其详细实现。BERTERNIE 之间的比较直观地显示在下图中。

  2. Transformer Encoder:就像之前的预训练模型(如,GPT, BERT, XLM )一样,ERNIE 使用多层 Transformer 作为 basic encoderTransformer 可以通过自注意力 self-attention 来捕获句子中每个 token 的上下文信息,并生成 contextual embedding 的序列。

    对于中文语料,我们在 CJK Unicode 区间内的每个字符周围添加空格,并使用 WordPiecetokenize 中文句子。对于一个给定的 token ,它的 input representation 是由相应的 token embeddingsegment embedding、以及 position embedding 相加而成的。每个序列的第一个 token 是特殊的 classification embedding (即,[CLS] )。

    “在 CJK Unicode 区间内的每个字符周围添加空格” 意味着作者没有采用传统的中文分词工具,而是用字符粒度的分词。

  3. Knowledge Integration:我们使用先验知识 prior knowledgeenhance 我们的预训练语言模型。我们没有直接添加 knowledge embedding ,而是提出了一个多阶段的 knowledge masking strategy ,将 phrase-levelentity-level 的知识集成到 language representation 中。下图描述了一个句子的不同 masking level

    • Basic-Level Masking:第一个 learning stage 是使用 basic-level masking ,它把一个句子当作一个基本语言单元 language unit 的序列。对于英语来说,基本语言单元是单词;对于汉语来说,基本语言单元是汉字。

      在训练过程中,我们随机掩码 15% 的基本语言单元,并使用句子中的其他基本语言单元作为输入,然后训练一个 transformer 来预测被掩码的单元。基于 basic level mask ,我们可以得到一个 basic word representation 。因为它是在基本语义单元 basic semantic unit 的随机掩码上训练的,所以 high level 的语义知识很难被完全建模。

    • Phrase-Level Masking:第二个 learning stage 是使用 phrase-level masking 。短语 phrase 是一组单词或字符一起作为一个概念单元 conceptual unit 。对于英语,我们使用词法分析 lexical analysis 和分块工具来获得句子中短语的边界,并使用一些与语言相关的分词工具 segmentation tool 来获得其他语言(如中文)的词/短语信息。

      phrase-level masking 阶段,我们也使用基本语言单元作为训练输入,与 basic-level masking 不同的是,这次我们在句子中随机选择几个短语,同一短语中的所有基本单元同时被掩码并被预测。在这个阶段,短语信息被编码到 word embedding 中。

      注意:对于中文来讲,phrase 其实就是 “词” ;word 就是 “字”、character 就是“偏旁部首”。

      注意:这里的输入仍然是 “汉字” 粒度,但是掩码是短语粒度。

      注意:这里需要第三方的中文分词工具,而且分词工具的好坏会影响 ERNIE 模型的效果。

    • Entity-Level Masking:第三个 learning stage 是使用 entity-level masking 。命名实体 name entity 包含人、地点、组织、产品等,可以用专有名词来表示。通常情况下,命名实体包含了句子中的重要信息。

      phrase-level masking 阶段一样,我们首先分析句子中的命名实体,相同实体中的所有基本单元同时被掩码并被预测。

      注意:这里需要有第三方的 NER 工具,而且识别的好坏会影响 ERNIE 模型的效果。

    经过三个阶段的学习,我们得到了一个由更丰富的语义信息增强的 word representation

    论文采用什么中文分词工具、什么中文 NER 工具?作者并未说明。

    根据论文的描述,读者猜测这三个阶段是依次进行的:前K1$ K_1 $ 个 epoch 使用 basic-level masking 、接下来K2$ K_2 $ 个 epoch 使用 phrase-level masking 、最后K3$ K_3 $ 个 epoch 使用 entity-level masking 。但是,K1,K2,K3$ K_1, K_2, K_3 $ 分别怎么选择?论文并未解释。

11.2 实验

  1. ERNIE 被选择为与 BERT-BASE 具有相同的模型尺寸以便于比较:ERNIE 使用 12encoder layer768个隐单元、12 个注意力头。

  2. 异质语料库预训练:ERNIE 采用异质语料进行预训练。遵从 《Universal sentence encoder》,我们从混合语料库(中文维基百科Chinese Wikepedia 、百度百科Baidu Baike 、百度新闻Baidu news 和百度贴吧 Baidu Tieba )中抽取句子,抽取句子的数量分别为 21M51M47M54M 。其中:

    • 百度百科:包含了用正式语言formal language 编写的百科全书文章,这被用作语言建模的 strong basis
    • 百度新闻:提供有关电影名称、演员名称、足球队名称等最新信息。
    • 百度贴吧:是一个类似于 Reddits 的开放式讨论区,每个帖子都可以被视为一个 dialogue thread 。贴吧语料库被用于我们的 Dialogue Language Model: DLM 任务,这将在下一节讨论。

    我们对汉字进行繁体到简体的转换,并对英文字母进行大写到小写的转换。我们的模型使用了 17964unicode 字符的 vocabulary

  3. Dialogue Language Model: DLM:对话数据对 semantic representation 很重要,因为相同答复所对应的 query semantic 往往是相似的。ERNIEDLM 任务上建模 Query-Response 对话结构。

    如下图所示,我们的方法引入了 dialogue embedding 来识别对话中的角色,这与 universal sentence encoder 不同(《Universal sentence encoder》 )。ERNIEdialogue embeddingBERT 中的 token type embedding (即,segment embedding )起到相同的作用,只是 ERNIE 还可以表示多轮对话(例如 QRQQRRQQR,其中QR 分别代表 "Query""Response")。

    DLM 任务中,不需要 segment embedding,因为 segment embedding 是用于 next sentence prediction 任务。

    BERT 中的 MLM 一样,我们应用掩码从而强制模型预测同时以 queryresponse 为条件的 missing word 。更重要的是,我们通过用一个随机选择的句子替换 queryresponse 来生成假的样本。该模型被设计用来判断多轮对话是真的还是假的。

    DLM 任务帮助 ERNIE 学习对话中的隐式关系,这也增强了模型学习 semantic representation 的能力。DLM 任务的模型结构与MLM 任务的结构兼容,因此它与 MLM 任务交替进行预训练。

    DLMMLM 如何进行交替?是否可以联合训练,即Ltotal=LDLM+LMLM$ \mathcal L_\text{total} = \mathcal L_\text{DLM} + \mathcal L_\text{MLM} $ ,相当于多任务 (BERT 就是按照这种多任务的方式训练的)?

  4. 中文 NLP 任务:ERNIE 被应用于 5 项中文 NLP 任务,包括自然语言推理natural language inference、语义相似性semantic similarity、命名实体识别named entity recognition、情感分析sentiment analysis 和问答question answering

    • 自然语言推理:Cross-lingual Natural Language Inference: XNLI 语料库是 MultiNLI 语料库的一个众包集合。这些 sentence pair 都被人工标注为文本蕴含关系textual entailment ,并被翻译成包括中文在内的 14 种语言。标签包含矛盾contradiction、中性neutral 、以及蕴含 entailment 。我们遵循 BERT 中的中文实验。

    • 语义相似性:Large-scale Chinese Question Matching Corpus: LCQMC 旨在识别两个句子是否具有相同的意图。数据集中的每一对句子都与一个二元标签相关联,表明这两个句子是否具有相同的意图。

    • 命名实体识别:MSRA-NER 数据集是为命名实体识别而设计的,它由微软亚洲研究院发布。实体包含几种类型,包括人名、地名、组织名称等。这个任务可以被看作是一个序列标注任务。

    • 情感分析:ChnSentiCorp: Song-bo 是一个数据集,旨在判断一个句子的情感。它包括几个领域的评论,如酒店、书籍和电子计算机。这项任务的目标是判断该句子是正面positive的还是负面 negative 的。

    • 问答:NLPCC-DBQA 数据集的目标是选择相应问题的答案。这个数据集的评价方法包括 MRRF1 得分。

      Mean Reciprocal Rank: MRRMRR=1|Q|i=1|Q|1ranki$ \text{MRR} = \frac{1}{|\mathcal Q|}\sum_{i=1}^{|\mathcal Q|} \frac{1}{\text{rank}_i} $ 。其中Q$ \mathcal Q $ 为评估集合的问题总数,ranki$ \text{rank}_i $ 表示第i$ i $ 个问题的预测答案集合Ai$ \mathcal A_i $ 中 ground-truth 答案的位置(ground-truth 的位置越靠前越好)。如果 ground-truth 答案不在预测答案集合Ai$ \mathcal A_i $ 中,那么1ranki=0$ \frac{1}{\text{rank}_i} = 0 $ 。

  5. 下表列出了 5 个中文 NLP 任务的测试结果。可以看出:

    • ERNIE 在所有任务上都优于 BERT ,在这些中文 NLP 任务上创造了新的 SOTA 结果。
    • 对于 XNLIMSRA-NERChnSentiCorpNLPCC-DBQA 任务,ERNIEBERT 获得了超过 1% 的绝对准确率的改进。

    ERNIE 的收益归功于其 knowledge integration 策略。

    论文仅仅介绍这个策略,但是究竟用到了哪些知识?以及如何对预训练语料库的中文句子进行分词、命名实体识别,都未提到。

  6. 消融研究:

    • Knowledge Masking 策略的效果:我们从整个语料库中抽取 10% 的训练数据来验证 knowledge masking 策略的有效性(在 XNLI 数据集上评估)。结果如下表所示。

      可以看到:

      • baselineword-level mask 的基础上增加 phrase-level mask 可以提高模型的性能。
      • 在此基础上,继续增加 entity-level mask 策略,模型的性能得到进一步提高。
      • 此外,在预训练数据集规模大 10 倍的情况下,在 XNLI 测试集上实现了 0.8% 的性能提升。

    • DLM 的效果:我们从整个语料库中抽取 10% 的训练数据来验证 DLM 任务的贡献(在 XNLI 数据集上评估)。我们从头开始预训练ERNIE,并报告XNLI 任务中 5 次随机重启微调的平均结果。注意:这里我们并不是均匀抽取,而是对不同的预训练数据集抽取不同的比例。

      详细的实验设置和结果如下表所示。可以看到:纳入 DLM 任务之后,验证集/测试集准确率分别提高了 0.7%/1.0%

      注意:因为 DLM 是预训练任务,同时也是预训练数据集。如果 with DLMwithout DLM 进行对比,那么预训练数据的规模就发生了变化。

      更好的做法是: 10% of all,同时对 without DLMMLM 来代替 DLM (而不是直接丢弃 MLM 的预训练数据)。否则这里的数据分布都变化了,实验结果难以直接对比。

  7. Cloze Test:为了验证 ERNIE 的知识学习能力,我们使用了几个 Cloze test 样本来检验模型。在实验中,我们从段落中删除命名实体,模型需要推断出被删除的命名实体是什么。下图给出了一些 case 。我们比较了 BERTERNIE 的预测结果。

    英文部分只是翻译,因为整篇论文是英文撰写并发表在国外,所以如果没有英文翻译部分,外国读者可能看不懂。

    • case 1 中,BERT 试图复制上下文中出现的名字,而 ERNIE 记住了文章中提到的relation 的知识。
    • case 2case 5 中,BERT 可以成功地根据上下文学习正确的 pattern ,因此正确地预测了命名实体的类型,但未能得到正确的实体。相反,ERNIE 可以得到正确的实体。
    • case 3、4、6 中,BERT 得到与句子有关的几个字符,但很难预测 semantic concept
    • 除了 case 4 之外,ERNIE 预测了所有正确的实体。虽然 ERNIEcase 4 中预测了错误的实体,但它能正确地预测语义类型,并得到另一个澳大利亚城市。

    综上所述,这些案例表明 ERNIEcontext-based 的知识推理中表现得更好。

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

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

发布评论

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