CV和NLP中的无监督预训练(生成式BERT/iGPT和判别式SimCLR/SimCSE)

文 | Smarter

在之前的文章中讲过unsupervised learning主要分为生成式和判别式,那么unsupervised pretrain自然也分为生成式和判别式。目前CV和NLP都出现了非常强大的无监督预训练,并且在生成式和判别式都各有造诣,本文主要想归纳一下CV和NLP各自领域的生成式和判别式的代表作及设计思路。其中CV的生成式以iGPT为例,判别式以SimCLR为例;NLP的生成式以BERT为例,判别式以SimCSE为例。有意思的是,iGPT的灵感来源于BERT,而SimCSE的灵感来源于SimCLR,这充分展现了CV和NLP两个方向相互哺育,相辅相成的景象。

BERT

BERT之前主要有两种主流的无监督预训练方法:feature-based和fine-tuning。

feature-based方法

之前的ELMo无监督预训练属于feature-based的方法,先独立训练从左到右和从右到左的LSTM,然后将两部分输出conate得到的features直接应用于下游任务。

fine-tuning方法

GPT和BERT属于fine-tuning方法,fine-tuning方法预训练的features不直接应用于下游任务,需要针对下游任务进行fine-tuning。GPT使用从左到右的单向Transformer进行预训练,然后针对下游任务进行fine-tuning。BERT使用双向Transformer进行预训练,相较于GPT,更加充分的利用上下文信息,然后针对下游任务进行fine-tuning。

Input/Output Representations

为了BERT更好的应用于下游任务,BERT预训练的时候输入可以模糊表示,比如既可以表示成单个句子也可以表示成一对句子(<Question,Answer>)。输入的第一个token总是特指classification token [CLS],对应的输出位置用来做分类任务。一对句子作为输入时,表示成单个序列,通过特殊的token [SEP]来分开不同句子,并且对每个输入token加上一个可学习的embedding来指示属于句子A还是属于句子B。如上面左图所示,将input embedding表示为E,token [CLS]对应的输出向量是C,第i个input token的输出是

其中input embedding由Position Embeddings、Segment Embeddings和Token Embeddings三部分相加得到。Position Embeddings指示不同token的顺序,Segment Embeddings指示不同token属于哪个句子,Token Embeddings指示不同token的语义信息。

Pre-training BERT

BERT设计了两种无监督任务进行预训练,可以更好的应用到下游任务。

Task 1:Masked LM

为了训练一个深度双向的Transformer,BERT以一定比例随机mask掉一些输入tokens,然后对这些masked tokens进行预测,这个任务称之为Masked LM(MLM),灵感来源于完形填空任务,通过上下文预测masked的word是什么,最终BERT采用了随机mask掉15%的输入tokens。虽然Masked LM任务可以获得一个双向的预训练模型,但是预训练和fine-tuning存在着gap,因为fine-tuning的时候,输入是不存在[MASK]token的,为了缓解这种问题,实际训练的时候不总是采用[MASK] token来替换。其中[MASK] token有80%的概率被选中,random token有10%的概率被选中,还有10%的概率不改变token。

Task 2:
Next Sentence Prediction(NSP)

很多下游任务是需要理解句子对之间的关系的,为了帮助下游任务更好的理解句子对之间的关系,BERT还设计了另一个预训练任务next sentence prediction(NSP)。具体的,选择句子A和句子B作为预训练的输入,有50%的概率B是A的下一个句子(标记为IsNext),有50%的概率B不是A的下一个句子(标记为NotNext),实际上就是一个二分类模型。如上面左图所示,C被用于NSP任务进行二分类。

iGPT

iGPT和BERT思路非常类似,只不过iGPT是在图像上进行的。

iGPT首先将输入图片resize然后reshape成1维序列。然后选择两种方法进行预训练,其中Autoregressive的目标是预测next pixel prediction(类似GPT单向模型),BERT的目标是masked pixel prediction(类似BERT的MLM任务)。最后,iGPT用linear probes(直接使用feature,类似feature-based的方法)或着fine-tuning两种方法来评估学习到的特征。

