编译 | reason_W

编辑 | 明 明

出品 | AI科技大本营

【AI 科技大本营导读】近日,OpenAI 在其官方博客发文介绍了他们最新的自然语言处理(NLP)系统。这个系统是可扩展的、与任务无关的,并且在一系列不同的 NLP 任务中都取得了亮眼的成绩。但该方法在计算需求等方面仍存在改进的空间。下面我们来看他们的博文:

我们即将发布一个可扩展的,与任务无关的自然语言处理系统,该系统在一系列不同的语言任务上都取得了目前最先进的成绩。我们的方法结合了两种现有的 NLP 网络架构:Transformer 和无监督预训练。大量任务数据集上的测试结果表明,这种方法将监督学习方法与无监督预训练结合得非常好;当然,这也是之前许多人在探索的想法。我们希望我们的工作能够激发该方向进一步的研究,并鼓励大家将这一想法应用到更大更多的不同数据集上。

先看结果:





我们的系统的工作流程分为两个阶段:首先,以无监督的方式在大量数据上训练一个 Transformer 模型——使用语言建模作为训练信号——然后,在小得多的监督数据集上对这个模型进行 fine-tuning,以帮助它解决特定的任务。这项研究是建立在我们之前一项关于情绪神经元( Sentiment Neuron )的工作基础之上的,在那项工作中我们注意到,当训练数据足够多时,无监督学习技术可以产生惊人的判别性特征。

在本项研究工作中,我们这个想法进行了进一步的探索:我们可以开发一个模型,以无监督的方式对大量数据进行训练,然后对模型进行 fine-tuning,以在许多不同任务上获得良好的性能。我们的研究结果表明,这种方法的效果非常好。针对不同的任务,只需要对同一个的核心模型进行最少的调整就可以进行应用。

这项工作建立在半监督序列学习( Semi-supervised Sequence Learning)的基础之上,其中半监督序列学习方法展示了如何通过使用 LSTM 的无监督预训练,然后进行有监督的 fine-tuning 来提高文档分类性能。

我们的工作还对 ULMFiT进行了拓展,说明了为了在各个文档分类数据集上获得最先进的性能,应该如何对单个与数据集无关的 LSTM 语言模型进行 fine-tuning;我们的工作展示了如何使用基于 Transformer 的模型来实现文档分类之外的更广泛的任务,如常识推理,语义相似性和阅读理解。

它和 ELMo 也有一些类似,但比 ELMo 更加通用。(编辑注:ELMo 是目前最先进的上下文词嵌入技术,同样使用了预训练技术,但为了在各种任务中获得最先进的结果针对不同任务使用了定制架构。)

我们的实验结果只需要进行非常少的调整就可以实现。其中所有数据集都使用单一的正向语言模型,没有任何集成,并且大多数报告结果都使用了完全相同的超参数设置。

值得一提的是该方法在三种关于测试常识推理和阅读理解的数据集(COPA,RACE和ROCStories)上的表现。我们的模型以远超第二名的成绩在这些数据集上获得了最先进的结果。这些数据集普遍被认为需要借助多语句推理和有意义的世界知识进行解决,而我们的模型主要通过无监督学习来提高这些技能。这也表明了通过无监督技术来开发复杂的语言理解功能的可能。这让我们特别兴奋。

为什么是无监督学习?

监督学习是机器学习最近成功的关键。但是,它可能需要大量的、经过仔细清理的、昂贵的数据集才能发挥非常好的作用。而无监督学习则有可能解决这些不足,这是非常有吸引力的。由于无监督学习没有了显式人工标签的限制,在当前计算量和原始数据不断增加的趋势下,这项技术表现出了非常好的扩展性。 不过虽然无监督学习是一个非常活跃的研究领域,但其实际用途仍然有限。

最近有人试图通过无监督学习用大量无标记数据进行增强以进一步提高系统的自然语言处理能力。通过无监督技术训练的词向量表示可以使用由 TB 级信息组成的大型数据集,并且当它与监督学习相结合时,可以提高各种 NLP 任务的性能。之前,这些 NLP 的无监督技术(例如 GLoVe 和 word2vec)使用的都还是简单模型(词向量)和训练信号(词局部共现,the local co-occurence of words)。

Skip-Thought Vectors是早期的一个值得注意的方法,展示了通过更复杂的方法实现的改进的可能性。而现在正在使用的新技术则进一步提高了性能,这包括使用预训练的语句表示模型,上下文词向量(主要是 ELMo和 CoVE),以及使用定制架构来融合无监督预训练和监督 fine-tuning 的方法(也就是我们的方法)。



