- 不要在RNN的水平方向使用dropout(虽然有人这么做,但是是用特殊的方法的),但是经常在垂直方向使用dropout
- 初始化参数的时候,LSTM的forget gate的bias给1或2确保不会一开始就遗忘,然后其它的参数要初始化为很小的值,否则网络就会训练不起来,初始化很重要。初始化为正交矩阵是一个很好的选择
- MT的评价指标,可以人工评价,但是成本比较高而且比较慢。还有一种用得比较多的叫BELU的评价指标,将机器翻译的结果和参考的翻译结果去匹配计算得到一些数值,具体是怎么算我目前还不太懂。
- NMT有一个问题就在于,最后预测输出需要的softmax的计算量几乎占据你模型一半的计算量,加上隐状态是p维的,并且你的单词库有q个单词,那么这个softmax矩阵是pxq的,q通常是几w几十w的数量级。有几个方法被提出来解决这个问题。最简单的是用小的单词库比如q为5k,但是这又带来了质量问题。还有用树结构表示的单词库,但是这对GPU运算不友好因为无法采取矩阵乘法的方式进行决策。有的把训练集分为几份,这几份各自用单词库的一个subset,所以在训练这些的时候用的softmax就变小了,预测的时候怎样我不是很理解,具体需要去找论文看:On Using Very Large Target Vocabulary for Neural Machine Translation