机器学习100天Machine Learning & Recommendation & NLP & DL

Pytorch学习记录-使用共同学习完成NMT的构建和翻译

2019-04-23  本文已影响3人  我的昵称违规了

Pytorch学习记录-torchtext和Pytorch的实例3

0. PyTorch Seq2Seq项目介绍

在完成基本的torchtext之后,找到了这个教程,《基于Pytorch和torchtext来理解和实现seq2seq模型》。
这个项目主要包括了6个子项目

  1. 使用神经网络训练Seq2Seq
  2. 使用RNN encoder-decoder训练短语表示用于统计机器翻译
  3. 使用共同学习完成NMT的构建和翻译
  4. 打包填充序列、掩码和推理
  5. 卷积Seq2Seq
  6. Transformer

3. 使用共同学习完成NMT的堆砌和翻译

这一节通过实现基于共同学习的NMT来学习注意力机制。通过在Decoder部分提供“look back”输入语句,允许Encoder创建Decoder隐藏状态加权和的上下文向量来进一步缓解信息压缩问题。通过注意力机制计算加权和的权重,其中Decoder学习如何注意输入句子中最相关的单词。
本节依旧使用Pytorch和Torchtext实现模型,参考论文《 Neural Machine Translation by Jointly Learning to Align and Translate》

3.1 介绍

首先看一下一般的Encoder-Decoder


image.png

上一个模型中,为了降低信息压缩,我们进行了如下操作:

尽管降低了部分压缩,但是上下文向量依旧需要包含所有源语句子信息。而这个模型做了调整,能够在每一个时间步,让Decoder回看整体源语句子(通过隐藏状态)。这个,就是使用注意力机制。
注意力:

image.png
上一篇下一篇

猜你喜欢

热点阅读