【问题标题】:How many epochs should Word2Vec be trained? What is a recommended training dataset?Word2Vec 应该训练多少个 epoch?什么是推荐的训练数据集?
【发布时间】:2018-04-02 01:58:02
【问题描述】:

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

我需要运行更多的 epoch 吗?我应该使用不同的数据集吗?如何提高测试准确性?

【问题讨论】:

    标签: tensorflow word2vec


    【解决方案1】:

    数据集越大越好; text8 非常非常小——足以显示词向量的一些类比解决能力,但对于其他用途来说还不够好。

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

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

    我相信 Google 曾经发布的 300 万个预训练向量 - GoogleNews 集 - 是在价值 1000 亿字的新闻文章的语料库上训练的,但只通过了 3 次。

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

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

    【讨论】:

    • 谢谢!我会尝试更大的数据集。
    • 更大的数据集确实提高了测试的准确性。也感谢您建议将数据集和测试与主题材料相匹配。
    猜你喜欢
    • 2017-09-28
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 2012-10-09
    • 2020-01-01
    • 2018-02-25
    相关资源
    最近更新 更多