21

我正在尝试在非常短的短语(5 克)上训练 word2vec 模型。由于每个句子或示例都很短,我相信我可以使用的窗口大小最多为 2。我试图了解这么小的窗口大小对学习模型的质量有何影响,以便我能够理解我的模型是否学到了一些有意义的东西。我尝试在 5-gram 上训练 word2vec 模型,但看起来学习的模型不能很好地捕捉语义等。

我正在使用以下测试来评估模型的准确性: https ://code.google.com/p/word2vec/source/browse/trunk/questions-words.txt

我使用 gensim.Word2Vec 来训练模型,这是我的准确度分数的片段(使用 2 的窗口大小)

[{'correct': 2, 'incorrect': 304, 'section': 'capital-common-countries'},
 {'correct': 2, 'incorrect': 453, 'section': 'capital-world'},
 {'correct': 0, 'incorrect': 86, 'section': 'currency'},
 {'correct': 2, 'incorrect': 703, 'section': 'city-in-state'},
 {'correct': 123, 'incorrect': 183, 'section': 'family'},
 {'correct': 21, 'incorrect': 791, 'section': 'gram1-adjective-to-adverb'},
 {'correct': 8, 'incorrect': 544, 'section': 'gram2-opposite'},
 {'correct': 284, 'incorrect': 976, 'section': 'gram3-comparative'},
 {'correct': 67, 'incorrect': 863, 'section': 'gram4-superlative'},
 {'correct': 41, 'incorrect': 951, 'section': 'gram5-present-participle'},
 {'correct': 6, 'incorrect': 1089, 'section': 'gram6-nationality-adjective'},
 {'correct': 171, 'incorrect': 1389, 'section': 'gram7-past-tense'},
 {'correct': 56, 'incorrect': 936, 'section': 'gram8-plural'},
 {'correct': 52, 'incorrect': 705, 'section': 'gram9-plural-verbs'},
 {'correct': 835, 'incorrect': 9973, 'section': 'total'}]

我还尝试运行此处概述的 demo-word-accuracy.sh 脚本,窗口大小为 2,但准确性也很差:

Sample output:
    capital-common-countries:
    ACCURACY TOP1: 19.37 %  (98 / 506)
    Total accuracy: 19.37 %   Semantic accuracy: 19.37 %   Syntactic accuracy: -nan % 
    capital-world:
    ACCURACY TOP1: 10.26 %  (149 / 1452)
    Total accuracy: 12.61 %   Semantic accuracy: 12.61 %   Syntactic accuracy: -nan % 
    currency:
    ACCURACY TOP1: 6.34 %  (17 / 268)
    Total accuracy: 11.86 %   Semantic accuracy: 11.86 %   Syntactic accuracy: -nan % 
    city-in-state:
    ACCURACY TOP1: 11.78 %  (185 / 1571)
    Total accuracy: 11.83 %   Semantic accuracy: 11.83 %   Syntactic accuracy: -nan % 
    family:
    ACCURACY TOP1: 57.19 %  (175 / 306)
    Total accuracy: 15.21 %   Semantic accuracy: 15.21 %   Syntactic accuracy: -nan % 
    gram1-adjective-to-adverb:
    ACCURACY TOP1: 6.48 %  (49 / 756)
    Total accuracy: 13.85 %   Semantic accuracy: 15.21 %   Syntactic accuracy: 6.48 % 
    gram2-opposite:
    ACCURACY TOP1: 17.97 %  (55 / 306)
    Total accuracy: 14.09 %   Semantic accuracy: 15.21 %   Syntactic accuracy: 9.79 % 
    gram3-comparative:
    ACCURACY TOP1: 34.68 %  (437 / 1260)
    Total accuracy: 18.13 %   Semantic accuracy: 15.21 %   Syntactic accuracy: 23.30 % 
    gram4-superlative:
    ACCURACY TOP1: 14.82 %  (75 / 506)
    Total accuracy: 17.89 %   Semantic accuracy: 15.21 %   Syntactic accuracy: 21.78 % 
    gram5-present-participle:
    ACCURACY TOP1: 19.96 %  (198 / 992)
    Total accuracy: 18.15 %   Semantic accuracy: 15.21 %   Syntactic accuracy: 21.31 % 
    gram6-nationality-adjective:
    ACCURACY TOP1: 35.81 %  (491 / 1371)
    Total accuracy: 20.76 %   Semantic accuracy: 15.21 %   Syntactic accuracy: 25.14 % 
    gram7-past-tense:
    ACCURACY TOP1: 19.67 %  (262 / 1332)
    Total accuracy: 20.62 %   Semantic accuracy: 15.21 %   Syntactic accuracy: 24.02 % 
    gram8-plural:
    ACCURACY TOP1: 35.38 %  (351 / 992)
    Total accuracy: 21.88 %   Semantic accuracy: 15.21 %   Syntactic accuracy: 25.52 % 
    gram9-plural-verbs:
    ACCURACY TOP1: 20.00 %  (130 / 650)
    Total accuracy: 21.78 %   Semantic accuracy: 15.21 %   Syntactic accuracy: 25.08 % 
    Questions seen / total: 12268 19544   62.77 % 

然而 word2vec 网站声称它可以在这些任务上获得约 60% 的准确度。因此,我想深入了解这些超参数(如窗口大小)的影响以及它们如何影响学习模型的质量。

4

2 回答 2

41

类比问题的分数非常低更有可能是由于训练数据的数量或质量的限制,而不是参数失调。(如果你的训练短语真的每个只有 5 个单词,它们可能无法捕捉到从完整句子数据集中发现的丰富关系。)

您可以在您的短语上使用 5 个窗口 - 训练代码将窗口修剪为任一侧可用的内容 - 但是每个短语的每个单词都会影响所有其他单词。这可能没问题:Google word2vec 的一篇论文(“Distributed Representations of Words and Phrases and their Compositionality”,https://arxiv.org/abs/1310.4546)提到要在他们的一个短语任务中获得最佳准确性,他们使用“整个句子作为上下文”。(另一方面,在一个英语短消息语料库中,我发现只有 2 个窗口大小创建了在类比评估中得分最高的向量,因此越大不一定越好。)

Levy & Goldberg 的一篇论文“Dependency-Based Word Embeddings”谈到了窗口大小的定性影响:

https://levyomer.files.wordpress.com/2014/04/dependency-based-word-embeddings-acl-2014.pdf

他们发现:

较大的窗口倾向于捕获更多的主题/领域信息:在相关讨论中还使用了哪些其他词(任何类型)?较小的窗口倾向于捕捉更多关于单词本身的信息:还有哪些单词在功能上相似?(他们自己的扩展,基于依赖的嵌入,似乎最擅长找到最相似的词、同义词或明显的替代词,这些词可以作为原始词的替代品。)

于 2015-05-26T00:35:32.140 回答
13

对于您的问题:“我试图了解如此小的窗口大小对学习模型的质量有何影响”。

例如“stackoverflow great website for programs”有 5 个词(假设我们在这里保存停用词 great 和 for)如果窗口大小为 2,那么词“stackoverflow”的向量直接受词“great”和“website”的影响",如果窗口大小为 5 "stackoverflow" 可以直接受两个词 "for" 和 "programmers" 的影响。这里的“受影响”意味着它将两个词的向量拉得更近。

因此,这取决于您用于训练的材料,如果窗口大小为 2 可以捕捉到单词的上下文,但选择 5,则会降低学习模型的质量,反之亦然。

于 2014-03-11T02:09:27.033 回答