首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【EMNLP2020】超越MLM,微软打造全新预训练任务

【EMNLP2020】超越MLM,微软打造全新预训练任务

作者头像
zenRRan
发布于 2020-10-26 03:53:24
发布于 2020-10-26 03:53:24
88200
代码可运行
举报
运行总次数:0
代码可运行

来自:NLPCAB

句子表示在很多任务中都是重要的一环。尤其是在大数据量的场景下,很多场景都需要召回+排序两个步骤,如果第一个环节没有召回候选结果,那最后的排序模型再怎么优秀也没法给出正确答案。

今天就给大家介绍一个微软在EMNLP2020上发表的最新工作,利用transformer生成更高质量的句子编码。

论文题目: Cross-Thought for Sentence Encoder Pre-training 论文地址: https://arxiv.org/abs/2010.03652 项目代码: https://github.com/shuohangwang/Cross-Thought

P.S. Arxiv访问困难的同学可以关注「NLPCAB」回复「1010」下载论文PDF

虽然BERT式模型的出现解决了很多判别问题,但直接用无监督语料训练出的BERT做句子表示并不理想:

  • 如果只取CLS,这个表示是针对NSP进行优化的,表示的信息有限
  • 如果取平均或最大池化,可能会把无用信息计算进来,增加噪声

所以作者的改进目的是设计一个下游任务,直接优化得到的句子embedding。

那怎么设计目标才能充分利用无监督数据呢?

作者给出了一个巧妙的方法,就是用周边其他句子的表示预测当前句子的token

具体的做法是:先利用Transformer抽取句子表示,再对句子表示进行attention,选取相关的句子预测当前token。有点Hierarchical Attention的意思。

比如在预测上图中最后一句的黄蓝两个token时,明显第一句的信息就够用了,那目标函数的设置会让第一句的权重变大,也会让抽取出的句子表示去包含这些信息。

接下来详细介绍一下预训练和精调的步骤,以及作者加入的其他tricks。

Cross-Thought模型

预训练

下图是预训练的模型结构,计算的步骤是:

  1. 将段落按顺序拆成独立短句,通过12层Transformer(蓝色半透明的矩形)分别进行编码。在实际的预训练中,每个sample包含500个长度为64的短句,batch size是128(16张V100)
  2. 取出 <s_0>...<s_n> 等special token的输出(大红点)作为句子表示
  3. 把每列句子表示作为一个序列输入到cross-sequence transformer(蓝色弧线,每一列的cross-sequence transformer参数都不同),输出attention分数加权后的新表示
  4. 将新的句子表示与第一步的token表示进行拼接,经过一层transformer,预测被mask的15%个token(每个句子都这么处理,图中只画了第一个句子的)

整体流程理解起来比较简单,作者还用了一些额外的tricks提升效果:

  • 为了抽取更多的信息,在句子开头加入了多个占位token(之前BERT只有一个[CLS]),在实验结论中发现5个占位的表现较好(但占位token的增加会加大计算量)
  • 占位token的位置表示是固定的,而真实token是随机从0-564中抽取连续的64个,这样可以训练更多的位置表示,方便之后对更长的序列进行编码

精调

精调主要是考虑和下游任务的衔接。作者选择了问答和句子对分类来验证模型的表现。

对于问答任务,假设答案句子的表示都已经编码好了:

  1. 输入问题,经过12层Transformer得到问题表示
  2. 利用cross-sequence transformers,对问题表示与答案表示进行计算,得到各个答案的权重 (每列都会得到一个,作者对所有列取了平均)
  3. 根据gold answer的index m,计算Ranking loss(代表第0个答案的权重)
Lanswer=log(α[0][m])

对于句子对分类任务比较简洁,输入两个句子A和B:

  1. 分别对A和B进行编码,取出句子表示,输入cross-sequence transformers得到融合后的句子表示
  2. 将两个句子的所有表示拼接起来,得到2Nxd的矩阵(N是占位token的个数,d是表示的维度)
  3. 把第二步得到的表示flatten,得到一个长度 2Nd 的一维向量,输入到分类层

实验效果

作者在不少数据集上都验证了效果,单纯从输出句子表示的效果来看,不仅是句间关系还是问答的候选召回上都有不小的提升,尤其是召回:

除了指标对比外,作者还展示了两个无监督预训练模型的打分结果:

总结

近两年句子表示的研究越来越少了,因为句子表示经常用于句间关系判断的任务,而交互式的判别显然比双塔效果要好。所以研究者们要不在研究更轻量的句间匹配模型(比如RE2、Deformer),要不就是继续用BERT类模型做出更好的效果。但对于业界来说,句子表示在召回上的速度还是最快的,效果也比单纯的字面匹配要好。

为了充分利用无监督数据、得到更高质量的句子表示,Cross-Thought提供了一个新的预训练思路:用句子表示预测token。同时也给我们展现出了它在候选召回上的巨大潜力,添加的额外cross-sequence transformer对速度的影响也不会太大。另外,作者只使用了wiki语料进行预训练,如果有更多语料相信效果会更好。

