NPL实践系列:10、最强NLP模型:BERT

导论
2018年NPL领域,很不凡,二月出了 ELMo,六月出了 OpenAI Transformer,十月又出了BERT,模型一个比一个强大,性能也是越加优良,最为目前特别亮眼的Bert模型,被称为最强NPL模型,究竟有何特别之处呢?他是有何而来的?接下来我们来探讨一下。


1. Transformer的原理。

自从google推出word2vec,传统的基于统计学的语言处理模型与基于神经网络的语言处理模型相比,劣势越来越大,而NPL领域任不断向前发展,更优秀的Transformer模型也出现了,可谓是刷新了人们的认知。

Transformer模型,来源于《Attention is All You Need》这篇论文,可以认为它是第一个完全依靠Self-attention而不使用序列对齐的RNN或卷积的方式来计算输入输出表示的转换模型。

一大亮点是,Transformer模型使用了self-attention机制,而且模型中使用了非常多有效的策略来使得模型对数据的拟合能力更强,收敛速度更快。整个Transformer的模型是一套解决方案,而不仅仅是对序列建模机制的改进。

Transformer里面的self-attention机制是一种新的变种,体现在两点,一方面是加了一个缩放因子(scaling factor),另一方面是引入了多头机制(multi-head attention)。
Transformer是一种建模序列的新方法,序列到序列的模型依然是沿用了上述经典的Encoder-Decoder结构,不同的是不再使用RNN或是CNN作为序列建模机制了,而是使用了self-attention机制。这种机制理论上的优势就是更容易捕获“长距离依赖信息。

2. BERT的原理。

BERT 的创新点在于它将双向 Transformer 用于语言模型,
之前的模型是从左向右输入一个文本序列,或者将 left-to-right 和 right-to-left 的训练结合起来。
实验的结果表明,双向训练的语言模型对语境的理解会比单向的语言模型更深刻,
论文中介绍了一种新技术叫做 Masked LM(MLM),在这个技术出现之前是无法进行双向语言模型训练的。
BERT 利用了 Transformer 的 encoder 部分。
Transformer 是一种注意力机制,可以学习文本中单词之间的上下文关系的。
Transformer 的原型包括两个独立的机制,一个 encoder 负责接收文本作为输入,一个 decoder 负责预测任务的结果。
BERT 的目标是生成语言模型,所以只需要 encoder 机制。
Transformer 的 encoder 是一次性读取整个文本序列,而不是从左到右或从右到左地按顺序读取,
这个特征使得模型能够基于单词的两侧学习,相当于是一个双向的功能。

3. 利用预训练的BERT模型将句子转换为句向量,进行文本分类。

参考链接:
https://www.jianshu.com/p/d110d0c13063
https://segmentfault.com/a/1190000015575985
https://blog.csdn.net/yagreenhand/article/details/86064388

你可能感兴趣的:(python,机器学习,NPL)