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

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

3天内不再提示

三种pooling策略的对比

深度学习自然语言处理 来源:深度学习自然语言处理 作者:深度学习自然语言 2020-09-25 16:46 次阅读

‍一、背景介绍

BERT和RoBERTa在文本语义相似度等句子对的回归任务上,已经达到了SOTA的结果。但是,它们都需要把两个句子同时喂到网络中,这样会导致巨大的计算开销:从10000个句子中找出最相似的句子对,大概需要5000万(C100002=49,995,000)个推理计算,在V100GPU上耗时约65个小时。这种结构使得BERT不适合语义相似度搜索,同样也不适合无监督任务(例如:聚类)。

本文基于BERT网络做了修改,提出了Sentence-BERT(SBERT)网络结构,该网络结构利用孪生网络和三胞胎网络结构生成具有语义意义的句子embedding向量,语义相近的句子其embedding向量距离就比较近,从而可以用来进行相似度计算(余弦相似度、曼哈顿距离、欧式距离)。该网络结构在查找最相似的句子对,从上述的65小时大幅降低到5秒(计算余弦相似度大概0.01s),精度能够依然保持不变。这样SBERT可以完成某些新的特定任务,例如相似度对比、聚类、基于语义的信息检索。

二、模型介绍

1)pooling策略

SBERT在BERT/RoBERTa的输出结果上增加了一个pooling操作,从而生成一个固定大小的句子embedding向量。实验中采取了三种pooling策略做对比:

直接采用CLS位置的输出向量代表整个句子的向量表示

MEAN策略,计算各个token输出向量的平均值代表句子向量

MAX策略,取所有输出向量各个维度的最大值代表句子向量

三个策略的实验对比效果如下:

可见三个策略中,MEAN策略是效果最好的,所以后面实验默认采用的是MEAN策略。

2)模型结构

为了能够fine-tune BERT/RoBERTa,文章采用了孪生网络和三胞胎网络来更新权重参数,以达到生成的句子向量具有语义意义。该网络结构依赖于具体的训练数据,文中实验了下面几种结构和目标函数:

Classification Objective Function:

这里将embedding向量u和v以及它们之间的差向量拼接在一起,组成一个新的向量,乘以权重参数Wt∈R3n*k,n表示向量的维度,k是分类标签数量。

优化的时候采用交叉熵损失函数。

Regression Objective Function:

两个句子嵌入向量u和v的相似度计算结构如下:

采取MAE(mean squared error)损失作为优化的目标函数。

Triplet Objective Function:

给定一个主句a、一个正面句子p和一个负面句子n,三元组损失调整网络,使得a和p之间的距离小于a和n之间的距离。数学上,我们最小化以下损失函数:

s表示a、p、n的句子嵌入向量,||·||表示距离,边缘参数ε表示sp与sa的距离至少比sn近ε。

3)模型训练

文中训练结合了SNLI(Stanford Natural Language Inference)和Multi-Genre NLI两种数据集。SNLI有570,000个人工标注的句子对,标签分为矛盾、蕴含、中立三种;MultiNLI是SNLI的升级版,格式和标签都一样,有430,000个句子对,主要是一系列口语和书面语文本。文本蕴含关系描述的是两个文本之间的推理关系,其中一个文本作为前提(premise),另一个文本作为假设(hypothesis),如果根据前提P能够推理得出假设H,那么就说P蕴含H,记做P->H。参考样例如下:

实验时,每个epoch作者用3-way softmax分类目标函数对SBERT进行fine-tune,batch_size=16,采用Adam优化器,learning rate=2e-5,pooling策略是MEAN。

三、评测-语义文本相似度(Semantic Textual Similarity-STS)

在评测的时候,这里采用余弦相似度来比较两个句子向量的相似度。

1)无监督STS

本次评测采用的是STS 2012-2016 五年的任务数据、STS benchmark数据(2017年构建)、SICK-Relatedness数据,这些数据集都是标好label的句子对,label表示句子之间的相互关系,范围为0~5,样例如下:

无监督评测不采用这些数据集的任何训练数据,直接用上述训练好的模型来计算句子间的相似度,然后通过斯皮尔曼等级相关系数来衡量模型的优劣。结果如下:

结果显示直接采用BERT的输出结果,效果挺差的,甚至不如直接计算GloVe嵌入向量的平均值效果好;采用本文的孪生网络在NLI数据集上fine-tuning后的模型效果明显要好很多,SBERT和SRoBERTa差异不大。

2)有监督STS

