论文:Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks翻译笔记(句子嵌入、语义搜索)

在这里插入图片描述
论文链接:https://arxiv.org/abs/1908.10084
arXiv:1908.10084v1 [cs.CL] 27 Aug 2019

论文标题:句子BERT:使用Siamese BERT网络的句子嵌入

注解:在使用Siamese BERT网络的句子嵌入的方法中,BERT(Bidirectional Encoder Representations from Transformers)被用来对句子进行编码,以生成可以在下游任务中使用的固定长度向量。Siamese网络是一种用于生成相似度或距离度量的神经网络,它在这里被用来比较两个句子的相似性。通过这种方式,可以为各种自然语言处理任务(如文本分类、情感分析、信息检索等)提供有效的句子表示。


摘要

BERT(Devlin等人,2018年)和RoBERTa(Liu等人,2019年)在句子对回归任务(如语义文本相似性(STS))上取得了新的最先进的性能。然而,这需要将两个句子输入到网络中,这导致了大量的计算开销:在包含10,000个句子的集合中找到最相似的句子对需要大约5000万个推理计算(~65小时)。BERT的构建使其不适用于语义相似性搜索以及无监督任务,如聚类。

在这份出版物中,我们介绍了句子BERT(SBERT),它是预训练的BERT网络的一个修改,使用siamese和triplet网络结构来获得语义上有意义的句子嵌入,可以通过余弦相似性进行比较。这将找到最相似对的努力从65小时的BERT / RoBERTa减少到大约5秒钟的SBERT,同时保持BERT的准确性。

我们在常见的STS任务和迁移学习任务上评估了SBERT和SRoBERTa,结果表明它们在句子嵌入方法中表现优于其他最先进的技术。


1 介绍

在这篇文章中,我们提出了一个叫做句子BERT(SBERT)的修改版BERT网络。通过使用siamese和triplet网络,SBERT能够生成具有语义意义的句子向量。这使得BERT网络可以应用于一些之前无法使用的任务。这些任务包括大规模的语义相似性比较、聚类以及通过语义搜索进行信息检索。

BERT在各种句子分类和句子对回归任务上设立了新的最佳表现。BERT使用了一个交叉编码器:两个句子被传递给转换器网络,然后预测目标值。然而,这种设置对于各种句子对回归任务来说是不合适的,因为存在太多的可能组合。在一组包含n = 10,000个句子的集合中,找到最具相似性的句子对需要使用BERT进行n·(n-1)/2 = 49,995,000次推理计算。在现代V100 GPU上,这需要大约65小时。类似地,找到Quora上4000多万个存在的问题中与新问题最相似的问题可以使用BERT进行一对一比较,但是回答一个单独的查询需要超过50小时。

一种常见的解决聚类和语义搜索的方法是将每个句子映射到向量空间,以便语义相似的句子彼此接近。研究人员已经开始将单个句子输入到BERT中,并得出固定大小的句子嵌入。最常用的方法是平均BERT输出层(称为BERT嵌入)或使用第一个标记的输出(即[CLS]标记)。正如我们将展示的,这种常见的做法会产生相当糟糕的句子嵌入,通常比平均GloVe嵌入(Pennington等人,2014)还要差。

为了解决这个问题,我们开发了SBERT。siamese网络架构使得输入句子的固定大小向量可以被导出。通过使用相似度度量,如余弦相似度或曼哈顿/欧几里得距离,可以找到语义相似的句子。这些相似度度量可以在现代硬件上高效执行,使得SBERT可以用于语义相似性搜索以及聚类。在10,000个句子中找到最相似的句子对的时间,从65小时(使用BERT)减少到计算10,000个句子嵌入(使用SBERT大约5秒)和计算余弦相似性(大约0.01秒)。通过使用优化的索引结构,找到最相似的Quora问题的时间可以从50小时减少到几毫秒(Johnson et al., 2017)。

我们对SBERT进行微调,以适应NLI数据,这创建的句子嵌入向量在性能上显著优于其他先进的句子嵌入方法,如InferSent(Conneau等人,2017年)和通用句子编码器(Cer等人,2018年)。在七个语义文本相似度(STS)任务中,SBERT 相比 InferSent 提高了11.7分,相比通用句子编码器提高了5.5分。在 SentEval(Conneau 和 Kiela,2018)上,这是一个用于句子嵌入的评估工具包,我们分别提高了2.1和2.6分。

