如何在doc2vec模型中使用预训练的word2vec向量?

我在尝试实现doc2vec,但我不确定如果我有预训练的word2vec向量,模型的输入应该是什么样的。

问题在于,我不确定如何理论上在doc2vec中使用预训练的word2vec向量。我设想,我可以用这些向量预填充隐藏层,其余部分用随机数填充

另一个想法是使用向量作为词的输入,而不是使用独热编码,但我不知道文档的输出向量是否会合理。

感谢您的回答!


回答:

您可能会认为Doc2Vec(即Mikolov/Le的“段落向量”算法)需要词向量作为第一步。这是普遍的看法,可能有点直观,通过类比人类学习新语言的方式:先理解较小的单位,然后再理解较大的单位,然后从较小的单位中组合出较大的意义。

但这是一个常见的误解,Doc2Vec并不这样做。

一种模式,纯PV-DBOW(gensim中的dm=0),根本不使用传统的每个词的输入向量。而且,这种模式通常是训练速度最快和表现最好的选项之一。

另一种模式,PV-DM(gensim中的dm=1,默认值)确实使用邻近的词向量,结合文档向量以一种类似于word2vec的CBOW模式的方式——但它需要的任何词向量将与文档向量同时训练。它们不是首先在一个单独的步骤中训练的,因此没有一个简单的插入点,您可以从别处提供词向量。

(您可以将跳字词训练混合到PV-DBOW中,在gensim中使用dbow_words=1,但这将从头开始以交错的、共享模型的过程训练词向量。)

在某种程度上,您可以用来自别处的词向量预先填充模型,但这不一定会改善结果:它很容易使它们的质量偏离或更糟。在一些幸运的、管理良好的情况下,它可能加速模型的收敛,或者是一种强制与早期向量集保持向量空间兼容性的方式,但没有额外的陷阱和警告,这些警告并不是原始算法的一部分,或是未经充分描述的实践。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注