> 文章列表 > Sentence Bert 阅读笔记

Sentence Bert 阅读笔记

Sentence Bert 阅读笔记

Sentence Bert 阅读笔记

论文

https://arxiv.org/abs/1908.10084

Supervised / Unsupervised / Semi-supervised

从训练上看,是 Supervised / Unsupervised 两种结合

Model Structure

本文提出了两个architecture,一个用于文本的分类,一个用于句子相似度的计算
Sentence Bert 阅读笔记
Sentence Bert 阅读笔记

这里的两个BERT,实际上可以理解成同一个BERT,在实现上,完全可以只实现一个。

Pooling层

一共有3种操作:

  1. 取CLS的输出
  2. 取所有token输出的平均
  3. 取每个维度上所有token的最大值

Loss Function

本文一共提出了三个 loss function

  1. Classification Objective Function. 拼接 u, v, 元素之间的差值 |u - v|,三者都是 1 * n 的,拼接之后成为 1*3n。再与一个可学习参数矩阵 Wt ∈ 3n*k 相乘,得到一个 1*k 的矩阵,其中 k 是类别数。再做 softmax ,得到最终的类别。再用 交叉熵损失函数 做优化。如图1。
  2. Regression Objective Function. 对 u, v 做 cosine 相似度计算,再将结果做MSE。
  3. Triplet Objective Function. 这个函数的训练是无监督的。不需要有 label 来做。其 X 是三个句子,包括锚定句子a,正例句子p,负例句子n。具体到情感分析上,可以是两个消极句子和一个积极句子,也可使两个积极句子和一个消极句子。经过 BERT 得到三个句向量,并最小化下面的函数。最小化下面的式子等同于希望 a 和 p 更接近,而离 n 更远。但是为了 a 离他们同样近的时候,还能够被优化,引入了 ε ,||*|| 是距离度量,文中采用的距离度量是欧氏距离,并且 ε 为1。
    Sentence Bert 阅读笔记

拓展

Sentence GPT
Sentence Bert 阅读笔记

在12层的时候,SGPT 125M 的性能和 SBERT 110M 比较接近,在24层之后,SGPT 1.3B 的性能优于 SBERT 340M 。