前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从RNN到BERT

从RNN到BERT

作者头像
Bo_hemian
发布2020-09-09 17:04:38
8510
发布2020-09-09 17:04:38
举报
文章被收录于专栏:machine_learningmachine_learning

一、文本特征编码

1. 标量编码

美国:1 中国:2 印度:3 … 朝鲜:197

标量编码问题:美国 + 中国 = 3 = 印度

2. One-hot编码

美国:[1,0,0,0,…,0] 中国:[0,1,0,0,…,0] 印度:[0,0,1,0,…,0]

美国 + 中国 = [1,1,0,0,…,0],代表拥有美国和中国双重国籍

3. Embedding编码

二、文本序列化表示

1、Tokenization

2、Build Dictionary

3、One-hot encoding

4、Align Sequences

三、RNN模型

整个RNN只有一个参数矩阵A。RNN 在大规模的数据集上已经过时,不如Transformer模型,但在小规模数据集上,RNN还是很有用的。

3.1 RNN模型结构

3.2 为什么用双曲正切?是否可去掉?

3.3 RNN的模型参数

参数矩阵A的行: shape(h)

参数矩阵A的列: shape(h)+shape(x)

总参数数量: shape(h)× [shape(h)+shape(x)] (未考虑偏移量bias)

输入x 的维度(词嵌入向量)应该通过交叉验证的方式选择 输出状态向量h的维度也应该通过交叉验证的方式选择。

3.4 基于RNN的分类任务

可以使用多个状态向量进行下游任务:

3.4.1 只使用最后一个状态向量

  • Training Accuracy: 89.2%
  • Validation Accuracy: 84.3%
  • Test Accuracy: 84.4%

3.4.2 使用所有状态向量

  • Training Accuracy: 96.3%
  • Validation Accuracy: 85.4%
  • Test Accuracy: 84.7%

3.5 RNN的局限

RNN 在状态向量ht中积累xt及之前的所有信息,ht可以看作整个输入序列中抽取的特征向量

RNN 记忆比较短,会遗忘很久之前的输入x 。

四、LSTM模型

4.1 RNN与LSTM网络结构比较

4.2 LSTM传送带

过去的信息直接流向未来。 LSTM使用“传送带”C 来获得比RNN更长的记忆。

4.3 LSTM 门

4.4 Bi-LSTM

可以使用RNN或LSTM进行更为复杂的任务,例如机器翻译,下面会介绍机器翻译模型Seq2Seq。

五、Seq2Seq模型

Seq2Seq模型用来进行句子翻译,Seq2Seq包括Encoder编码器以及Decoder 解码器 两部分,最早的Seq2Seq模型由两个RNN模型组成,如下图所示。

Attention对Seq2Seq网络的提升十分明显,如下图所示(BLEU:机器翻译评价指标,“双语评估替补”)

5.1 基于Attention的Seq2Seq模型

5.2 基于Attention的Seq2Seq模型参数计算

5.3 Attention的可解释性

无论输入多长,Attention都可以获得所有输入信息,且由于计算每个输出与所有输入的状态向量的相关性,所以会对相关的输入产生较高相关性,也就具备了一定的可解释性

六、Attention模型

6.1 基于RNN的Self-Attention

Attention可以用来做句子翻译。 而Self-Attention可以用来代替RNN。 Self-Attention是Attention的特殊形式。Self-Attention模型其实就是在序列内部做Attention,寻找序列内部的联系。

例如输入一个句子,那么里面的每个词都要和该句子中的所有词进行attention计算。目的是学习句子内部的词依赖关系,捕获句子的内部结构。

Self-Attention和RNN最大的区别是不使用状态向量h,而是采用状态向量c 去更新下一个状态h。

6.2 基于RNN的Self-Attention参数计算

七、Transformer模型

  • Transformer完全基于Self- Attention 和Attention Transformer 是一个 Seq2Seq 模型
  • 不是 RNN
  • 仅包含Self-Attention层 、Attention层 和全连接层
  • Transformer完爆最好的RNN+Attention模型

7.1 Transformer中的Attention

