14

gensim word2vec の 2 つの類似度測定値の違いを知りたかった: most_similar() と most_similar_cosmul()。最初のものは単語ベクトルの余弦類似度を使用して機能するのに対し、他のものは Omer Levy と Yoav Goldberg によって提案された乗法結合目的を使用することを知っています。それが結果にどのように影響するか知りたいですか?意味的な類似性を与えるのはどれですか? など。例:

model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)
model.most_similar(positive=['woman', 'king'], negative=['man'])               

結果: [('queen', 0.50882536), ...]

model.most_similar_cosmul(positive=['baghdad', 'england'], negative=['london'])

結果 : [(u'iraq', 0.8488819003105164), ...]

4

1 に答える 1

17

Levy と Goldberg の論文から、類推を見つけようとしている場合 (または 2 つ以上の単語ベクトルを結合/比較している場合)、最初の方法 (論文の3CosAddまたは eq.3) は、1 つの比較によって支配される可能性が高くなります。 2番目の方法(3CosMulまたは紙のeq.4)。

2 つの単語ベクトル間の意味的な類似性のためだけに、この方法は適用されません。

例、Google ニュース ベクトルを使用-

model.similarity('Mosul','England')
0.10051745730111421

model.similarity('Iraq','England')
0.14772211471143404

model.similarity('Mosul','Baghdad')
0.83855779792754492

model.similarity('Iraq','Baghdad')
0.67975755642668911

現在、イラクはモスル (どちらも国) よりもイギリスに近いですが、類似度の値は 0.1 程度と小さいです。

一方、モスルはイラクよりもバグダッドに似ており (地理的/文化的側面)、類似度の値は高次 ~ 0.7 です。

ここで、類推のために (イングランド - ロンドン + バグダッド = X) -

CosAddは線形和であるため、1 つの大きな類似項が式を支配することができます。各用語が類似性の異なる側面を反映しており、異なる側面には異なるスケールがあることを無視しています。

一方、 3CosMulは、小さな量の違いを増幅し、大きな量の違いを減らします。

model.most_similar(positive=['Baghdad', 'England'], negative=['London'])
(u'Mosul', 0.5630180835723877)
(u'Iraq', 0.5184929370880127)

model.most_similar_cosmul(positive=['Baghdad', 'England'], negative=['London'])
(u'Mosul', 0.8537653088569641)
(u'Iraq', 0.8507866263389587)
于 2015-07-30T10:11:30.863 に答える