深度学习在 NLP 上的实践

本文系翻译文章,原作者主页,作为自然语言处理的一个初学者,对作者 Sebastian Ruder 表示感谢!

-----------------------------------------我是分割线-----------------------------------------------


一、简介

        本文是在自然语言处理实践当中的一些最佳实践的集合,当有新的可以应用到实践当中的想法出现时,我们会逐步更新的,以帮助我们跟随深度学习在自然语言处理上的应用。
        在NLP 的社区中一直有着这样一个笑话,说一个精心设计的 LSTM 可以胜任任何场景的任何任务。尽管在过去的两年确实有这种趋势,但是 NLP 社区最近正在向着一些有趣的模式当中迁移。
        不过作为一个社区,我们并不想再花费两年重新发现一个新的"LSTM",我们并不想重新发现已有的技术或方法。尽管现存的很多深度学习库已经编码了一些通用的神经网络的实践工具,但是诸如设计初始化方案等一些其他细节,特定场景的应用还是需要实施者来具体解决。
        本文并不旨在追踪最先进的技术,而是把广泛的收集相关任务的最佳实践作为主要目标。换言之,本文并不会仅描述特定结构
,而是旨在收集那些成功实践了的架构的功能。虽然这些功能中的某些功能对于最先进的技术是最有用的,但是我希望通过对所有功能进行广泛的了解可以帮助我们更好的评估、更有意义的与基准比较、重塑我们工作的目的来获取灵感。
        我假定你们已经很熟悉神经网络在自然语言处理的应用(如若不然,请阅读Yoav Goldberg的优秀引文[43]),并且热衷于 NLP 应用的一般场景或特定任务。本文的主要目标是帮助你加速了解相关的最佳实践,这样你就可以尽快做出有意义的贡献。
        我将会先对大多数相关任务的最佳实践的综述。然后我将会概述一些相关的共同任务的实践,特别是分类器,标签序列,自然语言生成和机器翻译。
        免责声明:把某些方法称为最佳时间是很难的:你凭什么做出如此判断?如果有更好的方法呢?本文是基于我个人的理解和经验(必然是不完整)。在下文中,我将只会讨论那些在至少不同两个群体当中表示有用的方法实践,对于每一个最佳实践我都会尽力给出两个以上的参考。

二、 最佳实践

2.1、词嵌入(Word Embedding)

        词嵌入可以说得上是近一时期自然语言处理历史上最成功的实践了。使用预处理词嵌入效果很好 [Kim,12]。词嵌入的具体维度有具体任务而定:小范围的维度在语法任务上效果更好,例如命名实体识别 [Melamud,44]、或者词性(POS)标注 [Plank,32],而大范围的维度则语义分析上更有帮助,例如情绪分析 [Ruder,45]

2.2、深度(Depth)

        虽然在短时间内,我们还无法达到计算机视觉领域的网络深度,但是自然语言处理领域的神经网络已经变得更加深层了。现在应用较多的一个先进方法是有3-4层组成的深层Bi-LSTM网络,例如有词性(POS)标注 [Plank,32]和语义角色标注 [He,33]。一些其他网络的层数可能会更深,参见谷歌的 NMT 模型,该模型有八个编码器和八个解码器层 [Wu,20]。然而在大多数场景下,使神经网络模型层数大于2层的性能提升不大 [Reimers&Gurevych,46]
        这些结果适用于大多数序列标注和结构预测问题。深层或非常深的模型仅在字符级输入上取得良好效果,而对于字级输入,千层模型仍是最先进的技术 [Zhang,28], [Conneau,29], [Le,30]

