ACL 2022 | 引入角度margin构建对比学习目标,增强文本语义判别能力

2022-11-11 11:05:56 浏览数 (3)

©作者 | 牟宇滔 单位 | 北京邮电大学 整理 | PaperWeekly

论文标题:

A Contrastive Framework for Learning Sentence Representations from Pairwise and Triple-wise Perspective in Angular Space

文章来源:

ACL 2022

文章链接:

https://aclanthology.org/2022.acl-long.336/

Overview

聚焦的问题:近年来基于对比学习的句子表示学习研究取得了较大的进展,但是大多数方法都只关注如何挑选对比学习的正负样本对,而几乎没有人去关注对比学习目标函数本身。实际上,大家普遍使用的 NT-Xent 对比损失存在两个问题:1)判别能力不强,易受到噪声数据干扰;2)无法建模多个句子间的语义顺序。

▲ 这里展示了三个不同句子的表示可视化,不同颜色代表不同句子,每个句子经过BERT模型多次不同的dropout,因此表征具有一定的随机性(dropout可以看成一种噪声)。可以看出SimCSE得到的表征Sb和Sc不能很好地区分开。此外,我们可以看出Sa应该与Sb语义更相近,与Sc语义相对更远,这种关系没能建模。

提出的方法:本文提出一种 ArcSCE 方法,基本思想是将之前在欧氏空间中进行操作的 NT-Xent 目标函数转换到角度空间中,目的是强化成对判别性特征,并建模句子间的语义顺序关系。

Method

ArcCSE 框架分为两个部分,一是成对判别性建模;二是三元语义顺序建模。分别设计了两个对比学习损失函数进行联合优化。

▲ ArcCSE框架。对于左边的成对相似性建模,与SimCSE做法相同,都是将每句话dropout两次过编码器;对于右边的三元语义顺序建模,不做dropout操作,而是将同一句话mask两次,构造三元组。

2.1 Angular Margin based Contrastive Learning

这个模块的目的与 SimCSE 相同,都是为了让正样本拉近,负样本拉远,其中正样本是 dropout 增强的样本,负样本是 batch 内其他样本。如果像 SimCSE 一样使用如下传统的 NT-Xent 目标函数:

▲ 两个表征的相似性用余弦相似度计算

作者认为这样目标函数判别能力不够出色,并且容易受到噪声数据的影响。为了更好地理解这两个问题,我们可以做一个数学变换,将余弦相似度(欧氏空间度量指标)转换为角度(角度空间度量指标)。

▲ 将余弦相似度转换为角度,余弦相似度越大,角度越小

这样一来,我们就可以画出 NT-Xent 函数的判别边界如下:

▲ 这个图其实说明的是对于每个anchor,正样本和负样本的相似性度量之间的关系。橙色区域是优化的方向。

对于传统的 NT-Xent 目标函数,由于缺乏一个较大的决策 margin,因此决策边缘微小的扰动都可能错误决策。为了克服这个问题,作者提出了一个新的目标,即通过增加一个角度 margin 来得到更鲁棒的句子表示,新目标函数如下:

2.2 Modeling Entailment Relation of Triplet Sentences

为了让模型能够学习到多个句子间的语义相似性顺序关系,作者提出了一个新的预训练任务,建模三元句子对的蕴含关系。首先,通过对一句话按不同的 mask 比例做两次 mask,得到三元组句子对。

▲ 通过不同mask比例显示构造这三句话的语义顺序

然后用如下三元损失函数进行训练:

Experiments

3.1 主实验

本文聚焦的是句子表示学习,因此在两种句子相关的任务上进行了评估:一是 STS(文本语义相似性评估),二是 SentEval Transfer Tasks(将本文方法得到的句子表示用于各种下游任务中)。

▲ 在各种STS数据集上进行评估

▲ 将学习到的句子表示用于各种下游任务中

3.2 Alignment and Uniformity Analysis

对比学习有两个重要性质,Alignment 指的是希望相似实例能够产生尽可能相近的表征,Uniformity 指的是希望表征分布尽可能均匀,有利于保留最大的信息量。

作者在训练过程中每 10 个 epoch 计算一次两个指标,结果如下图所示。可以看出相比于 SimCSE,ArcCSE 可以得到更好的 alignment 性质,和相当的 uniformity 性质。

1 人点赞