1、什么是seq2seq?
简单来说就是模型输入是序列,输出也是序列。典型的任务有:机器翻译任务,文本摘要任务。
2、seq2seq模型如何处理文本/长文本序列?
使用循环神经网络来处理长文本序列,循环神经网络设置了循环结构,事件链之间存在依赖关关系。
3、RNN存在问题?
- 不同时态相互依赖,所以需要存储各个时态的状态信息,且无法并行计算,因此训练时内存消耗大,速度慢
- 隐藏态包含了整个句子的信息,这边造成了瓶颈,当句子较长时,假设有500个word,那么,隐藏态很难包含前499个单词序列的信息,使得处理长文本时面临挑战。
4、对RNN的改进—attention技术解决以上挑战
attention技术使得更多的信息传递给decoder,并且通过attention可以使得模型更加关注到输入序列的重要信息,如翻译中文学生时,更加关注到英文student。
下图是上图中解码器(紫色)展示了带有attention的解码过程:
h1,h2和h3代表了三个单词,即通过encoder的编码的三个隐藏态
可视化注意力机制:
推荐github学习项目:Transformer