有监督STS数据集采用的是STS benchmark(简称STSb)数据集,就是上面提到的2017年抽取构建的,是当前比较流行的有监督STS数据集。它主要来自三个方面:字幕、新闻、论坛,包含8,628个句子对,训练集5,749,验证集1,500,测试集1,379。BERT将句子对同时输入网络,最后再接一个简单的回归模型作为输出,目前在此数据集上取得了SOTA的效果。

上述实验结果分为三块:

not trained for STS:表示直接采用的是跟上面无监督评测一样的模型,结果也一样;

Trained on STS benchmark:表示没有使用NLI数据集,直接在STSb训练数据集上利用孪生网络结构构建回归模型fine-tuning;

Trained on NLI data+STS benchmark:表示利用孪生网络先在NLI数据集上训练分类模型学习句子向量表示,然后在STSb训练集上再利用回归模型再次学习句子embedding,相当于利用两种数据集进行了两次fine-tuning。

评测的时候都是采用的STSb的测试集进行评测。可以看到,最后一种训练方式表现最好,尤其单纯的BERT架构有较大的提升幅度。

四、评测-SentEval

SentEval是一个当前流行的用来评测句子embedding质量的工具,这里句子embedding可以作为逻辑回归模型的特征,从而构建一个分类器,并在test集上计算其精度。这里利用SentEval工具在下面几个迁移任务上对比SBERT与其它生成句子embedding的方法:

MR(movie review):电影评论片段的情感预测,二分类

CR(product review):顾客产品评论的情感预测,二分类

SUBJ(subjectivity status):电影评论和情节摘要中句子的主观性预测,二分类

MPQA(opinion-polarity):来自新闻网的短语级意见极性分类,二分类

SST(Stanford sentiment analysis):斯坦福情感树库,二分类

TREC(question-type classification):来自TREC的细粒度问题类型分类,多分类

MRPC:Microsoft Research Paraphrase Corpus from parallel news sources,释义检测

实验结果显示,SBERT生成的句子向量似乎能够很好捕获情感信息,在MR、CR、SST上都有较大的提升;BERT在之前的STS数据集上表现比较差,但是在SentEval上却有了不错的效果表现,这是因为STS数据集上利用余弦相似度衡量句子向量,余弦相似度对于向量的每一个维度都是同等的,然而SentEval是利用逻辑回归分类器来评测,这样某些维度会对最终的分类结果产生影响。

所以,BERT的直接输出结果无论是CLS位置的还是平均embedding都不适合用来计算余弦相似度、曼哈顿距离和欧式距离。虽然BERT在SentEval上面表现稍微好一些,但是基于NLI数据集的SBERT还是达到了SOTA的效果。

五、消融研究

为了对SBERT的不同方面进行消融研究,以便更好地了解它们的相对重要性,我们在SNLI和Multi-NLI数据集上构建了分类模型,在STSb数据集上构建了回归模型。在pooling策略上,对比了MEAN、MAX、CLS三种策略;在分类目标函数中,对比了不同的向量组合方式。结果如下:

在pooling策略上,MEAN效果最好;在向量组合模式上,只有在分类训练的时候才使用,结果显示element-wise的|u-v|影响最大。

责任编辑:xj

原文标题:Sentence-BERT: 一种能快速计算句子相似度的孪生网络

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

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

    关注

    73

    文章

    5504

    浏览量

    121244
  • 自然语言
    +关注

    关注

    1

    文章

    288

    浏览量

    13357

原文标题:Sentence-BERT: 一种能快速计算句子相似度的孪生网络

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