2.3、层连接(Layer Connections)

        训练神经网络的时候,我们需要采取一些技巧来避免梯度消失(vanishing gradient problem)问题的出现。已经有很多不同的层数和连接数的方法被提出来了。在这里我们将主要讨论三个问题(1)高速公路层、(2)残差连接、(3)密集残差连接。
          (1)高速公路层:高速公路层 [Srivastava,1]了;灵感来源于LSTM 中的门逻辑。首先让我们来假设一个单层 MLP,可以把输入x通过一个非线性函数g进行映射变换:

                          h=g(Wx+b)      
   
        高速公路层会用一下函数代替:
 
                          h=tg(Wx+b)+(1t)x
        
        其中⊙代表元素乘法,t=σ(WTx+bT)被称为变换门,(1-t)被称为进位门。高速公路层与LSTM 的门类似,他们都是把输入的某些维度自适应的映射到输出端。
        高速公路层已经在语言建模层面的一些先进的研究中取得了非常好的效果 [Kim,2], [Jozefpwicz,3], [Zilly,4],在其他领域如语音识别(speech recognition) [Zhang,5]Sristava的主页包含了更多关于高速公路层的介绍和代码。
        (2)残差连接:残差连接 [He,6]最早提出是应用在计算机视觉领域,并成为 ImageNet2016获胜的主要因素。残差连接甚至比高速公路层更直接,仅通过一下函数变换:
            
                           h=g(Wx+b)+x
     
        该函数仅把当前层的输入通过简单的连接添加到输出。该模型在当前层输出并不是有益的时候,可以默认的使用自身的值,这个简单的修改可以有效的减少梯度消失问题。
        (3)密集的残差连接:密集残差连接 [Huang,7](2017CVPR最佳论文)把每一层都连接到后续层,而不是把每一层与后面一层相连。我们用 h 表示输出、x 表示输入、l 表示神经网络的当前层数。密集残差网络可以把所有前面层的输入当做本层的输出的一部分,其公式如下:
    
                          hl=g(Wxl+b)+j=0lxj
    
         密集残差连接已经成功应用于计算机视觉领域,也被证明可以用来持续改善神经网络机器翻译的残差连接的表现。

2.4、舍弃元(Dropout)

         虽然在计算机视觉领域的大多数应用中,批归一化(batch normalization)已经使得其他正则化方法相形见绌。但是在 NLP 领域, 舍弃元(dropout)仍然是深度神经网络的关键正则化工具 [Srivasta,8]。大多数情况下,0.5的丢弃率被证实是有效的 [Kim,2]。近年以来,一些舍弃元的改进及变化被提了出来,包括:自适应舍弃元 [Ba&Frey,9]和进化舍弃元 [Li,10],但是这些算法都没有被社区广泛的采用。阻碍丢弃元应用于 NLP 领域的主要原因就是它不能被应用于循环连接(recurrent connections),因为在时间的影响下,由于舍弃元的聚合,词嵌入很快会被清零。
        循环丢弃元(recurrent dropout):循环丢弃元(recurrent dropout) [Gal&Ghahramani,11]通过在第二层每个时间间隔采用相同的舍弃分布来解决这一问题。这就可以避免噪声沿着序列逐步增大的问题,因此可以有效的对序列化模型进行正则化。循环舍弃元已经被应用于语义角色标注 [He,33]和语言建模 [Melis,34],并取得了不错的效果。

2.5、多任务学习(Multi-Task Learning)

        如果其他额外的数据,多任务学习(multi-task learning)可以用来增强目标任务的表现。阅读 此篇博客可以了解多任务学习(MTL
 )的更多信息。
        额外目标(Auxiliary objectives):我们通常可以找到对于我们关心的任务有帮助的额外目标 [Ruder,13]。我们可以通过训练词嵌入来预测上下文的单词 [Mikolov,68] (译者加),但是我们也可以把这个当做训练期间的额外目标 [Rei,35],在训练序列-序列模型的时候,相似的目标也被采用了 [Ramachandran,36]
        特定任务层(Task-specific layers):尽管 MTL 应用于 NLP 的标准做法是硬参数共享,但是模型学习特定的任务层是很有益处的。可以通过把某任务的输出层放置在较低的层级 [Søgaard&Goldberg,47]。另外一种做法是私有 [Liu,48]或公有 [Ruder,49]子空间。

