2016-01-22 40 views
6

我在Python中使用Doc2Vec函数gensim将文档转换为向量。如何解释gensim的Doc2Vec函数中的“size”参数?

使用

model = Doc2Vec(documents, size=100, window=8, min_count=5, workers=4)

的一个例子,我应该如何解读size参数。我知道如果我设置size = 100,输出向量的长度将为100,但这意味着什么?例如,如果我将size增加到200,有什么区别?

+1

啊,大小黑魔法! – alvas

回答

1

不同之处在于模型可以捕捉的细节。一般来说,您给Word2Vec的尺寸越多,模型越好 - 直到某个点。

通常大小在100-300之间。你总是不得不考虑更多的维度也意味着,需要更多的内存。

+0

你好,非常感谢你的评论。但是我的问题是,模型“捕获”了什么?例如,在TF模型中,如果我设置size = 100,它将返回100个最常用的单词 - 这很容易理解。但在Doc2Vec中,我并不是很了解。 – mamatv

+0

问题是,你根本无法说出更多维度会产生什么效果。你必须以不同的方式来看待它。当你有100个维度时,你只有100个变量来建模一个单词的关系。但有300个维度,你有300个。所以理论上它可以捕捉更多细节,因为它在训练过程中有更多可变因素。或简称:Tweet与Book,您会在哪里找到关于某个主题的更详细的概述? :D – Saytiras

+0

你好@Saytiras,我完全理解它:),但我的问题是,“100”是什么意思。例如,正如我所说的,在TF模型中,100表示​​文本中最常用的100个单词,所以如果将参数更改为200,则会返回200个最常出现的单词。但是在Doc2Vec中,它在技术语言中意味着什么? – mamatv

7

Word2Vec捕获字基本上意味着分布表示,多个神经元捕捉单个概念(概念可以是语音等的字义/情绪/部分),并且还单个神经元有助于多个概念

这些概念是自动学习的,并没有预先定义,因此您可以将它们视为潜在/隐藏。同样出于同样的原因,单词向量可以用于多个应用程序。

尺寸参数越多,您的神经网络表示这些概念的能力越多,但需要更多数据来训练这些向量(随机初始化)。在没有足够数量的句子/计算能力的情况下,最好保持size小。

Doc2Vec与Word2Vec相比略有不同的神经网络体系结构,但size的含义是类似的。

+0

你好,你的意思是“尺寸”是神经网络Doc2Vec中用于训练和输出矢量的神经元数量? –

+0

每层神经网络中神经元的数量将取决于体系结构,无论是DBOW还是DM。结帐(在答案中提到) – kampta