SBERT 可以适应特定任务。它在一项具有挑战性的论点相似性数据集(Misra 等人,2016)和一个用于区分维基百科文章不同部分的句子的三元组数据集(Dor 等人,2018)上实现了新的最先进的性能。

本文的结构如下:第3部分介绍了SBERT,第4部分评估了SBERT在常见的STS任务和具有挑战性的Argument Facet Similarity(AFS)语料库(Misra等人,2016)上的表现。第5部分评估了SBERT在SentEval上的表现。在第6部分,我们进行了一个消融研究,以测试SBERT的一些设计方面。在第7部分,我们比较了SBERT句子嵌入与其他最先进的句子嵌入方法在计算效率上的对比。

2 现有工作

我们首先介绍BERT,然后讨论最先进的句子嵌入方法。

BERT(Devlin等人,2018年)是一种预训练的转换器网络(Vaswani等人,2017年),它在各种NLP任务中取得了新的最先进的结果,包括问答、句子分类和句子对回归。BERT的句子对回归输入包括两个句子,由一个特殊的[SEP]标记分隔。在12层(基础模型)或24层(大型模型)的多头注意力之后,将输出传递给一个简单的回归函数以得出最终标签。 使用这种设置,BERT在语义文本相似性(STS)基准测试(Cer等人,2017)上设立了新的最先进的性能。RoBERTa(Liu等人,2019)表明,通过对预训练过程进行微小的调整,可以进一步提高BERT的性能。我们还测试了XLNet(Yang等人,2019),但它通常比BERT的结果更差。

BERT网络结构的一个显著缺点是不计算独立的句子嵌入,这使得从BERT中提取句子嵌入变得困难。为了解决这一限制,研究人员将单个句子通过BERT处理,然后通过平均输出(类似于平均词嵌入)或使用特殊CLS标记的输出(例如:May等人(2019);Zhang等人(2019);Qiao等人(2019))来获得固定大小的向量。这两个选项也由流行的bert-as-a-service-repository3提供。据我们所知,目前还没有评估这两种方法是否能产生有用的句子嵌入。

句子嵌入是一个被广泛研究的领域,有许多提出的方法。Skip-Thought(Kiros等人,2015)通过训练一个编码器-解码器结构来预测周围的句子。InferSent(Conneau等人,2017)使用斯坦福自然语言推断数据集(Bowman等人,2015)和多类型NLI数据集(Williams等人,2018)的标注数据来训练一个带有最大池化的双LSTM网络。Conneau等人证明,InferSent在大多数情况下都优于无监督方法,如SkipThought。通用句子编码器(Cer等人,2018年)训练了一个转换器网络,并通过在SNLI上的训练来增强无监督学习。Hill等人(2016年)表明,句子嵌入所训练的任务对其质量有很大影响。以前的研究(Conneau等人,2017年;Cer等人,2018年)发现SNLI数据集适合训练句子嵌入。杨等人(2018)提出了一种使用siamese DAN和siamese transformer网络从Reddit对话中进行训练的方法,该方法在STS基准数据集上取得了良好的结果。

Humeau等人(2019)探讨了BERT跨编码器的运行时开销,并提出了一种(多编码器)方法,用于通过注意力计算m个上下文向量和预先计算的候选嵌入之间的得分。这个想法适用于在更大的集合中找到最高得分的句子。然而,多编码器有一个缺点,即得分函数不是对称的,计算开销对于聚类等使用场景来说太大,这需要O(n^2)的得分计算。

先前的神经句子嵌入方法从随机初始化开始训练。在这篇出版物中,我们使用预训练的BERT和RoBERTa网络,只对其进行微调,以获得有用的句子嵌入。这显著减少了所需的训练时间:SBERT可以在不到20分钟内进行微调,同时比其他可比的句子嵌入方法获得更好的结果。

3 模型

SBERT 在 BERT / RoBERTa 的输出上添加了一个聚类操作,以得出一个固定大小的句子嵌入。我们尝试了三种聚类策略:使用 CLS 令牌的输出,计算所有输出向量的平均值(平均策略),以及计算输出向量的最大值(最大策略)。默认配置是平均策略。

为了微调BERT / RoBERTa,我们创建了siamese和triplet网络(Schroff等人,2015),以更新权重,使得生成的句子嵌入向量在语义上有意义,并可以通过余弦相似性进行比较。
网络结构取决于可用的训练数据。我们尝试了以下结构和目标函数。

