今天带来亚马逊AI的三篇文本表示相关的论文。
一、PariSupCon
论文地址:ReadPaperhttps://readpaper.com/pdf-annotate/note?noteId=674471725467123712&pdfId=4558702641194999809 代码地址:PairSupCon
本文是对sbert的"简单改进"。算法结构上没有太多的新的东西,主要的点是损失函数的设计。在模型结构上,使用的是sbert相同的结构,损失函数的选择是实例识别的对比函数加上普通的分类损失函数。还有一点细节就是负样本中加入了困难程度权重。
模型结构:
损失函数:
其中包含了分类损失(左边),对比损失(右边)。
分类损失:
困难样本权重的对比损失:
实验:
model | 准确率 | 精确率 | 召回率 | F1 |
bi-encoder | 87.56% | 92.88% | 85.56% | 89.07% |
pairsupcon | 88.26% | 89.21% | 91.23% | 90.21% |
模型:tuhailong/PairSupCon-roberta-wwm-ext · Hugging FaceWe’re on a journey to advance and democratize artificial intelligence through open source and open science.https://huggingface.co/tuhailong/PairSupCon-roberta-wwm-ext 该方法对比bi-encoder的方法,在准确率相近的情况下,F1值高了一个点,可以作为向量表示的方法代替bi-encoder。
二、VaSCL
论文地址:ReadPaperhttps://readpaper.com/pdf-annotate/note?noteId=635747223384444928&pdfId=4551519301694136321 代码地址:VaSCL
本文是对SimCSE的"简单改进"。在SimCSE基于Dropout的对比损失的基础上,加入了虚拟增强对比损失,通过使用加入高斯噪声获得虚拟样本,而困难负样本则使用batch中k近邻的负样本;正样本的选择也尽量做到困难,选取可以使增强样本与源正样本距离最大化的高斯噪声进行虚拟增强。
损失函数:
对比损失部分:
选取相关噪声构造困难样本:
三、Trans-Encoder
论文地址:ReadPaperhttps://readpaper.com/pdf-annotate/note?noteId=677106246942351360&pdfId=4552127588902903809 代码地址:Trans-Encoder
本文结合自监督学习和知识蒸馏,首先bi-encoder作为教师模型蒸馏学习一个cross-encoder模型,再反过来利用cross-encoder蒸馏学习一个bi-encoder。
模型结构:
自蒸馏:
相互蒸馏:
这种左脚踩右脚的方式真的能有效吗?在两个教师模型效果都不太理想时,学生模型的误差会不会累积?能否使用大模型的bi-encoder和小模型的cross-encoder进行学习,这样的效果会不会更好?因为数据是无监督的,所以只能使用bi-encoder作为第一任老师,能不能在有监督的数据下,使用cross-encoder作为第一任老师?有时间把实验做一下再来讨论吧。