0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从BERT得到最强句子Embedding的打开方式

深度学习自然语言处理 来源:夕小瑶的卖萌屋 作者:夕小瑶的卖萌屋 2020-12-31 10:10 次阅读

你有尝试从 BERT 提取编码后的 sentence embedding 吗?很多小伙伴的第一反应是:不就是直接取顶层的[CLS] token的embedding作为句子表示嘛,难道还有其他套路不成?

nono,你知道这样得到的句子表示捕捉到的语义信息其实很弱吗?今天向大家介绍一篇来自于 CMU 和字节跳动合作,发表在 EMNLP2020 的 paper, 详尽地分析了从预训练模型得到 sentence embedding 的常规方式的缺陷和最佳打开方式,是一篇非常实用、轻松帮助大家用BERT刷分的文章。论文质量蛮高,分析和发现很有趣,通读之后感觉收获多多。

自2018年BERT惊艳众人之后,基于预训练模型对下游任务进行微调已成为炼丹的标配。然而近两年的研究却发现,没有经过微调,直接由BERT得到的句子表示在语义文本相似性方面明显薄弱,甚至会弱于GloVe得到的表示。此篇论文中首先从理论上探索了masked language model 跟语义相似性任务上的联系,并通过实验分析了BERT的句子表示,最后提出了BERT-Flow来解决上述问题。

为什么BERT的句子Embeddings表现弱?

由于Reimers等人之前已实验证明 context embeddings 取平均要优于[CLS] token的embedding。因而在文章中,作者都以最后几层文本嵌入向量的平均值来作为BERT句子的表示向量。

语义相似性与BERT预训练的联系

为了探究上述问题,作者首先将语言模型(LM)与掩盖语言模型(MLM) 统一为: 给定context(c)预测得到 token(x) 的概率分布,即

这里 是context的embedding, 表示 的word embedding。进一步,由于将 embedding 正则化到单位超球面时,两个向量的点积等价于它们的cosine 相似度,我们便可以将BERT句子表示的相似度简化为文本表示的相似度,即 。

另外,考虑到在训练中,当 c 与 w 同时出现时,它们对应的向量表示也会更接近。换句话说,context-context 的相似度可以通过 context-words 之间的相似度推出或加强。

各向异性嵌入空间

Jun Gao, Lingxiao Wang 等人在近几年的ICLR paper中有提到语言模型中最大似然目标的训练会产生各向异性的词向量空间,即向量各个方向分布并不均匀,并且在向量空间中占据了一个狭窄的圆锥体,如下图所示~

这种情况同样也存在于预训练好的基于Transformer的模型中,比如BERT,GPT-2。而在这篇paper中,作者通过实验得到以下两个发现:

词频率影响词向量空间的分布:文中通过度量BERT词向量表示与原点 l_2 距离的均值得到以下的图表。我们可以看到高频的词更接近原点。由于word embedding在训练过程中起到连接文本embedding的作用,我们所需的句子表示向量可能会相应地被单词频率信息误导,且其保留的语义信息可能会被破坏。

2c10abf8-4a92-11eb-8b86-12bb97331649.png

低频词分布偏向稀疏:文中度量了词向量空间中与K近邻单词的 l_2 距离的均值。我们可以看到高频词分布更集中,而低频词分布则偏向稀疏。然而稀疏性的分布会导致表示空间中存在很多“洞”,这些洞会破坏向量空间的“凸性”。考虑到BERT句子向量的产生保留了凸性,因而直接使用其句子embeddings会存在问题。

Flow-based 生成模型

那么,如何无监督情况下充分利用BERT表示中的语义信息?为了解决上述存在的问题,作者提出了一种将BERT embedding空间映射到一个标准高斯隐空间的方法(如下图所示),并称之为“BERT-flow”。而选择 Gaussian 空间的动机也是因为其自身的特点:

标准高斯分布满足各向同性

高斯分布区域没有“洞”,即不存在破坏“凸性”的情况

上图中 表示隐空间, 表示观测到的空间,f: 是可逆的变换。根据概率密度函数中变量替换的定理,我们可以得到观测变量的概率密度函数如下:

进一步,作者通过最大化BERT句子表示的边缘似然函数来学习基于流的生成模型,即通过如下的公式来训练flow的参数

