OpenAI最新研究:通过无监督学习提高语言理解能力

新智元 今天

OpenAI最新研究:通过无监督学习提高语言理解能力


新智元编译

来源:Open AI

编译:小潘、克雷格

【新智元导读】基于一个可伸缩的、任务无关的系统,OpenAI在一组包含不同的语言任务中获得了最优的实验结果,方法是两种现有理念的结合:迁移学习和无监督的预训练。这些结果证明了有监督的学习方法可以与无监督的预训练进行完美的结合。这个想法许多人在过去探索过,OpenAI希望结果能激发更多的研究,进而将这个想法应用到更大、更多样化的数据集上。

OpenAI最新研究:通过无监督学习提高语言理解能力

我们的系统分为两个阶段:首先,我们通过无监督的方式在大数据集上训练一个迁移学习模型,训练过程中使用语言模型的训练结果作为信号,然后我们在更小的有监督数据集上对这个模型进行微调,以帮助它解决特定的任务。这个方法的开发是在我们前一个sentiment neuron(情绪神经元)的工作之后进行的,在sentiment neuron任务中我们注意到,通过利用足够的数据对模型进行训练,无监督学习可以获得令人惊讶的判别特征。在这里,我们想进一步探讨这个想法:我们能否开发一个模型,以一种无监督的方式使用大量数据对模型进行训练,然后对模型进行微调,以在不同的任务中都获得良好的性能?我们的研究结果表明,这种方法的效果出奇地好。同样的核心模型可以针对完全不同的任务进行微调,以适应任务。

OpenAI最新研究:通过无监督学习提高语言理解能力

OpenAI最新研究:通过无监督学习提高语言理解能力

本研究是基于在半监督序列学习中引入的方法,该方法展示了如何通过对LSTM进行无监督的预训练,然后进行有监督的微调,来提高文本分类的能力。它还扩展了ULMFiT的研究,该研究展示了如何对单个数据不可知的LSTM语言模型进行微调,从而在各种文本分类数据集上获得最优的性能。我们的工作展示了如何在这种方法中使用迁移学习模型,从而在文本分类之外的更广泛任务中取得成功,例如常识推理、语义相似性和阅读理解等。它与ELMo类似,但属于任务无关型问题,它包含了预训练,希望使用针对任务的特殊模型架构来获得最优的结果。

我们通过对很少的参数调优来达到我们的目的。所有的数据集都仅使用一个前向语言模型,没有任何组合,并且大多数的结果都使用完全相同的超参数设置。

我们的方法在COPA、RACE和ROCStories三个数据集上的性能都表现得特别好,这些数据集是用来测试常识推理和阅读理解的。我们的模型在这些数据集上获得了最优的结果。这些数据集的识别被认为需要多句推理和重要的世界知识,这表明我们的模型主要通过无监督学习来提高这些能力。以上表明,无监督的技术有希望开发复杂的语言理解能力。

为什么是无监督学习?

监督学习是大多数机器学习算法成功的核心。然而,它需要对大量的数据进行仔细的清理,创建的代价也极其昂贵,这样才能获得很好的效果。无监督学习的吸引力在于它有可能解决这些缺点。由于无监督的学习消除了人为显式标记的瓶颈,它也很好地扩展了当前的趋势,即增加了原始数据的计算能力和可用性。无监督学习是一个非常活跃的研究领域,但它的实际应用往往很有限。

最近的一次一项尝试是试图通过使用无监督学习来对具有大量未标记数据的系统进行增强,从而进一步提高模型的语言能力。通过无监督训练的单词表示可以使用包含万亿字节信息组成的大型数据集,当与有监督学习相结合时,可以提高各种NLP任务的性能。直到最近,这些无监督的NLP技术(例如GLoVe和word2vec)使用了简单的模型(词向量)和训练信号(单词的局部同时出现)。skip-Thought向量是一个很值得注意的早期想法,它展示了更复杂的方法如何进行改进的潜能。而现在正在使用新的技术将进一步提高实验性能。上述技术包括使用预训练的句子来表示模型,上下文化的词向量(特别是ELMo和CoVE),以及像我们提出来的方法:使用特定的模型架构来将无监督的预训练和有监督的微调融合在一起。

OpenAI最新研究:通过无监督学习提高语言理解能力

