官方地址:https://blog.openai.com/language-unsupervised/

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

代码:https://github.com/openai/finetune-transformer-lm

本文利用Transformer和非监督预训练结合的方法,提出了一种能用于各种NLP任务的预训练框架,实验结果表明该模型使12项NLP任务中的9项做到了state-of-art的结果。这说明非监督预训练对提升NLP任务的监督学习有很大帮助。

Background

传统的NLP问题往往受制于标注数据太少,但未标注的文本数据则非常多,因此非监督学习可以很好地利用这些未标注的文本数据。而对于有大量标注数据的NLP问题,非监督学习到的特征表示也可以极大地提高这些NLP问题的准确率,对此一个比较有力的证明就是预训练好的词向量对提升NLP任务有很大的帮助。但词向量的局限性在于,对于不同的NLP任务,我们所需要的词的特征表示可能是不一样的,而即便是几百维的词向量也难以包含这些信息用于所有的NLP任务。因此,我们需要用预训练的模型来提升NLP任务的性能。

Challenge

对于设计一个预训练模型,主要存在两方面的挑战,一个是预训练优化的任务目标,例如本文中的目标是传统的LanguageModel,即用上文信息预测下一个出现的词,而BERT中的目标是MaskedLanguage Model + next sentence prediction。另一个挑战是预训练模型如何迁移到下游任务的过程,最主要的方式是模型结构的调整,但也包含一些学习方式的改变、附属学习目标的设立等其他手段。

Model

模型主要分为三个部分,分别是 Unsupervised pre-training、Supervised fine-tuning、Task-specific input transformations Experiment。整个模型结构如下图所示:

Unsupervised pre-training

整个预训练模型采用传统的语言模型的方式,所以其目标函数为:

从上面的模型结构图中可以看到,预训练模型框架主要采用了多层 Transformer Decoder 的结构,具体来说就是:

其中各个变量代表的意义为

U: context vector of tokens

We: token embedding matrix

Wp: position embedding matrix

H is bridge of the two components

由于采用的是传统的语言模型,因此有

对比 BERT 和 ELMo 几个经典的NLP预训练模型,可以看到,BERT主要在本文的GPT模型上加上一些小改进:

Supervised fine-tuning

和视觉任务类似地,当在做监督学习fine-tuning时,只需把非监督预训练模型的最后一层换为一个新的未训练的softmax分类器即可

所以此时的loss即为

附属目标函数为

这个附属目标函数结合了预训练过程中的loss,这样做的好处为:(1)有利于提高模型的泛化能力(2)加快模型的收敛

Task-specific input transformations Experiment

在预训练模型迁移到不同NLP任务的过程中,由于任务输入输出的不同,模型也要做出相应的调整。本文所进行的实验任务主要分为四大类:分类任务、推理任务、语义相似性任务、QA类的任务(多选题任务),如下图所示,其中start、extract表示开始符和终止符。

分类任务和预训练模型结构保持一致。

推理任务中间加了一个delimiter,将推理任务输入的premise和hypothesis分开,同时保持了其语序一致。

语义相似性任务和推理任务类似,但由于其语义没有前后的因果关系,为保持text1和text2地位相等,所以用了两个模型,最后用element-wise地相加把它们结合起来。

QA任务中context由document和question拼接而成,对每个answer分别进行配对,然后分别输入到模型中,最后用一个softmax layer进行归一化。

Experiment

本文进行的12项NLP任务分别为:

推理任务的实验结果:

QA任务的实验结果:

分类任务和语义相似性任务的实验结果:

12项实验中9项超过当前最好准确率,其中在 Stories Cloze Test上提高了8.9%,在RACE上提高了5.7%,都是比较显著的提高。

杨海宏,浙江大学直博生,研究方向:知识问答与推理。


OpenKG.CN

中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

转载须知:转载需注明来源“OpenKG.CN”、作者及原文链接。如需修改标题,请注明原标题。

点击阅读原文,进入 OpenKG 博客。

