为了能到远方,脚下的每一步都不能少.|

lmyyyy

园龄:2年8个月粉丝:7关注:10

11月2日总结

聊聊Transform模型

从之前的RNN系列到现在的Transformer模型,是一个演进的过程,技术的实现与迭代并不是一蹴而就,而是一个持续演进的历程。如果一开始就从Tranformer的模型机制来学习,知识的不全面以及欠缺就会导致懵逼甚至看不懂又不理解。
RNN系列:
聊聊RNN&LSTM
聊聊RNN与seq2seq
聊聊RNN与Attention

以下内容摘自《BERT基础教程:Transformer大模型实战

概述

循环神经网络和长短期记忆网络已经广泛应用于时序任务,比如文本预测、机器翻译、文章生成等。然而,它们面临的一大问题就是如何记录长期依赖。
为了解决这个问题,一个名为Transformer的新架构应运而生。从那以后,Transformer被应用到多个自然语言处理方向,到目前为止还未有新的架构能够将其替代。可以说,它的出现是自然语言处理领域的突破,并为新的革命性架构(BERT、GPT-3、T5等)打下了理论基础。
Transformer由编码器和解码器两部分组成。首先,向编码器输入一句话(原句),让其学习这句话的特征,再将特征作为输入传输给解码器。最后,此特征会通过解码器生成输出句(目标句)。
假设我们需要将一个句子从英文翻译为法文。如图所示,首先,我们需要将这个英文句子(原句)输进编码器。编码器将提取英文句子的特征并提供给解码器。最后,解码器通过特征完成法文句子(目标句)的翻译。
1695177459176.png
具体模型结构如下图。
编码器

Transformer中的编码器不止一个,而是由一组编码器串联而成。一个编码器的输出作为下一个编码器的输入。在图中有个编码器,每一个编码器都从下方接收数据,再输出给上方。以此类推,原句中的特征会由最后一个编码器输出。编码器模块的主要功能就是提取原句中的特征。
1695177580930.png
编码器内部又是由多头注意力层与前馈网络层两部分组成。
多头注意力层
引入自注意力机制

多头注意力层又是依赖于自注意力机制实现。
请看下面的例句:
A dog ate the food because it was hungry(一只狗吃了食物,因为它很饿)
例句中的代词it(它)可以指代dog(狗)或者food(食物)。当读这段文字的时候,我们自然而然地认为it指代的是dog,而不是food。但是当计算机模型在面对这两种选择时该如何决定呢?这时,自注意力机制有助于解决这个问题。
模型首先需要计算出单词A的特征值,其次计算dog的特征值,然后计算ate的特征值,以此类推。当计算每个词的特征值时,模型都需要遍历每个词与句子中其他词的关系。模型可以通过词与词之间的关系来更好地理解当前词的意思。
比如,当计算it的特征值时,模型会将it与句子中的其他词一一关联,以便更好地理解它的意思。
如图所示,it的特征值由它本身与句子中其他词的关系计算所得。通过关系连线,模型可以明确知道原句中it所指代的是dog而不是food,这是因为it与dog的关系更紧密,关系连线相较于其他词也更粗。
1695177861762.png
实现原理

为简单起见,我们假设输入句(原句)为I am good(我很好)。首先,我们将每个词转化为其对应的词嵌入向量。需要注意的是,嵌入只是词的特征向量,这个特征向量也是需要通过训练获得的。单词I的词嵌入向量可以用来表示,相应地,am为,good为,即:
1695177990370.png
通过输入矩阵X,可以看出,矩阵的第一行表示单词I的词嵌入向量。以此类推,第二行对应单词am的词嵌入向量,第三行对应单词good的词嵌入向量。所以矩阵X的维度为[句子的长度×词嵌入向量维度]。原句的长度为3,假设词嵌入向量维度为512,那么输入矩阵的维度就是[3×512];该矩阵对应的张量表示,可以拆分如下:

a = numpy.array([[1.76, 2.22, ..., 6.66],
[7.77, 0.631,..., 5.35],
[11.44, 10.10,..., 3.33]
])

增加额外的三个权重矩阵,分别为1695178408079.png;用输入矩阵X分别乘以1695178408079.png,依次创建出查询矩阵Q、键矩阵K、值矩阵V。
需要注意的是,权重矩阵1695178408079.png的初始值完全是随机的,但最优值则需要通过训练所得。
将输入矩阵[插图]分别乘以1695178408079.png后,我们就可以得出对应的查询矩阵、键矩阵和值矩阵。
1695178542131.png
Q,K,V三个向量矩阵,代表了对输入序列中的每个位置或词的不同信息。

Query向量 (Q):

本文作者:lmyyyy

本文链接:https://www.cnblogs.com/lmyy/p/17810210.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   lmyyyy  阅读(12)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起