在大量文本上对我们的模型进行预训练,可显著提高其在诸如 Winograd Schema Resolution 等具有挑战性的自然语言处理任务上的表现。

我们还注意到,该方法可以直接使用底层语言模型开始执行任务,而无需对其进行任何训练。例如,随着基础语言模型的改进,像在选择题中选择正确答案这种任务的性能会稳步增加。

虽然这些方法的绝对性能相对于最新的监督技术而言仍然很低(对于问答式任务,它仅比简单的滑动窗口基线结果好),但令人鼓舞的是,这种行为在大量任务中表现的非常鲁棒。这种不使用任务和世界信息的随机初始化网络表现的和使用这些信息的随机网络一样好。这为我们了解为什么生成式预训练可以提高下游任务的性能提供了一些有意义的参考。

我们还使用模型中现有的语言功能进行了情感分析。对于斯坦福 Sentiment Treebank 数据集(该数据集包含了电影评论中的正面和负面语句),我们可以使用语言模型来猜测评论是正面还是负面(在语句后面输入单词“very”即可进行预测),并且观察模型是倾向于将词性预测为“积极”还是倾向于将词性预测为“消极”。 这种方法根本不需要根据任务对模型进行调整,并且其性能与经典基线准确率相当,可达 80% 。

我们的工作也验证了 Transformer 架构的鲁棒性和实用性,表明它具有足够的灵活性,可在广泛的任务中实现最先进的结果,而无需复杂的任务定制或超参数调整。

不足之处

这个项目也有一些突出问题非常值得注意:

计算需求:以前的许多自然语言处理方法都是从头开始在单个 GPU 上训练相对较小的模型。但我们的方法预训练步骤计算需求则相当昂贵——在 8 个 GPU 上训练 1 个月。幸运的是,这只需要做一次,我们正在将我们的模型发布出来,以方便其他人不用重复这一步骤。

它也是一个大型模型(与之前的工作相比),因此使用了更多的计算和内存——我们使用了37层(12块)Transformer 架构,并且在最多可达 512 个 tokens 的序列上训练。并且大多数实验都是在 4 个和 8 个 GPU 的系统上进行的。该模型针对新任务进行 fine-tuning 的速度非常快,有助于减轻额外的资源需求。

通过文本学习世界的局限性和偏见:互联网上随时可用的书籍和文本所包含的关于世界的信息并不完整,甚至并不准确。最近的研究表明,某些类型的信息很难通过文本进行学习。而另外一些研究则表明了数据分布中存在的模型学习和开发偏见。

依旧脆弱的泛化性能:尽管我们的方法提升了自然语言处理系统在大量任务上的性能,但目前的深度学习 NLP 模型仍然表现出了令人惊讶的反直觉的行为——尤其是在以系统性、对抗性或分布性的方式进行评估时。尽管我们已经观察到一些研究进展,但我们的方法对这些问题并不是免疫的。

这种方法表现出比先前的面向文字蕴含(Textual entailment)的神经网络方法更好的词法鲁棒性。在 Glockner 等人介绍的数据集上,我们模型的准确率达到了 83.75%,其性能类似于通过 WordNet 整合外部知识的 KIM。

工作展望

方法规模化拓展:我们已经观察到,语言模型的性能改进与下游任务的改进密切相关。目前我们正在使用商用硬件(一台 8 GPU 计算机)以及仅包含几千本书(约 5 GB 文本)的训练数据集。这表明经过充分验证该方法在处理越来越大的计算量和数据时还有很大提升空间。

改进的 fine-tuning:我们在 fine-tuning 上的策略目前非常简单。通过使用更复杂的自适应和转换技术(例如 ULMFiT中的技术)可能为我们的系统带来实质性的改进。

更好地理解生成式预训练带来提升的原因:尽管我们已经讨论了一些关于这个问题的想法,但更有针对性的实验和研究将有助于我们对那些相互矛盾的解释进行判断。例如,我们观察到的提升有多少是由于对处理更广泛上下文能力的改进,以及多少是由于对世界知识的改进?

附录:数据集示例





原文地址:https://blog.openai.com/language-unsupervised/

——【完】——

AI公开课精彩预告

时间:6月28日 20:00-21:00

扫描海报二维码,免费报名

添加微信csdnai,备注:公开课,加入课程交流群

