码迷,mamicode.com
首页 > 其他好文 > 详细

bert模型

时间:2020-05-14 01:26:57      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:步骤   embed   插入   标签   接收   学习   for   最小化   训练   

1.概述

  bert是文本生成向量的一种方式,相较于以前的模型,bert将双向 Transformer 用于语言模型。

2.用途

  在分类任务中,例如情感分析等,只需要在 Transformer 的输出之上加一个分类层

  在问答任务(例如SQUAD v1.1)中,问答系统需要接收有关文本序列的 question,并且需要在序列中标记 answer。 可以使用 BERT 学习两个标记 answer 开始和结尾的向量来训练Q&A模型。

  在命名实体识别(NER)中,系统需要接收文本序列,标记文本中的各种类型的实体(人员,组织,日期等)。 可以用 BERT 将每个 token 的输出向量送到预测 NER 标签的分类层。

3.模型

  技术图片

 

首先通过将token,segment,position,进行embedding,然后相加作为输入层,

下一层使用Transformer做encoder,处理方式包括两种

Masked LM(MLM),Next Sentence Prediction (NSP)

 

  1).MLM

    在输入层随机mask掉一部分词,然后模型尝试基于序列中其他未被 mask 的单词的上下文来预测被掩盖的原单词。

      在 encoder 的输出上添加一个分类层

      用嵌入矩阵乘以输出向量,将其转换为词汇的维度

      用 softmax 计算词汇表中每个单词的概率

  技术图片

 

  2.NSP

    

      在 BERT 的训练过程中,模型接收成对的句子作为输入,并且预测其中第二个句子是否在原始文档中也是后续句子。
      在训练期间,50% 的输入对在原始文档中是前后关系,另外 50% 中是从语料库中随机组成的,并且是与第一句断开的。

      为了帮助模型区分开训练中的两个句子,输入在进入模型之前要按以下方式进行处理:

        在第一个句子的开头插入 [CLS] 标记,在每个句子的末尾插入 [SEP] 标记。

        将表示句子 A 或句子 B 的一个句子 embedding 添加到每个 token 上。

        给每个 token 添加一个位置 embedding,来表示它在序列中的位置。

      为了预测第二个句子是否是第一个句子的后续句子,用下面几个步骤来预测:

        整个输入序列输入给 Transformer 模型

        用一个简单的分类层将 [CLS] 标记的输出变换为 2×1 形状的向量

        用 softmax 计算 IsNextSequence 的概率

      在训练 BERT 模型时,Masked LM 和 Next Sentence Prediction 是一起训练的,目标就是要最小化两种策略的组合损失函数。

 

 

 

 

bert模型

标签:步骤   embed   插入   标签   接收   学习   for   最小化   训练   

原文地址:https://www.cnblogs.com/yangyang12138/p/12885820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!