目录
前言
Transformer的提出,有效解决了传统RNN无法并行计算的痛点。改模型出自论文“Attention is all you need”,模型完全基于注意力机制,在CV和NLP上较CNN RNN效果更优。尽管当前最新模型timesnet可能更强,但仍值得研究,并做改进创新。
一、传统RNN架构痛点问题
- 针对时序数据,RNN输入需上一时间步的中间结果,类似于串联,无法做并行计算。而自注意力机制提出,可以并行计算,输出结果同时求得。
- word2vec通过词向量表达文本特征,但是训练好后,语义无法更改,无法兼顾全文语境。为此,BERT能解决语境不同含义不同的问题。
二、Attention机制
1.Self-Attention
- encoer-decoder结构中,注意力不同,对语境理解不同,提取特征则不同。
- self-attention
- 计算机通过上下文,根据任务自行判断重点关注哪些特征,方法通过考虑该词与全文词汇的关系,将结合整个语境的关系(关联)融入到最后1个词向量中。
上述过程也可以是多层(多套)的,理解为多套语境。 - 计算方法
- 通过3个辅助矩阵提取特征q/k/v,3个矩阵需训练,q代表去查询的权重,k被查询的,v是其最后特征表达。
- 通过内积(点乘)表示向量相关性,相关性大、向量夹角小、内积大。
- softmax:每个特征求出得分值,经exp映射放大,使得数据差异更大,再归一化。
- 词x1的q1去与每个词的k求内积,得到分值,即相关性,再基于得分(softmax后的相关性)分配特征量v,词x1与每个词对应的v值求和,即该词最终特征表达。
- q与k维度不断增大,相乘得分也越大,为避免维度增大对得分影响,除以根号下dk
- 计算机通过上下文,根据任务自行判断重点关注哪些特征,方法通过考虑该词与全文词汇的关系,将结合整个语境的关系(关联)融入到最后1个词向量中。
2.Multi-Attention
- 类似于CNN中多个卷积核,提取出不同特征。一般8层多头即可。
- 多头(层)得出多种表达z,拼接在一起,再全连接降维。
3.位置信息表达
- 做整个序列的加权,对位置并不敏感,因此加入位置编码。不用传统独热编码,引入正余弦周期表达位置信息
4.残差连接和归一化
5.Mask机制
- 训练模型,按一定概率遮住部分特征,预测
6.整体架构
三、BERT
1.含义
- 实际是Transformer中的encoder部分
2.训练方法
- 方法1:随机mask掉词汇,模型预测遮掉的词
- 方法2:预测句子连接
3.BERT模型使用
- 输入文章、问题,给出答案位置。
- 单独训练辅助向量,即答案开始位置、结束位置。
总结
transformer最大优势是考虑上下文,且并行计算。