OpenAI NLP最新进展:通过无监督学习提升语言理解相关推荐

  1. OpenAI新研究:通过非监督学习提升NLP任务表现

    唐旭 编译整理 量子位 出品 | 公众号 QbitAI 今天,OpenAI在其官方博客上发布了一篇题为<用非监督学习来提升语言理解>的文章,介绍了他们最近的一项研究:Improving L ...

  2. OpenAI最新研究:如何通过无监督学习提升「自然语言理解能力」?

    来源:amazonaws.com 摘要:长期以来,使用无监督(预)训练来提高区别性任务的性能表现一直是机器学习研究的一个重要目标.最近,OpenAI通过使用一个具有可扩展性的任务不可知系统,在一系列不 ...

  3. 机器学习两种方法——监督学习和无监督学习(通俗理解)

    前言 机器学习分为:监督学习,无监督学习,半监督学习(也可以用hinton所说的强化学习)等. 在这里,主要理解一下监督学习和无监督学习. 监督学习(supervised learning) 从给定的 ...

  4. 通过预训练提升语言理解

    官方地址:https://blog.openai.com/language-unsupervised/ 文章:https://s3-us-west-2.amazonaws.com/openai-ass ...

  5. GANs学习系列(2):GANs最新进展二

    reference:http://blog.csdn.net/solomon1558/article/details/52338052 文献整理 题目 主要内容                     ...

  6. Supervised learning/ Unsupervised learning监督学习/无监督学习

    [机器学习]两种方法--监督学习和无监督学习(通俗理解) [机器学习] : 监督学习 (框架) 有监督学习与无监督学习的几大区别 目录 Supervised learning 监督学习 Unsuper ...

  7. 21 个问题看 NLP 迁移学习的最新进展

    2020-06-23 03:20:11 作者 | Mr Bear 编辑 | 丛末 2018 年 10月,Bert 问世.从此,一波 NLP 迁移学习的研究热潮向我们袭来. 当下,全球研究人员已经在此领 ...

  8. 基于深度学习的NLP 32页最新进展综述,190篇参考文献

    来源:专知 摘要:深度学习使用多层学习层次的数据表示,并在许多领域得到了最优的结果.最近,各种各样的模型设计和方法在自然语言处理(NLP)蓬勃发展.在本文中,我们回顾了被广泛应用于各种NLP任务的深度 ...

  9. 监督学习和无监督学习_让半监督学习再次伟大!谷歌最新无监督数据增强研究,全面超越现有半监督学习方法...

      新智元报道   来源:GoogleAI 编辑:元子 [新智元导读]Google AI最新研究用无监督数据增强推进半监督学习,取得令人瞩目的成果.该方法超越了所有现有的半监督学习方法,并实现了仅使用 ...

最新文章

  1. 一年三篇IF大于7的牛人告诉你怎么写SCI
  2. [IOI2018] werewolf 狼人
  3. git merge用法_常用命令之git操作(进阶篇)
  4. oracle ora-16003,ORA-31600错误分析
  5. linux 邮件开源工具_使用Linux和开源工具编写剧本
  6. 【mysql】在Linux中通过yum安装MySQL数据库,可以实现远程登录数据库
  7. 手写一个动态代理实现,手写Proxy,手写ClassLoader,手写InvocationHandler
  8. 因多年不受重视,研究员公开2个未修复 Tor 0day且承诺再放3个
  9. php趣味编程 - php 余弦曲线
  10. 软件测试设计用例面试题
  11. Twincat3 硬件: 台湾DFI工业控制器,CPU1.1GHZ,RAM512
  12. 中文计算机期刊影响因子排名,最新计算机类中文核心期刊影响因子排名
  13. python 字符编码处理问题总结 彻底击碎乱码!
  14. ORACLE 角色授权
  15. git切换分支时,如何干净的切换到另一个分支上?
  16. TimestampType.nullSafeGet(203) - could not read column value from result set: xxx; An SQLExc
  17. 《炬丰科技-半导体工艺》薄膜晶体管中的光刻技术
  18. pandas学习(创建多层索引、数据重塑与轴向旋转)
  19. Java的宝贝——反射
  20. MarkDown基本语法以及常用公式符号整理

热门文章

  1. Linux supervisor守护进程的安装和使用
  2. Eclipse新建Work set管理工程
  3. 计算机专业术语lcd,LCD的专业术语.pdf
  4. linux 编辑hosts 命令,linux下修改hostid
  5. django 设置外键_django2.0前后版本定义外键和一对一关系的差别
  6. matlab 取消figure显示时在屏幕最前
  7. 循环for语句 if语句
  8. Excel VBA附合导线平差自动计算表
  9. iOS----------拨打电话的3种方式
  10. 2017 ACM/ICPC 南宁赛区小结 By JSB @ Reconquista