Doc2Vec捕获的信息是否为BERT捕获的信息的子集



Doc2Vec和BERT都是用于创建文本矢量的NLP模型。原始BERT模型保持768的向量,而原始Doc2Vec模型保持300大小的向量。假设D2V捕获的所有信息都是BERT捕获的信息的子集是否合理?

我问,因为我想思考如何比较模型之间一组句子的表征差异。我想我可以将BERT向量投影到D2V子空间,并将这些向量与同一句子的D2V向量进行比较,但这取决于我将BERT矢量投影到的子空间实际上与D2V空间相当(即,相同类型的信息(的假设。

目标函数虽然不同,但非常相似。BERT的Cloze任务和D2V的下一个单词预测都试图在单词及其周围单词之间创建关联。BERT可以双向查看,而D2V只能查看窗口并从句子的左侧移动到右侧。相同的目标函数并不一定意味着他们捕捉到了相同的信息,但D2V的方式(它使用的协变量(似乎是BERT使用的协变的子集。

想听听别人的想法。

我假设Doc2Vec是指;段落矢量";算法,通常称为Doc2Vec(包括在Python Gensim等库中(。

Doc2Vec与word2vec密切相关:它本质上是在整个文本上具有合成浮动伪词向量的word2vec。它通过一个浅层网络对文本进行建模,该网络不能真正考虑语序或单词运行的复合含义,在非常普遍的"接近"意义上除外。

因此,Doc2Vec模型不会从向量中生成真实的/语法上的补全/摘要(可能在非常有限的单个单词测试中除外(。

Doc2Vec捕获最多的信息可能在一定程度上受到参数选择的影响,尤其是模式和window的选择(在重要的模式中,如共同训练单词向量时(。

BERT是一个更深层次的模型,具有更多的内部层和更大的文本表示默认维度。它的训练机制使它有可能区分重要的语序,从而对Doc2Vec所学之外的语法和复合短语敏感。它可以生成看似合理的多词补全/总结。

你当然可以在与BERT模型相同的文本上训练768维的CCD_;比较结果。从这两个模型中得到的摘要文本向量在关键任务上的表现可能截然不同。如果你需要检测短文本中含义的细微变化——比如插入一个"不是"来逆转含义——我预计BERT模型会占主导地位(如果训练充分的话(。在对语法(如主题分类(不太敏感的更广泛的任务中,Doc2Vec模型可能具有竞争力,或者(鉴于其简单性(在用更少的数据或更快的训练实现某些目标的能力方面具有吸引力。

因此,假设Doc2Vec捕获的内容是BERT所做内容的适当子集是不恰当的。

你可以尝试学习从一个模型到另一个模型的映射(可能包括降维(,因为在训练的坐标空间之间肯定有很多一致的相关性。但是创建这种映射的行为需要开始假设某些向量";应该";排列或处于类似配置中。

如果想了解这两个选项中哪些是独特的/有价值的,最好比较一下模型对文本邻居的排名——某些相似性在其中占主导地位吗?或者,将两者都作为下游分类/信息检索任务的输入,看看它们各自的亮点。

(有了足够的数据和训练时间,我希望BERT作为更复杂的模型通常能提供更好的结果,尤其是如果它也被分配了更大的表示。但对于一些任务和有限的数据/计算/时间资源,Doc2Vec可能会大放异彩。

最新更新