我正在使用deeplearning4j java库来构建维度100的段落矢量模型(doc2vec)。我正在使用文本文件。它有大约1700万行,文件大小为330 MB。我可以训练……
我不熟悉dl4j实现,但模型大小由唯一字向量/ doc向量的数量和所选向量大小决定。
(330MB / 17百万)意味着你的每个文件平均只有20个字节 - 非常小 Doc2Vec !
Doc2Vec
但是,例如,如果您正在为每个doc培训300维doc文档,并且每个维度(通常)是4字节的浮点数,则(1700万* 300 dims * 4字节/ dim)= 20.4GB 。然后会有更多的空间用于单词向量和模型内部权重/词汇/等,所以你报告的存储大小并不难以置信。
根据您所描述的尺寸,过度拟合的风险也很大 - 如果使用300维,您可以将< 20字节源材料的文档建模为(300 * 4 =)1200字节的doc-vectors。
在某种程度上,这使得模型倾向于一个巨大的,记忆输入的查找表,因此不太可能捕获有助于理解培训文档或新文档的可推广模式。有效的学习通常看起来有点像压缩:将源材料建模为更小但更突出的东西。