应该训练Word2Vec多少个时代?什么是推荐的培训数据集?

时间:2017-10-20 20:25:32

标签: tensorflow word2vec

我正在使用TensorFlow教程学习Word2Vec。我为Word2Vec运行的代码也来自TensorFlow教程:https://github.com/tensorflow/models/blob/master/tutorials/embedding/word2vec_optimized.py。当我运行15个时代的代码时,测试精度约为30%。当我跑100个时代时,测试精度达到了39%左右。我使用Text8数据集进行训练,使用questions-words.txt进行评估。

我需要竞选更多时代吗?我应该使用不同的数据集吗?如何提高测试准确度?

1 个答案:

答案 0 :(得分:2)

更大的数据集更好; text8非常非常小 - 足以显示字向量的一些类比解决能力,但不足以用于其他目的。

更多的迭代可能有助于从较小的数据集中挤出略强的向量,但收益递减。 (在弱数据集上没有多次额外迭代可以提取相同的丰富的相互关系,而更大,更多样的语料库可以提供。)

如果我没记错的话,来自同一来源的相关text9相差10倍。使用它可能会获得更好的评估结果,而不是在text8上进行10倍以上的迭代。

我相信谷歌曾经发布的300万预训练载体 - GoogleNews集 - 在一个价值1000亿字的新闻文章的语料库中训练,但只有3遍。

请注意,单词矢量质量没有单一的标准:questions-words.txt类比解决只是一个方便的评估,但最好的单词矢量可能不适合您自己的特定领域分析。同样地,在文本的一个领域上训练的单词向量,比如新闻文章中的GoogleNews集合,与可以更好地匹配您的领域的文本相比可能表现不佳(可能是论坛帖子,科学文章等等 - 它们都使用不同的不同方式的话)。

因此,通常最好使用您自己的语料库,以及您自己的目标特定的定量评估,以帮助调整语料库/参数选择。