我正在尝试获取Bert的句子嵌入,但是我不确定我是否能正确执行...是的,我知道已经存在诸如bert-as-service之类的工具,但是我想亲自完成并了解如何可以。
让我们说我想从下面的句子“我是”中的词嵌入中提取一个句子嵌入。据我了解,Bert输出的格式为(12,seq_lenght,768)。我从最后一个编码器层提取了嵌入的每个单词,形式为(1,768)。我的疑问现在在于从这两个词向量中提取句子。如果我有(2,768),我应该将dim = 1求和并获得(1,768)的向量吗?或者,可以将两个单词(1,1536)连接起来,并应用(mean)合并,以(1,768)的形式获得句子矢量。我不确定该给定示例的正确方法是获取句子向量。
答案 0 :(得分:2)
据我所知,BERT在其源代码中有一条注释行:
对于分类任务,第一个向量(对应于
[CLS]
)用作“句子向量”。请注意,这仅是有意义的,因为整个模型都经过了微调。
[CLS]
由BERT提供,用于句子嵌入,无需对句子中所有单词向量进行任何组合或处理。
希望有帮助。