分类目标函数

我们将句子嵌入向量u和v与元素-wise差异|u-v|连接起来,并将其与可训练权重Wt相乘:
o = softmax(Wt(u, v, |u - v|))
其中n是句子嵌入向量的维度,k是标签数量。我们优化交叉熵损失。这个结构如图1所示。

在这里插入图片描述

图1:SBERT架构,具有分类目标函数,例如,用于在SNLI数据集上微调。两个BERT网络具有绑定的权重(双子网络结构)。

回归目标函数

在两个句子嵌入向量u和v之间计算余弦相似度(图2)。我们使用均方误差损失作为目标函数。
在这里插入图片描述

图2:在推断阶段用于计算相似性分数的SBERT架构。该架构也可用于回归目标函数。

三元组目标函数

给定一个锚点句子a,一个正向句子p和一个负向句子n,三元组损失调整网络,使得a和p之间的距离小于a和n之间的距离。

在数学上,我们最小化以下损失函数:max(||sa - sp|| - ||sa - sn|| + ϵ, 0) 其中,sx是a/n/p的句子向量,|| · ||表示距离度量,margin ϵ确保sp相对于sn至少靠近sa ϵ。在我们的实验中,我们使用欧式距离作为度量,并将ϵ设置为1。

3.1 训练详情

我们在SNLI(Bowman等,2015)和多类型NLI(Williams等,2018)数据集的组合上训练SBERT。SNLI是一个包含570,000个句子对的集合,标注了矛盾、蕴含和中性等标签。MultiNLI包含430,000个句子对,涵盖了各种类型的口语和书面文本。我们使用3-way softmax分类器目标函数对SBERT进行一个epoch的微调。我们使用了16的批次大小,Adam优化器和2e−5的学习率,以及在10%的训练数据上的线性学习率预热。我们的默认聚类策略是平均值。

4 评估 - 语义文本相似性

我们评估了SBERT在常见语义文本相似性(STS)任务中的性能。最先进的方法通常会学习一个(复杂)回归函数,将句子嵌入映射到一个相似性分数。然而,这些回归函数是成对工作的,由于组合爆炸,当句子集合达到一定规模时,这些回归函数通常无法扩展。然而,我们总是使用余弦相似度来比较两个句子嵌入向量之间的相似度。我们也用负曼哈顿距离和负欧几里得距离作为相似度度量进行了实验,但所有方法的结果大致相同。

4.1 无监督句子相似性匹配

我们评估了SBERT在没有使用任何STS特定训练数据的情况下的性能。我们使用了2012年至2016年的STS任务(Agirre等人,2012,2013,2014,2015,2016),STS基准(Cer等人,2017)以及SICK-Relatedness数据集(Marelli等人,2014)。这些数据集为句子对的语义相关性提供了0至5之间的标签。我们在(Reimers等人,2016)中证明了皮尔逊相关系数不适合用于STS。相反,我们计算句子嵌入的余弦相似度与黄金标签之间的斯皮尔曼等级相关性。其他句子嵌入方法的设置是等效的,相似度是通过余弦相似度计算的。结果如表1所示。

在这里插入图片描述

表1:句子表示的余弦相似度与各种文本相似度(STS)任务的黄金标签之间的斯皮尔曼等级相关系数ρ。按照惯例,性能以ρ×100的形式报告。STS12-STS16:2012-2016年SemEval,STSb:STSbenchmark,SICK-R:SICK相关性数据集。

结果显示,直接使用BERT的输出会导致相当差的性能。平均BERT嵌入向量只能达到54.81的平均相关性,而仅使用CLS标记输出只能达到29.19的平均相关性。两者都比计算平均GloVe嵌入向量要差。

使用描述的双胞胎网络结构和微调机制可以显著提高相关性,超越InferSent和通用句子编码器。唯一一个SBERT表现不如通用句子编码器的数据集是SICK-R。通用句子编码器在各种数据集上进行了训练,包括新闻、问答页面和讨论论坛,这似乎更适合SICK-R的数据。相比之下,SBERT仅在维基百科(通过BERT)和NLI数据上进行了预训练。

虽然RoBERTa能够在几个监督任务中提高性能,但我们发现在生成句子嵌入方面,SBERT和SRoBERTa之间只有微小的差别。

4.2监督STS(相似性任务)

