44964


Word2Vecでsimilarityの値がマイナスになるのはどうしてなのでしょうか？  
たとえば、次のコードを実行した時に、meowが-0.018となり、マイナスになっています。  
この場合100次元空間のベクトルの内積ですから、マイナスではなくてプラスになると思っています。  
今回はmeowだけでしたが、sizeのパラメーターを変更すると他のものもマイナスになったりします。

## ソースコード

[code]

    # sourcecode
    from gensim.models import Word2Vec
    sentences = [["cat", "say", "meow"],["dog","say","woof"]]
    model = word2vec.Word2Vec(sentences, min_count=1,size=100)
    print(model.wv.most_similar(positive=['cat']))
    
    # output
    [('woof', 0.12968875467777252),
    ('say', 0.06406527757644653),
    ('dog', 0.05123840644955635),
    ('meow', -0.01819145306944847)]
    
[/code]

## 参考にしたページ

ページ中部のExample  
<https://radimrehurek.com/gensim/models/word2vec.html>


CC BY-SA 4.0
2018-06-21T13:33:54.627
44961
2018-06-21T14:44:13.753
27333
question
python 機械学習 自然言語処理 word2vec
Word2Vecにおけるマイナスの概念について


今回お使いのライブラリの API
ドキュメントによると、[`most_similar()`](https://radimrehurek.com/gensim/models/keyedvectors.html#gensim.models.keyedvectors.Doc2VecKeyedVectors.most_similar)
は[コサイン尺度](https://en.wikipedia.org/wiki/Cosine_similarity)から類似度を判定するようです。コサイン尺度は
2 つのベクトルの内積と符号が同じであり、距離とは異なりマイナスにも成り得ます。特に 2 つのベクトルの成す角が鈍角のときに負値となります。


CC BY-SA 4.0
2018-06-21T14:44:13.753
44964
2018-06-21T14:44:13.753
19110
44961
answer