推薦系統中常見的幾種相似度計算方法和其適用資料

2021-07-04 21:35:32 字數 1069 閱讀 7753

在推薦系統中,相似度的計算是乙個很重要的課題。而相似度的計算方法多種多樣,今天我們來把這些方法比較一下,也為以後做專案留個筆記。其實無論是基於user的cf還是基於item的cf,亦或是基於svd的推薦,相似度計算都是必不可少的一步,只不過cf中計算相似度是乙個中間步驟,而svd中的計算是放在最後面的(例如計算最後的余弦夾角)。這篇文章我們以item-cf來舉例說明。

共現次數

評價:這是最粗略的一種計算相似度的方法,只需計算待推薦物品與使用者之前所選物品之間的共現次數,這個共現次數是從所有使用者的角度看的。

適用資料:適合使用者有explicit feedback,即使用者對物品有評分情況的資料或者是沒有explicit feedback的user-item的(1,0)矩陣。

余弦相似度

評價:這是使用最多一種相似度計算方法。如下所示:

n(i)∩n(j)為物品i和j同是出現的情況。當然,這個計算方法頁遊很多變種,例如當我們考慮到使用者活躍度問題的時候,我們會加乙個修正項在裡面,這樣我們就突出了非活躍使用者對於物品相似度的影響。

適用資料:多使用在implicit feedback中,不知道使用者對物品的具體評分,只有user-item的(1,0)矩陣。

pearson相關係數

評價:也是比較常用的一種方法,跟余弦相似度的使用頻度不相上下。皮爾遜相關係數一般用於計算兩個定距變數間聯絡的緊密程度,它的取值在 [-1,+1] 之間。

適用資料:多使用在有explicit feedback中,有具體評分的時候。

以上也是我在工程中常使用的方法。像歐幾里得距離、jaccard 係數等也有很多文獻中提到,被運用於相似度計算中。

從演算法的角度來說,沒有什麼最優的相似度計算方法,這還是要根據自己的資料情況來做出選擇。其實根據經驗來看,不同的相似度計算方法對最後結果的影響其實是很小的,所以在選擇的時候可以優先考慮其計算時間,不必太糾結於準確度這些。另外,這裡我沒有提到資料稀疏的問題,其實在推薦中,資料稀疏是乙個幾乎必須要面對的問題,而解決這個問題不應該留到相似度計算這一步,所以這裡我將其忽略掉了。

推薦演算法中的 相似度計算

對使用者的行為進行分析得到使用者的偏好後,可以根據使用者的偏好計算相似使用者和物品,然後可以基於相似使用者或物品進行推薦。這就是協同過濾中的兩個分支了,即基於使用者的協同過濾和基於物品的協同過濾。關於相似度的計算,現有的幾種方法都是基於向量 vector 的,其實也就是計算兩個向量的距離,距離越近相...

推薦系統 余弦計算相似度度量

余弦計算相似度度量 相似度度量 similarity 即計算個體間的相似程度,相似度度量的值越小,說明個體間相似度越小,相似度的值越大說明個體差異越大。對於多個不同的文字或者短文本對話訊息要來計算他們之間的相似度如何,乙個好的做法就是將這些文字中詞語,對映到向量空間,形成文字中文字和向量資料的對映關...

推薦演算法基礎 相似度計算方法彙總

推薦系統中相似度計算可以說是基礎中的基礎了,因為基本所有的推薦演算法都是在計算相似度,使用者相似度或者物品相似度,這裡羅列一下各種相似度計算方法和適用點 similarity cos a b a b i 1 nai bi i 1n ai 2 i 1n b i 2 這個基本上是最常用的,最初用在計算文...