通过预训练提升语言理解相关推荐

  1. GPT语言模型:通过生成式预训练改善语言理解 OpenAI 2018

    论文链接:https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf 代码链接:https://github.com ...

  2. OpenAI NLP最新进展:通过无监督学习提升语言理解

    编译 | reason_W 编辑 | 明 明 出品 | AI科技大本营 [AI 科技大本营导读]近日,OpenAI 在其官方博客发文介绍了他们最新的自然语言处理(NLP)系统.这个系统是可扩展的.与任 ...

  3. 超越谷歌BERT!依图推出预训练语言理解模型ConvBERT,入选NeurIPS 2020

    机器之心发布 机器之心编辑部 在本文中,本土独角兽依图科技提出了一个小而美的方案--ConvBERT,通过全新的注意力模块,仅用 1/10 的训练时间和 1/6 的参数就获得了跟 BERT 模型一样的 ...

  4. 超越谷歌BERT!依图推出预训练语言理解模型ConvBERT

    来源|机器之心 在本文中,本土独角兽依图科技提出了一个小而美的方案--ConvBERT,通过全新的注意力模块,仅用 1/10 的训练时间和 1/6 的参数就获得了跟 BERT 模型一样的精度.相比费钱 ...

  5. bert预训练模型解读_超越谷歌BERT!依图预训练语言理解模型入选NeurIPS

    机器之心发布 机器之心编辑部 在本文中,本土独角兽依图科技提出了一个小而美的方案--ConvBERT,通过全新的注意力模块,仅用 1/10 的训练时间和 1/6 的参数就获得了跟 BERT 模型一样的 ...

  6. R语言作加权最小二乘_超越谷歌BERT!依图预训练语言理解模型入选NeurIPS

    机器之心发布 机器之心编辑部 在本文中,本土独角兽依图科技提出了一个小而美的方案--ConvBERT,通过全新的注意力模块,仅用 1/10 的训练时间和 1/6 的参数就获得了跟 BERT 模型一样的 ...

  7. 最强 NLP 预训练模型库 PyTorch-Transformers 正式开源:支持 6 个预训练框架,27 个预训练模型...

    先上开源地址: https://github.com/huggingface/pytorch-transformers#quick-tour 官网: https://huggingface.co/py ...

  8. BERT面向语言理解的深度双向变换预训练

    https://www.toutiao.com/a6648267891932135949/ 2019-01-20 02:04:22 BERT: Pre-training of Deep Bidirec ...

  9. BERT论文翻译:用于语言理解的深度双向Transformer的预训练

    Jacob Devlin Ming-Wei Chang Kenton Lee kristina Toutanova Google AI Language {jacobdevlin, mingweich ...

最新文章

  1. Android混淆详解
  2. zx1 android版本,蔡司发布全画幅卡片机ZX1:安卓系统 内置Lightroom
  3. 学子随感——遇见长郡浏阳(3)
  4. ssh (安全外壳协议)Secure Shell 百度百科
  5. 2010考研数学二第(13)题——导数应用题
  6. raw格式转换成qcow2格式
  7. 几种不同格式的json数据及解析
  8. Unity3D视频教程,Unity3D从入门到精通视频教程——转
  9. c语言判断奇偶数的函数,c语言高手进,尽量多做点13. 定义一个函数even(),判断一个整数是否是偶数。如果是偶数返回1,否则返回0。(要求包...
  10. Js基础——变量类型和计算
  11. 修改 Windows 10 主题字体
  12. 【宇麦科技】盘点2022:企业网络安全的七大成功要素
  13. 阅读笔记 - 20220401
  14. Windows的SSH密钥获取
  15. git 删除远端分支
  16. mysql -省市区(市)
  17. 零相位滤波matlab,什么叫零相位滤波器(最小相位滤波器)
  18. Arduino点亮LED灯带
  19. linux 下使用百度云盘
  20. 【因果推断的统计方法】潜在结果模型

热门文章

  1. IL应用之——用IL分析接口的本质
  2. 网卡驱动收发包过程图解
  3. 急用物料怎么办???
  4. 终于有人将进程间通信讲明白了
  5. 计算机硬件知识考证题,计算机硬件知识题(答案)资料
  6. C++ —— C++引用
  7. C++ —— 初识C++
  8. opencv 二值化_Python-OpenCV获取图像轮廓的图像处理方法
  9. php 循环队列,队列和循环队列-php数组
  10. ubuntu 18 Cannot find installed version of python-django or python3-django.