2.6、注意机制(Attention)

        注意机制常常被应用于序列-序列(sequence-to-sequence)模型中来处理编码器状态,也可以应用在任何序列模型来回顾过去的状态。我们通过隐藏状态 s1...sm 得到上下文向量 ci,可以用来与当前的隐含层 hi 一起来做预测。某位置的上下文向量 ci是通过计算带有注意分数权重 ai 的先前状态的平均值获得的:

                             ciai=jaijsj=softmax(fatt(hi,sj)) 点击打开链接
      
        注意函数 f(hi,sj)计算当前隐含层 hi 和先前隐含层 sj 之前的违背归一化的校准分数。下面我们讨论四个注意事项:(1)加法注意机制,(2)乘法注意机制,(3)自我注意机制,(4)键值对注意机制。
        加法注意机制:原始的加注意机制 [Bahdanau,15]使用一个单隐含层前馈神经网络来计算注意权重:
  
                               fatt(hi,sj)=vatanh(Wa[hi;sj])
    
        其中 va和 Wa 是注意参数,[·;·]表示级联。类似的,我们可以使用矩阵 W1和 W2来分别学习 hi 和 sj的变化,然后将他们求和:
         
                              fatt(hi,sj)=vatanh(W1hi+W2sj)
        
        乘法注意机制:乘法注意机制 [Luong,16]通过计算以下方程来简化注意:
         
                             fatt(hi,sj)=hiWasj
        
       加法注意和乘法注意在复杂性上是相似的,但是在实际操作起来乘法注意速度更快,对空间的利用更高,因为乘法注意可以通过效率更高的矩阵乘法的来实现。两种变换在小维度的解码器状态dh上的表现相差不大,但是加法注意在较大维度的结构上表现更好。一种改进的方式是用1/dh^0.5来过滤 fatt(hi,sj) [Vaswani,17]
       注意机制不仅可以用来连接编码层或其他先前隐含层,也可以用来获得其他特征的分布,例如可以获得用来做阅读理解的文章的词嵌入 [Kadlec,37]。但是注意机制并不能直接应用于那些不需要额外信息的诸如情感分析的分类任务。在这样的模型中,LSTM网络的最终隐藏层或利用最大值/平均值采样的聚类函数来获得最终语句表示。
        自我注意机制:在不需要任何其他额外信息的情况下,我们仍然可以通过自我注意机制的方式来从语句中提取一些相关信息 [Lin,18]。自我注意,也被称为内注意,已经成功的背影在包括阅读理解 [Cheng,38],文本含义[Parikh,39]和抽象概括 [Paulus,40]等在内的多种任务。
       我们可以简化计算每一个隐含状态的未标准化评分hi :
        
                           fatt(hi)=vatanh(Wahi)
       
       我们以矩阵的形式H=h1,...,hn 来表示隐藏状态,然后我们可以通过如下的公式来计算注意向量 a 和最终的语句表示c:
        
                         ac=softmax(vatanh(WaH))=Ha
        
      用矩阵 Va 取代向量 va,我们就可以计算多个注意值,而不是仅仅的一个注意值。我们可以得到注意矩阵 A:
           
                                             AC=softmax(Vatanh(WaH))=AH
        
       实际应用当中,我们使用如下的正交约束来惩罚冗余并使用F-范数来增加注意向量中的多样性:
        
                         Ω=(AAI2F
        
        Vaswani等人提出了类似的多头注意 [Vaswani,17]
        键值对注意机制:键值对注意机制 [Daniluk,19]是近期的一种表交心的注意机制,它通过分别计算注意向量的方式来保持注意分离。它目前在多文件模型任务 [Liu&Lapata,41]上有着不错的表现。键值对注意机制把每一个隐含层向量 hi 映射为一个键 ki 和一个值 vi,我们利用这些键通过加法注意来计算注意分布 ai:
         点击打开链接
                          ai=softmax(vatanh(W1[kiL;;ki1]+(W2ki)1))
      
        其中 L是注意窗口的长度,1是单位向量,然后我们可以计算上下文表示 ci:
          
                         ci=[viL;;vi1]a
        
        上下文表示ci 将和当前值 vi 一起用来做预测。

2.7、优化

        算法和方案的优化常常被认为是模型的一部分,并被按照黑箱的方式处理。但是有的时候,甚至是算法上一些很微小的改变可能会对算法的优化产生巨大的影响,例如减少Adam 中β2的值 [Dozat&Manning,50]
        算法优化:Adam [Kingma&Ba,21]是在 NLP 研究者中间比较受欢迎并广泛使用的优化算法之一,通常认为 Adam 算法要比随机梯度下降法(stochastic gradient descent,SGD)的表现好。尽管它比 SGD 收敛速度快很多,但是已经有学者观测到,有退火衰减学习率的SGD在方面表现要略强于 Adam 算法 [Wu,2016],最近的一些研究表明,有一些正确调整的 SGD的表现要强于 Adam [Zhang,42]点击打开链接
        方案优化:尽管 Adam 调节每个参数的学习速率[Ruder,22],我们也可以在 Adam 上面应用 SGD 风格的退火处理。具体的讲就是我们可以通过重新赋值的方式来设置学习率:我们设定一个学习率然后训练模型直至收敛。然后我们把学习速率减半然后通过载入先前的最佳模型的方式来重新启动。在 Adam 中,这使得模型很快“忘记”之前的学习速率参数并重新开始。Denkowski 和 Neubig [23]发现了重启两次的学习率退火 Adam 算法比退火 SGD 算法的表现更好。

2.8、集合

        把多个模型通过平均他们的预测值的方法混合成一个集合已经被证实是一个可以改善模型表现的方法。尽管在测试期间,利用集合来做预测代价昂贵,但是近期关于升华(distillation)的研究允许我们把复杂的集合转变为一个小型的模型 [Hinton,24][Kuncoro,25][Rush,26]
        在评价模型的多样性增加的情况下,集合是一种重要的确保结果仍然可信的方法 [Denkowski&Neubig,23]。尽管有着不同检查点的一个模型已经被证明是有效的 [Jean,51][Sennrich,52],但却是以牺牲模型多样性为代价的。周期学习率可以减轻这种影响 [Huang,53]。总而言之,在条件允许的情况下,我们还是倾向于合并多个模型来得到一个集合以最大化模型的多样性。

2.9、超参数调优

        与使用预先定义好或现成的参数相比,简单的微调我们模型的超参数可以有效的改善我们的基线。近期贝叶斯网络的优化使得他便化成了调整神经网络的超参数一个有效的黑盒工具 [Snoek,56],其效果远超被广泛使用的网格搜索。自动调整 LSTM 的超参数已经成为了语言建模领域的最先进的技术,其表现也远远胜过那些更复杂的模型 [Melis,34]


2.10、LSTM 技巧

        学习初始状态:我们通常使用零向量来炒股实话神经网络的状态。我们可以类似其他参数一样学习初始状态,而不是修改初始状态,以提高性能,这种方法也是由 Hinton 推荐的,点击 这里可以看到相关的 TensorFlow 实现。
        绑定输入输出的嵌入:输入和输出的嵌入占据了神经网络模型的大多数的参数。如果 LSTM 用语言模型来预测句子,那么输入和输出参数可以共享 [Inan,54][Press&Wolf,55]。这种方式对于不需要学习大量参数的小型数据集特别有效。
        截断梯度范数:一种减轻梯度爆炸的危险的方式是阶段他们的最大值 [Mikolov,57]。但是该法并不能持续的提升性能 [Reimers&Gurevych]。截断全局的梯度范数而不是独自截断每一个梯度的范数,则会带来显著的性能提升(点击 这里可以找到 TensorFlow 的实现)。
        向下投射(down-projection):为了进一步减少输出的参数,LSTM 的隐藏层可以映射到一个更小的维度。这对于诸如语言建模之类的有着很多输出的任务 [Melis,34]


三、特定任务的实践

        在下面的文章之中,我们将讨论特定任务的最佳实践。他们大多数都是某一个特定领域的任务的最佳表现。他们中的一些可能可以应用在其他任务,而这本应该是已经被证实了的。我们将会主要讨论如下任务:分类,序列标签,自然语言生成(Natural Launage Generation, NLG),以及自然语言生成的特殊情况——机器翻译。

3.1、分类


        由于可以更有效的完成卷积操作,卷积神经网络(CNNs)在自然语言处理(NLP)领域中的分类任务中已经十分流行了,而且它不仅仅可以用来解决序列问题。以下是关于卷积神经网络(CNNs) 的最佳实践,并且介绍了一些最佳超参数的选择。
        CNN 过滤器:把过滤尺寸调整到最佳过滤尺寸时性能最佳[Kim,12],[Kim,16]。特征值最佳数量应该在50-600之间[Zhang&Wallace,59]。
        聚合函数:一阶最大池层(1-max-pooling)效果好于平均池层(average-pooling)和 kk 最大池层(kk-max-pooling)[Zhang&Wallace,59]。

3.2、序列标签


        标签序列在 NLP 领域无处不在。尽管现有的很多最佳时间是关于模型结构的某些特定部分,下面的讨论则会围绕模型输出和预测阶段。 
        标签方案:对于很多任务来说,对于文本的不同部分,应当采用不同的标签方案。这些方案包括:BIO,用一个标签 B 来标记片段的第一个标志(token),剩余的标志被标记为 I 标签,片段之外的部分被标记为 O-标签;IOB,同 BIO 类似,但是对于与前面的标志是同一类别的又不属于同一片段的,则会标记 B- ;IOBES,用来区分单标志(single-token)的 S-和片段中最后标志 E-,使用 IBOES 和 BIO 可以产生相似的效果。
        CRF 输出层:如果像命名实体识别一样,输出之间存有相互依赖的关系,那么可以用线性马尔科夫随机场(CRF)来代替最后的 softmax 层。此种方法已经被证明在模型连续的情况下已经可以带来持续的改进[Huang,60],[Max&Hovy,61],[Lample,62]。
        解码约束:可以使用解码约束作为除了 CRF 输出层之外的另外一种拒绝错误序列的方法,举个例子,,没有产生有效的 BIO 翻译的错误序列。解码约束的优点在于,无论是特殊的任务还是语法约束都可以通过这种方式强制中断。
        

3.3、自然语言生成(Natural Language Generation)

        现在的的大多数技术都可应用于自然语言生成(natural language generation,NLG)。事实上大多数的最新技术都来源于语言建模,特别是 NLP 任务。
        模型覆盖:重复是现在许多 NLG 任务中的一个大问题,那是由于现有的模型并没有一个很好的方式来记住之前的输出值。因此模型覆盖是解决这一问题的一个好方法。在先验知识的基础上,我们可以维护一个清单,这一清单应该在输出中体现,例如菜谱中的成分[ Kiddon,63]。在使用注意机制的情况下,我们可以跟踪覆盖向量 ci,ci 是先前时间里面的分布注意值 at [Tu,54][See,65]
        
                                                 ci=t=1i1at
        

        这一向量体现了我们有多关注资源中的所有词。我们现在可以在这个覆盖向量上增加额外的注意,以鼓励模型不要重复关注相同的词:

                                            

                                              fatt(hi,sj,ci)=vatanh(W1hi+W2sj+W3ci)

        

        此外,我们还可以增加一个额外的辅助损失来帮助我们补货我们想要关注的特定任务的注意值,例如,在 NMT 当中,我们希望大概一一对齐;如果最终的覆盖向量在每次索引处大于或小于1,我们就惩罚这个模型[Tu,54]。总而言之,我们只想惩罚那些在相同位置重复的模型[See,65]


3.4、神经机器翻译(Neural Machine Translation)

        虽然神经机器翻译(Neural Machine Translation,NMT)是自然语言生成(Neural Machine Translation)的一个实例,但是 NMT 受到更多的关注,也有很多方法专门为了解决该任务而被开发出来了。类似的也有许多关于它的超参数选择的实践或尝试。
        嵌入维度(Embedding Dimensionality):2048维的嵌入有着最佳的表现,但是仅仅适用于部分业务。129维的嵌入也有着惊人的表现,而且有着两倍的收敛速度 [Britz,27]

        编码器和解码器深度(Encoder and Decoder Depth):自动编码器不需要超过2-4层的深度。解码器虽然层数越多表现越好,但是并不需要超过4层的深度来提升性能[Britz,27]

        方向性(Directionality):双向编码器的性能要优于单项编码器。Surskever提出了通过改变文本顺序的方式来减少长期依赖的数量来[Surskever,67]。通过双向编码器逆序的文本表现优于未被逆序的部分。

        Beam 搜索策略:标准化参数为1.0时,Beam窗口取大约为10的中间值效果较好[Britz,27]。Senrich提出了一种把利用字节对编码(byte-pair encoding,BPE)的方法把词分解为子词(sub-words)[Senrich,66]。BPE 通过迭代合并频繁出现的富豪对,这就导致频繁出现的字符被合成单个符号,从而有效的消除词汇表之外的单词了。这一方法最初提出是为了消除生僻词,利用子词(sub-words)的模型效果要好于全词(full-words)系统,利用子词的系统的有效词汇表的容量是32000。


结尾

        我希望这篇文章可以帮助你学习 NLP 领域的新的任务。如果你已经熟悉了这些方法中的大多数,我仍然希望本文对你有新的帮助,或刷新了你对某些小技巧的认识。
        我十分确定我遗忘了本应该出现在这个清单中的很多最好实践中的大多数。同样在解析,信息提取等我并不擅长的领域里,我的知识还不足以给出具体建议。如果有您认为应当出现在文章中的最佳实践,请在下方评论,请提供至少一个参考论文和您的最佳实践。如果有必要我将会打开一个 github 仓库而不是在此处收集反馈。

译者书

        十分感谢原作者的分享,给我们这种 NLP 小白直了一条明路。对于文章中出现的错误,例如参考论文不正确,引用 url 无效等本人已经予以改正。因本人水平有效,翻译错误之处在所难免,如果您有更好地建议或意见,请直接评论,谢谢您读到这里。


参考文献

1. Srivastava, R. K., Greff, K., & Schmidhuber, J. (2015). Training Very Deep Networks. In Advances in Neural Information Processing Systems. 

2. Kim, Y., Jernite, Y., Sontag, D., & Rush, A. M. (2016). Character-Aware Neural Language Models. AAAI. Retrieved from http://arxiv.org/abs/1508.06615 

3. Jozefowicz, R., Vinyals, O., Schuster, M., Shazeer, N., & Wu, Y. (2016). Exploring the Limits of Language Modeling. arXiv Preprint arXiv:1602.02410. 

4. Zilly, J. G., Srivastava, R. K., Koutnik, J., & Schmidhuber, J. (2017). Recurrent Highway Networks. In International Conference on Machine Learning (ICML 2017). 

5. Zhang, Y., Chen, G., Yu, D., Yao, K., Kudanpur, S., & Glass, J. (2016). Highway Long Short-Term Memory RNNS for Distant Speech Recognition. In 2016 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). 

