作者:amitness     编译:ronghuaiyang

导读

其实在自监督学习的概念提出之前,NLP中就已经运用到了这一思想。

虽然计算机视觉在自监督学习方面取得了惊人的进展,但在很长一段时间内,自监督学习一直是NLP研究领域的一等公民。语言模型早在90年代就已经存在,甚至在“自我监督学习”这个术语出现之前。2013年的Word2Vec论文推广了这一模式,在许多问题上应用这些自监督的方法,这个领域得到了迅速的发展。

这些自监督的方法的核心是一个叫做 “pretext task” 的框架,它允许我们使用数据本身来生成标签,并使用监督的方法来解决非监督的问题。这些也被称为“auxiliary task”或“pre-training task“。通过执行此任务获得的表示可以用作我们的下游监督任务的起点。

在这篇文章中,我将概述研究人员在没有明确的数据标注的情况下从文本语料库中学习表示的各种pretext tasks。本文的重点是任务的制定,而不是实现它们的架构。

自监督的方案

1. 预测中心词

在这个公式中,我们取一定窗口大小的一小块文本,我们的目标是根据周围的单词预测中心单词。

例如,在下面的图中,我们有一个大小为1的窗口,因此我们在中间单词的两边各有一个单词。使用这些相邻的词,我们需要预测中心词。

这个方案已经在著名的Word2Vec论文的“Continuous Bag of Words”方法中使用过。

2. 预测邻居词

在这个公式中,我们取一定窗口大小的文本张成的空间,我们的目标是在给定中心词的情况下预测周围的词。

这个方案已经在著名的Word2Vec论文的“skip-gram”方法中实现。

3. 相邻句子的预测

在这个公式中,我们取三个连续的句子,设计一个任务,其中给定中心句,我们需要生成前一个句子和下一个句子。它类似于之前的skip-gram方法,但适用于句子而不是单词。

这个方案已经在Skip-Thought Vectors的论文中使用过。

4. 自回归语言建模

在这个公式中,我们取大量未标注的文本,并设置一个任务,根据前面的单词预测下一个单词。因为我们已经知道下一个来自语料库的单词是什么,所以我们不需要手工标注的标签。

例如,我们可以通过预测给定前一个单词的下一个单词来将任务设置为从左到右的语言建模。

我们也可以用这个方案来通给定未来的单词预测之前的单词,方向是从右到左。

这个方案已经使用在许多论文中,从n-gram模型到神经网络模型比如神经概率语言模型 (GPT) 。

5. 掩码语言建模

在这个方案中,文本中的单词是随机掩码的,任务是预测它们。与自回归公式相比,我们在预测掩码单词时可以同时使用前一个词和下一个词的上下文。

这个方案已经在BERT、RoBERTa和ALBERT的论文中使用过。与自回归相比,在这个任务中,我们只预测了一小部分掩码词,因此从每句话中学到的东西更少。

6. 下一个句子预测

在这个方案中,我们取文件中出现的两个连续的句子,以及同一文件或不同文件中随机出现的另一个句子。

然后,任务是区分两个句子是否是连贯的。

在BERT的论文中,它被用于提高下游任务的性能,这些任务需要理解句子之间的关系,比如自然语言推理(NLI)和问题回答。然而,后来的研究对其有效性提出了质疑。

7. 句子顺序的预测

在这个方案中,我们从文档中提取成对的连续句子。然后互换这两个句子的位置,创建出另外一对句子。

我们的目标是对一对句子进行分类,看它们的顺序是否正确。

在ALBERT的论文中,它被用来取代“下一个句子预测”任务。

8. 句子重排

在这个方案中,我们从语料库中取出一个连续的文本,并破开的句子。然后,对句子的位置进行随机打乱,任务是恢复句子的原始顺序。

它已经在BART的论文中被用作预训练的任务之一。

9. 文档旋转

在这个方案中,文档中的一个随机token被选择为旋转点。然后,对文档进行旋转,使得这个token成为开始词。任务是从这个旋转的版本中恢复原来的句子。

它已经在BART的论文中被用作预训练的任务之一。直觉上,这将训练模型开始识别文档。

10. 表情符号预测

这个方案被用在了DeepMoji的论文中,并利用了我们使用表情符号来表达我们所发推文的情感这一想法。如下所示,我们可以使用推特上的表情符号作为标签,并制定一个监督任务,在给出文本时预测表情符号。

DeepMoji的作者们使用这个概念对一个模型进行了12亿条推文的预训练,然后在情绪分析、仇恨语言检测和侮辱检测等与情绪相关的下游任务上对其进行微调。

—END—

