BERT 的表现比 word2vec 差

use*_*951 5 machine-learning unsupervised-learning word2vec deep-learning bert-language-model

我正在尝试使用 BERT 解决文档排名问题。我的任务很简单。我必须对输入文档进行相似度排名。这里唯一的问题是我没有标签 - 所以它更像是一个定性分析。

我正在尝试一系列文档表示技术——主要是 word2vec、para2vec 和 BERT。

对于 BERT,我遇到了Hugging face - Pytorch库。我微调了 bert-base-uncased 模型,大约有 150,000 个文档。我运行了 5 个 epoch,批量大小为 16,最大序列长度为 128。但是,如果我比较 Bert 表示与 word2vec 表示的性能,出于某种原因,word2vec 现在对我来说表现更好。对于 BERT,我使用最后四层来获取表示。

我不太确定为什么微调模型不起作用。我读了这个文件,而这个其他链接也是说,BERT执行以及何时微调的分类任务。但是,由于我没有标签,因此我按照论文中的方法对其进行了微调 - 以无监督的方式。

此外,我的文件长度差异很大。所以我现在正在向他们发送明智的句子。最后,无论如何我必须对词嵌入进行平均以获得句子嵌入。关于更好方法的任何想法?我还在这里读到- 有不同的方法可以对词嵌入进行池化以获得固定的嵌入。想知道是否有比较哪种池化技术效果更好?

对更好地训练 BERT 或更好的池化方法的任何帮助将不胜感激!

Hen*_*ski 3

您可以查看这篇博文

BERT 甚至有一个特殊的 [CLS] 标记,其输出嵌入用于分类任务,但对于其他任务来说,输入序列的嵌入仍然很差。[雷默斯和古列维奇,2019]

Sentence-BERT于 [Reimers & Gurevych, 2019] 中提出并配有 Python 实现,旨在通过使用连体和三元组网络结构来调整 BERT 架构,以导出语义上有意义的句子嵌入,并可以使用余弦相似度进行比较