2017-06-03 96 views
0

我在gensim中使用Doc2Vec.docvecs.similarity()計算了文檔的相似度。現在,如果gensim使用餘弦的絕對值作爲相似度度量,或者如果不使用餘弦度量的話,其中大約一半爲負值,那麼我希望餘弦相似度位於[0.0,1.0]的範圍內。爲什麼gensim doc2vec中單詞或文檔向量之間幾乎所有的餘弦相似性都是正的?

但是,我所看到的是一些相似性是否定的,但它們非常罕見 - 小於我在30000套文檔中兩兩相似之處的1%。

爲什麼幾乎所有的相似性都是正面的?

回答

0

在Word2Vec/Doc2Vec中沒有內在的保證,即生成的向量集圍繞原點對稱分佈。它們可能在某些方向上不成比例,這會產生你所看到的結果。

在一些測試中,我只是對玩具大小的數據集做的捆綁gensim docs/notebooks/doc2vec-lee.ipynb筆記本使用,檢查對第一個文件的所有文件的餘弦相似(「李文集」),它隱約似乎:

  1. 使用分層SOFTMAX而不是負採樣(hs=1, negative=0)產生> 0.0和< 0.0餘弦相似性更接近到(但尚未完全)各半
  2. 使用較小數目之間的平衡負面樣本(如negative=1)會產生更均衡的結果;使用較大數目(例如negative=10)產生相對更> 0.0餘弦相似性

雖然不是結論性的,這是輕度暗示該矢量的排列可以由negative參數的影響。具體而言,典型的負採樣參數(例如默認negative=5),平均詞將被訓練更多次作爲非目標,而不是正目標。那可能會在一個方向上推動最終座標的優勢。 (在更大的數據集和模式下進行更多測試,以及更多關於模型設置如何影響最終向量位置的分析,將有必要對此想法有更多的信心。)

如果由於某種原因,您希望更均衡地安排向量,你可以考慮改變他們的立場,後期訓練。

有一個有趣的最近的一篇文章中word2vec空間,"All-but-the-Top: Simple and Effective Postprocessing for Word Representations",發現那臺訓練的字載體不一定有0幅度均值 - 他們平均從原點的一個方向。此外,本文報道減去共同平均值(以「重新集中」該集合),並且還去除一些其他主導方向,可以改善向量對於某些任務的有用性。直覺上,我懷疑這種'全部頂部'的轉換可能會增加結果向量中的區別'對比'。

爲DOC的載體類似的過程威力收率類似的好處 - 和將可能使全套餘弦相似性,任何文檔向量,> 0.0和< 0.0值之間更加平衡。

相關問題