关于自然语言处理:BERT系列

4次阅读

共计 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) \) 之间应该差多少。

正文完
 0