论文地址:https://arxiv.org/pdf/2010.08240.pdf
相关博客:
【自然语言处理】【对比学习】SimCSE:基于对比学习的句向量表示
【自然语言处理】BERT-Whitening
【自然语言处理】【Pytorch】从头实现SimCSE
【自然语言处理】【向量检索】面向开发域稠密检索的多视角文档表示学习
【自然语言处理】【向量表示】AugSBERT:改善用于成对句子评分任务的Bi-Encoders的数据增强方法
【自然语言处理】【向量表示】PairSupCon:用于句子表示的成对监督对比学习
句子对评分任务在
NLP
\text{NLP}
NLP中被广泛使用。其可以被用于信息检索、问答、重复问题检测和聚类。对于许多包含句子对评分任务达到sota
的方法是使用
BERT
\text{BERT}
BERT。两个句子被传递至网络中,并且注意力机制被应用在所有的输入tokens
中。这种两个句子被同时传递至网络中的方法称为cross-encoder
。
cross-encoder
的一个缺点是对于许多任务来说计算量太大。例如,对10000个句子进行聚类,cross-encoder
需要
n
2
n^2
n2的复杂度,使用
BERT
\text{BERT}
BERT的话需要65个小时。端到端的信息检索也不太可能使用cross-encoder
,因为其不能够为输入返回独立的表示,用于被索引。作为对比,像
Sentence BERT
\text{Sentence BERT}
Sentence BERT这样的bi-encoder
独立编码句子,并将其映射至稠密向量空间。这样就可以有效的索引和比较。例如,10000个句子的聚类复杂度从65个小时减少到5秒。许多真实世界中的应用依赖于bi-encoders
的质量。
bi-encoder
的缺点是效果差于cross-encoder
。上图是作者在流行的英文
STS
\text{STS}
STS基准数据集上比较微调的cross-encoder(BERT)
和微调的bi-encoder(SBERT)
。
当仅有很少训练数据可用时的效果差距最大。BERT cross-encoder
能够同时比较两个输入,而SBERT bi-encoder
必须要解决更具挑战性的任务,将输入独立映射至有意义的向量空间,这需要足够数量的训练样本进行微调。
在本文中,作者呈现了一个数据增强方法,其称为
Augmented SBERT(AugSBERT)
\text{Augmented SBERT(AugSBERT)}
Augmented SBERT(AugSBERT),其使用BERT cross-encoder
来改善SBERT bi-encoder
的表现。具体来说,使用cross-encoder
来标注新的输入样本对,其会被添加至bi-encoder
的训练集合中。SBERT bi-encoder
在更大的增强训练集上进行微调,其能够显著改善效果。正如作者所示,选择用于cross-encoder
进行软标注的输入样本对,对改善效果来说至关重要。本文的方法可以简单的应用在许多成对分类任务和回归问题中。
首先,作者在4个任务中评估了提出的
AugSBERT
\text{AugSBERT}
AugSBERT方法:
Argument similarity
\text{Argument similarity}
Argument similarity、
semantic textual similarity
\text{semantic textual similarity}
semantic textual similarity、
duplicate question detection
\text{duplicate question detection}
duplicate question detection和
news paraphrase identification
\text{news paraphrase identification}
news paraphrase identification。可以观察到,相对于目前效果最好的
SBERT bi-encoder
\text{SBERT bi-encoder}
SBERT bi-encoder,能够增加百分之1到6个点。其次,作者展示了
AugSBERT
\text{AugSBERT}
AugSBERT在领域适应中的优势。由于bi-encoder
不能将新的领域映射至可感知的空间,与
BERT cross-encoders
\text{BERT cross-encoders}
BERT cross-encoders相比,
SBERT bi-encoder
\text{SBERT bi-encoder}
SBERT bi-encoder在目标域上的效果要下降的更多。在这种场景中,
AugSBERT
\text{AugSBERT}
AugSBERT实现了37个百分点的效果增长。
给定一个预训练的、且效果很好的cross-encoder
,通过特定的采样策略来采样句子对并使用交叉编码器进行标注。将这些弱标注的样本称为silver dataset
,并将它们合并至原始的训练数据集中。基于扩展后的训练集来训练bi-encoder
。我们将这个模型称为
Augmented SBERT(AugSBERT)
\text{Augmented SBERT(AugSBERT)}
Augmented SBERT(AugSBERT)。整个过程如上图所示:
使用cross-encoder
标注的新样本对可以是新数据、也可以重新利用训练集中独立的句子来合成。在本文的实验中,重新利用原始训练集中的句子。这当然是在不是所有的组合都并标注的情况下才是可能的。然而,这种情况很少发生,因为对于
n
n
n个句子则有
n
×
(
n
−
1
)
/
2
n\times (n-1)/2
n×(n−1)/2种可能的合并方案。将所有可能的合并样本进行弱标注可能会带来极大的计算量,并且可能并不会带来效果改善。相反,采用正确的采样策略对于改善效果至关重要。
Random Sampling(RS)
随机采样一个句子对并使用cross-encoder
进行弱标注。随机采样两个句子通常会带来不相似样本对,正样本对非常的少。这种有偏标签分布使得silver dataset
严重倾向于负样本。
Kernel Density Estimation(KDE)
目标是使得silver dataset
的标签分布类似于原始的训练集。为此,作者使用弱标注的方式标注了大量的随机采样样本对,然后仅保留其中的部分样本对。对于分类任务,作者保留所有的正样本对。随后从余下的随机负样本对中采样一部分负样本对,使其正负比例与原始训练集相一致。对于回归任务,使用核密度估计
(kernel density estimation,KDE)
\text{(kernel density estimation,KDE)}
(kernel density estimation,KDE)来估计针对分数
s
s
s的连续密度函数
F
g
o
l
d
(
s
)
F_{gold}(s)
Fgold(s)和
F
s
i
l
v
e
r
(
s
)
F_{silver}(s)
Fsilver(s)。然后,使用一个以概率
Q
(
s
)
Q(s)
Q(s)保留采样分数
s
s
s的采样函数来最小化两个函数间的
KL
\text{KL}
KL散度。
Q
(
s
)
=
{
1
i
f
F
g
o
l
d
(
s
)
≥
F
s
i
l
v
e
r
(
s
)
F
g
o
l
d
(
s
)
F
s
i
l
v
e
r
(
s
)
i
f
F
g
o
l
d
(
s
)
<
F
s
i
l
v
e
r
(
s
)
Q(s)=
注意,
KDE
\text{KDE}
KDE采样策略的计算效率比较低,因为它需要标注许多随机样本,而这些样本随后可能被丢弃。
BM25 Sampling(BM25)
在信息检索中,
Okapi BM25
\text{Okapi BM25}
Okapi BM25算法是基于词法重叠的,并且常被用于许多搜索引擎的评分函数。作者利用
ElasticSearch
\text{ElasticSearch}
ElasticSearch来创建索引,用来更快的检索query
相关的结果。在作者的实验中,对每个句子都建立的索引,且每个query
都会检索
top-k
\text{top-k}
top-k相似的句子。随后会使用cross-encoder
来标注这些样本对。建立索引和检索相似句子效率高,并且所有弱标注的样本对都会被用于silver dataset
。
Sematic Search Sampling(SS)
BM25
\text{BM25}
BM25的一个缺点是,仅有单词覆盖的语句才会被发现。没有或者很少有重叠单词的同义句子并不会被返回,因此也不会称为silver dataset
的一部分。作者在原始训练集上训练了一个bi-encoder
,并使用其进一步采用相似句子对。作者使用
cosine
\text{cosine}
cosine相似度并检索最相似的
top k
\text{top k}
top k句子。对于规模较大的数据,则使用类似
Faiss
\text{Faiss}
Faiss的近似最近邻来快速检索最相似的
k
k
k个句子。
BM25+Semantic Search Sampling(BM25-S.S.)
同时使用 BM25 \text{BM25} BM25和语言检索策略 SS \text{SS} SS。聚合两个策略有助于捕获词法和语义相似的句子,但会使标签分布倾向于负样本对。
Dodge
\text{Dodge}
Dodge等人的研究显示,像
BERT
\text{BERT}
BERT这样基于
Transformers
\text{Transformers}
Transformers的模型高度的依赖随机数种子,因为其收敛到不同的最小值,则会以不同的方式扩展至未见过的数据。在本文的实验中,作者应用了种子优化
(seed optimization)
\text{(seed optimization)}
(seed optimization):使用5个随机数种子训练模型,并选择在验证集上表现最好的模型。为了加速这个过程,在训练step
的20%应用early stopping
,仅继续训练表现最好的模型直至结束。
目前为止,讨论 AugSBERT \text{AugSBERT} AugSBERT都是在领域内的设置中,即当训练集和测试集来自相同的领域。然而,作者期望 SBERT \text{SBERT} SBERT在领域外数据具有更高的表现。这是因为 SBERT \text{SBERT} SBERT不能将未见过的句子映射至有意义的空间。不幸的是,新领域的标注数据通常是不可用的。
因此,作者评估了提出的数据增强策略对于领域适应的效果:先在包含标注数据的源领域数据上训练cross-encoder
。在微调后,使用微调的cross-encoder
来标注目标域。一旦标注完成,在标注的目标域句子对上训练bi-encoder
。