首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用新数据训练Doc2vec

用新数据训练Doc2vec
EN

Stack Overflow用户
提问于 2020-07-08 23:51:59
回答 1查看 1.1K关注 0票数 0

我有一个关于带有标签的文档的doc2vec模型。我正在继续使用model.train()来训练我的模型。新的数据也有新的标签,但是,当我在更多的文档上训练它时,新的标签不会被记录.有人知道我的问题可能是什么吗?

EN

回答 1

Stack Overflow用户

发布于 2020-07-09 18:22:58

Gensim的Doc2Vec只在学习它的tags集的同时,它还学习了独特单词的语料库词汇--在原始语料库上第一次调用.build_vocab()时。

当您使用模型不知道的单词或标记的附加示例进行培训时,这些单词或标记就会被忽略。

(可在.build_vocab(…, update=True)上扩展词汇表的Word2Vec选项从未完全应用于Doc2Vec,无论是针对tags还是针对长期的撞车虫。因此,Doc2Vec不支持它。)

请注意,如果您的目标是创建文档向量来帮助完成某些下游分类任务,那么您可能不希望提供已知的tags标签,或者至少不希望作为文档的只提供标记。

你提供给tagsDoc2Vec是它学习向量的单位。如果你有一百万个文本例子,但只有5个不同的标签,如果你把这一百万个例子输入到训练中去,每个例子只使用标签作为标签,那么模型只是在学习5个文档向量。从本质上说,这就像你只在5个大型文档上进行培训(以块形式传递),从而“总结”每个标签到向量空间中的一个点,而将标签看作覆盖不规则形状的“点云”可能更有用。

因此,您可能需要使用文档ID而不是标签。(或者,标签和文档ID。)然后,使用来自所有单个文档的许多不同的向量-而不是每个标签上的单个向量-来训练一些下游分类器或聚类器。

在这种情况下,带有新标签的文档的到来可能不需要一个完整的Doc2Vec-retraining。相反,如果新文档仍然从旧的Doc2Vec模型的推理中得到有用的向量,那么这些每个文档向量可能会充分反映新标签的文档,以便下游分类器能够学会识别它们。

然而,如果你获得了更多的训练数据,反映了所有新的词汇和词义,那么最安全的方法就是使用所有的数据从头开始对Doc2Vec模型进行再培训。简单的增量式培训,即使得到了官方支持,也有可能将那些出现在新数据中的单词/标签随意地与仅在原始数据集中训练过的单词/标签进行比对。它是交错的共同训练,和所有其他的例子一样,它把模型中的所有向量推拉成有用的相对排列。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62805326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档