6. He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep Residual Learning for Image Recognition. In CVPR. 

7. Huang, G., Weinberger, K. Q., & Maaten, L. Van Der. (2016). Densely Connected Convolutional Networks. CVPR 2017. 

8. Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014). Dropout: A Simple Way to Prevent Neural Networks from Overfitting. Journal of Machine Learning Research, 15, 1929–1958.

9. Ba, J., & Frey, B. (2013). Adaptive dropout for training deep neural networks. In Advances in Neural Information Processing Systems. 

10. Li, Z., Gong, B., & Yang, T. (2016). Improved Dropout for Shallow and Deep Learning. In Advances in Neural Information Processing Systems 29 (NIPS 2016). 

11. Gal, Y., & Ghahramani, Z. (2016). A Theoretically Grounded Application of Dropout in Recurrent Neural Networks. In Advances in Neural Information Processing Systems.

12. Kim, Y. (2014). Convolutional Neural Networks for Sentence Classification. Proceedings of the Conference on Empirical Methods in Natural Language Processing, 1746–1751.

13. Ruder, S. (2017). An Overview of Multi-Task Learning in Deep Neural Networks. 

14. Semi-supervised Multitask Learning for Sequence Labeling. In Proceedings of ACL 2017. 

15. Bahdanau, D., Cho, K., & Bengio, Y.. Neural Machine Translation by Jointly Learning to Align and Translate. ICLR 2015.

