TRANS-ENCODER: UNSUPERVISED SENTENCE-PAIR MODELLING THROUGH SELF- AND MUTUAL-DISTILLATIONS
GitHub
论文目的
sentence similarity and paraphrase identification 两句话进行对比有两种常见的方法: bi-encoders and cross-encoders。Bi-encoders产生固定维度的句子表达,效果不如cross-encoders好,cross-encoders句子内产生交互,效果好,但需要微调,且计算昂贵。本论文提出一种无监督的句子对模型 TRANS-ENCODER,结合两种学习框架,同时学习增强的bi-encoders and cross-encoders。在PLM上,首先转换为无监督的bi-encoders,然后在bi-encoders and cross-encoders之间转换。在迭代中,会使用当前框架产生伪标签,该伪标签用于另外一个框架的学习。并提出一个扩展(自蒸馏),在多个PLMs中并行的利用他们的伪标签进行相互蒸馏。比Mirror-Bert和SimCSE效果好。
相关工作
- cross-encoder:bert、Roberta
- bi-encoder:S-bert
TRANS-ENCODER
TRANSFORM PLMS INTO EFFECTIVE BI-ENCODERS
使用SimCSE(Mirror-Bert)作为训练bi-encoder的开始(无监督、对比学习),当然任何对比学习方法都可以作为开始
SELF-DISTILLATION: BI- TO CROSS-ENCODER
两句话(sent1,sent2)输入上述训练好的bi-encoder模型,得到相似度(sent1,sent2,score)
使用cross-encoder从上述数据中继续学习,cross-encoder使用原始PLM的权重(后面会有对比试验)。cross-encoder的输入是 “[CLS] sent1 [SEP] sent2 [SEP]”,使用KL散度来计算预测分数和真实分数之间的损失
L B C E = − 1 N ∑ n = 1 N ( y n log σ ( x n ) + ( 1 − y n ) log ( 1 − σ ( x n ) ) ) L_{BCE}=-\frac{1}{N}\sum_{n=1}^N(y_n\log \sigma (x_n)+(1-y_n)\log (1-\sigma (x_n))) LB