英文原文:https://amitness.com/2020/05/self-supervised-learning-nlp/

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑AI基础下载(pdf更新到25集)机器学习的数学基础专辑本站qq群1003271085,加入微信群请回复“加群”获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/yFQV7am喜欢文章,点个在看

太强了!用动图演示NLP中的自监督表示学习相关推荐

  1. NLP中的自监督表示学习,全是动图,很过瘾的

    作者:amitness 编译:ronghuaiyang 原文链接: NLP中的自监督表示学习,全是动图,很过瘾的​mp.weixin.qq.com 其实在自监督学习的概念提出之前,NLP中就已经运用到 ...

  2. 小姐姐太强了,动图展示 10 大 Git 命令,不会都难

    code小生 一个专注大前端领域的技术平台 公众号回复Android加入安卓技术群 选自dev.to           作者:Lydia Hallie 机器之心编译        参与:Panda. ...

  3. 十大经典排序算法Python版实现(附动图演示)

    来源:大数据DT 本文约5200字,建议阅读10分钟 排序算法是<数据结构与算法>中最基本的算法之一.本文介绍10种常见的内部排序算法,及如何用Python实现. 排序算法可以分为内部排序 ...

  4. 一文读懂Python版的十大经典排序算法(附动图演示)

    来源:大数据DT 本文约5200字,建议阅读10分钟 排序算法是<数据结构与算法>中最基本的算法之一.本文介绍10种常见的内部排序算法,及如何用Python实现. 排序算法可以分为内部排序 ...

  5. 十大经典排序算法(动图演示,收藏好文)

     0.算法概述  0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序. 线 ...

  6. c 语言从大到小排序算法,10 大经典排序算法(动图演示+ C 语言代码)

    原标题:10 大经典排序算法(动图演示+ C 语言代码) 来源:C语言与CPP编程 以前也零零碎碎发过一些排序算法,但排版都不太好,又重新整理一次,排序算法是数据结构的重要部分,系统地学习很有必要. ...

  7. 一文总结十大经典排序算法(思维导图 + 动图演示 + 代码实现 C/C++/Python + 致命吐槽)

    声明 1)该文章整理自网上的大牛和专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除. 3)博主才疏学浅,文中如 ...

  8. 数据结构与算法--经典10大排序算法(动图演示)【建议收藏】

    十大经典排序算法总结(动图演示) 算法分类 十大常见排序算法可分为两大类: 比较排序算法:通过比较来决定元素的位置,由于时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序 非比较类型排 ...

  9. 十大经典排序C++实现及动图演示

    0.算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序. 非比较类排序: ...

最新文章

  1. 【Qt】QMainWindow最大化按钮是灰色(不能最大化)的解决方法
  2. C++中头文件相互包含的几点问题
  3. 1.6 matlab矩阵的表示
  4. 【Spring 基础篇三】属性注入与属性编辑器
  5. find vba 模糊_VBA积木代码方案:实现多重查找、模糊查找、清除值
  6. Mapreduce执行过程分析(基于Hadoop2.4)——(一)
  7. 1160. 拼写单词
  8. Android用canvas画哆啦A梦
  9. 多么漂亮的重载构造方法呀!爱上.net
  10. Flex代码整理插件——FlexPrettyPrintCommand
  11. Java se 8最新下载地址JDK8最新下载地址
  12. 雷神开机logo更改_Win10系统怎样更改开机logo
  13. svn 报 系统找不到指定路径
  14. oracle怎么查询关键字,Oracle 搜索关键字
  15. [京东备注插旗接口]-拼多多商家如何做好直播,直播必备小技巧
  16. 电脑分区合并——灰色解决方法
  17. PDF转PNG高清不失帧
  18. 电信重组:移动圈地联通抢山头 电信干等
  19. mac电脑使用普通键盘截图,全选,拷贝(复制),移动文件的快捷键是什么?
  20. iphone 传android,安卓和苹果手机怎么互传文件_安卓与苹果手机之间互传文件的方法教程_3DM手游...

热门文章

  1. 性能测试中批量数据制作实例的多种方法讨论
  2. 一个还不错的源码解析网站
  3. Gym - 101102C
  4. Android JNI编程(三)——C语言指针的初步认识、指针变量、互换两个数、函数返回多个值...
  5. ArcObject开发,“异常在 ESRI.ArcGIS.Version.dll”错误
  6. [BZOJ2654] tree
  7. 设置mysql最大连接数的方法
  8. 解决在使用 Qt 编译项目时出现 “C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode格式以防止数据丢失“ 的警告
  9. circRNA相互作用预测数据库CSCD2
  10. 2021-11-14泛型