查看原文
其他

【综述专栏】预训练模型-中文预训练模型

在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。

作者:知乎—Evan

地址:https://www.zhihu.com/people/ma-zong-3


01

ERNIE

1.1 ERNIE和BERT的不同

ERNIE采用了不同的MASK策略:
中文的例子:
  • Learned by BERT :哈 [mask] 滨是 [mask] 龙江的省会,[mask] 际冰 [mask] 文化名城。
  • Learned by ERNIE:[mask] [mask] [mask] 是黑龙江的省会,国际 [mask] [mask] 文化名城。
  • ERNIE 通过学习词与实体的表达,使模型能够建模出『哈尔滨』与『黑龙江』的关系,学到『哈尔滨』是『黑龙江』的省会以及『哈尔滨』是个冰雪城市
  • ERNIE学习出哈尔滨、黑龙江的完整概念的语义表示,学习出哈尔滨、黑龙江实体间的语义关系

1.2 集成三种MASK策略

  • Basic-level:字级别的MASK
  • phrase-level:短语(a series of)
  • entity-level:人名,地名,组织名,产品名

1.3 多源数据

  • Chinese Wikepedia
  • Baidu Baike
  • Baidu news
  • Baidu Tieba

1.4 DLM:Dialogue Language Model

假设:对话数据的学习是语义表示的重要途径, 往往相同回复对应的 Query 语义相似
基于该假设,ERINE 采用 DLM(Dialogue Language Model)建模 Query-Response 对话结构,将对话Pair对(QRQ,QRR,QQR)作为输入
引入 Dialogue Embedding 标识对话的角色,利用 Dialogue Response Loss 学习对话的隐式关系,通过该方法建模进一步提升模型语义表示能力
1.5 中文NLP任务
  • 跨语言自然语言推理,XNLI
  • 语义相似度任务,LCQMC
  • 情感分析任务,ChnSentiCorp
  • 命名实体识别任务,MSRA-NER
  • 检索式问答匹配任务,NLPCC-DBQA
ERNIE在背景知识推理上的优势:

02

ERNIE2.0

2.1 连续学习框架

连续学习的步骤:
  • 连续用大量的数据与先验知识连续构建不同的预训练任务
  • 不断的用预训练任务更新ERNIE 模型
新任务学习时可以用历史任务学习到的参数进行初始化,不断积累新的知识,通过连续的多任务学习:
  • 单词和句子的共现(co-occurrence of words and sentences)
  • 词汇、句法和语义信息(lexical, syntactic and semantic information)
  • 所有任务共享encoder layer的权重
  • sequence level loss和token-level loss,联合更新encoder

2.2 模型结构

  • Token enbedding,Sentence embedding,Position Embedding
  • task embedding(0-N):任务编号依次与下面的任务对应

2.3 预训练任务

  • 词法级别预训练任务:
    • Knowledge Masking Task :ERNIE1.0中的MASK策略
    • Capitalization Prediction Task :判断一个词是否大写
    • Token-Document Relation Prediction Task :预测一个词在文中的A段落出现,是否会在文中的B段落出现
  • 语法级别预训练任务:
    • Sentence Reordering Task :将段内打乱的句子重排序
    • Sentence Distance Task :NSP的增强版,三分类任务来判别句子的距离(0表示邻近句子、1表示文档内非邻近句子、2表示非同文档内句子)
  • 语义级别预训练任务:
    • Discourse Relation Task :句对(sentence pairs) 间的修辞关系
    • IR Relevance Task :三分类任务来判别搜索引擎中query和title间的关系(0表示强关系、1表示弱关系、2表示无关系)


03

NEZHA

3.1 相对位置编码函数(Functional Relative Positional Encoding)

原始的Multi-Head Attention:
增加相对位置编码函数的Multi-Head Attention:
相对位置编码的的定义为:
相对位置能更好的体现出Token间的相对距离关系

3.2 全词掩码(Whole Word Masking)

如果有一个汉字被掩蔽,属于同一个汉字的其他汉字都被掩蔽在一起
Pre-Training with Whole Word Masking for Chinese BERT
https://arxiv.org/abs/1906.08101

3.3 混合精度训练(Mixed Precision Training)

在实现混合精度训练时,是在训练过程中的每一个step,为模型的所有weight维护一个FP32的copy,称为Master Weights ;在做前向和后向传播过程中使用FP16(半精度浮点数)格式,其中权重、激活函数和梯度都是用FP16进行表示,最后梯度会转换成FP32格式去更新Master Weights

3.4 优化器改进(LAMB Optimizer)

LAMB优化器通过自适应的方式为每个参数调整learning rate,能够在Batch Size很大的情况下不损失模型的泛化性能,使得模型训练能够采用很大的Batch Size,进而极大提高训练速度


04

ZEN

4.1 N-gram Extraction

  • 收集训练语料中所有ngram的集合(n-gram lexicon)
  • 根据每个训练instance中ngram的位置,得到ngram match matrix

4.2 N-gram Embedding

采用多层transformer结构来对N-gram进行编码,类似于Word Embedding,但不需要输入位置编码

4.3 Representing N-grams in Pre-training

是句子character的Embedding,是Ngram的Embedding,是ngram match matrix
Tensor的维度:
:(batch_size, char*seq*len, hidden_size)
:(batch_size, ngram_seq*_*len, hidden_size)
:(batch_size, ngram_seq*len, charseq_*len)

05

参考资料
[1] 中文任务全面超越BERT:百度正式发布NLP预训练模型ERNIE
https://zhuanlan.zhihu.com/p/59436589
[2] 一文读懂最强中文NLP预训练模型ERNIE
https://zhuanlan.zhihu.com/p/87008569
[3] NEZHA(哪吒)论文阅读笔记
https://zhuanlan.zhihu.com/p/100044919
[4] ZEN-基于N-gram的中文Encoder
https://zhuanlan.zhihu.com/p/106854685
[5] ERNIE: Enhanced Representation through Knowledge Integration
https://arxiv.org/abs/1904.09223v1
[6] ERNIE 2.0: A CONTINUAL PRE-TRAINING FRAMEWORK FOR LANGUAGE UNDERSTANDING
https://arxiv.org/abs/1907.12412
[7] NEZHA: Neural Contextualized Representation for Chinese Language Understanding
https://arxiv.org/abs/1909.00204
[8] ZEN: Pre-training Chinese Text Encoder Enhanced by N-gram Representations
https://arxiv.org/abs/1911.00720

06

改进
中文预训练模型:
  • A+B
  • MLM=>PLM
  • transformer内核(Synthesizer,Linformer)
  • 轻量化(硬件资源),定制化

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“综述专栏”历史文章


更多综述专栏文章,

请点击文章底部“阅读原文”查看



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存