iGPT可以通过图像的上下文信息预测出masked的pixel,跟BERT有着异曲同工之妙。

看一下iGPT的生成效果,iGPT可以通过已知的上下文内容对缺失部分进行补充,看起来非常的逻辑自洽啊,tql!

SimCLR

SimCLR是一种非常简单直接的self-supervised方法。SimCLR框架流程如下:

  1. 对于每张输入图片随机进行数据增强得到两个不同的views,同一张图的两个views可以认为是positive pair。

  2. 每张输入图片的两个views通过相同的encoder产生两个表示向量。

  3. 每张输入图片的两个表示向量通过相同的projection head产生两个最终的向量。

  4. 最后对一个batch得到的最终向量进行对比学习,拉近positive pair,排斥negative pair。

对比学习的函数如下:

伪代码如下:

一个batch有N个图片,通过不同的数据增强产生2N个views,一个positive pair可以交换位置得到两个loss,因此可以将一对positive pair的loss写成positive pair交换位置的两个loss之和的平均值,那么总的loss则是2N个views的loss的平均值。

SimCSE

看到计算机视觉的self-supervised大获成功之后,自然语言处理也开始尝试self-supervised。其中SimCSE的方法非常的简单有效,在Sentence Embeddings的任务中大幅度超过之前的方法。SimCSE名字应该是借鉴了SimCLR。SimCSE提出了两种方法,一种是Unsupervised SimCSE,另一种是Supervised SimCSE。

Unsupervised SimCSE的整体框架和SimCLR基本上保持一致。如图(a)所示,将同一个句子通过两种随机的mask得到两个postive pair(实线),不同句子的mask句子是negative pair(虚线),然后通过对比学习的方法,拉近positive pair,排斥negative pair。其中随机mask句子其实就是句子的数据增强,SimCSE实验发现随机mask掉10%效果最好。

Supervised SimCSE的positive pair和negative pair是有标注的。其中不同句子的entailment和contradiction都是negative pair,只有相同句子的entailment是positive pair。如图(b)所示,第一个句子跟自己的entailment是positive pair(实线),跟其他句子的entailment/contradiction都是positive pair(虚线)。

上图align表示positive pair拉近的能力(越小越好),uniform表示negative pair排斥的能力(越小越好)。最终SimCSE可视化分析发现,Unsup. SimCSE可以得到更好的align和uniform,SimCSE通过有标注的监督信号,可以进一步的提升align和uniform。(ps:align和uniform概念可以看我之前的文章Self-Supervised: 如何避免退化解)

另外,SimCSE还有各种消融实验和可视化分析,非常精彩,建议看原文细细品味

总结

下面引用lecun的一张图,谈一谈对CV和NLP中无监督预训练的看法:

lecun通过Low dim -> High dim、Discrete -> Continuous和Less uncertainty -> More uncertainty三个维度来表示CV和NLP中不同无监督方法的位置。文本是离散的,不确定性低,维度低;而图像是连续的,不确定性高,维度高。 模态的不同,导致了无监督的处理方式上的不同。

NLP任务因为确定性更高,生成式无监督预训练方法可以非常好进行预测(如BERT),而由于CV任务不确定性更高,导致需要设计更自由灵活的方法,对比方法相比于生成方法自由度更高,可能更加适合CV任务作为无监督预训练方法。

猜测未来NLP领域生成式和判别式会出现并存的局面,sentence级别任务倾向于使用判别式,word级别任务倾向于使用生成式。而CV领域判别式会占主导地位,一方面由于图像是二维的,生成式计算量会更庞大,另一方面判别式的自由度会更高一些。

寻求报道、约稿、文案投放:
添加微信xixiaoyao-1,备注“商务合作”

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

 

[1] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

