- 注意力机制中的mask是怎么回事?将注意力(QK)ij中不存在的项去掉。例如句子最大长度为10,其中一个句子的长度为5,那么j>5的项就不用算了。在机器翻译中,翻译到第i个词时,算自注意力时看不到j>i的K,因此这些j>i的项应该mask掉,注意力矩阵为下三角阵。
- y_ = label_smoothing(tf.one_hot(y, depth=self.hp.vocab_size))的作用?加入后效果有少量提升。
- lr = noam_scheme(self.hp.lr, global_step, self.hp.warmup_steps)的作用?让学习率先上升后下降。
- ln(inputs, epsilon = 1e-8, scope="ln")中outputs = gamma * normalized + beta的gamma 和beta有什么用?
- 代码中enc *= self.hp.d_model**0.5 # scale的作用?
# embedding
enc = tf.nn.embedding_lookup(self.embeddings, x) # (N, T1, d_model)
enc *= self.hp.d_model**0.5 # scale