STS基准(STSb)(Cer等,2017)提供了一个流行的评估监督STS系统的数据集。数据包括来自三个类别(标题、新闻和论坛)的8,628个句子对。数据集分为训练(5,749个)、验证(1,500个)和测试(1,379个)三部分。BERT通过将两个句子输入网络并使用简单的回归方法输出,从而在这个数据集上取得了新的最佳性能。
在这里插入图片描述

表格2:在STS基准测试集上的评估。
BERT系统使用10个随机种子和4个周期进行训练。SBERT在STSb数据集上进行微调,SBERT-NLI在NLI数据集上进行预训练,然后在STSb数据集上进行微调。

我们使用训练集来微调SBERT,使用回归目标函数。在预测时,我们计算句子嵌入之间的余弦相似度。所有系统都使用10个随机种子进行训练,以抵消方差(Reimers和Gurevych,2018)。

实验结果如表2所示。我们尝试了两种设置:仅在STSb上进行训练,以及先在NLI上进行训练,然后在STSb上进行训练。我们发现后一种策略可以带来1-2分的轻微提升。这种两步走的方法对BERT跨编码器产生了特别大的影响,使其性能提高了3-4分。在BERT和RoBERTa之间,我们没有观察到显著的差异。

4.3 论点方面相似性

我们使用Misra等人(2016)的Argument Facet Similarity(AFS)语料库评估SBERT。AFS语料库注释了6,000个来自社交媒体对话的句子级论点对,涉及三个有争议的主题:枪支控制、同性婚姻和死刑。数据的注释范围从0(“不同主题”)到5(“完全等同”)。AFS语料库中的相似性概念与SemEval的STS语料库中的相似性概念相当不同。STS数据通常是描述性的,而AFS数据则是对话中的论证摘录。要被认为是相似的,论证不仅要在主张上相似,还要提供相似的推理。此外,AFS中句子之间的词汇差距要大得多。因此,简单的无监督方法以及最先进的STS系统在这项任务上表现不佳(Reimers等人,2019)。

我们在两个场景下对SBERT进行评估:1)按照Misra等人提出的方案,我们使用10折交叉验证来评估SBERT。这个评估设置的一个缺点是,不清楚方法在不同主题上的泛化能力如何。因此,2)我们在跨主题设置下评估SBERT。两个主题用于训练,然后在剩下的主题上进行评估。我们对所有三个主题重复这个过程,并平均结果。

SBERT是使用回归目标函数进行微调的。相似性分数是通过基于句子嵌入的余弦相似性来计算的。我们还提供了皮尔逊相关系数r,以便将结果与Misra等人进行比较。然而,我们已经证明(Reimers等人,2016),皮尔逊相关系数存在一些严重的问题,应该避免用于比较STS系统。结果如表3所示。

无监督方法,如tf-idf、平均GloVe嵌入或InferSent在该数据集上的表现较差,得分较低。在10-fold交叉验证设置中训练SBERT可获得与BERT几乎相当的性能。

然而,在跨主题评估中,我们观察到SBERT的表现下降了约7个点的斯皮尔曼相关性。要被认为是相似的,论点应涉及相同的主张并提供相同的推理。BERT能够直接使用注意力比较两个句子(例如逐字比较),而SBERT必须将来自未见主题的单个句子映射到一个向量空间,使得具有相似主张和理由的论点相互接近。这是一个更具挑战性的任务,似乎需要不仅仅是两个主题来进行与BERT相当的训练。

4.4 维基百科章节区分

Dor等人(2018)使用维基百科为句子嵌入方法创建了主题上细致的训练集、开发集和测试集。维基百科文章被分为不同的章节,关注某些方面。Dor等人假设同一部分的句子在主题上比不同部分的句子更接近。他们利用这一点创建了一个大量弱标签句子三元组的数据库:锚点和正例来自同一部分,而负例来自同一文章的不同部分。例如,来自爱丽丝·阿诺德的文章:锚:阿诺德于1988年加入BBC广播剧公司。, 正面:阿诺德在2012年5月引起了媒体关注。, 负面:巴尔丁和阿诺德是热衷于业余高尔夫球的爱好者。
在这里插入图片描述

表3:在论点方面相似性(AFS)语料库(Misra等人,2016)上,Pearson相关系数r的平均值和Spearman等级相关系数ρ的平均值。Misra等人提出了10折交叉验证。我们还在跨主题场景中进行评估:方法在两个主题上进行训练,并在第三个主题上进行评估。