目前源码还未放出,希望开源社区的富有大佬们早日训一个中文的Cross-Thought~

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!后台回复【五件套】
下载二:南大模式识别PPT后台回复【南大模式识别】


说个正事哈


由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:(1)点击页面最上方“深度学习自然语言处理”,进入公众号主页。(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。记得备注呦
推荐两个专辑给大家:专辑 | 李宏毅人类语言处理2020笔记专辑 | NLP论文解读专辑 | 情感分析

整理不易,还望给个在看!
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
EMNLP'22 语言模型训练方法优化工作
今天给大家介绍3篇EMNLP 2022中语言模型训练方法优化的工作,这3篇工作分别是:
圆圆的算法笔记
2022/12/19
6830
EMNLP'22 语言模型训练方法优化工作
自然语言预训练模型大总结​
先来一张图。 本文主要援引复旦大学邱锡鹏教授的论文:NLP预训练模型综述,对预训练模型进行了一些梳理
机器学习之禅
2022/07/11
8910
自然语言预训练模型大总结​
NLP预训练模型大集合
词语和句子嵌入已经成为任何基于深度学习的自然语言处理系统的必备组成部分。它们将词语和句子编码成稠密的定长向量,从而大大地提升神经网络处理文本数据的能力。近日,Separius 在 GitHub 上列举了一系列关于 NLP 预训练模型的近期论文和文章,力求全面地概述 NLP 各个方面的最新研究成果,包括词嵌入、池化方法、编码器、OOV 处理等。
昱良
2019/07/04
8050
奇点已过?聊聊BERT之后的NLP时代
本文作者 吴金龙,爱因互动技术合伙人,算法负责人。本文转自知乎专栏“智能对话机器人技术”,欢迎大家关注。
AI研习社
2019/06/14
8750
奇点已过?聊聊BERT之后的NLP时代
一网打尽:14种预训练语言模型大汇总
预训练语言模型是NLP中的核心之一,在pretrain-finetune这一阶段的NLP发展中发挥着举足轻重的作用。预训练语言模型的无监督训练属性,使其非常容易获取海量训练样本,并且训练好的语言模型包含很多语义语法知识,对于下游任务的效果会有非常明显的提升。本文首先介绍预训练语言模型的里程碑方法,然后进一步介绍学术界针对预训练语言模型中的问题提出的各种改进和创新,包括14个经典预训练语言模型。
圆圆的算法笔记
2022/09/22
1.7K0
一网打尽:14种预训练语言模型大汇总
后BERT时代:15个预训练模型对比分析与关键点探究
在小夕之前写过的《NLP的游戏规则从此改写?从word2vec, ELMo到BERT》一文中,介绍了从word2vec到ELMo再到BERT的发展路径。而在BERT出现之后的这大半年的时间里,模型预训练的方法又被Google、Facebook、微软、百度、OpenAI等极少数几个玩得起游戏的核心玩家反复迭代了若干版,一次次的刷新我们这些吃瓜群众的案板上的瓜。
zenRRan
2019/08/21
2.3K0
后BERT时代:15个预训练模型对比分析与关键点探究
【NLP】从word2vec, ELMo到BERT
还记得不久之前的机器阅读理解领域,微软和阿里在SQuAD上分别以R-Net+和SLQA超过人类,百度在MS MARCO上凭借V-Net霸榜并在BLEU上超过人类。这些网络可以说一个比一个复杂,似乎“如何设计出一个更work的task-specific的网络"变成了NLP领域政治正确的研究方向。而在这种风向下,不管word2vec也好,glove也好,fasttext也好,都只能充当一个锦上添花的作用。说好的迁移学习、预训练呢?在NLP似乎始终没成主角。
yuquanle
2020/02/21
9510
NLP预训练家族 | Transformer-XL及其进化XLNet
最近又重新读了Transformer-XL和XLNet的论文和代码,又有很多新的感悟。其中,要想搞懂XLNet的同学一定要首先明白Transofrmer-XL,因为XLNet是基于Transformer-XL进行改进的。
NewBeeNLP
2021/08/20
9440
干货 | 上百个业务场景,语义匹配技术在携程智能客服中的应用
随着AI技术在各个领域的广泛应用,人机交互技术愈发成熟。包括电商、银行、电信等在内的很多领域开始建设智能客服的交互能力,为客人提供智能化自助服务,同时为客服人员的工作提供智能辅助。携程集团依靠强大的客服团队为国内外旅行者的出行提供了优质的服务保障,持续提升智能客服的交互能力,提高客服人员的生产效率显得尤为重要。
携程技术
2021/12/31
1.4K0
干货 | 上百个业务场景,语义匹配技术在携程智能客服中的应用
NLP之从word2vec到ELMO GPT再到BERT与attention transformer过程笔记与详解
在NLP自然语言处理学习或者发展过程中,在13年word2vec word embedding后,人们发现一个单词通过Word Embedding表示,很容易找到语义相近的单词,但单一词向量表示,不可避免一词多义问题。于是迎来Google的ELMO transformer BERT等动态表征模型,BERT模型更是刷新了GLUE benchmark的11项测试任务最高记录。
大鹅
2021/02/21
3.5K0
从想法到实干,2018年13项NLP绝美新研究
前一段时间,Sebastian Ruder 介绍了他心中 10 个最有影响力的想法,并且每一个都提供了具体论文与核心思想。正如 Ruder 所说,他的清单必然是主观的,主要涵盖了迁移学习和泛化相关的想法。其中有的想法在过去一年非常受关注,大家围绕这些完美的观点展开了很多研究工作与实践。而有的想法并不是当前趋势,不过它们有可能在未来变得流行。因此,机器之心在 Ruder 介绍的基础上,重点关注今年的前沿趋势,并推荐一些真正好用的 NLP 新工具。
机器之心
2019/01/02
5840
GPT、BERT、XLM、GPT-2、BART…你都掌握了吗?一文总结文本生成必备经典模型(二)
 机器之心专栏 本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。 本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。 本文将分 2 期进行连载,共介绍 10 个在文本生成任务上曾取得 SOTA 的经典模型。 第 1 期:Seq2Seq(RNN)、Seq2Seq(LSTM)、Seq2Seq+
机器之心
2023/03/29
1.2K0
GPT、BERT、XLM、GPT-2、BART…你都掌握了吗?一文总结文本生成必备经典模型(二)
【NLP】XLNet详解
BERT本身很有效,但它也存在一些问题,比如不能用于生成、以及训练数据和测试数据的不一致(Discrepancy)。在本文中,我们重点介绍比BERT更强大的预训练模型XLNet,它为了达到真正的双向学习,采用了Permutation语言模型、以及使用了双流自注意力机制,并结合了Transformer-XL的相对位置编码。
yuquanle
2020/03/13
1.4K0
谷歌 ICLR 2020 | 向量化召回也需要『预训练』
今天分享的paper是来自谷歌的:PRE-TRAINING TASKS FOR EMBEDDING-BASED LARGE-SCALE RETRIEVAL
NewBeeNLP
2021/04/26
1.2K0
谷歌 ICLR 2020 | 向量化召回也需要『预训练』
【NLP】预训练模型综述
摘要:近年来,预训练模型的出现将自然语言处理带入了一个新的时代。本文概述了面向自然语言处理领域的预训练模型技术。我们首先概述了预训练模型及其发展历史。并详细介绍自然语言处理领域的经典预训练模型,包括最经典的预训练模型技术和现在一系列新式的有启发意义的预训练模型。然后梳理了这些预训练模型在自然语言处理领域的优势和预训练模型的两种主流分类。最后,对预训练技术的未来发展趋势进行了展望。
黄博的机器学习圈子
2020/05/26
2.2K0
【NLP】预训练模型综述
NLP实践 | 用自己的语料进行MLM预训练
每天给你送来NLP技术干货! ---- 编辑:AI算法小喵 1. 关于MLM 1.1 背景 作为 Bert 预训练的两大任务之一,MLM 和 NSP 大家应该并不陌生。其中,NSP 任务在后续的一些预训练任务中经常被嫌弃,例如 Roberta 中将 NSP 任务直接放弃,Albert 中将 NSP 替换成了句子顺序预测。 这主要是因为 NSP 作为一个分类任务过于简单,对模型的学习并没有太大的帮助,而 MLM 则被多数预训练模型保留下来。由 Roberta的实验结果也可以证明,Bert 的主要能力应该是来自
zenRRan
2022/08/26
2.9K0
NLP实践 | 用自己的语料进行MLM预训练
LLM主要类别架构
💫LLM分类一般分为三种:自编码模型(encoder)、自回归模型(decoder)和序列到序列模型(encoder-decoder)。
@小森
2024/06/04
6900
【LLM系列之GPT】GPT(Generative Pre-trained Transformer)生成式预训练模型
GPT(Generative Pre-trained Transformer)是由OpenAI公司开发的一系列自然语言处理模型,采用多层Transformer结构来预测下一个单词的概率分布,通过在大型文本语料库中学习到的语言模式来生成自然语言文本。GPT系列模型主要包括以下版本:
致Great
2023/08/25
1.6K0
【LLM系列之GPT】GPT(Generative Pre-trained Transformer)生成式预训练模型
自然语言处理中的迁移学习(上)
本文转载自公众号「哈工大SCIR」(微信ID:HIt_SCIR),该公众号为哈尔滨工业大学社会计算与信息检索研究中心(刘挺教授为中心主任)的师生的信息分享平台,本文作者为哈工大SCIR 徐啸。
AI科技评论
2019/10/23
1.4K0
自然语言处理中的迁移学习(上)
【综述专栏】一文回顾Transformer 和 预训练模型
在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。
马上科普尚尚
2021/05/20
1.7K0
推荐阅读
相关推荐
EMNLP'22 语言模型训练方法优化工作
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档