Advertisement

【论文笔记】Sequence to Sequence Learning with Neural Networks

阅读量:

这篇论文提出了一种端到端的序列到序列学习方法,使用多层LSTM将输入序列映射到固定维度的向量,再通过另一个LSTM解码目标序列。该方法解决了传统RNN在处理长序列时的梯度消失问题,并在自然语言处理任务中表现出色。论文的主要创新点包括使用两个不同LSTM结构、选择四层LSTM架构以及颠倒输入句子单词顺序的技巧。实验结果表明,该模型在长句子和复杂任务中表现优异,优于传统方法。

Sequence to Sequence Learning with Neural Networks

Abstract :DNN在拥有大量标记训练集时表现出色,但不具备处理序列到序列映射的能力。本文提出了一种端到端的序列训练方法,对序列结构做出了最少假设。我们采用多层LSTM架构,将输入序列映射到固定维度的向量空间,然后,另一个深度LSTM被用来从向量中解码出目标序列。

1 Introduction

1)DNN展现出卓越的能力 :DNN在语音识别和视觉目标检测等具有挑战性的领域展现出卓越的效果。DNN拥有强大的并行计算能力,能够处理大量并行任务。通过监督反向传播算法,可以有效地训练和优化大型DNN模型。一旦找到合适的参数设置,监督反向传播算法就能精准地调整模型参数,从而实现预期目标。

DNN仅适用于输入和输出均具有固定编码维度的问题。这一限制具有重要意义,因为许多关键问题更适合用变长序列进行表示。例如,语音识别和机器翻译都涉及序列处理,而问答系统同样遵循这一模式。

本文采用LSTM架构来处理通用的序列到序列任务。具体而言,第一个LSTM依次读取输入序列,每隔一个时间步获取一个较大尺寸的向量表示;第二个LSTM则从向量中生成输出序列。值得注意的是,第二个LSTM本质上是循环神经网络的一种,其输入序列受特定条件约束。

4)为解决一般的seq到seq的问题,已有很多相关的尝试 :略

此结构能够有效地处理长句子

LSTM模型的显著特征是它具备了能力,能够将可变长度的输入句子转换为固定向量表示。

7)BLEU算法旨在测定机器翻译在两种自然语言之间转换效果的算法

8)统计机器翻译系统SMT,其翻译结果基于统计模型生成,参数由双语文本语料库的统计分析得出。

2 Model

1)RNN是前馈神经网络对序列seq的自然推广。

当输入输出之间的映射已知时,RNN能够有效地将seq映射到seq。然而,由于复杂且非单调的关系,输入与输出序列的长度不一致,这使得将RNN应用于这些问题仍然存在挑战。

该方法1的4)中出现过

基本方法是利用RNN将输入序列转换为固定长度的向量,随后通过另一个RNN将该向量转换为目标序列【该方法1的4)中出现过

2)LSTM

LSTM的目标函数是估计对输入序列

eft  x_{1},x_{2},dot dot dot ,x_{T}ight

来说,

eft  y_{1},y_{2},dot dot dot ,y_{T^{'}}}ight

是其对应的输出序列的条件概率

P

,这里长度

T^{'}

T

具有区别性地,LSTM通过计算条件概率来处理序列数据。首先,LSTM利用其最后一个隐藏状态来获取输入序列的信息。

eft  x_{1},x_{2},dot dot dot ,x_{T}ight

的固定维度表示,然后标准的LSTM-LM公式来计算

eft  y_{1},y_{2},dot dot dot ,y_{T^{'}}}ight

的概率,该公式的初始隐藏状态被设为

eft  x_{1},x_{2},dot dot dot ,x_{T}ight

的向量表示。

P=rod_{t=1}{T{'}}P

在等式中,每个

P

分布用所有单词在词汇表中的softmax来表示。

我们模型的三大创新点如下:首先,我们采用了两个不同的LSTM结构,一个处理输入序列,另一个处理输出序列。鉴于此配置,模型参数数量得以显著增加,而计算开销可以忽略不计,并且自然支持多语言模型训练。其次,经过实验对比,深层LSTM结构在性能上优于浅层结构,因此我们最终采用了四层LSTM网络。最后,我们发现倒序排列输入句子的单词顺序具有重要意义。

3 Eperiment

4)训练细节

基于四层的LSTM架构,每层均配备1000个神经元和1000维的词嵌入表示。输入端拥有160,000个独特的词汇,输出层则包含80,000个词汇。该模型的深度设计使得每个句子在模型内部被压缩为8000个实数。经过实验发现,较浅的架构在性能上存在明显劣势,每添加一层神经网络,困惑度下降约10%。这一现象可能与模型中增加的隐层状态数量有关。在输出层,我们采用了传统的softmax机制,每次输出能够覆盖超过8000个词汇。最终,整个模型拥有384,000,000个参数,其中64,000,000个参数来源于循环连接部分(其中32,000,000个参数用于编码过程,另32,000,000个参数用于解码过程)。

a、初始化所有LSTM的参数,其均匀分布在-0.08和0.08之间

b、采用无动量的随机梯度下降算法,设置固定的学习率为0.7。在训练5个epoch后,每轮epoch结束后,学习率将减半。

c、使用batch是128

d、每次training batch 之后,计算

s=eft g ight _{2}

,g 是梯度除以128,如果s > 5, 令

g=rac{5g}{s}

e、不同句子的长度不同。确保所有小批量中的所有句子长度相同。

f、用8个GPU同时进行处理。LSTM的每一层都在不同的GPU上运行。

6)experiment result

a、LSTM模型在长句子上表现很好。

左图展示了我们系统作为长句子函数的性能,其中x轴表示测试句子按照长度排序的结果。观察结果显示,对于长度小于35的句子,LSTM模型的得分显著高于基准模型。右图展示了LSTM在句子长度逐渐缩短时的性能,其中x轴表示测试句子按照平均词频排序的结果。分析结果表明,对于词频排名在2500之前的词汇,LSTM模型的性能优于基准模型。

b、我们的模型能够将一个词序列转换为一个固定维度的向量。该图表明,表征物对于词序是敏感的,但对于主被动语态则不敏感。

通过分析图中的短语,得到LSTM模型隐藏状态的二维PCA投影结果。这些短语属于词义聚类的结果,这表明它们在这些例子中呈现出词序函数的特征。用词袋模型难以准确捕捉其特点。

全部评论 (0)

还没有任何评论哟~