山东大学软件工程应用与实践----SENTA代码分析(四)

本文详细比较了ERNIE和RoBERTa在情感分析中的应用,ERNIE通过知识整合提升语义理解,特别强调了对话数据的利用,而RoBERTa作为BERT的改进版,优化了训练策略和数据处理,两者在模型性能和知识融合上有独特之处。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

今天来分析ERNIE和Roberta两种情感分析模型

领先的语义理解技术与平台文心(ERNIE),依托飞桨打造,集先进的预训练模型、全面的NLP算法集、端到端开发套件和平台化服务于一体,提供一站式NLP开发与服务,让您更简单、高效地定制企业级文本模型

.Enhanced Representation through Knowledge Integration

该模型并没用直接输入外部的知识信息,而是通过改变masking策略的方式,隐式地去学习诸如实体关系、实体属性等知识信息

对于BERT模型,其masking策略是基于字的,而这样的策略不利于知识信息的学习,特别是对于中文语言模型,如下图所示,对于BERT模型,它mask掉的只是一些字,因此它在训练时学习到的更多是字与字之间的关系,例如[尔]与[哈]和[滨]之间的局部关系,而对于该ERNIE模型来说,它还会mask掉一些连续的tokens,这样该模型除了能学到上面的关系之外,还能学到[哈尔滨]与[黑龙江]、[省会]等之间的关系,而这就是所谓的知识信息。

需要注意的是,该ERNIE模型采用的仍是基于字特征的输入建模,也就是说模型的token还是基于字的,只不过mask的粒度大小有所变化。对于语料库中的纯文本,先使用词法分析工具对文本数据进行字、词、实体等不同粒度的切分,然后对切分后的数据进行 token 化处理,得到文本的 token 序列及切分边界,接着根据词典将其映射为id数据,在训练过程中模型会根据切分边界对连续的token进行随机mask操作,这样就能让模型能够在语义、知识等不同层次上学习到相应的关系。

在训练数据上,该模型也引入了诸如基于百科类、资讯类、论坛对话类等构造的具有上下文关系的句子对数据,其中论坛对话类数据的引入是该模型的一个特色,模型采用了 DLM(Dialogue Language Model)建模 Query-Response 对话结构,将对话 Pair 对作为输入,引入 Dialogue Embedding 标识对话的角色,利用 Dialogue Response Loss 学习对话的隐式关系,通过该方法建模进一步提升模型语义表示能力。

下图是一些填空问题的,通过与BERT进行对比可以看出,经过增强后的模型对于实体的预测能力有了显著的提高。

当采用 bytes-level 的 BPE 之后,词表大小从3万(原始 BERT 的 char-level )增加到5万。这分别为 BERT-base和 BERT-large增加了1500万和2000万额外的参数。之前有研究表明,这样的做法在有些下游任务上会导致轻微的性能下降。但是本文作者相信:这种统一编码的优势会超过性能的轻微下降。且作者在未来工作中将进一步对比不同的encoding方案。

