昨天说到sentence embedding,今天就补了一篇BERT里面[CLS]的论文。BERT 以及ALBERT(A Lite BERT)类的预训练模型可以通过[CLS]来生成句向量,但是其效果真的好吗?
这篇笔记首发于:https://zhuanlan.zhihu.com/p/477863892
Title: Evaluation of BERT and ALBERT Sentence Embedding Performance on Downstream NLP Tasks
From: ICPR 2020
Link: https://arxiv.org/abs/2101.10642
背景
BERT 模型在训练时候,引入了一个额外的任务 next sentence prediction(NSP),所以除了token的embeddings,还可以获得句子的embedding,用[CLS]来表示。除了用这个表示,如果想获得句向量,一种可替代的方式是对句子中所有token的embedding取平均值。但这两种方式效果都不是很好。这篇论文里,作者提出两种模式,基于BERT的Sentence-BERT(SBERT)以及基于ALBERT的Sentence-ALBERT (SALBERT)。
Baseline模型 以及 Proposed model
-
[CLS] embedding
[CLS] 作为句向量的输出是最直接的方式。而且,[CLS]在微调阶段也可以继续被优化。