16. Luong, M.-T., Pham, H., & Manning, C. D. (2015). Effective Approaches to Attention-based Neural Machine Translation. EMNLP 2015. 

17. Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., … Polosukhin, I. (2017). Attention Is All You Need. arXiv Preprint arXiv:1706.03762. 

18. Lin, Z., Feng, M., Santos, C. N. dos, Yu, M., Xiang, B., Zhou, B., & Bengio, Y. (2017). A Structured Self-Attentive Sentence Embedding. In ICLR 2017. 

19. Daniluk, M., Rockt, T., Welbl, J., & Riedel, S. (2017). Frustratingly Short Attention Spans in Neural Language Modeling. In ICLR 2017. 

20. Wu, Y., Schuster, M., Chen, Z., Le, Q. V, Norouzi, M., Macherey, W., … Dean, J. (2016). Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation.

21. Kingma, D. P., & Ba, J. L. (2015). Adam: a Method for Stochastic Optimization. International Conference on Learning Representations. 

22. Ruder, S. (2016). An overview of gradient descent optimization. arXiv Preprint arXiv:1609.04747. 

23. Denkowski, M., & Neubig, G. (2017). Stronger Baselines for Trustable Results in Neural Machine Translation. ↩

24. Hinton, G., Vinyals, O., & Dean, J. (2015). Distilling the Knowledge in a Neural Network. arXiv Preprint arXiv:1503.02531. https://doi.org/10.1063/1.4931082 

