记录学习BERT和相干模型的过程中参考的材料

sentence-bert

  • 介绍sentence-bert的视频 & 对应的文章

1. 指标:升高文本语义类似度的计算开销。
BERT和RoBerta能够承受两个句子同时做为输出,输入他们的类似度值。然而在一些业务场景中下面的计算耗时较大,并不实用,因而作者对预训练的BERT进行改良。

2. 模型
取得句子向量的三种形式

  • 应用 [cls] 地位的输入
  • 计算所有token的mean/max pooling 的后果

模型构造

孪生网络和三胞胎网络的背景常识

孪生网络:共享参数的两个神经网络。(每次是两个输出通过同一个网路)

损失函数

$$L = (1-Y)\frac{1}{2}(D_w)^2+Y\frac{1}{2}{max(0, m-D_w)}^2$$

  • \( D_w \)被定义为两个输出之间的欧式间隔。计算公式如下:

    $$D_w = \sqrt{\{G_w(X_1)-G_w(X_2)\}^2}$$

  • \( G_w(x) \)是网络对输出数据的编码
  • \( Y \) 的值为0或者1。如果\(X_1\) 和 \(X_2\) 是同一类样本,则\( Y=0 \),否则\( Y=1 \)
  • \( m \)是边际价值。即当\( Y=1 \),如果 \( X_1 \)与\( X_2 \)之间间隔大于\( m \),则不做优化(省时省力);如果\( X_1 \)与\( X_2 \)之间的间隔小于m,则调整参数使其间隔增大到

三胞胎网络

三个输出:一个正例 + 两个负例,或一个负例 + 两个正例。训练的指标依然是让雷同类别间的间隔尽可能小,不同类别间的间隔尽可能大

损失函数:

$$L = max(d(a, p)- d(a, n)+margin, 0)$$

  • p 示意正样本
  • n 示意负样本
  • \( d(a,n) \)示意a和n的间隔

心愿a和p之间的间隔小于a和n之间的间隔。margin是超参数,示意\( d(a,p) \) 和\( d(a, n) \) 之间应该差多少。