引用自RoBERTa模型总结 - ffjsls - 博客园 (cnblogs.com)

  • (引用自BERT与知识图谱的结合——ERNIE模型浅析 - 知乎 (zhihu.com)

  • Roberta模型则是用来进行中文的预训练模型

  • 中文预训练RoBERTa模型
    RoBERTa是BERT的改进版,通过改进训练任务和数据生成方式、训练更久、使用更大批次、使用更多数据等获得了State of The Art的效果;可以用Bert直接加载。

  • 2. RoBARTa对一般BERT的训练策略进行了优化

    (1)动态掩码与静态掩码

    原始静态mask
    BERT中是准备训练数据时,每个样本只会进行一次随机mask(因此每个epoch都是重复),后续的每个训练步都采用相同的mask,这是原始静态mask,即单个静态mask,这是原始 BERT 的做法。

    修改版静态mask:
    在预处理的时候将数据集拷贝 10 次,每次拷贝采用不同的 mask(总共40 epochs,所以每一个mask对应的数据被训练4个epoch)。这等价于原始的数据集采用10种静态 mask 来训练 40个 epoch。
    动态mask:
    并没有在预处理的时候执行 mask,而是在每次向模型提供输入时动态生成 mask,所以是时刻变化的。
    不同模式的实验效果如下表所示。其中 reference 为BERT 用到的原始静态 mask,static 为修改版的静态mask。

    (2)对NSP训练策略的探索

    ​ 为了探索NSP训练策略对模型结果的影响,将一下4种训练方式及进行对比:

    SEGMENT-PAIR + NSP:
    这是原始 BERT 的做法。输入包含两部分,每个部分是来自同一文档或者不同文档的 segment (segment 是连续的多个句子),这两个segment 的token总数少于 512 。预训练包含 MLM 任务和 NSP 任务。

    SENTENCE-PAIR + NSP:
    输入也是包含两部分,每个部分是来自同一个文档或者不同文档的单个句子,这两个句子的token 总数少于 512。由于这些输入明显少于512 个tokens,因此增加batch size的大小,以使 tokens 总数保持与SEGMENT-PAIR + NSP 相似。预训练包含 MLM 任务和 NSP 任务。

    FULL-SENTENCES:
    输入只有一部分(而不是两部分),来自同一个文档或者不同文档的连续多个句子,token 总数不超过 512 。输入可能跨越文档边界,如果跨文档,则在上一个文档末尾添加文档边界token 。预训练不包含 NSP 任务。

    DOC-SENTENCES:
    输入只有一部分(而不是两部分),输入的构造类似于FULL-SENTENCES,只是不需要跨越文档边界,其输入来自同一个文档的连续句子,token 总数不超过 512 。在文档末尾附近采样的输入可以短于 512个tokens, 因此在这些情况下动态增加batch size大小以达到与 FULL-SENTENCES 相同的tokens总数。预训练不包含 NSP 任务。

    ​ 以下是论文中4种方法的实验结果:

    ​ 从实验结果来看,如果在采用NSP loss的情况下,将SEGMENT-PAIRSENTENCE-PAIR 进行对比,结果显示前者优于后者。发现单个句子会损害下游任务的性能,可能是如此模型无法学习远程依赖。接下来把重点放在没有NSP lossFULL-SENTENCES上,发现其在四种方法中结果最好。可能的原因:原始 BERT 实现采用仅仅是去掉NSP的损失项,但是仍然保持 SEGMENT-PARI的输入形式。最后,实验还发现将序列限制为来自单个文档(doc-sentence)的性能略好于序列来自多个文档(FULL-SENTENCES)。但是 DOC-SENTENCES 策略中,位于文档末尾的样本可能小于 512 个 token。为了保证每个 batch 的 token 总数维持在一个较高水平,需要动态调整 batch-size。出于处理方便,后面采用DOC-SENTENCES输入格式。

    (3)Training with large batches

    ​ 虽然在以往的经验中,当学习速率适当提高时,采用非常 大mini-batches的训练既可以提高优化速度,又可以提高最终任务性能。但是论文中通过实验,证明了更大的batches可以得到更好的结果,实验结果下表所示。

    ​ 论文考虑了并行计算等因素,在后续的实验中使用batch size=8k进行训练。

    3. RoBARTa在数据层面对模型进行了优化

    (1)使用了更大的训练数据集

    ​ 将16G的数据集提升到160G数据集,并改变多个steps,寻找最佳的超参数。

    (2)Text Encoding

    ​ 字节对编码(BPE)(Sennrich et al.,2016)是字符级和单词级表示的混合,该编码方案可以处理自然语言语料库中常见的大量词汇。BPE不依赖于完整的单词,而是依赖于子词(sub-word)单元,这些子词单元是通过对训练语料库进行统计分析而提取的,其词表大小通常在 1万到 10万之间。当对海量多样语料建模时,unicode characters占据了该词表的大部分。Radford et al.(2019)的工作中介绍了一个简单但高效的BPE, 该BPE使用字节对而非unicode characters作为子词单元。

    总结下两种BPE实现方式:

  • 基于 char-level :原始 BERT 的方式,它通过对输入文本进行启发式的词干化之后处理得到。

  • 基于 bytes-level:与 char-level 的区别在于bytes-level 使用 bytes 而不是 unicode 字符作为 sub-word 的基本单位,因此可以编码任何输入文本而不会引入 UNKOWN 标记。

  • 以上就是我对ernie和roberta两种模型的搜寻到的基本解释介绍(应该不算侵权吧,我标注了原文链接),我将会在下一篇博客中继续对senta的代码进行分析

Senta是一款百度开源的情感分析系统。 情感分析旨在自动识别和提取文本中的倾向、立场、评价、观点等主观信息。它包含各式各样的任务,比如句子级情感分类、评价对象级情感分类、观点抽取、情绪分类等。情感分析人工智能的重要研究方向,具有很高的学术价值。同时,情感分析在消费决策、舆情分析、个性化推荐等领域均有重要的应用,具有很高的商业价值。 近日,百度正式发布情感预训练模型SKEP(Sentiment Knowledge Enhanced Pre-training for Sentiment Analysis)。SKEP利用情感知识增强预训练模型, 在14项中英情感分析典型任务上全面超越SOTA,此工作已经被ACL 2020录用。 为了方便研发人员和商业合作伙伴共享效果领先的情感分析技术,本次百度在Senta中开源了基于SKEP的情感预训练代码和中英情感预训练模型。而且,为了进一步降低用户的使用门槛,百度在SKEP开源项目中集成了面向产业化的一键式情感分析预测工具。用户只需要几行代码即可实现基于SKEP的情感预训练以及模型预测功能。 SKEP SKEP是百度研究团队提出的基于情感知识增强的情感预训练算法,此算法采用无监督方法自动挖掘情感知识,然后利用情感知识构建预训练目标,从而让机器学会理解情感语义。SKEP为各类情感分析任务提供统一且强大的情感语义表示。 百度研究团队在三个典型情感分析任务,句子级情感分类(Sentence-level Sentiment Classification),评价对象级情感分类(Aspect-level Sentiment Classification)、观点抽取(Opinion Role Labeling),共计14个中英文数据上进一步验证了情感预训练模型SKEP的效果。实验表明,以通用预训练模型ERNIE(内部版本)作为初始化,SKEP相比ERNIE平均提升约1.2%,并且较原SOTA平均提升约2%。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值