在大量文本的基础上对我们的模型进行预训练,极大地提高了它在具有挑战性的自然语言处理任务上的性能,比如Winograd模式解析。

我们还注意到,我们可以使用未训练的基础语言模型执行任务。例如,随着基础语言模型的改进,像选择多个正确答案这样任务的性能会稳步增加。虽然这些方法的绝对性能相对于最新的有监督技术而言仍然很低,(对于问答系统,它的表现优于简单的滑动窗口那样的基线系统)但是鼓舞人心的一点是,这种行为在广泛集合的任务中是具有鲁棒性的。使用这些启发式算法,不包含关于任务和世界的信息的随机初始化网络不会比包含这些信息的随机初始化方法获得更好的效果。这就提供了一些见解,告诉我们为什么生成预训练可以提高下游任务的性能。

我们还可以使用模型中现有的语言功能来执行情感分析。对于由正面和负面影评组成的斯坦福情绪Treebank数据集,我们可以通过使用语言模型在句子后面输入单词“very”来猜测评论是正面还是负面,还能看看这个模型是否具有预测“积极的”或“消极的”的倾向。 这种方法根本不需要根据任务调整模型,其性能与经典基线相当,准确度达到80%左右。

我们的工作也验证了迁移学习的鲁棒性和有效性,这表明它足够灵活,可以在不需要对复杂的任务进行定制或对超参数进行调优的情况下,在广泛数据的任务上获得最优的结果。

缺点

这个项目有一些问题还是值得注意的:

  1. 计算要求:许多以前的NLP任务方法都是从头开始,在单个GPU上训练相对较小的模型。 我们的方法需要昂贵的预训练步骤:在8个GPU上进行为期1个月的训练。幸运的是,这个训练只需要进行一次。我们正在发布我们的模型,这样其他人就不用再次训练这样的模型了。同时,与之前的工作相比,它也是一个大型模型,因此使用更多的计算和内存,我们使用了37层(12块)Transformer架构,并且我们训练的序列最多可达512个令牌。大多数实验都是在4个/8个GPU系统上进行的。该模型可以快速调整新任务,从而有助于减轻额外的资源需求。
  2. 学习到文本中所包含的世界局限性和数据倾斜:互联网上随时可用的书籍和文本不包含关于世界的完整乃至准确的信息。最近的工作表明,某些类型的信息很难通过文本学习,而其他工作表明模型学习且利用了数据分布中包含的倾斜。
  3. 脆弱的泛化能力:尽管我们的方法改善了广泛任务的性能,但目前的深度学习NLP模型的表现有时仍然是违反直觉并且令人震惊的,尤其是在以系统性,对抗性或分布式分布的方式进行评估时。尽管我们已经观察到一些进展的迹象,但我们的方法对这些问题并非免疫。相比较于以往纯文本的神经网络,我们的方法具有更优越的词法鲁棒性。在2018年Glockner等人介绍的数据集中,我们的模型准确率达到83.75%,表现类似于通过WordNet整合外部知识的KIM方法。

展望未来

扩展方法:我们已经观察到,语言模型性能的改进与下游任务的改进密切相关。目前我们正在使用一台包含8 GPU计算机作为硬件,并仅使用大概包含5GB文本的几千本书作为训练数据集。 根据经验表明,使用更多的计算性能和数据可以使算法有很大的改进空间。

改进微调:我们的方法目前非常简单。如果使用更复杂的适应和迁移技术(例如ULMFiT中探索的技术)可能会有实质性的改进。

更好地理解生成性预训练的原理会对模型有益:尽管我们已经讨论了一些我们在此讨论的想法,但更有针对性的实验和研究将有助于区分那些不同的解释。例如,我们观察到的性能提高有多少是得益于改进了处理更广泛背景的能力以及改进的世界知识?

OpenAI博客地址:

https://blog.openai.com/language-unsupervised/

论文地址:

https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf

【加入社群】

新智元 AI 技术 + 产业社群招募中,欢迎对 AI 技术 + 产业落地感兴趣的同学,加小助手微信号: aiera2015_3 入群;通过审核后我们将邀请进群,加入社群后务必修改群备注(姓名 - 公司 - 职位;专业群审核较严,敬请谅解)。

相关推荐