《Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks》论文阅读

文章地址:https://arxiv.org/abs/1908.10084

文章内容

  BERT和RoBERTa在一些任务中已经取得了不错的结果,但是在处理句子对相关的任务时,它们要求将2个句子一起输入到网络当中训练,而这又会导致高昂的计算代价。因此这篇论文的作者提出了Sentence-BERT(SBERT),其使孪生或三生网络架构(siamese and triplet network)生成有意义的句子嵌入,然后可用余弦相似度进行比较,由于上述网络架构是可以并行对句子进行编码的,因此可以极大地缩减句子对任务的处理时间。

文章模型

  SBERT在BERT模型的基础上添加了一个池化操作,其实这里作者总共尝试了三种方式,分别是:[CLS]、MEAN-strategy、MAX-strategy,通过实验后最好的方式为MEAN-strategy。
  作者一共设置了3种结构和目标函数。
  Classification Objective Function:分类目标函数
在这里插入图片描述
  分类架构如上所示,这里作者为了更好的学习到2个句子之间的交互,运用了以下策略:
在这里插入图片描述
损失就是常见的交叉损失熵。当然作者这里也测试了几种交互或特征融合方式的策略,结果见下图:
在这里插入图片描述

  Regression Objective Function:回归目标函数:
在这里插入图片描述
  这个就是简单地计算2个句子之间的余弦相似度,其实作者也尝试过欧式距离或者曼哈顿距离,但余弦相似度的表现结果最好。利用均方误差作为损失函数。
  Triplet Objective Function.:三生网络:这个就是给定锚点句a,正例p,负例句n,训练方式就是让a和p的距离尽可能的进,让a和n的距离尽可能的远,公式如下所示,作者这里就是简单的用欧氏距离。
在这里插入图片描述

文章总结

  对于实验和训练(维基百科、句子对分类任务)的细节不再多说,感觉这篇文章最值得借鉴的地方就是这个句子间的交互性,分类网络的那几种方式,以及回归网络的余弦相似度、各种距离等,也许可以用到其他任务当中,而且通过2个相同的编码器并行编码句子可以充分硬件,节约时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值