赞
踩
BERT(Bidirectional Encoder Representations from Transformers)作为Word2Vec的替代者,在NLP领域的11个方向大幅刷新了精度,其主要特点以下几点:
BERT的本质上是通过在海量的语料的基础上运行自监督学习方法为单词学习一个好的特征表示,可以直接使用BERT的特征表示作为该任务的词嵌入特征。ERT提供的是一个供其它任务迁移学习的模型,该模型可以根据任务微调或者固定之后作为特征提取器。
Transformer使用了Attention机制,将序列中的任意两个位置之间的距离是缩小为一个常量;它不是类似RNN的顺序结构,因此具有更好的并行性,符合现有的GPU框架。
Transformer的本质上是一个Encoder-Decoder的结构:
其编码器由6个编码block组成,同样解码器是6个解码block组成。与所有的生成模型相同的是,编码器的输出会作为解码器的输入,如下图所示:
在Transformer的encoder中,数据首先会经self-attention模块得到一个加权之后的特征向量 Z Z Z,即 A t t e n t i o n ( Q , K , V ) Attention(Q,K,V) Attention(Q,K,V):
A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k V ) Attention(Q,K,V)=softmax(\frac{QK^T}{\sqrt{d_k}}V) Attention(Q,K,V)=softmax(dk
QKTV)
得到 Z Z Z之后,被送到encoder的下一个模块,Feed Forward Neural Network。这个全连接有两层,第一层的激活函数是ReLU,第二层是一个线性激活函数,可以表示为:
F F N ( Z ) = m a x ( 0 , Z W 1 + b 1 ) W 2 + b 2 FFN(Z)=max(0,ZW_1+b_1)W_2+b_2 FFN(Z)=max(0,ZW1+b1)W2+b2
Decoder的结构与Encoder相比多了一个Encoder-Decoder Attention,两个Attention分别用于计算输入和输出的权值:
Encoder和Decoder的结构下图所示:
首先通过Word2Vec等词嵌入方法将输入语料转化成特征向量,在最底层的block中, x x x将直接作为Transformer的输入,而在其他层中,输入则是上一个block的输出。
Self-Attention是Transformer最核心的内容,其内容是为输入向量的每个单词学习一个权重,例如在下面的例子中我们判断it代指的内容,
The animal didn’t cross the street because it was too tired.
通过加权之后可以得到类似下图的加权情况:
在self-attention中,每个单词有3个不同的向量,它们分别是Query向量( Q Q Q),Key向量( K K K)和Value向量( V V V),长度均是64。它们是通过3个不同的权值矩阵由嵌入向量 X X X乘以三个不同的权值矩阵 W Q W^Q WQ, W K W^K WK, W V W^V WV得到,其中三个矩阵的尺寸均为 512 × 64 512 \times 64 512×64。
Attention的计算方法可以分成7步:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。