[2] Generative Pretraining from Pixels

[3] A Simple Framework for Contrastive Learning of Visual Representations

[4] SimCSE: Simple Contrastive Learning of Sentence Embeddings

[5] https://ai.facebook.com/blog/self-supervised-learning-the-dark-matter-of-intelligence/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Binder漏洞挖掘技术与案例分享

本文由作者根据其在KCon 2016黑客大会上的演讲内容整理而成。演讲稿链接&#xff1a;Binder fuzzing based on drozer。 文章开始&#xff0c;先来看几个我在工作生活中发现的Android漏洞。其中包括Android系统锁屏密码绕过&#xff08;影响了所有安全补丁在2016年10月份以前的…

Transformer太深不行?NUS字节发现注意力坍缩,提出重注意机制!

文 | 陈萍、杜伟源 | 机器之心CNN 通过堆叠更多的卷积层来提高性能&#xff0c;而 transformer 在层次更深时会很快进入饱和。基于此&#xff0c;来自新加坡国立大学和字节跳动 AI Lab 的研究者引入了 Re-attention 机制&#xff0c;以很小的计算代价重新生成注意力图以增强各层…

LeetCode 212. 单词搜索 II(Trie树+DFS)

1. 题目 给定一个二维网格 board 和一个字典中的单词列表 words&#xff0c;找出所有同时在二维网格和字典中出现的单词。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的…

研究综述 | 多关系知识图谱表示学习综述

作者 | CHEONG转载自公众号 | 机器学习与自然语言处理本文分享一篇多关系知识图谱表示学习汇报ppt&#xff0c;介绍近几年及2020新出的共七篇处理异质图的模型。先列出该汇报ppt中将要介绍的七篇论文&#xff1a;Motivation异质知识图谱研究的对象便是如何处理多关系知识图谱&a…

PaddleHub教程合集

原文链接&#xff1a;https://aistudio.baidu.com/aistudio/projectdetail/2168053 PaddleHub教程合集 PaddleHub是基于PaddlePaddle生态下的预训练模型管理和迁移学习工具&#xff0c;可以结合预训练模型更便捷地开展迁移学习工作。通过PaddleHub&#xff0c;您可以&#xff1…

人物志 | KDD Cup 2017双料冠军燕鹏

2017年数据挖掘领域最有影响力的赛事KDD Cup近日揭晓&#xff0c;Convolution队从全球70个国家的3582支队伍里脱颖而出&#xff0c;包揽两项任务的冠军。这支双料冠军队成员名单里&#xff0c;有一个我们熟悉的名字——美团点评高级技术专家燕鹏。 说燕鹏可能大家并不一定知道&…

论文浅尝 - IJCAI2020 | KGNN:基于知识图谱的图神经网络预测药物与药物相互作用...

转载公众号 | AI TIME 论道药物间相互作用&#xff08;DDI&#xff09;预测是药理学和临床应用中一个具有挑战性的问题&#xff0c;在临床试验期间&#xff0c;有效识别潜在的DDI对患者和社会至关重要。现有的大多数方法采用基于AI的计算模型&#xff0c;通常倾向于集成多个数…

LeetCode 79. 单词搜索(回溯DFS)

1. 题目 给定一个二维网格和一个单词&#xff0c;找出该单词是否存在于网格中。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board [[…

中文BERT上分新技巧,多粒度信息来帮忙

文 | ????????????????自然语言处理实在是太难啦&#xff01;中文尤其难&#xff01;相比于英文&#xff0c;中文是以词作为语义的基本单位的&#xff0c;因此传统的中文 NLP 都需要先进行分词。分词这步就劝退了很多人&#xff0c;比如“研究生活很充实”&…

监控平台前端SDK开发实践

监控是提高故障处理能力和保障服务质量必需的一环&#xff0c;它需要负责的内容包括&#xff1a;及时上报错误、收集有效信息、提供故障排查依据。 及时上报错误&#xff1a;发生线上问题后&#xff0c;经由运营或者产品反馈到开发人员&#xff0c;其中流转过程可能是几分钟甚至…