我们使用了Dor等人提供的数据集。我们采用三元组目标,在大约180万个训练三元组上训练SBERT一个周期,并在222,957个测试三元组上进行评估。测试三元组来自一组不同的维基百科文章。作为评估指标,我们使用准确度:正面例子是否比负面例子更接近锚点?

结果如表4所示。Dor等人对一个BiLSTM架构进行了微调,并使用三元组损失来提取这个数据集的句子嵌入。如表中所示,SBERT明显优于Dor等人提出的BiLSTM方法。
在这里插入图片描述

表格4:在维基百科章节三元组数据集(Dor等,2018)上的评估。SBERT使用三元组损失进行训练,训练了一个epoch。

5 评估 - SentEval

SentEval(Conneau和Kiela,2018)是一个流行的工具包,用于评估句子嵌入的质量。句子嵌入被用作逻辑回归分类器的特征。逻辑回归分类器在各种任务上进行10折交叉验证训练,计算测试折的预测准确率。

SBERT句子嵌入的目的是不用于其他任务的迁移学习。 在这里,我们认为按照Devlin等人(2018)的描述,对BERT进行微调以适应新任务是更合适的方法,因为它会更新BERT网络的所有层。然而,SentEval仍然可以让我们了解我们的句子嵌入在各种任务中的质量。
我们将在以下七个SentEval迁移任务中,将SBERT句子嵌入与其他句子嵌入方法进行比较:
• MR:电影评论情感预测,采用五星级别进行评分(Pang和Lee,2005)。
• CR:客户产品评论情感预测(Hu和Liu,2004)。
• SUBJ:从电影评论和剧情概要中进行句子主题预测(Pang和Lee,2004)。
• MPQA:新闻稿中的短语级观点极性分类(Wiebe等,2005)。
• SST:斯坦福情感树库,带有二进制标签(Socher等人,2013)。
• TREC:来自TREC的细粒度问题类型分类(Li和Roth,2002)。
• MRPC:来自并行新闻来源的微软研究改写语料库(Dolan等人,2004)。

结果可以在表5中找到。SBERT在7个任务中有5个任务取得了最佳性能。与InferSent和通用句子编码器相比,平均性能提高了约2个百分点。尽管迁移学习不是SBERT的目的,但它在这项任务上超过了其他最先进的句子嵌入方法。
在这里插入图片描述

表格5:使用SentEval工具包对SBERT句子嵌入进行评估。SentEval通过将句子嵌入作为特征训练逻辑回归分类器,对不同的句子分类任务进行评估。分数基于10-fold交叉验证。

看起来,SBERT生成的句子嵌入向量很好地捕捉了情感信息:与InferSent和通用句子编码器相比,我们在SentEval的所有情感任务(MR、CR和SST)中观察到了显著的改进。

唯一一个SBERT明显不如通用句子编码器的数据集是TREC数据集。通用句子编码器是在问答数据上进行预训练的,这似乎对TREC数据集的问答类型分类任务有帮助。

平均BERT嵌入或使用BERT网络的CLS- 标记输出在各种STS任务(表1)中表现不佳, 比平均GloVe嵌入更差。然而,对于Sent- Eval,平均BERT嵌入和BERT CLS标记输出取得了不错的结果(表5), 超过了平均GloVe嵌入。造成这种情况的原因是不同的设置。对于STS任务,我们使用余弦相似度来估计句子嵌入之间的相似性。余弦相似度对待所有维度是平等的。相比之下,SentEval通过逻辑回归分类器来适应句子嵌入。这使得某些维度在分类结果中具有更高的或更低的影响。

我们得出的结论是,使用BERT的平均嵌入或CLS-token输出的句子嵌入,无法通过余弦相似性或曼哈顿/欧几里得距离来使用。在迁移学习中,它们的结果略逊于InferSent或通用句子编码器。然而,通过在NLI数据集上使用所描述的微调设置和siamese网络结构,得到的句子嵌入实现了SentEval工具包的新水平。

6 消融研究

我们已经证明了SBERT句子嵌入的质量在实践中的强大结果。在本节中,我们对SBERT的不同方面进行消融研究,以便更好地理解它们相对重要性。

我们评估了不同的池化策略(平均值、最大值和CLS)。对于分类目标函数,我们评估了不同的连接方法。对于每种可能的配置,我们使用10个不同的随机种子训练SBERT,并平均性能。

