我正在尝试在非常短的短语(5克)上训练Word2Vec模型。由于每个句子或示例都很短,我相信我可以使用的窗口大小可以是2。我试图了解如此小的窗口大小的含义对学识渊博的模型的质量有何影响,以便我可以理解我的模型是否学到了有意义的东西。我尝试在5克上训练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'}]
我还尝试运行以下窗口大小为2的shs脚本,并且准确性也很差:
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 %
但是,该词2VEC站点声称可以在这些任务上获得约60%的准确性。因此,我想对这些超参数(如窗口尺寸及其如何影响学习模型的质量)的影响获得一些见解。
类比问题上的得分很低,因此很可能是由于训练数据的数量或质量的限制,而不是误以为参数。(如果您的培训短语实际上只有5个单词,则它们可能不会捕获带有完整句子的数据集所能发现的丰富关系。)
您可以在短语上使用5个窗口 - 训练代码将窗口缩小到两侧可用的窗口 - 但是每个短语的每个单词都会影响所有其他单词。可能没关系:Google Word2Vec论文之一(单词和短语的分布式表示以及他们的构图"&quot",https://arxiv.org/abs/1310.4546)提到要在其一项短语任务中获得最佳准确性,他们将"整个句子都用于上下文"。(另一方面,在一条短信的一个英文语料库上,我发现只有2个窗口大小创建了在类比评估上得分最高的向量,所以更大的不一定更好。)
Levy&Goldberg,"基于依赖关系的单词嵌入"有点说明窗口大小的定性效果:
https://levyomer.files.wordpress.com/2014/04/deppentency astementy-word-embeddings-acl-2014.pdf
他们发现:
较大的窗口倾向于捕获更多的主题/域信息:相关讨论中使用了哪些其他单词(任何类型的)?较小的窗口倾向于捕获更多有关单词本身的信息:其他哪些单词在功能上相似?(它们自己的扩展是基于依赖关系的嵌入,似乎最好找到最相似的单词,同义词或明显的偏置,这些单词可能会替换为原始单词的替代。)
到您的问题:"我试图理解如此小的窗口大小对学到的模型的质量的含义"。
例如,带有5个单词的" Stackoverflow出色的网站"如果窗口大小为2,则单词" stackoverflow"的向量直接受" great"one_answers" weblot"一词的影响,如果窗口大小为5" stackoverflow",则可以直接受两个单词的影响"one_answers"。程序员"。这里的"受影响"意味着它将将两个单词的向量拉近。
因此,这取决于您使用的材料进行培训,如果2的窗口大小可以捕获单词的上下文,但选择了5个,它将降低学习模型的质量,反之亦然。