自然语言处理向量表示PairSupCon:用于句子表示的成对监督对比学习
Posted BQW_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自然语言处理向量表示PairSupCon:用于句子表示的成对监督对比学习相关的知识,希望对你有一定的参考价值。
论文地址:https://arxiv.org/pdf/2109.05424.pdf
相关博客:
【自然语言处理】【对比学习】SimCSE:基于对比学习的句向量表示
【自然语言处理】BERT-Whitening
【自然语言处理】【Pytorch】从头实现SimCSE
【自然语言处理】【向量检索】面向开发域稠密检索的多视角文档表示学习
【自然语言处理】【向量表示】AugSBERT:改善用于成对句子评分任务的Bi-Encoders的数据增强方法
【自然语言处理】【向量表示】PairSupCon:用于句子表示的成对监督对比学习
一、简介
学习高质量的句子嵌入是
NLP
\\textNLP
NLP中的基础任务。目标是在表示空间中将相似句子映射在相近的位置,将不相似的句子映射至较远的位置。近期的研究通过在
NLI
\\textNLI
NLI数据集上训练取得了成功,该数据集上的任务是将句子对分类为三种类别中的一种:entailment
、contradiction
或者neutral
。
尽管结果还不错,但先前的工作都有一个缺点:构成contradiction
对的句子可能并需要属于不同的语义类别。因此,通过优化模型来区分entailment
和contradiction
,对于模型编码高级类别概念是不足够的。此外,标准的siamese(triplet)
损失函数仅能从独立的句子对
(
triplets
)
(\\texttriplets)
(triplets)中学习,其需要大量的训练样本来实现有竞争力的效果。siamese
损失函数有时能够将模型带入糟糕的局部最优解,其在高级语义概念编码上的效果会退化。
在本文中,受到自监督对比学习的启发,并提出了联合优化具有实例判别
(instance discrimination)
\\text(instance discrimination)
(instance discrimination)的成对语义推理目标函数。作者将该方法称为
Pairwise Supervised Contrastive Learning(PairSupCon)
\\textPairwise Supervised Contrastive Learning(PairSupCon)
Pairwise Supervised Contrastive Learning(PairSupCon)。正如最近的一些研究工作所提及的,instance discrimination learning
能够在没有任何明确指导的情况下将相似实例在表示空间中分组在附近。
PairSupCon
\\textPairSupCon
PairSupCon利用这种隐含的分组作用,将同一类别的表示集合在一起,同时增强模型的语义entailment
和contradiction
推理能力。
虽然先前的工作主要专注在语义相似度的两两评估上。在本文中,作者认为将高级语义概念编码至向量表示中也是一种重要的评估方面。先前在语义文本相似度任务
STS
\\textSTS
STS上表现最好的模型会导致类别语义结构嵌入的退化。另一方面,更好的捕获高层次的语义概念能够反过来促进在低级别语义entailment
和contradiction
推理的效果。这个假设与人类从上至下进行分类相一致。
PairSupCon
\\textPairSupCon
PairSupCon在8个短文本聚类任务中实现了平均10%-13%的改善,并且在
STS
\\textSTS
STS任务上实现了5%-6%的改善。
二、方法
遵循 SBERT \\textSBERT SBERT,采用 SNLI \\textSNLI SNLI和 MNLI \\textMNLI MNLI作为训练数据,并且为了方便将合并的数据称为 NLI \\textNLI NLI。 NLI \\textNLI NLI数据由标注的句子对组成,并且每个样本的形式为: (premise,hypothesis,label) \\text(premise,hypothesis,label) (premise,hypothesis,label)。每个 premise \\textpremise premise句子都是从现有的文本源中选择的,并且每个 premise \\textpremise premise都会个各种人工标注的 hypothesis \\texthypothesis hypothesis句子组成一对。每个 label \\textlabel label都表示 hypothesis \\texthypothesis hypothesis的类型以及分类关联的 premise \\textpremise premise和 hypothesis \\texthypothesis hypothesis句子对的语义关系为三个类型: entailment \\textentailment entailment、 contradiction \\textcontradiction contradiction和 neural \\textneural neural。
先前的工作会在
NLI
\\textNLI
NLI上独立优化siamese loss
或者triplet loss
。作者的目标是利用判别学习中的隐式分组效应来更好的捕获数据的高级类别语义结构,同时促进在低级别语义文本entailment
和contradiction
推荐目标的更好收敛。
1. 实例判别( Instance Discrimination \\textInstance Discrimination Instance Discrimination)
作者利用
NLI
\\textNLI
NLI的正样本对
(entailment)
\\text(entailment)
(entailment)来优化实例级判别目标函数,其尝试将每个正样本对与其他的句子拉远。令
D
=
(
x
j
,
x
j
′
)
,
y
j
j
=
1
M
\\mathcalD=\\(x_j,x_j'),y_j\\_j=1^M
D=(xj,xj′),yjj=1M表示随机采样的minibatch
,其中
y
i
=
±
1
y_i=\\pm 1
yi=±1表示entailment
或者contradiction
。对于正样本对
(
x
i
,
x
i
′
)
(x_i,x_i')
(xi,xi′)中的premise
句子
x
i
x_i
xi,这里的目标是将hypothesis
句子
x
i
′
x_i'
xi′与同一个batch
D
\\mathcalD
D中的
2M-2
\\text2M-2
2M-2个句子分开。具体来说,令
I
=
i
,
i
′
i
M
\\mathcalI=\\i,i'\\_i^M
I=i,i′iM表示
D
\\mathcalD
D中的样本对应的索引,最小化下面的损失函数:
l
ID
i
=
−
log
exp
(
s
(
z
i
,
z
i
′
/
τ
)
)
∑
j
∈
I
∖
i
exp
(
s
(
z
i
,
z
j
/
τ
)
(1)
\\mathcall_\\textID^i=-\\log\\frac\\exp(s(z_i,z_i'/\\tau))\\sum_j\\in\\mathcalI\\setminus i\\exp(s(z_i,z_j/\\tau) \\tag1
lIDi=−log∑j∈I∖iexp(s(zi,zj/τ)exp(s(zi,zi′/τ))(1)
在上面的等式中,
z
j
=
h
(
ψ
(
x
j
)
)
z_j=h(\\psi(x_j))
zj=h(ψ(xj))表示实体判断头的输出,
τ
\\tau
τ表示温度参数,
s
(
⋅
)
s(\\cdot)
s(⋅)是cosine
相似的,即
s
(
⋅
)
=
z
i
⊤
z
i
′
/
∥
z
i
∥
∥
z
i
′
∥
s(\\cdot)=z_i^\\top z_i'/\\parallel z_i\\parallel\\parallel z_i'\\parallel
s(⋅)=zi⊤zi′/∥zi∥∥zi′∥。等式(1)能够被解释了用于分类
z
i
z_i
zi和
z
i
′
z_i'
zi′的分类损失函数的softmax
。
类似地,对于hypothesis
句子
x
i
′
x_i'
xi′,这里尝试从
D
\\mathcalD
D中所有其他句子中判别premise
句子
x
i
x_i
xi。因此,定义对应的损失函数
l
ID
i
′
\\mathcall_\\textID^i'
lIDi′为等式(1)中交换实例
x
i
′
x_i'
xi′和
x
i
x_i
xi的角色。总的来说,最终的损失函数为平均
D
\\mathcalD
D中的所有正样本。
L
ID
=
1
P
M
∑
i
=
1
M
1
y
i
=
1
⋅
(
l
ID
i
+
l
ID
i
′
)
(2)
\\mathcalL_\\textID=\\frac1P_M\\sum_i=1^M\\mathbb1_y_i=1\\cdot(\\mathcall_\\textID^i+\\mathcall_\\textID^i') \\tag2
LID=PM1i=1∑M1y将句子表示为向量(下):基于监督学习的句子表示学习(sentence embedding)