视频地址:https://www.bilibili.com/video/av41393758/?p=10 课程主页地址:http://web.stanford.edu/class/cs224n/ 课程讲义下载地址:https://yunlongs-1253041399.cos.ap-chengdu.myqcloud.com/Books/CS224n/cs224n-2019-notes06-NMT_seq2seq_attention.pdf
1.Neural Machine Translation with Seq2Seq
神经网络在机器翻译方面的应用,这一部分还是直接看吴恩达的笔记即可 序列模型和注意力机制(Sequence models & Attention mechanism) 以上链接总共涉及了以下知识点:
- 条件语言模型
- greedy search
- Beam search
- 改进Beam search
- Beam search的误差分析
- Bleu得分
- 注意力模型
剩下将补充cs224n里其他的知识点,和注意力模型。
2.Attention Model
2.1 注意力模型的动机
动机: 当句子越来越长时,神经网络将整个句子记忆下来的能力会越来越差。而注意力模型翻译得很像人类,一次翻译句子的一部分。且机器翻译系统只会翻译句子的一部分,不会有上图中一个巨大的下倾(huge dip)。
2.2 网络结构
这里我们只将到S<2>涉及的网络层次进行了展开,其余的类似。
2.3 注意力机制
下面我们将注意力模型的网络结构,从下往上进行详细的阐述。
用a<t′>表示时间步上的特征向量。由于是双向RNN,对于每个a<t′>:
a<t′>=(a→<t′>,a←<t′>)(2) 使用上一步的隐藏层状态S<t−1> 和每一步的激活值a<t′>,建立一个简单的神经网络,利用反向传播算法、梯度下降算法迭代优化,来求出e<t,t′>:
注意力权重用α表示,之后再利用一softmax层,来计算出每一激活值a<t′>的权重,决定了此激活值a<t′>对当前的隐藏层状态S<t>能产生多少影响:
α<t,t′>=exp(e<t,t′>)∑Txt′=1exp(e<t,t′>)C是各个RNN神经元经过注意力权重得到的参数值。 将每一步的激活值a<t′>乘以其相应的权重α<t,t′>,再进行累加得到最后隐藏层的输入C:
C<1>=∑t′α<1,t′>⋅a<t′>2.4 注意力模型的表现
句子特短的时候,模型们的得分都不高。这纯粹是因为语料中的短句子本来就语义隐晦,比如某个专有名词作为标题。而有attention的模型在句子很长的时候,效果依然没有下降,说明了attention的重要性。