扳布的AI摘要
HunYuan-turbos

自编码模型 AutoEncoder model,AE

本篇主要围绕BERT作为代表了解AE

代表模型BERT

BERT是2018年10月由Google AI研究院提出的一种预训练模型(Bidirectional Encoder Representation from Transformer)

特点:encoder-only

基本原理:在输入中随机MASK掉一部分单词,根据上下文预测这个词(不难联想到BERT的主要预训练任务MLM)

AE模型通常用于内容理解任务(NLU),比如NLU中的分类任务:情感分析、提取式问答

BERT架构

BERT架构整体可以分为三个模块:

  • 第一层Embedding模块
  • 中间层Transformer模块
  • 第三层预微调模块

Embedding模块

该模块由三种embedding共同组成

  • Token Embeddings:词嵌入张量,第一个单词是CLS标志,可用于之后的分类任务
  • Segment Embeddings:句子分段张量,为了服务后续的NSP预训练任务
  • Positional Embeddings:位置编码张量

整个Embedding模块的输出张量是这三个张量的直接加和结果

双向Transformer模块

依然可以看到上面那张图,BERT只使用了Transformer中的encoder部分,完全舍弃decoder部分

两大预训练任务也集中体现在训练Transformer模块中

预微调模块

  • 经过中间层Transformer的处理后,Bert的最后一层根据下游任务需求做调整即可
  • 比如对于sequence-level的分类任务,直接取第一个[CLS] token的 last_hidden_state,再加一层全连接层后进行softmax来预测最终的标签

BERT的预训练任务

MLM(Masked Language Model)

带mask的语言模型训练

在原始训练文本中, 随机的抽取15%的token作为参与MASK任务的对象

  • 80%的概率下, 用[MASK]标记替换该token
  • 在10%的概率下, 用一个随机的单词替换token
  • 在10%的概率下, 保持该token不变.
NSP(Next Sentence Prediction)

下一句话预测任务

输入句子对(A, B), 模型来预测句子B是不是句子A的真实的下一句话.

  • 所有参与任务训练的语句都被选中作为句子A
  • 其中50%的B是原始文本中真实跟随A的下一句话(标记为IsNext, 代表正样本)
  • 其中50%的B是原始文本中随机抽取的一句话(标记为NotNext, 代表负样本)

数据集与参数

数据集:BooksCorpus (800M words) + English Wikipedia (2,500M words)

模型超参数:

参数 取值
transformer层数 12
特征维度 768
transformer head数 12
总参数量 1.15亿