目标函数(分类与回归)取决于注释数据集。对于分类目标函数,我们使用SNLI和Multi-NLI数据集训练SBERT-base。对于回归目标函数,我们使用STS基准数据集的训练集进行训练。性能在STS基准数据集的开发分隔上进行测量。结果如表6所示。
在这里插入图片描述

表格6:在自然语言推理(NLI)数据上训练的SBERT,使用分类目标函数,在语义相似性基准测试(STSb)上使用回归目标函数。这些配置在STSb的开发集上进行评估,使用余弦相似性和Spearman等级相关性。对于串联方法,我们只报告了使用MEAN池化策略的分数。

当使用NLI数据上的分类目标函数进行训练时,池化策略的影响相对较小。而连接模式的影响要大得多。InferSent(Conneau等人,2017)和通用句子编码器(Cer等人,2018)都使用(u,v,|u-v|,uv)作为softmax分类器的输入。然而,在我们的架构中,添加元素级别的uv降低了性能。

最重要的组成部分是元素- wise差异|u - v|。请注意,concatena- tion模式仅在训练softmax分类器时相关。在推断时,当预测STS基准数据集的相似性时,仅使用 句子嵌入u和v与余弦- 相似性相结合。元素差异度量了两个句子嵌入向量之间的距离,确保相似的对更近,不相似的对更远。

当使用回归目标函数进行训练时,我们发现池化策略有很大的影响。在那里,MAX策略的表现明显比MEAN或CLS-token策略差。这与(Conneau等人,2017)的发现相反,他们认为对于InferSent的BiLSTM层来说,使用MAX而不是MEAN池化是有益的。

7 计算效率

句子嵌入可能需要为数百万个句子计算,因此,高计算速度是期望的。在这一部分,我们将SBERT与平均GloVe嵌入、InferSent(Conneau等人,2017年)和通用句子编码器(Cer等人,2018年)进行比较。

在我们的比较中,我们使用了STS基准测试(Cer等,2017)中的句子。我们使用一个简单的for循环和python字典查找以及NumPy计算平均GloVe嵌入。InferSent4基于PyTorch。对于通用句子编码器,我们使用了TensorFlow Hub的版本5,它基于TensorFlow。SBERT 基于 PyTorch。为了提高句子嵌入的计算效率,我们实现了一种智能批处理策略:将长度相似的句子分组在一起,并仅将其填充到小批量中的最长元素。这大大减少了填充标记的计算开销。

性能测试是在一台搭载了Intel i7-5820K CPU @ 3.30GHz处理器、Nvidia TeslaV100 GPU、CUDA 9.2和cuDNN的服务器上进行的。测试结果如表7所示。
在这里插入图片描述

表格7:句子嵌入方法的计算速度(每秒句子数)。越高越好。

在CPU上,InferSent比SBERT快约65%。这是因为InferSent的网络结构要简单得多。InferSent使用一个双向LSTM层,而BERT使用了12个堆叠的Transformer层。然而,Transformer网络在GPU上的计算效率是一个优势。在那里,带有智能批处理的SBERT比InferSent快约9%,比通用句子编码器快约55%。智能批处理在CPU上实现了89%的速度提升,在GPU上实现了48%的速度提升。平均GloVe嵌入显然是计算句子嵌入的最快方法,且优势明显。

8 结论

我们已经展示了,BERT在没有进行任何调整的情况下,将句子映射到一个向量空间,这个空间与常用的相似度衡量方法(如余弦相似度)不太匹配。在七个句子相似性任务中,BERT的性能低于使用平均GloVe词嵌入的性能。

为了解决这个缺点,我们提出了句子BERT(SBERT)。SBERT在双子/三元组网络架构中对BERT进行微调。我们评估了其在各种常见基准测试中的质量,结果表明它在句子嵌入方法上取得了显著的提升。在我们的实验中,用RoBERTa替换BERT并没有带来显著的改进。

SBERT在计算上非常高效。在GPU上,它比InferSent快约9%,比Universal Sentence Encoder快约55%。SBERT可以用于那些在计算上无法使用BERT建模的任务。例如,使用层次聚类对10,000个句子进行聚类,使用BERT需要大约65小时,因为大约需要计算5000万个句子组合。而使用SBERT,我们能够将计算时间缩短到大约5秒。


  • 33
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值