2017-08-15 142 views
0

餘弦相似度是根據對問題的回答決定2個用戶是否相似的好方法嗎?用戶推薦的餘弦相似度

我試圖讓用戶回答10個問題並解決對整數的10維向量的響應。然後,我計劃使用餘弦相似度來查找類似的用戶。

我考慮將每個問題解決爲一個整數並對整數進行求和以將每個用戶解析爲一個整數,但是這種方法的問題在於相似性度量不是問題特定的:換句話說,如果用戶給出問題1的答案解決爲5,問題2的答案解決爲0,另一個用戶回答問題1 0和問題2 5,兩個用戶「總計爲5」,但回答每個問題從根本上不同。

那麼餘弦相似度是否會根據每個屬性給出一個很好的相似度量度?

回答

1

將每個用戶的所有整數求和爲一個整數似乎並不正確。

我覺得餘弦相似性實際上有助於在這裏作爲一個相似性度量,你可以嘗試其他人也像捷卡,歐氏,馬氏等

什麼可以幫助的背後是餘弦相似性的直覺。這個想法是,一旦你創建了10維矢量,你正在10維空間中工作。每一行都是該空間中的一個向量,因此每個分量中的數字都很重要,兩個向量之間的餘弦給出了這些向量有多好/差對齊的想法,如果它們平行並且角度爲0意味着它們轉到相同的方向,意味着組件都是成比例的,在這種情況下相似性是最大的(例如,兩個用戶在所有問題中用完全相同的數字回答)。如果組件開始不同於你的例子,用戶給出5個問題,其他給出0,則向量填充具有不同的方向,答案之間的差異越大,向量將越分離,它們之間的角度越大,這導致較低的餘弦,因此導致相似性。

還有其他類似的測量方法,正如我在上面提到的那樣,通常嘗試的一件事就是測試集中的幾項測試,並且看看哪一項更好。