CoSENT:比Sentence-BERT更有效的句向量方案

CoSENT是作者提出的解决句向量训练和预测不一致问题的新方法,通过改进损失函数,优化cos相似度,相比InferSent和Sentence-BERT在效果和收敛速度上有优势。CoSENT适用于有监督学习,特别是文本匹配任务,能处理二分类和多分类数据,如NLI和STS-B数据集。
摘要由CSDN通过智能技术生成

0c5ac36a5f3d9f1b9f2af9bf7685db9b.gif

©PaperWeekly 原创 · 作者 | 苏剑林

单位 | 追一科技

研究方向 | NLP、神经网络

学习句向量的方案大致上可以分为无监督和有监督两大类,其中有监督句向量比较主流的方案是 Facebook 提出的“InferSent” [1],而后的“Sentence-BERT” [2] 进一步在 BERT 上肯定了它的有效性。然而,不管是 InferSent 还是 Sentence-BERT,它们在理论上依然相当令人迷惑,因为它们虽然有效,但存在训练和预测不一致的问题,而如果直接优化预测目标 cos 值,效果往往特别差。

最近,笔者再次思考了这个问题,经过近一周的分析和实验,大致上确定了 InferSent 有效以及直接优化 cos 值无效的原因,并提出了一个优化 cos 值的新方案 CoSENT(Cosine Sentence)。实验显示,CoSENT 在收敛速度和最终效果上普遍都比 InferSent 和 Sentence-BERT 要好。

6fe590824da31e2a2b2a54cedeb5faad.png

朴素思路

本文的场景是利用文本匹配的标注数据来构建句向量模型,其中所利用到的标注数据是常见的句子对样本,即每条样本是“(句子 1, 句子 2, 标签)”的格式,它们又大致上可以分类“是非类型”、“NLI 类型”、“打分类型”三种,参考《用开源的人工标注数据来增强 RoFormer-Sim》中的“分门别类”一节。

6dfaa7d2d37ffa20f3f1c305a49199dd.png

失效的Cos

简单起见,我们可以先只考虑“是非类型”的数据,即“(句子 1, 句子 2, 是否相似)”的样本。假设两个句子经过编码模型后分别得到向量 ,由于检索阶段计算的是余弦相似度 ,所以比较自然的想法是设计基于 的损失函数,比如

30e79650828260fda0fa20fa76cabac8.png

其中 表示是否相似。类似的 loss 还可以写出很多,大致的意思都是让正样本对的相似度尽可能大、负样本对的相似度尽可能小。然而,直接优化这些目标的实验结果往往特别差(至少明显比 InferSent 要差),在某些情况下甚至还不如随机初始化的效果。

6573102adf47e8629aafa6c72e4dd015.png

难搞的阈值

这是因为,通常文本匹配语料中标注出来的负样本对都是“困难样本”,常见的是语义不相同但字面上有比较多的重合。此时,如果我们用式(1)作为损失函数,那么正样本对的目标是 1、负样本对的目标是 -1,如果我们用式(2)作为损失函数,那么正样本对的目标是 1、负样本对的目标是 0。

不管哪一种,负样本对的目标都“过低”了,因为对于“困难样本”来说,虽然语义不同,但依然是“相似”,相似度不至于 0 甚至 -1 那么低,如果强行让它们往 0、-1 学,那么通常的后果就是造成过度学习,从而失去了泛化能力,又或者是优化过于困难,导致根本学不动。

要验证这个结论很简单,只需要把训练集的负样本换成随机采样的样本对(视作更弱的负样本对),然后用上述 loss 进行训练,就会发现效果反而会变好。如果不改变负样本对,那么缓解这个问题的一个方法是给负样本对设置更高的阈值,比如

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值