質問: word2vec.Word2Vec([ret], size=200, min_count=3, window=3, iter=500, seed=0 ) このようなコードを何気なく作っているのですが、なぜその値にするのかがよくわかっていません 例えばsizeは100や200という値を設定しているのを見かけるのですが、これが小さすぎたり大きすぎるとどういう問題があるのでしょうか? 意味も分からず使っている内容ばかりなので見ておくべき資料などもあれば教えて頂けたら幸いです。 宜しくお願い致します。
回答: * size これは単語ベクトルの次元数です。つまり、ニューラルネットの中間層のノード数ということでもあります。 大きすぎると効率の良いdenseな表現を学習しない、小さすぎると十分に単語の特徴を捉えられないのですが、100~500くらいの間にしておけば概ね問題ないでしょう(微妙な性能の善し悪しはありますが、測ってみないとなんともいえないレベル) * min_count=3 これは出現頻度が3以下(未満だったかもしれないが、未確認)の単語は無視するというオプションです。指定することで、ほとんど出てこない単語の処理に無駄に計算コストを食われる事態を避けられたりします。 * window これはいわゆるウィンドウサイズで(そのまま・・・)、前後n単語を見てベクトルを作る、ということです。 * iter これはニューラルネットのepoch数。 gensimの実装ならそんな突飛なパラメタはないので、仕組みを理解していれば想像でなんとなく使えると思います。 word2vecの元論文を読め! ・・・とは言いませんが、仕組みを解説している記事は検索すれば幾らでも出てくるのだから、基本的なところは把握しておきましょう。 一応わかりやすそうなものにリンクを貼っておきますが、自分で調べることが望ましいです。 絵で理解するWord2vecの仕組み Word2Vec:発明した本人も驚く単語ベクトルの驚異的な力 - DeepAge