我正在尝试将BERT用于文档排名问题。我的任务非常简单。我必须对输入文档进行相似度排名。这里唯一的问题是我没有标签-因此更多是定性分析。
我正在尝试一堆文档表示技术-主要是word2vec,para2vec和BERT。
对于BERT,我遇到了this库。我微调了无小号伯特模型,大约有15万份文档。我将其运行了5个时期,批处理大小为16,最大序列长度为128。但是,如果比较Bert表示与word2vec表示的性能,由于某种原因,word2vec现在对我而言表现更好。对于BERT,我使用了最后四层来获取表示。
我不太确定为什么微调模型无法正常工作。我读了this篇论文,还有this的其他链接也说,当对分类任务进行微调时,BERT表现良好。但是,由于我没有标签,因此按照无纸化的方式对其进行了微调(无人监督)。
此外,我的文档的长度也相差很大。因此,我现在向他们发送明智的句子。最后,无论如何我必须对单词嵌入进行平均以得到句子嵌入。有更好的方法吗?我还读过here-可以通过多种方式对单词嵌入进行池化以获得固定的嵌入。想知道是否可以比较哪种池化技术更好?
对于更好地训练BERT或采用更好的合并方法的任何帮助,将不胜感激!
谢谢
答案 0 :(得分:0)
您可以查看此blog post:
BERT甚至有一个特殊的[CLS]令牌,其输出嵌入用于分类任务,但事实证明,对于其他任务,输入序列的嵌入效果很差。 [Reimers&Gurevych,2019]
句子-BERT ,在[Reimers&Gurevych,2019]中进行了介绍,并附带一个Python实现,旨在通过使用暹罗语和三元组网络结构来派生语义上有意义的句子嵌入来调整BERT体系结构可以使用余弦相似度进行比较