25. Kuncoro, A., Ballesteros, M., Kong, L., Dyer, C., & Smith, N. A. (2016). Distilling an Ensemble of Greedy Dependency Parsers into One MST Parser. Empirical Methods in Natural Language Processing. 

26. Kim, Y., & Rush, A. M. (2016). Sequence-Level Knowledge Distillation. Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing (EMNLP-16). 

27. Britz, D., Goldie, A., Luong, T., & Le, Q. (2017). Massive Exploration of Neural Machine Translation Architectures. In arXiv preprint arXiv:1703.03906. 

28. Zhang, X., Zhao, J., & LeCun, Y. (2015). Character-level Convolutional Networks for Text Classification. Advances in Neural Information Processing Systems, 649–657.

29. Conneau, A., Schwenk, H., Barrault, L., & Lecun, Y. (2016). Very Deep Convolutional Networks for Natural Language Processing. 

30. Le, H. T., Cerisara, C., & Denis, A. (2017). Do Convolutional Networks need to be Deep for Text Classification ? In arXiv preprint arXiv:1707.04108. 

31. Wu, Y., Schuster, M., Chen, Z., Le, Q. V, Norouzi, M., Macherey, W., … Dean, J. (2016). Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation. 

32. Plank, B., Søgaard, A., & Goldberg, Y. (2016). Multilingual Part-of-Speech Tagging with Bidirectional Long Short-Term Memory Models and Auxiliary Loss. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics. 

