Advertisement

[Paper Notes] Sequence to Sequence Learning with Neural Networks

阅读量:

Introduction

这篇文章在一定程度上借鉴了 RNN Encoder-Decoder 的核心理念。其主要思想在于通过 LSTM 对源序列进行编码并生成固定的向量表示,在此基础上再通过另一个 LSTM 进而解码生成目标序列。

数据集为WMT’14英译法任务。评估结果包含Bleu Score这一指标。其中 Baseline (CSLM项目) 的平均分是 [...] ,所提出模型的平均分是 [...] 。对最佳候选列表进行了重新评分(来自CSLM项目)得到分数为 [...] 。目前最好的公开结果(来自OSMOSES系统描述文档)的分数是 [...]

The Model

RNN

该输入序列由变量 x_1x_T 组成。
该RNN网络基于以下递推公式生成对应的输出序列 (y_1,...,y_T)
\begin{aligned}
h_t &= \text{sigm}(W^{hx}x_t + W^{hh}h_{t-1}) \
y_t &= W^{yh}h_t
\end{aligned}

当输入序列与输出序列之间的对应关系是预先掌握的,则RNN轻而易举地完成这种映射。然而,在输入输出序列长度不确定的情况下,并且在序列间的映射呈现非线性特征时,则RNN难以有效处理。

主要采用基于RNN编码器-解码器模型的方式进行处理;具体而言,在编码阶段将输入序列转换为固定长度的向量形式;随后通过解码器逐步生成目标序列的过程。

但是存在长时记忆问题而导致RNN难以实现有效的训练。随着研究的深入应运而生的LSTM和GRU等模型结构能够有效地解决RNN在处理长序列数据时遇到的挑战。这些模型结构能够有效地解决RNN在处理长序列数据时遇到的挑战。

LSTM模型旨在预测给定输入序列x_1,…,x_T条件下输出序列p(y_1,…,y_{T'}|x_1,…,x_T)的概率分布。具体步骤包括:首先提取输入序列x_1,…,x_T的固定维向量表示v;接着利用标准LSTM-LM架构建立语言模型,并将初始隐藏状态设为该向量v;最后利用该架构对输出序列进行建模并预测其概率分布。数学表达式如下:

p(y_1,…,y_{T'}|x_1,…,x_T) = \sum_{t=1}^{T'} p(y_t | v, y_1,…,y_{t-1})

其中每个条件概率分布p(y_t | v, y_1,…,y_{t-1})则通过计算词表上所有单词的概率来实现。

本文主要针对上述模型实施了三项改进措施:首先分别采用两个独立的LSTM架构来处理输入与输出数据;其次优化了网络结构使其包含四层 LSTM 层次;最后引入了逆序处理策略即通过将原始序列a, b, c转换为\alpha, \beta, \gamma并颠倒后的序列为c, b, a使得SGD过程更容易在输入与输出之间建立联系从而显著提升了模型性能

Experiment

原始语言采用了高频16万词汇构建其词汇表体系,目标语言系统则基于高频8万词汇构建自身词汇表结构,在此基础之上对多余词汇进行了替换成UNK标记处理

训练

给定训练集\xi的每一个源句子S的正确回答T之间的关系, 优化模型性能旨在通过最大化每一对(T, S)之间的对数似然值来进行学习

预测

\hat{T}=\argmax_T p(T|S)

采用从左到右逐步扩展当前字符串的方式进行编码,在每一步操作中依次添加一个字符,并利用Beam Search算法筛选出概率最高的B个候选字符串作为后续搜索的基础。每当某个候选序列包含标记时,则立即移除该候选序列,并将其加入最终翻译结果列表中。通过实验研究发现,在实际应用中选择适当的参数能够显著提升算法性能:具体而言,在本研究中我们发现当设置为B=1时仍可获得良好的翻译效果;而当设置为B=2时,则可以使beam search算法的效果达到最佳水平。

通过该方法对基准模型获得的分数与当前模型分数进行计算所得分数为两个评分的平均值

反转输入序列

反转输入序列会被倒序排列后的序列所取代,并未影响单词间的平均距离;然而这会增加这些短时间的关联性并进一步减少‘最小时间滞后量’。

起初作者认为反转输入序列仅会提升对句子前部分预测的可信度。然而实证研究显示,在反向处理后的训练数据中建立的LSTM模型较传统方法在长文本理解任务中表现出色。这表明反向处理策略可能有助于提升模型内存利用率

训练细节

  • 参数初始化: LSTM网络中所有参数均遵循[-0.08, 0.08]区间内的均匀分布进行初始化。
  • 训练过程基于随机梯度下降优化器进行,并采用学习率设置为η= ⁰·⁷。在完成第五轮后每隔半个周期将学习率减半一次直至第七轮结束。
  • 批大小固定为128。
  • 尽管LSTM架构通常不会出现梯度消失现象但常遭受梯度爆炸的影响本文通过限制各时刻步方向上的l2范数且其取值范围限定于[1 ⁰, ²⁵]来规避这一挑战。
  • 不同长度的句子混搭可能导致资源浪费因此建议将所有待处理文本先按长度排序以确保每个批次中的序列长度均衡化从而提升训练效率约双倍。

训练并行化:
本文使用C++实现的LSTM在单个GPU上,每秒只能处理1700个单词,使用8卡GPU机器,4层LSTM,每层放在一个GPU上,剩下4个GPU用来并行化softmax,这样每秒可以处理6300个单词,实现了大概3.7倍的加速。训练一共大约持续了10天。

实验结果

在这里插入图片描述

在长句子上的表现

在这里插入图片描述
在这里插入图片描述

模型分析

该模型的主要贡献在于能够将自然语言处理任务转化为向量表示这一关键步骤。经过主成分分析降维处理后能够实现数据的可视化效果这一重要特征得到了充分验证。实验结果表明该算法在嵌入性能方面表现优异其对不同长度文本的适应能力令人印象深刻但其计算复杂度相对较高这在一定程度上限制了其在大规模应用中的适用性

在这里插入图片描述

Conclusion

  • 倒序输入序列能够展现出显著的效果。
  • 该系统能够在复杂句式下表现出色。
    *LSTM方法结构简单且易于理解,在无需过多调整的情况下即可超越基于统计机器翻译的传统方法。该技术显示出巨大的应用前景,并且未来有望在解决具有挑战性的序列建模问题时发挥重要作用。

全部评论 (0)

还没有任何评论哟~