论文笔记--Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

论文笔记--Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

  • 1. 文章简介
  • 2. 文章导读
    • 2.1 概括
    • 2.2 文章重点技术
      • 2.2.1 池化层
      • 2.2.2 目标函数
  • 3. 文章亮点和不足
  • 4. 原文传送门
  • 5. References

1. 文章简介

  • 标题:Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
  • 作者:Nils Reimers, Iryna Gurevych
  • 日期:2019
  • 期刊:arxiv preprint

2. 文章导读

2.1 概括

  预训练模型已经成为当前处理NLP任务的一种新的范式,但针对文本相似度问题,传统的BERT[1]和RoBERTa[2]有效率低:BERT(RoBERTa)处理文本相似度的方法是将两个文本拼接,通过[SEP]分隔,并引入Segment embedding表示句子位置。这样的处理方法很可能会引起组合爆炸,比如10000个句子输入,要进行 ( 10000 2 ) ≈ 50 m i l l i o n \binom{10000}2\approx 50million (210000)50million次向量嵌入计算。
  一种优化方法为通过BERT计算单个句子的嵌入向量,然后计算嵌入之间的相似度。常用的方法包括采用句子中所有单词的平均嵌入或特殊token [CLS]的嵌入,但是这种方法对句子整体的表达并不好(很可能损失了一部分信息)。
  文章提出了一种基于Siamese(双塔式架构)和triplet架构的BERT训练方法,针对文本相似度分析下游任务给出了一种新的训练思路。

2.2 文章重点技术

2.2.1 池化层

  文章提出了SBERT模型,在原有的BERT/RoBERTa模型输出层后加入了一个池化层,得到输入句子的固定大小的嵌入表示。文章测试了三种池化策略:Mean, Max和CLS,发现MEAN池化的效果最好,如下表所示。
论文笔记--Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks_第1张图片

2.2.2 目标函数

  文章针对不同的数据集和下游任务,给出了三种目标函数

  • 分类目标函数:针对NLP中的分类任务,模型分别计算两个输入句子在池化层之后的嵌入,将两个句子 u , v u,v u,v结合 ∣ u − v ∣ |u-v| uv一同传入到一个线性层+softmax,得到最后的分类结果。具体公式为 o = s o f t m a x ( W t ( u

你可能感兴趣的:(论文阅读,论文阅读,bert,语言模型,transformer,nlp)