论文浅尝 - WWW2020 | 通过对抗学习从用户—项目交互数据中挖掘隐含的实体偏好来用于知识图谱补全任务...

笔记整理 | 陈湘楠&#xff0c;浙江大学在读硕士。现有的知识图谱补全方法都在试图设计全新的学习算法&#xff0c;来使用已知的事实信息去推理知识图谱中的潜在语义。但随着知识图谱的广泛使用&#xff0c;知识图谱中的许多实体对应着应用程序系统的在线项目。但知识图谱和应用…

LeetCode 24. 两两交换链表中的节点(递归+循环)

1. 题目 给定一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后的链表。 你不能只是单纯的改变节点内部的值&#xff0c;而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3.2. 解题 2.1 递归 class Solut…

美团数据平台融合实践

本文根据作者在2017年ArchSummit的分享记录整理而成。 互联网格局复杂多变&#xff0c;大规模的企业合并重组不时发生。原来完全独立甚至相互竞争的两家公司&#xff0c;有着独立的技术体系、平台和团队&#xff0c;如何整合&#xff0c;技术和管理上的难度都很大。2015年10月&…

CMU MILA 谷歌 | 三家巨头发布史上最干文本增强总结

文 | Sherry一直以来&#xff0c;数据都是推动深度神经网络这个人工智能引擎不可或缺的燃料&#xff1b;然而人工收集足量而优质的数据从来不是一件“便宜”的事&#xff0c;数据增强便是一座富有价值的矿山。在CV中&#xff0c;翻转&#xff0c;裁剪&#xff0c;加噪声等方法被…

论文浅尝 - AAAI2021 | 从历史中学习:利用时间感知拷贝生成网络建模时态知识图谱...

笔记整理 | 朱珈徵&#xff0c;天津大学硕士链接&#xff1a;https://arxiv.org/pdf/2012.08492.pdf动机大型知识图通常会增长以存储时态事实&#xff0c;这些时间事实对实体沿时间线的动态关系或交互进行建模。因为这样的时态知识图经常遭受不完全性的困扰&#xff0c;所以开发…

LeetCode 96. 不同的二叉搜索树(DP)

1. 题目 给定一个整数 n&#xff0c;求以 1 … n 为节点组成的二叉搜索树有多少种&#xff1f; 示例:输入: 3 输出: 5 解释: 给定 n 3, 一共有 5 种不同结构的二叉搜索树:1 3 3 2 1\ / / / \ \3 2 1 1 3 2/ …

Android漏洞扫描工具Code Arbiter

目前Android应用代码漏洞扫描工具种类繁多&#xff0c;效果良莠不齐&#xff0c;这些工具有一个共同的特点&#xff0c;都是在应用打包完成后对应用进行解包扫描。这种扫描有非常明显的缺点&#xff0c;扫描周期较长&#xff0c;不能向开发者实时反馈代码中存在的安全问题&…

领域应用 | OMAHA联盟发布“疾病临床表现”、“中毒”知识图谱及OMAHA知识库

转载公众号 | OMAHA联盟资源发布OMAHA已建立“七巧板”医学术语集、“汇知”医学知识图谱、元数据等资源&#xff0c;将于每月发布其中一项。具体各项发布时间为&#xff1a;“七巧板”术语集于每季度第一个月20日发布&#xff0c; “汇知”图谱于每季度第二个月20日发布&#…

聊聊推荐系统中的偏差

文 | 成指导源 | 知乎背景推荐系统中大量使用用户行为数据&#xff0c;作为系统学习的标签或者说信号。但用户行为数据天生存在各式各样的偏差&#xff08;bias&#xff09;&#xff0c;如果直接作为信号的话&#xff0c;学习出的模型参数不能准确表征用户在推荐系统中的真实行…