论文笔记--Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
1. 文章简介
- 标题:Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
- 作者:Nils Reimers, Iryna Gurevych
- 日期:2019
- 期刊:arxiv preprint
2. 文章导读
2.1 概括
预训练模型已经成为当前处理NLP任务的一种新的范式,但针对文本相似度问题,传统的BERT[1]和RoBERTa[2]有效率低:BERT(RoBERTa)处理文本相似度的方法是将两个文本拼接,通过[SEP]分隔,并引入Segment embedding表示句子位置。这样的处理方法很可能会引起组合爆炸,比如10000个句子输入,要进行
(
10000
2
)
≈
50
m
i
l
l
i
o
n
\binom{10000}2\approx 50million
(210000)≈50million次向量嵌入计算。
一种优化方法为通过BERT计算单个句子的嵌入向量,然后计算嵌入之间的相似度。常用的方法包括采用句子中所有单词的平均嵌入或特殊token [CLS]的嵌入,但是这种方法对句子整体的表达并不好(很可能损失了一部分信息)。
文章提出了一种基于Siamese(双塔式架构)和triplet架构的BERT训练方法,针对文本相似度分析下游任务给出了一种新的训练思路。
2.2 文章重点技术
2.2.1 池化层
文章提出了SBERT模型,在原有的BERT/RoBERTa模型输出层后加入了一个池化层,得到输入句子的固定大小的嵌入表示。文章测试了三种池化策略:Mean, Max和CLS,发现MEAN池化的效果最好,如下表所示。
文
2.2.2 目标函数
文章针对不同的数据集和下游任务,给出了三种目标函数
- 分类目标函数:针对NLP中的分类任务,模型分别计算两个输入句子在池化层之后的嵌入,将两个句子
u
,
v
u,v
u,v结合
∣
u
−
v
∣
|u-v|
∣u−v∣一同传入到一个线性层+softmax,得到最后的分类结果。具体公式为
o
=
s
o
f
t
m
a
x
(
W
t
(
u
,
v
,
∣
u
−
v
∣
)
)
o = softmax(W_t (u,v,|u-v|))
o=softmax(Wt(u,v,∣u−v∣)),其中
u
,
v
∈
R
n
,
W
t
∈
R
3
n
×
k
u, v \in\mathbb{R}^{n}, W_t \in \mathbb{R}^{3n\times k}
u,v∈Rn,Wt∈R3n×k,
k
k
k表示分类标签的数量。分类任务的训练过程如下图所示。此外文章测试了单独拼接
(
u
,
v
)
(u,v)
(u,v)和单独使用
∣
u
−
v
∣
|u-v|
∣u−v∣以及增加
u
∗
v
u*v
u∗v的效果,如上表所示,结果表明使用
(
u
,
v
,
∣
u
−
v
∣
)
(u, v, |u-v|)
(u,v,∣u−v∣)的效果最好。
- 回归目标函数:针对NLP中的回归任务,模型分别计算两个输入句子在池化层之后的嵌入,再计算嵌入之间的cosine相似度,最后采用MSE损失函数。回归任务的训练过程如下图所示。
- Triplet 目标函数:给定锚句(anchor) a a a,正样本句子 a a a和负样本句子 n n n,模型希望让 a , p a, p a,p之间的距离尽可能小,让 a , n a, n a,n之间的距离尽可能大。从而模型最小化损失函数 max ( ∥ s a − s p ∥ − ∥ s a − s n ∥ + ϵ , 0 ) \max(\Vert s_a-s_p\Vert - \Vert s_a-s_n\Vert +\epsilon, 0) max(∥sa−sp∥−∥sa−sn∥+ϵ,0),其中 s x ( x = a , p , n ) s_x(x=a,p,n) sx(x=a,p,n)表示句子 x x x的嵌入表示,文章设定 ϵ = 1 \epsilon=1 ϵ=1为超参数。
3. 文章亮点和不足
一系列数值实验表明文章提出的SBERT在情感类文本分析中表现很好,在包括MRPC、STS等情感任务分析中均给出了新的SOTA结果。但文章提出的模型在问答类NLP任务上表现不好,比SOTA结果低了6~7个百分点。
另一方面,在10折交叉验证中,SBERT达到SOTA,但在跨主题预测时,SBERT的表现较BERT低几个百分点。原因可能在于SBERT是将两个句子分别输入模型,而BERT则同时考虑两个句子的attention。
总结来看,SBERT在包括文本相似问题的文本对分析任务上有着超越BERT的精度和远高于BERT的效率,是当前处理文本相似问题的一种主流框架。
4. 原文传送门
Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
代码:sentence-transformers
5. References
[1] 论文笔记–BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
[2] 论文笔记–RoBERTa: A Robustly Optimized BERT Pretraining Approach