無論什么推薦算法,計算相似度都是避不開的,下面就總結一下已經了解的相似度計算方法。
1.余弦相似度
這個算是最常用的了,典型例子是計算文本相似度。通過計算兩個向量間的夾角,越是相似夾角度數越接近0,所計算的值也就越接近1。
但是余弦相似度只對方向敏感,對距離並不敏感。
2.歐式距離(歐幾里得距離)
就是計算空間上兩點間的距離。下圖很好體現了歐氏距離和余弦相似度的差異。
所以可以看出 歐氏距離 適用於 那些 對數值差異大小敏感的 相似度計算,
而 余弦相似度 更適用於 判別方向上的差異,而對絕對的數值不敏感的,比如 通過用戶對 內容的評分來區分興趣的相似度,修正了不同用戶之間可能存在度量標准不統一的問題(有的用戶默認高分,有的用戶默認低分,對於默認低分用戶來說7分就表示他喜歡了,而對默認高分用戶來說10分才表示喜歡)。
3.皮爾遜相關系數(PC)
其實就是 升級版的余弦相似度。
舉個例子:
用戶對內容評分,按5分制,X和Y兩個用戶對兩個內容的評分分別為(1,2)和(4,5),使用余弦相似度得到的結果是0.98,兩者極為相似。但從評分上看X似乎不喜歡2這個 內容,而Y則比較喜歡,余弦相似度對數值的不敏感導致了結果的誤差,需要修正這種不合理性就出現了調整余弦相似度,即所有維度上的數值都減去一個均值,比如X和Y的評分均值都是3,那么調整后為(-2,-1)和(1,2),再用余弦相似度計算,得到-0.8,相似度為負值並且差異不小,但顯然更加符合現實。
此外,還有
斯皮爾曼等級相關系數、平局平方差異(MSD)、Jaccard距離和Dice系數等... 不太懂,以后涉及到深處在研究哈。
(https://www.cnblogs.com/chenliyang/p/6548306.html)