因为seq2seq模型容易遗忘掉部分信息,引入attention模型,它可以大幅度提高seq2eq模型
下图横轴是输入得句子长度,纵轴是模型评价值,BLEU越高说明翻译越准确,可以看到,当字数很长时,翻译得准确率就会降低
self-attention
优点:
在attention的机制下,decoder每次更新状态时都会看一眼encoder的所有状态向量避免遗忘,attention还会告诉decoder应该关注哪一个状态(这也是名字的由来)
缺电:
计算量非常大
attention原理:
在encoder输入完最后一个状态向量hm时,decoder与attention会同时开始工作,计算s0与每一个状态h1h2....hm的相关性,用公式(下图给出)计算,结果记为ai
有m个状态向量,计算出m个ai ,每一个ai在0-1之间,a1+a2+.....ai = 1
【插播一下】计算ai 过程:
第一种:
将hi 与s0做内积,得