共计 768 个字符,预计需要花费 2 分钟才能阅读完成。
记录学习 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) \) 之间应该差多少。
正文完