NLP之Attention从入门到精通

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180514G1W9ZL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券