记录学习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) \) 之间应该差多少。