単語分散表現(Skipgram, CBoW)のベクトル長について

Skipgram など単語の分散表現のベクトル長について

Skipgram, CBoW などの単語分散表現は、単語をベクトル空間に配置(埋め込む)するのですが、単語同士の類似度としてはコサイン類似度が用いられます。
言い換えると、単語ベクトル同士の角度が類似度となります(類似した単語ベクトルの角度は小さくなる)。

しかし、Gensim の Word2Vec model にはベクトル .syn0 と L2norm の .syn0norm が用意されています。
この使い分けの観点は何か?という問いが stackoverflow にあり、そこから「ベクトルの長さはどういう意味を持つのか」という考察が書かれています。

「non-normalized vector と normalized vector の使い分けがわからない問題について.」
stackoverflow.com
stats.stackexchange.com

端的に言うと

ベクトル長は異なるコンテキストに出現する頻度を反映している。 - 異なるコンテキストに何回も出現する単語は短いベクトルとなる - 少ない出現頻度の言葉は長いベクトルとなる

ということで、これは何を意味しているかと言うと、

単語ベクトルの方向が意味を捉えているだけでなく、長さも重要な情報を持っている。 特に、べクトルの長さは単語の出現頻度を内包しており、単語の重要度を測るのに有用である。

ということになります。
詳細はこの論文*1に詳しいですが、この単語出現数とベクトル長のプロットを見ると

単語出現数に対して、ベクトル長は短い間隔となり出現数が増えると共に徐々に上昇する、30 回以上の出現数でその傾向は減少傾向に転じる.

となっており、それに対して著者はこのような考察をしています。

単語出現数に対して、ベクトル長は短い間隔となり出現数が増えると共に徐々に上昇する、30 回以上の出現数でその傾向は減少傾向に転じる。 少ない出現頻度の言葉は首尾一貫した使われ方をする傾向があり、その結果ベクトルは長くなる。 高い出現頻度の言葉はたくさんの異なるコンテキストで使われる傾向があるため、平均処理が増えるだけ短いベクトルとなる。 この傾向は図が明確に示している。

単語が異なるコンテキストに出現したとき、ベクトルは異なる方向に動くように更新される。 従って、最終的なベクトルは異なるコンテキストでの重み付きの平均を表現したものとなる。 このように異なるコンテキストに出現する回数が増えれば、ベクトルは平均処理される回数が増えることから短くなる。 異なるコンテキストに何回も出現する単語は、少ない意味を内包するに違いない…という仮説になる。 一番良い例としては様々なコンテキストで無差別に出現するストップワードで、これらは出現頻度の割に、短いベクトル表現となる。

以上、Skipgram、CBoW など単語分散表現のベクトル長の意味についての考察でした。

*1:Measuring Word Significance using Distributed Representations of Words by Adriaan Schakel and Benjamin Wilson. https://arxiv.org/pdf/1508.02297.pdf