33. He, L., Lee, K., Lewis, M., & Zettlemoyer, L. (2017). Deep Semantic Role Labeling: What Works and What’s Next. ACL. 

34. Melis, G., Dyer, C., & Blunsom, P. (2017). On the State of the Art of Evaluation in Neural Language Models. 

35. Rei, M. (2017). Semi-supervised Multitask Learning for Sequence Labeling. In Proceedings of ACL 2017. 

36. Ramachandran, P., Liu, P. J., & Le, Q. V. (2016). Unsupervised Pretrainig for Sequence to Sequence Learning. arXiv Preprint arXiv:1611.02683. 

37. Kadlec, R., Schmid, M., Bajgar, O., & Kleindienst, J. (2016). Text Understanding with the Attention Sum Reader Network. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics. 

38. Cheng, J., Dong, L., & Lapata, M. (2016). Long Short-Term Memory-Networks for Machine Reading. arXiv Preprint arXiv:1601.06733. 

39. Parikh, A. P., Täckström, O., Das, D., & Uszkoreit, J. (2016). A Decomposable Attention Model for Natural Language Inference. In Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing. 

40. aulus, R., Xiong, C., & Socher, R. (2017). A Deep Reinforced Model for Abstractive Summarization. In arXiv preprint arXiv:1705.04304. 

41. Liu, Y., & Lapata, M. (2017). Learning Structured Text Representations. In arXiv preprint arXiv:1705.09207. Retrieved from http://arxiv.org/abs/1705.09207 

42. Zhang, J., Mitliagkas, I., & Ré, C. (2017). YellowFin and the Art of Momentum Tuning. arXiv preprint arXiv:1706.03471. 

43. Goldberg, Y. (2016). A Primer on Neural Network Models for Natural Language Processing. Journal of Artificial Intelligence Research, 57, 345–420.

