Attention和Transformer【datewhale task02】

一、Attention

基于循环神经网络(RNN)一类的seq2seq模型,在处理长文本时遇到了挑战,而对长文本中不同位置的信息进行attention有助于提升RNN的模型效果。

1.1 Seq2Seq框架

全称是:sequence to sequence(序列到序列)

来源于两篇论文:

https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf

http://emnlp2014.org/papers/pdf/EMNLP2014179.pdf

seq2seq模型的输入可以是一个(单词、字母或者图像特征)序列,输出是另外一个(单词、字母或者图像特征)序列。

1.2 Seq2seq细节

seq2seq模型由编码器(Encoder)和解码器(Decoder)组成。

编码器:编码器会处理输入序列中的每个元素并获得输入信息,这些信息会被转换成为一个context向量。

解码器:解码器通过context向量中的信息,逐个元素输出新的序列。

seq2seq模型中的编码器和解码器一般采用的是循环神经网络RNN(Transformer模型还没出现的过去时代)。编码器将输入的法语单词序列编码成context向量,然后解码器根据context向量解码出英语单词序列。

RNN如何具体地处理输入序列的?

1、假设输入是一个句子,句子由n个词表示 sentence = \{w_1, w_2,...,w_n\}

2、RNN首先将句子中的每一个词映射成为一个向量得到一个向量序列: X = \{x_1, x_2,...,x_n\},每个单词映射得到的向量通常又叫做:word embedding。

3、然后在处理第t \in [1,n]​个时间步的序列输入​x_t时,RNN网络的输入和输出可以表示为:​h_{t} = RNN(x_t, h_{t-1})

        输入:RNN在时间步t​的输入之一为单词​w_t经过映射得到的向量x_t​。

        输入:RNN另一个输入为上一个时间步t-1​得到的hidden state向量​h_{t-1},同样是一个向量。

        输出:RNN在时间步t​的输出为h_t​ hidden state向量。

例如:编码器首先按照时间步依次编码每个法语单词,最终将最后一个hidd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值