https://gitee.com/AI-Mart/ERNIE/tree/develop/ernie-gram
就是ERNIE的升级和强化,不单单是某一类实体,以及连续的N-gram的语言实体建模
而是融合了细粒度的和粗粒度的建模,细粒度token级别,粗粒度直接覆盖n-gram实体,而不是连续的mask
模型框架
从 ERNIE 1.0 起,百度研究者们就在预训练中引入知识增强学习,通过掩码连续的词、phrase、named entity 等语义知识单元,实现更好的预训练学习。本次开源的通用语义理解模型 ERNIE-Gram 更进一步,提出的显式、完备的 n-gram 掩码语言模型,实现了显式的 n-gram 语义单元知识建模。
ERNIE 多粒度预训练语义理解技术
作为自然语言处理的基本语义单元,更充分的语言粒度学习能帮助模型实现更强的语义理解能力:
ERNIE-Gram 提出显式完备的 n-gram 多粒度掩码语言模型,同步建模 n-gram 内部和 n-gram 之间的语义关系,实现同时学习**细粒度(fine-grained)和粗粒度(coarse-grained)**语义信息
ERNIE-Gram 采用双流结构,在预训练过程中实现了单一位置多语义粒度层次预测,进一步增强了语义知识学习
ERNIE-Gram 多粒度预训练语义理解技术,在预训练 (pre-training) 阶段实现了显式的多粒度语义信号学习,在微调 (fine-tuning) 阶段采用 bert-style 微调方式,在不增加参数和计算复杂度的前提下,取得 10 项英文权威任务的 SOTA。在中文任务上,ERNIE-Gram 在包括 NLI、阅读理解等需要丰富、多层次的语义理解任务上取得公开 SOTA。
ERNIE-Gram 工作已被 NAACL-HLT 2021 作为长文收录,更多细节见 link。
一、BERT的掩码语言建模MLM侧重于细粒度文本单元的表示(如英文中的单词或子词和中文中的字符),很少考虑粗粒度语言信息(如英语中的实体或短语以及汉语中的字),从而导致表征学习的不足。
二、许多工作致力于通过独立屏蔽和预测n个标记的连续序列(即n-gram)来集成粗粒度语义信息,如命名实体、短语(Sun et al., 2019b)、whole word(Cui et al., 2019)和text spans (Joshi et al., 2020). (相关工作可见本系列其它文章)我们认为,这种连续屏蔽策略的有效性和可靠性较低,因为被屏蔽的n元组中标记的预测是相互独立的,这忽略了n元组内的依赖关系。
三、我们提出了ERNIE-Gram,一种显式n-gram掩码语言建模方法,其中n-gram用单个[MASK]符号掩码,并直接使用显式n-gram标识而不是标记序列进行预测,如图1(b)所示。
为了更充分地学习n-gram的语义,我们采用了一种综合的n-gram预测机制,通过精心设计的注意掩码矩阵,同时预测粗粒度(显式n-gram标识)和细粒度(含token标识)的掩码标识,如图1©所示。
此外,为了直接建模n-gram之间的语义关系,我们引入了一种增强的n-gram关系建模机制,用从生成器模型中采样的似然n-gram标识掩盖n-gram,然后用似然和原n-gram之间的成对关系将它们恢复到原来的n-gram。受ELECTRA的启发,我们加入了被替换tokens检测的目标,以区分原始与似然的n-grams,这增强了显式n-grams与细粒度上下文tokens之间的交互。
我们在基础语料库和大规模语料库(分别为16GB和160g)上进行预训练。然后对13个NLU英语任务和6个NLU中文任务进行了优化。实验结果表明,ERNIE - gram在各种基准上的表现始终优于以前的预训练模型。
为了从单个[M]中预测一个n-gram中包含的所有tokens,而不是连续的[M]序列,我们采用了独特的掩码符号[Mi],i=1,…,去聚合上下文表示,用于预测n-gram中的第i个标记。
在图2(a)中,符号[M1]和[M2]与y2的位置相同,被用作查询(Q),以聚合¯z\M (K)表征,用于x2和x3的预测,其中Q和K为自注意操作中的query和key。如图2(b)所示,自我注意掩码度量M通过修改注意权重W来控制token可以关注的上下文,其中:
3.4 增强的N-gram关系建模
为了明确地学习n-gram之间的语义关系,我们联合训练了一个小的生成器模型θ’与显式n-gram MLM目标函数,以采样n-gram标识。然后利用生成的标识进行掩码,训练标准模型θ以粗粒度和细粒度的方式预测原始的n-gram,如图3(a)所示,该模型可以有效地建模相似的n-gram之间的成对关系。微调时不使用生成器模型。
如图3 (b),不同长度的n-grams根据θ’的预测分布被采样去掩码原始n-grams,这比以前的方法更加灵活,且足够构造n-gram对同义词的掩蔽,以前需要相同长度的同义词和原始单词。