其中 表示数据集分布, 为神经网络。需要注意的是,在训练中,不需要任何人工标注!另外,BERT的参数保持不变,仅有流的参数进行优化更新。其次,在实验中,作者基于Glow (Dinh et al., 2015)的设计(多个可逆变换组合)进行改动,比如将仿射耦合(affine coupling)替换为了加法耦合(additive coupling)。

实验及结果

论文的实验部分在7个数据集上进行衡量语义文本相似性任务的效果。

实验步骤:

通过句子encoder得到每个句子的向量表示。

计算句子之间的cosine similarity 作为模型预测的相似度。

计算Spearman系数。

实验结果:

2f9febe4-4a92-11eb-8b86-12bb97331649.png

上图汇报了sentence embeddings的余弦相似度同多个数据集上真实标签之间的Spearman等级相关性得分(),其中flow-target 表示在完整的目标数据集(train+validation+test)上进行学习,flow-NLI 表示模型在NLI(natual language inference)任务的测试,绿色箭头表示相对于BERT的baseline,模型的效果有提升,红色反之。

我们可以注意到模型的改进对于效果的提升还是很显著滴!文章同样还在无监督问答任务证明模型的有效性,并将BERT-flow得到的语义相似度同词法相似度(通过编辑距离来衡量)进行对比,结果同样证明模型在引入流的可逆映射后减弱了语义相似性与词法相似性之间的联系!具体信息大家可查阅paper~

小结

总之,这篇paper探究了BERT句子表示对于语义相似性上潜在的问题,并提出了基于流的可逆映射来改进在对应任务上的表现。想多了解的童鞋可以看看原文,相信你们也会喜欢上这篇paper!

原文标题:还在用[CLS]?从BERT得到最强句子Embedding的打开方式!

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7494

    浏览量

    87966
  • 模型
    +关注

    关注

    1

    文章

    3244

    浏览量

    48845

