自然语言处理向量表示PairSupCon:用于句子表示的成对监督对比学习

Posted BQW_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自然语言处理向量表示PairSupCon:用于句子表示的成对监督对比学习相关的知识,希望对你有一定的参考价值。

PairSupCon:用于句子表示的成对监督对比学习
《Pairwise Supervised Contrastive Learning of Sentence Representations》

论文地址:https://arxiv.org/pdf/2109.05424.pdf

相关博客:
【自然语言处理】【对比学习】SimCSE:基于对比学习的句向量表示
【自然语言处理】BERT-Whitening
【自然语言处理】【Pytorch】从头实现SimCSE
【自然语言处理】【向量检索】面向开发域稠密检索的多视角文档表示学习
【自然语言处理】【向量表示】AugSBERT:改善用于成对句子评分任务的Bi-Encoders的数据增强方法
【自然语言处理】【向量表示】PairSupCon:用于句子表示的成对监督对比学习

一、简介

​ 学习高质量的句子嵌入是 NLP \\textNLP NLP中的基础任务。目标是在表示空间中将相似句子映射在相近的位置,将不相似的句子映射至较远的位置。近期的研究通过在 NLI \\textNLI NLI数据集上训练取得了成功,该数据集上的任务是将句子对分类为三种类别中的一种:entailmentcontradiction或者neutral

​ 尽管结果还不错,但先前的工作都有一个缺点:构成contradiction对的句子可能并需要属于不同的语义类别。因此,通过优化模型来区分entailmentcontradiction,对于模型编码高级类别概念是不足够的。此外,标准的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利用这种隐含的分组作用,将同一类别的表示集合在一起,同时增强模型的语义entailmentcontradiction推理能力。

​ 虽然先前的工作主要专注在语义相似度的两两评估上。在本文中,作者认为将高级语义概念编码至向量表示中也是一种重要的评估方面。先前在语义文本相似度任务 STS \\textSTS STS上表现最好的模型会导致类别语义结构嵌入的退化。另一方面,更好的捕获高层次的语义概念能够反过来促进在低级别语义entailmentcontradiction推理的效果。这个假设与人类从上至下进行分类相一致。 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。作者的目标是利用判别学习中的隐式分组效应来更好的捕获数据的高级类别语义结构,同时促进在低级别语义文本entailmentcontradiction推荐目标的更好收敛。

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,iiM表示 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=logjIiexp(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()=zizi/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=1M1y将句子表示为向量(下):基于监督学习的句子表示学习(sentence embedding)

新书自然语言处理嵌入:语义向量表示理论与进展,从Word2Vec到BERT,163页pdf

句表示

文本离散表示:词袋模型(bag of words)

深度学习项目五:利用LSTM网络进行情感分析(NLP)

将句子表示为向量(上):无监督句子表示学习(sentence embedding)