Sequence to Sequence Learning with Neural Networks
seq2seq是最先进NMT(神经机器翻译)的奠基之作,不围观一下?其核心思想是用一个LSTM将可变长度的输入序列编码为固定长度的隐特征表示,另一个LSTM将此隐特征再解码为可变长度的输出序列。
论文链接
https://arxiv.org/pdf/1409.3215.pdf
Neural Machine Translation by Jointly Learning to Align andTranslate
没有attention的seq2seq就像没有翅膀的鸟,一双翅膀送给你。在seq2seq模型中,源序列的所有信息都解码到最后一个时刻的隐含层,造成了信息瓶颈。在加入attention机制之后,decoder部分利用了encoder部分的所有输入信息(加权求和)。原来输出的梯度只能从最后一个时刻的隐含状态向更早时刻传导,有了attention机制之后,梯度能直接传导到输入部分,降低的梯度消失的风险。当然,效果也确实比原始seq2seq好多了。
论文链接
https://arxiv.org/pdf/1409.0473.pdf
博客链接
https://distill.pub/2016/augmented-rnns/
SequenceTransduction with Recurrent Neural Networks
seq2seq的输出部分只知道softmax?赶紧学习beam search的新姿势,不然也不好意思说自己懂NLP,是吧?
论文链接
https://arxiv.org/pdf/1211.3711.pdf
Massive Exploration of Neural Machine Translation
本文做好多个实验,用GPU总共跑25w个小时!!得到相当多的实验性靠谱结论,1)数据预处理很重要。2)嵌入空间的维数并非越大越好,在作者的实验中2048维的总体效果最好。2)LSTM的效果好于GRU。3)seq2seq模型中,encoder的深度多于2层不见得有好处,太深的话反而会使训练发散。4)双向LSTM好于单向LSTM。还有其它好处祥见论文啦~
论文链接
https://arxiv.org/pdf/1703.03906.pdf
a Deep Reinforced Model for Abstractive Summarization
之前的attention太naive啦,赶紧学两个fancy的新attention机制去装逼~_^。对于长文本的总结任务,一般的seq2seq模型经常出现重复和不一致的词组。为此,论文在encoder部分使用了intra-temporal attention,又首次在decoder部分使用了intra-attention(self-attention),值得注意的是,它使用了不同于最初的attention形式,且进行了新颖的规范化,以降低以前时刻的比重。此外,在以最小化负对数似然函数训练seq2seq模型时,往往还会存在exposure bias的问题----训练的时候有下一个字符的监督信息,而测试时没有这种监督信息。为此,论文还将最大似然交叉熵损失和策略梯度强化学习中reward结合起来以缓解这个问题。
论文链接
https://arxiv.org/abs/1705.04304
Get To ThePoint: Summarization with Pointer-Generator Networks
attention机制玩转了,再学个coverage机制耍耍呗?!对文本总结任务的seq2seq模型,本文的亮点作者在attention机制的基础上又使用了coverage机制,以解决相同词组重复出现问题。此外,论文还提出了pointer-generator网络,通过pointer从源文本中复制词句,辅助提升其准确性;通过generator产生新词,就像原来的seq2seq一样。
论文链接
https://arxiv.org/abs/1704.04368
博客链接
http://www.abigailsee.com/2017/04/16/taming-rnns-for-better-summarization.html
代码链接
www.github.com/abisee/pointer-generator
BlackOut: Speeding up Recurrent Neural Network Language Models With Very Large Vocabularies
softmax输出节点巨多咋办??看这篇论文呗!!论文提出BlackOut----一个近似算法,用于高效训练大型递归神经网络语言模型 (RNNLMs),其高效体现在训练速度快、效果好,大型体现在百万级的词汇量(即百万级的分类,所以适用于任何有大量softmax输出结点的网络,包括CV领域)。BlackOut的核心在于将判别损失函数与加权采样策略结合起来,极大提高了稳定性、采样效率、收敛速度。具体来说,作者将softmax和cross entropy的训练等效表示为最大似然(maximum likelihood)的形式,同时按照unigram分布只采样部分输出节点(通常是所有输出结点的1/200!)。当然之所以这样做是因为对于百万级别的分类任务,其计算的瓶颈在softmax层。
论文链接
https://arxiv.org/abs/1511.06909
代码链接
https://github.com/IntelLabs/rnnlm
Attention Is All You Need
没有RNN的NMT模型不拜读一下??论文提出Transformer模型(作者可能是变形金刚迷~),其效果比带RNN的NMT模型质量更好、可并行化(重点!)、速度快。而只利用了Attention机制!牛皮不是吹的,火车不是推的,GitHub上3900 star也不盖的~_^
论文链接
https://arxiv.org/abs/1706.03762
代码链接
https://github.com/tensorflow/tensor2tensor
LayerNormalization
还记得Batch Normalization吗?Layer Normalization算是其中一种变体。BN是对Batch这一维计算统计量,LN是对当前层所有神经元计算统计量。之所以这么做的动机是基于BN对RNN这时序结构不友好。而我推荐这篇论文的最大理由,其实是因为上篇推荐论文里用到了:)
论文链接
https://arxiv.org/pdf/1607.06450.pdf