当前位置:网站首页>【BERT-多标签文本分类实战】之二——BERT的地位与名词术语解释
【BERT-多标签文本分类实战】之二——BERT的地位与名词术语解释
2022-07-30 06:22:00 【征途黯然.】
【注】本篇将从宏观上介绍bert的产生和在众多模型中的地位,以及与bert有关的许多名词。
[1] bert的提出
Bert模型是Google在2018年10月发布的语言表示模型,Bert在NLP领域横扫了11项任务的最优结果,可以说是18年NLP中最重要的突破。Bert模型的全称是Bidirectional Encoder Representations from Transformers,是通过训练Masked Language Model和预测下一句任务得到的模型。
关于Bert具体训练的细节和更多的原理,有兴趣的读者可以去查看https://arxiv.org/abs/1810.04805原文。
[2] bert的地位
从网络模型角度来说,地位大致如下:
Fasttext -> TextCNN -> DPCNN -> TextRCNN -> TextBiLSTM+Attention -> HAN -> Transformer -> BERT
从预训练网络模型角度来说,地位大致如下:(像较于预训练模型,预训练词向量现在已经被淘汰了)
ELMo -> ERNIE -> GPT -> BERT -> XLNet
[3] Fine-tuning
什么叫Fine-tuning? 使用预训练模型(例如BERT模型),在预训练模型末端添加一些未训练过的神经元层,然后训练新的模型来完成任务。
【注】此时bert模型的参数是有反向传播的。
为什么要Fine-tuning?
1、更快速的开发。 首先,预训练模型权重已经编码了很多通用的语言信息。因此,训练微调模型所需的时间要少得多——就好像我们已经对网络的底层进行了广泛的训练,只需要将它们作为我们的分类任务的特征,并轻微地调整它们就好。
2、更少的数据。 预训练这种方法,允许我们在一个比从头开始建立的模型所需要的数据集小得多的数据集上进行微调。从零开始建立的 NLP 模型的一个主要缺点是,我们通常需要一个庞大的数据集来训练我们的网络,以达到合理的精度,但是我们必须投入大量的时间和精力在数据集的创建上。通过对 BERT 进行微调,我们现在可以在更少的数据集上训练一个模型,使其达到良好的性能。
3、更好的结果。 这种简单的微调程过程(通常在 BERT 的基础上增加一个全连接层,并训练几个 epochs)被证明可以在广泛的任务中以最小的调节代价来实现最先进的结果:分类、语言推理、语义相似度、问答问题等。与其实现定制的、有时还很难理解的网络结构来完成特定的任务,不如使用 BERT 进行简单的微调,也许是一个更好的(至少不会差)选择。
[4] Feature extract
什么叫Feature extract? Bert的论文中对预训练好的 Bert模型设计了两种应用于具体领域任务的用法,一种是 fine-tune(微调) 方法,一种是 feature extract(特征抽取) 方法。
feature extract(特征抽取)方法指的是调用预训练好的 Bert 模型,对新任务的句子做句子编码,将任意长度的句子编码成定长的向量。编码后,作为你自己设计的某种模型(例如 LSTM、SVM 等都由你自己定)的输入,等于说将 Bert 作为一个句子特征编码器,这种方法没有反向传播过程发生,至于如果后续把定长句子向量输入到 LSTM 种继续反向传播训练,那就不关 Bert 的事了。这也是一种常见的语言模型用法,同类的类似 ELMo。
Feature extract与Fine-tuning的区别? fine tune(微调)方法指的是加载预训练好的 Bert 模型,其实就是一堆网络权重的值,把具体领域任务的数据集喂给该模型,在网络上继续反向传播训练,不断调整原有模型的权重,获得一个适用于新的特定任务的模型。这很好理解,就相当于利用 Bert 模型帮我们初始化了一个网络的初始权重,是一种常见的迁移学习手段。
[5] embedding层、词嵌入、word2vec、词向量
embedding层:嵌入层,神经网络结构中的一层,由embedding_size个神经元组成,[可调整的模型参数]。是input输入层的输出。
词嵌入:也就是word embedding…根据维基百科,被定义为自然语言处理NLP中的一组语言建模和特征学习技术的集体名称,其中来自词汇表的单词或者短语被映射成实数向量。
word2vec:词嵌入这个技术的具体实现,也可以理解成是将向量从高维度映射到低维度的计算过程。 具体的包含两种处理方式也就是两个典型的模型—CBOW模型和SG模型。假设,原始数据有F个特征,通过one-hot编码后,表示成N维的向量,即input层的维度是N,和权重矩阵相乘,变成embedding_size维的向量。(embedding_size <N)
词向量:也就是通过word2vec计算处理后的结果的释义。比如说…从input输入层到embedding层的权重矩阵,记作是N*embedding_size的,那么这个矩阵的一行就是一个词向量,是第几行就对应input输入层one-hot编码中第几列那个1所对应的词。
【注】常见的预训练词向量有,Stanford GloVe Embeddings、fastText word vectors
[6] bert与embedding的区别
从模型的层数定义上来看,embedding只有一层神经网络模型,而bert有非常非常多层网络,而且有1亿多个参数。
宏观上来看,bert和embedding是差不多的。在embedding层使用预训练词向量,就相当于bert使用了预训练的参数。bert和embedding都有Fine-tuning和Feature extract模式。只不过bert比embedding层数多得多、参数多得多。
[7] 进行下一篇实战
边栏推荐
- sql concat()函数
- 云服务器零基础部署网站(保姆级教程)
- New breakthrough in artificial muscle smart materials
- Mybitatis相关配置文件
- DP5340国产替代CM5340立体声音频A/D转换器芯片
- Electron使用romote报错 : Uncaught TypeError: Cannot read property ‘BrowserWindow‘ of undefined
- Common configuration
- Go 结合Gin导出Mysql数据到Excel表格
- Upload file -- file type, picture type, document type, video type, compressed package type
- MySQL off-topic [ORM thought analysis]
猜你喜欢

2020 数学建模之旅

Go语学习笔记 - gorm使用 - 数据库配置、表新增 Web框架Gin(七)

五号黯区靶场 mysql 注入之limit注入记录

WinForm(一):开始一个WinForm程序

What new materials are used in the large aircraft C919?
![[硬核干货]由0到1,突破信息系统项目管理师(呕心沥血经验之谈)!!!](/img/9a/f3e4bdd0ce8ec153a8e6bdbff5647e.jpg)
[硬核干货]由0到1,突破信息系统项目管理师(呕心沥血经验之谈)!!!

DNS domain name resolution services

MySQL master-slave replication configuration construction, one step in place

linux安装mysql8参考指引

2022牛客暑期多校训练营3(ACFGJ)
随机推荐
包含min函数的栈(js)
mysql8的my.conf配置文件参考指引
【day5】数组
MySQL master-slave replication configuration construction, one step in place
五号黯区靶场 mysql 注入之limit注入记录
Electron之初出茅庐——搭建环境并运行第一个程序
C语言自定义类型详解
[GO语言基础] 一.为什么我要学习Golang以及GO语言入门普及
便携小风扇PD取电芯片
node.js中实现对数据库的链式操作
Two Permutations(2022杭电杯)
LeetCode:647. 回文子串
Keil compile size and storage instructions
docker部署redis一主二从三哨兵模式
Go语学习笔记 - gorm使用 - 数据库配置、表新增 Web框架Gin(七)
SOFA Weekly|Meetup 广州站、本周 QA、本周 Contributor
MySQL basics [naming convention]
k8s 部署mysql8(PV和PVC 版本)
go : 使用 grom 删除数据库数据
linux安装mysql8参考指引