预训练语言模型必读文献01-Semi-supervised Sequence Learning

摘要

我们提出了两种利用未标注数据来提高循环网络序列学习的方法。第一种方法是预测序列中的下一个元素,这是自然语言处理中的一个传统语言模型。第二种方法是使用序列自动编码器,该编码器将输入序列读入一个向量中,并再次预测输入序列。这两种算法可以作为后续监督序列学习算法的“预训练”步骤。换句话说,从无监督步骤中获得的参数可以用作其他监督训练模型的起点。在我们的实验中,我们发现,使用这两种方法进行预训练后的长短时记忆循环网络更加稳定,并且具有更好的泛化能力。通过预训练,我们能够训练长达数百个时间步长的长短时记忆循环网络,从而在许多文本分类任务中实现出色的性能,例如IMDB、DBpedia和20个新闻组分类任务。

1. 简介

循环神经网络(RNNs)是建模序列数据的强大工具,然而,通过时间反向传播[36, 26]来训练它们可能很困难[8]。正因如此,尽管RNNs在表示序列结构方面很有用,但很少用于自然语言处理任务,如文本分类。

在许多文档分类任务中,我们发现通过仔细调整超参数,可以训练长短期记忆循环网络(LSTM RNNs)[9]以获得良好的性能。此外,一个简单的预训练步骤可以显著稳定LSTM的训练。例如,我们可以使用下一步预测模型,即自然语言处理中的循环语言模型,作为一种无监督方法。另一种方法是使用序列自动编码器,它使用一个RNN将长输入序列读入单个向量。然后,这个向量将被用来重建原始序列。从这两种预训练方法中获得的权重可以用作标准LSTM RNNs的初始化,以改进训练和泛化。

在我们的20个新闻组[16]和DBpedia[19]的文档分类实验,以及IMDB[21]和烂番茄[25]的情感分析中,通过循环语言模型或序列自动编码器进行预训练的LSTMs通常优于随机初始化的LSTMs。这种预训练帮助LSTMs在这些数据集上达到或超过之前的基线,而无需额外的数据。

我们实验的另一个重要结果是,在预训练中使用更多来自相关任务的无标签数据可以改善后续监督模型的泛化。例如,使用来自亚马逊评论的无标签数据来预训练序列自动编码器,可以将烂番茄的分类准确率从79.7%提高到83.3%,这相当于增加了大量标记数据的效果。这一证据支持了这样一个论点,即可以使用更多的无标签数据进行无监督学习来改善监督学习。通过序列自动编码器和外部无标签数据,LSTMs能够达到或超过先前报告的结果。

我们相信,与其他无监督序列学习方法(如段落向量[18])相比,我们的半监督方法(如[1]所述)具有一些优势,因为它可以方便地进行微调。我们的半监督学习方法与Skip-Thought向量[13]有关,但有两个区别。第一个区别是,Skip-Thought是一个更难的目标,因为它预测相邻的句子。第二个是,Skip-Thought是一种纯粹的无监督学习算法,没有微调。

2. 序列自动编码器和循环语言模型