建立Tokenizer
通过分词器生成词汇表,并将单词文本序列转为数值序列,方便计算机计算。
模型建立
我们可以选择是否让LSTM在每个时间步都会生成隐藏状态h和记忆单元状态c。
选择LSTM是否仅生成最后一个时间步的隐藏状态h和记忆单元状态c。
选择LSTM相互堆叠提高模型效果。
选择双向LSTM,可以双向处理文本数据,获取更加丰富的上下文信息。
使用beam search strategy代替贪婪方法argmax。
根据BLEU分数评估模型的性能。
可以选择指针生成网络,
因为整数序列采用独热编码的方式,所以损失函数采用了稀疏交叉熵,对内存友好。
数学理解注意力机制
编码器为源文本序列每一个时间步j都生成了一个隐藏状态值hj。
相似的工作,解码器为目标文本每一个时间步i都生成了隐藏状态值si。
alignment score: 。用这个分数表示源文本中的第j步单词与目标文本中第i步单词的关联度。可以用hj与si来计算这个分数值 根据所使用的得分函数的类型,有不同类型的注意力机制。这里列举一些流行的注意力机制:
使用softmax函数对注意力参数的值进行归一化。
计算注意力权重与编码器hj的隐藏状态乘积的线性总和,以产生注意力上下文向量Ci。
将注意力上一下文向量Ci与目标隐藏层向量si级联以产生新的注意力隐藏层向量Si。
将注意力隐藏层向量传入密集层产生yi。