Transformer中的Attention剔除了RNN,即没有循环部分。

Attention层接收两个输入序列,分别为输入序列:?_? , ?_? , ?_? ,…, ?_(?,) 输出序列:?’_? , ?‘_? , ?’_? ,…, ?′_?

使用参数矩阵Wq生成q1,具体计算方式如下:

C1 依赖于所有的输入x1,x2,…,xm 以及当前的输入x’_1,具体计算方式如下:

7.2 Transformer中的Self-Attention

7.3 Transformer Multi-Head

7.4 Transformer Encoder

利用Self-Attention Layer + Dense Layer 构造Transformer模型的Encoder模块:

7.5 Transformer Encoder Block

7.6 Transformer Decoder Block

7.7 Transformer模型

八、BERT

BERT的全称为Bidirectional Encoder Representations from Transformers 。

BERT 用来预训练Transformer模型的Encoder网络 两个基本任务: 1、预测被遮挡的单词: 随机遮挡单/多个单词,根据上下文预测被遮挡的单词。 2、预测两句话是否在原文里真实相邻。

8.1 BERT任务

8.1.1 任务一: 预测被遮挡的单词

8.1.2 任务二: 预测两句话是否在原文里真实相邻

两句子拼接 训练数据构造 50%为真实相邻的句子,label=True(1); 50%为随机选择的句子,label=False(0)

8.2 BERT如何改造下游任务

Bert具备广泛的通用性,就是说绝大部分NLP任务都可以采用类似的两阶段模式直接去提升效果。

8.3 BERT效果

从模型创新角度看一般,创新不算大。但效果太好了,基本刷新了很多NLP的任务的最好性能。 Bert最大的亮点在于效果好及普适性强,几乎所有NLP任务都可以套用Bert这种两阶段解决思路,而且效果应该会有明显提升。

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=eji4i5y8xjp

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、文本特征编码
    • 1. 标量编码
      • 2. One-hot编码
        • 3. Embedding编码
        • 二、文本序列化表示
          • 1、Tokenization
            • 2、Build Dictionary
              • 3、One-hot encoding
                • 4、Align Sequences
                • 三、RNN模型
                  • 3.1 RNN模型结构
                    • 3.2 为什么用双曲正切?是否可去掉?
                      • 3.3 RNN的模型参数
                        • 3.4 基于RNN的分类任务
                          • 3.4.1 只使用最后一个状态向量
                          • 3.4.2 使用所有状态向量
                        • 3.5 RNN的局限
                        • 四、LSTM模型
                          • 4.1 RNN与LSTM网络结构比较
                          • 4.2 LSTM传送带
                            • 4.3 LSTM 门
                              • 4.4 Bi-LSTM
                              • 五、Seq2Seq模型
                                • 5.1 基于Attention的Seq2Seq模型
                                  • 5.2 基于Attention的Seq2Seq模型参数计算
                                    • 5.3 Attention的可解释性
                                    • 六、Attention模型
                                      • 6.1 基于RNN的Self-Attention
                                        • 6.2 基于RNN的Self-Attention参数计算
                                        • 七、Transformer模型
                                          • 7.1 Transformer中的Attention
                                            • 7.2 Transformer中的Self-Attention
                                              • 7.3 Transformer Multi-Head
                                                • 7.4 Transformer Encoder
                                                  • 7.5 Transformer Encoder Block
                                                    • 7.6 Transformer Decoder Block
                                                      • 7.7 Transformer模型
                                                      • 八、BERT
                                                        • 8.1 BERT任务
                                                          • 8.1.1 任务一: 预测被遮挡的单词
                                                          • 8.1.2 任务二: 预测两句话是否在原文里真实相邻
                                                        • 8.2 BERT如何改造下游任务
                                                          • 8.3 BERT效果
                                                          相关产品与服务
                                                          机器翻译
                                                          机器翻译(Tencent Machine Translation,TMT)结合了神经机器翻译和统计机器翻译的优点,从大规模双语语料库自动学习翻译知识,实现从源语言文本到目标语言文本的自动翻译,目前可支持十余种语言的互译。
                                                          领券
                                                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档