5

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

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

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

我不太清楚为什么微调模型不起作用。我阅读了这篇论文,这个其他链接也表明 BERT 在针对分类任务进行微调时表现良好。然而,由于我没有标签,我对它进行了微调,就像它在论文中所做的那样——以一种无人监督的方式。

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

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

4

1 回答 1

1

您可以查看此博客文章

BERT 甚至有一个特殊的 [CLS] 标记,其输出嵌入用于分类任务,但对于其他任务,输入序列的嵌入仍然很差。[Reimers & Gurevych, 2019]

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

于 2020-07-29T09:02:18.040 回答