RNN结构的局限

        在机器翻译的encoder-decoder结构中,encoder读取输入的句子将其转换为定长的一个向量,然后decoder再将这个向量翻译成对应的目标语言的文字。通常encoder及decoder均采用RNN结构如LSTM或GRU等,我们利用encoder RNN将输入语句信息总结到最后一个hidden vector中,并将其作为decoder初始的hidden vector,利用decoder解码成对应的其他语言中的文字。

NLP自然语言处理(九)—— 生成式聊天机器人(Attention机制)

        但是这个结构有些问题,尤其是RNN机制实际中存在长程梯度消失的问题,对于较长的句子,我们很难寄希望于将输入的序列转化为定长的向量而保存所有的有效信息,所以随着所需翻译句子的长度的增加,这种结构的效果会显著下降

       也就是之前提到的Seq2Seq模型的不足

 

Attention机制的引入

        为了解决这一由长序列到定长向量转化而造成的信息损失的瓶颈,Attention注意力机制被引入了。

        Attention机制跟人类翻译文章时候的思路有些类似,即将注意力关注于我们翻译部分对应的上下文。同样的,Attention模型中,当我们翻译当前词语时,我们会寻找源语句中相对应的几个词语,并结合之前的已经翻译的部分作出相应的翻译,如下图所示,当我们翻译“knowledge”时,只需将注意力放在源句中“知识”的部分,当翻译“power”时,只需将注意力集中在"力量“。这样,当我们decoder预测目标翻译的时候就可以看到encoder的所有信息,而不仅局限于原来模型中定长的隐藏向量,并且不会丧失长程的信息。

NLP自然语言处理(九)—— 生成式聊天机器人(Attention机制)

NLP自然语言处理(九)—— 生成式聊天机器人(Attention机制)

NLP自然语言处理(九)—— 生成式聊天机器人(Attention机制)

NLP自然语言处理(九)—— 生成式聊天机器人(Attention机制)

 

Attention机制

NLP自然语言处理(九)—— 生成式聊天机器人(Attention机制)

加入c1是对应x1的,c2是对应x2的,c3是对应x3和x4的

假如我的关注点是x1,那么我的c1就应该增大;如果关注x2,c2就应该增大,..........

 

Attention的分类

NLP自然语言处理(九)—— 生成式聊天机器人(Attention机制)

soft attention是比较常用的,也叫加权attention,主要用在Seq2Seq相关的

Hard attention一般应用于CV

 

Soft Attention

NLP自然语言处理(九)—— 生成式聊天机器人(Attention机制)

 

Hard Attention

NLP自然语言处理(九)—— 生成式聊天机器人(Attention机制)

区别在αi的地方

 

Local Attention

NLP自然语言处理(九)—— 生成式聊天机器人(Attention机制)

 

静态Attention

NLP自然语言处理(九)—— 生成式聊天机器人(Attention机制)

在阅读理解中用得较多

 

Self Attention

Self attention也叫做intra-attention。 在没有任何额外信息的情况下,我们仍然可以通过允许句子使用self attention机制来处理自己,从句子中提取关注信息。

它在很多任务上都有十分出色的表现,例如阅读理解、文本继承、自动文本摘要

 

Self attention是Google在 “Attention is all you need”论文中提出的”The transformer”模型中主要的概念之一,我们可以把”The transformer”想成是个黑盒子,将输入句输入这个黑盒子,就会產生目标句



 

multi-head attention

NLP自然语言处理(九)—— 生成式聊天机器人(Attention机制)

NLP自然语言处理(九)—— 生成式聊天机器人(Attention机制)

 

 

 

 

 

 

 

相关文章:

  • 2021-12-02
  • 2021-07-13
  • 2021-10-16
  • 2021-08-24
  • 2021-12-15
  • 2021-07-20
  • 2022-01-12
猜你喜欢
  • 2022-01-23
  • 2021-08-19
  • 2021-05-03
  • 2022-12-23
  • 2021-07-01
相关资源
相似解决方案