收藏 人收藏

    评论

    相关推荐

    三种封装形式下的400G光模块概述

    本文主要就三种封装形式(QSFP-DD、OSFP、QSFP112)的400G光模块做了简单的梳理,从为什么会有400G光模块问世?400G光模块在三种封装形式下的各个具体型号(以短距离为主,最远2km),三种封装形式的
    的头像 发表于 11-11 11:35 404次阅读
    <b class='flag-5'>三种</b>封装形式下的400G光模块概述

    什么是PID调节器的三种模式

    (Proportional)、积分(Integral)和微分(Derivative)。这三种控制动作可以单独使用,也可以组合使用,形成三种基本的控制模式:比例控制(P)、积分控制(I)和微分控制(D)。 1. 比例控制(P) 比例控制是PID调节器中最基本的控制模式。在比
    的头像 发表于 11-06 10:38 498次阅读

    I2S有左对齐,右对齐跟标准的I2S三种格式,那么这三种格式各有什么优点呢?

    大家好,关于I2S格式,有两个疑问请教一下 我们知道I2S有左对齐,右对齐跟标准的I2S三种格式,那么这三种格式各有什么优点呢? 而且对于标准的I2S格式,32FS传输16bit的数据,48fs传输24bit的数据,最低位会移动到右声道,是否意味着该数据被丢弃了?还是有
    发表于 10-21 08:23

    基本放大电路有哪三种

    基本放大电路是电子电路中至关重要的组成部分,它能够将输入信号放大到所需的电平,以便后续电路进行处理。在电子工程中,基本放大电路主要有三种形式,分别是共发射极放大电路(简称共射放大电路)、共基极放大
    的头像 发表于 10-15 11:07 1631次阅读

    mosfet的三种工作状态及工作条件是什么

    的工作状态及工作条件对于理解和设计相关电路至关重要。以下是MOSFET的三种主要工作状态及其工作条件的介绍。 一、MOSFET的三种工作状态 MOSFET根据其栅源电压(VGS)和漏源电压(VDS
    的头像 发表于 10-06 16:51 2165次阅读

    单片机的三种总线结构

    单片机的三种总线结构包括地址总线(Address Bus, AB)、数据总线(Data Bus, DB)和控制总线(Control Bus, CB)。这三种总线在单片机内部及与外部设备之间的数据传输
    的头像 发表于 09-10 11:32 3179次阅读

    放大电路的三种组态可以放大什么

    放大电路是电子学中非常重要的组成部分,它们可以将输入信号的幅度放大,以满足各种应用的需求。放大电路的三种基本组态包括共射放大电路、共集放大电路和共基放大电路。每种组态都有其特定的应用和特点。以下
    的头像 发表于 07-09 14:31 1216次阅读

    晶体管的三种工作状态

    晶体管作为现代电子技术的基石,其工作状态直接影响电子设备的性能和功能。晶体管通常具备三种基本的工作状态:截止状态、放大状态和饱和状态。这三种状态不仅决定了晶体管在电路中的行为,也反映了晶体管作为半导体器件的基本特性。本文将详细阐述晶体管的这
    的头像 发表于 05-28 14:53 1546次阅读

    简述斩波电路的三种控制方式

    斩波电路是一常见的电力电子器件,广泛应用于直流电压调节、电压变换、电流变换等领域。它可以实现对电流和电压的控制,以满足不同的电气设备的需求。斩波电路的控制方式主要有三种:脉宽调制控制、频率调制控制
    的头像 发表于 03-11 15:22 4284次阅读

    VMware虚拟机的三种网络模式

    VMware虚拟机的三种网络模式 VMware是一广泛使用的虚拟机软件,可以创建和管理多个虚拟机。在使用VMware虚拟机时,网络设置非常重要,因为它决定了虚拟机如何与物理网络或其他虚拟机进行通信
    的头像 发表于 02-04 11:17 2039次阅读

    运放的三种应用

    运放在电路中主要存在三种应用,放大器,滤波器,振荡器。再这三种应用电路中,运放的两大特点虚短虚断仍然成立吗? 在阻尼振荡器中,工作过程是否按照我描述的这样,在反相输入端加一个近似锯齿波的电流源,正半
    发表于 01-26 16:18

    运动控制的三种控制方式

    非标项目中有非常多的运动控制,根据系统配置、电机类型以及精度需求的不同主要有三种控制方式:开环控制、半闭环控制、全闭环控制。
    的头像 发表于 01-23 09:48 1522次阅读
    运动控制的<b class='flag-5'>三种</b>控制方式

    嵌入式Linux开发的三种方式

    嵌入式Linux开发主要有三种方式:裸机开发、SDK开发和驱动开发。
    的头像 发表于 01-22 14:22 989次阅读

    示波器的三种触发模式

    示波器的触发模式有自动模式(Auto)、正常模式(Norm)和单次模式(Single)三种。在测不同信号时,采用不同的触发模式,才能准确测量到所需要的波形。下面以我司静电发生器TEH-10030
    的头像 发表于 01-18 08:12 2676次阅读
    示波器的<b class='flag-5'>三种</b>触发模式

    3极管的三种工作状态条件

    极管是一重要的电子元器件,广泛应用于电子电路中。它具有放大、开关等多种功能,在各个领域中都有着重要的应用。为了深入理解极管的工作原理,我们需要掌握其三种基本工作状态条件。本文将详
    的头像 发表于 01-15 17:37 2949次阅读