原文标题:还在用[CLS]?从BERT得到最强句子Embedding的打开方式!

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    掌握压铸铝件气密性检测设备的正确打开方式-岳信仪器

    气密性检测是保证压铸铝件生产过程中产品质量的关键环节。压铸铝件气密性检测设备的正确开启和使用,不仅可以提高检测效率,而且可以保证检测结果的准确性。下面将详细介绍如何正确开启和使用压铸铝件气密性检测设备。首先,确保设备的适当使用环境。设备应放置在避免阳光直射、无强磁场和腐蚀性物品的地方。同时,要保证电源和气源稳定、干净、无杂质,尽可能干燥气源,避免与其他气动元
    的头像 发表于 10-14 15:10 167次阅读
    掌握压铸铝件气密性检测设备的正确<b class='flag-5'>打开方式</b>-岳信仪器

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡 -通用文件I/O模型之open

    打开的文件; flags为打开文件的标志位,控制打开方式; mode为可选参数,用于指定新创建文件的权限模式。 如果指定的文件不存在,则可以通过在flags中指定O_CREAT,然后open()即可创建
    发表于 10-11 08:56

    飞凌嵌入式ElfBoard ELF 1板卡-通用文件I/O模型之open

    的文件;flags为打开文件的标志位,控制打开方式;mode为可选参数,用于指定新创建文件的权限模式。如果指定的文件不存在,则可以通过在flags中指定O_CREAT,然后open()即可创建。flags
    发表于 10-10 09:09

    内置误码率测试仪(BERT)和采样示波器一体化测试仪器安立MP2110A

    BERTWave MP2110A是一款内置误码率测试仪(BERT)和采用示波器的一体化测量仪器,支持光模块的误码率(BERT)测量、眼图模式测试、眼图分析等评估操作
    的头像 发表于 09-23 14:34 353次阅读
    内置误码率测试仪(<b class='flag-5'>BERT</b>)和采样示波器一体化测试仪器安立MP2110A

    M8020A J-BERT 高性能比特误码率测试仪

    M8020A 比特误码率测试仪 J-BERT M8020A 高性能 BERT 产品综述 Keysight J-BERT M8020A 高性能比特误码率测试仪能够快速、准确地表征传输速率高达 16 或
    的头像 发表于 08-21 17:13 215次阅读

    打开NAND Flash接口规范

    电子发烧友网站提供《打开NAND Flash接口规范.pdf》资料免费下载
    发表于 08-21 12:21 0次下载

    换热设备清洗的正确打开方式,不仅清洗效果好,而且安全无腐蚀

    换热器目前常用的换热介质多为水或蒸汽,在热交换过程中,水或蒸汽中的盐类和污垢容易析出导致结垢,产生的这些污垢会使设备和管道线路失效,装置系统会发生生产下降,能耗、物耗增加等不良情况,污垢腐蚀特别严重时还会使流程中断,装置系统被迫停产,直接造成各种经济损失,甚至还有可能发生恶性生产事故。
    的头像 发表于 08-12 15:33 482次阅读
    换热设备清洗的正确<b class='flag-5'>打开方式</b>,不仅清洗效果好,而且安全无腐蚀

    AWG和BERT常见问题解答

    随着信号的速率越来越高,调制格式越来越复杂,对测试仪器的性能要求也越来越高。是德科技也一直在推出业界领先的高带宽、高采样率的AWG和高性能的BERT
    的头像 发表于 08-06 17:27 660次阅读

    新品|酷暑的新打开方式:SXB3568主板

    开源鸿蒙硬件方案领跑者触觉智能选主板,接口杂太多?成本太高?性能不够?来看看触觉智能全新推出基于RockchipRK3568处理器开发设计的SXB3568商显行业主板,低成本、高性能、全功能模块拓展,带你开启暑期狂欢!RK3568系列产品采用瑞芯微SOC芯片RK3568,集成了四核Cortex-A55CPU,主频高达2.0G。RK3568支持PCIE2.0/
    的头像 发表于 07-13 08:33 341次阅读
    新品|酷暑的新<b class='flag-5'>打开方式</b>:SXB3568主板

    请问esp32能不能自动找到信号最强的wifi ap进行连接?

    你好,我的设置好多wifi ap 热点,他们的ssid 和密码 都是相同。请问 esp32 能不能自动找到信号最强的wifi ap 进行连接。谢谢。
    发表于 06-13 07:33

    Jacob:纯提效的工具,也许不是AI正确的打开方式

    每一个新领域的诞生、每一个新企业的崛起,都是在建立新的连接,组成新的网络结构,形成新的垄断形态。在别人稳定的网络里竞争,尤其是已经存在头部垄断者,并存在明显竞争规则的网络里去寻求创新,属于极度吃力不讨好。互联网时代的一个关键是“减少信息的不对称性”,因为信息的不对称,很多连接无法建立,甚至不知道可以建立,这些连接一旦建立,将释放出比以往任何时候都更巨大的价值
    的头像 发表于 05-24 08:05 129次阅读
    Jacob:纯提效的工具,也许不是AI正确的<b class='flag-5'>打开方式</b>

    汽车水箱气密性检测仪的正确打开方式

    在车辆日常维护中,水箱作为冷却系统的核心部件,其密封性能对发动机的正常运作至关重要。今天,就让我们一起走进汽车维修的小秘密——如何使用汽车水箱气密性检测仪,确保您的爱车始终保持良好的状态。首先,我们需要了解什么是汽车水箱气密性检测仪。简而言之,它是一种用于检测汽车水箱是否能够保持良好的气密性,防止冷却液泄漏的专用工具。正确使用这种仪器,不仅可以避免因漏液造成
    的头像 发表于 04-30 11:56 362次阅读
    汽车水箱气密性检测仪的正确<b class='flag-5'>打开方式</b>

    使用FreeRTOS的时候,在GPIO口中断回调中调用了osMessagePut,消息是接到了,但是里面的值一直是0为什么?

    各位:最近使用FreeRTOS的时候,在GPIO口中断回调中调用了osMessagePut,用任务接这个消息。 结果发现消息是接到了,但是里面的值一直是0. 1、有谁知道这个原因 2、我想进这个消息队列中看看,但是keil貌似不给看,是我打开方式出错了?谁知道?
    发表于 04-26 06:32

    谷歌模型怎么用手机打开

    要使用手机打开谷歌模型,首先需要明确一点:谷歌模型本身是在计算机上运行的程序或算法,而不是可以直接在手机上打开的应用程序。然而,你可以通过手机访问谷歌提供的服务或应用,这些服务或应用可能使用了谷歌的模型或威廉希尔官方网站 。
    的头像 发表于 03-01 16:23 626次阅读

    一个进程内多次使用open打开同一个文件,可以吗?

    当一个进程内多次使用 open 打开同一个文件时,每次都会得到一个新的文件描述符(file descriptor)。
    的头像 发表于 02-27 13:54 1279次阅读