44. Melamud, O., McClosky, D., Patwardhan, S., & Bansal, M. (2016). The Role of Context Types and Dimensionality in Learning Word Embeddings. In Proceedings of NAACL-HLT 2016 (pp. 1030–1040). 

45. Ruder, S., Ghaffari, P., & Breslin, J. G. (2016). A Hierarchical Model of Reviews for Aspect-based Sentiment Analysis. Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing (EMNLP-16), 999–1005. 

46. Reimers, N., & Gurevych, I. (2017). Optimal Hyperparameters for Deep LSTM-Networks for Sequence Labeling Tasks. In arXiv preprint arXiv:1707.06799.

47. Søgaard, A., & Goldberg, Y. (2016). Deep multi-task learning with low level tasks supervised at lower layers. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics, 231–235. 

48. Liu, P., Qiu, X., & Huang, X. (2017). Adversarial Multi-task Learning for Text Classification. In ACL 2017. 

49. Ruder, S., Bingel, J., Augenstein, I., & Søgaard, A. (2017). Sluice networks: Learning what to share between loosely related tasks. arXiv Preprint arXiv:1705.08142. 

50. Dozat, T., & Manning, C. D. (2017). Deep Biaffine Attention for Neural Dependency Parsing. In ICLR 2017. 

51. Jean, S., Cho, K., Memisevic, R., & Bengio, Y. (2015). On Using Very Large Target Vocabulary for Neural Machine Translation. Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing (Volume 1: Long Papers), 1–10. 

52. Sennrich, R., Haddow, B., & Birch, A. (2016). Edinburgh Neural Machine Translation Systems for WMT 16. In Proceedings of the First Conference on Machine Translation (WMT 2016). 

53. Huang, G., Li, Y., Pleiss, G., Liu, Z., Hopcroft, J. E., & Weinberger, K. Q. (2017). Snapshot Ensembles: Train 1, get M for free. In ICLR 2017. 

54. Inan, H., Khosravi, K., & Socher, R. (2016). Tying Word Vectors and Word Classifiers: A Loss Framework for Language Modeling. arXiv Preprint arXiv:1611.01462. 

55. Press, O., & Wolf, L. (2017). Using the Output Embedding to Improve Language Models. Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics: Volume 2, Short Papers, 2, 157--163. 

56. Snoek, J., Larochelle, H., & Adams, R. P. (2012). Practical Bayesian Optimization of Machine Learning Algorithms. Neural Information Processing Systems Conference (NIPS 2012). 

57. Mikolov, T. (2012). Statistical language models based57.  on neural networks (Doctoral dissertation, PhD thesis, Brno University of Technology). ↩

58. Pascanu, R., Mikolov, T., & Bengio, Y. (2013). On the difficulty of training recurrent neural networks. International Conference on Machine Learning, (2), 1310–1318. 

59. Zhang, Y., & Wallace, B. (2015). A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Neural Networks for Sentence Classification. arXiv Preprint arXiv:1510.03820, (1). 

60. Huang, Z., Xu, W., & Yu, K. (2015). Bidirectional LSTM-CRF Models for Sequence Tagging. arXiv preprint arXiv:1508.01991. 

61. Ma, X., & Hovy, E. (2016). End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF. arXiv Preprint arXiv:1603.01354. 

62. Lample, G., Ballesteros, M., Subramanian, S., Kawakami, K., & Dyer, C. (2016). Neural Architectures for Named Entity Recognition. NAACL-HLT 2016. 

63. Kiddon, C., Zettlemoyer, L., & Choi, Y. (2016). Globally Coherent Text Generation with Neural Checklist Models. Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing (EMNLP2016), 329–339. 

64. Tu, Z., Lu, Z., Liu, Y., Liu, X., & Li, H. (2016). Modeling Coverage for Neural Machine Translation. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics. 

65. See, A., Liu, P. J., & Manning, C. D. (2017). Get To The Point: Summarization with Pointer-Generator Networks. In ACL 2017. 

66. Sennrich, R., Haddow, B., & Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (ACL 2016). 

67. Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. Advances in Neural Information Processing Systems, 9. 

    

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值