天天看點

三種推薦算法簡介:基于使用者的協同過濾、基于物品的協同過濾、基于内容的推薦1.推薦算法

1.推薦算法

1.1.協同過濾

協同過濾是目前應用最廣泛的推薦算法,它僅僅通過了解使用者與物品之間的關系進行推薦,而根本不會考慮到物品本身的屬性。

可分成兩類:

1、基于使用者(user-based)的協同過濾

2、基于商品(item-based)的協同過濾

1.1.1.基于使用者的協同過濾

基本思想:

基于使用者對物品的偏好找到鄰居使用者(相似使用者),然後将鄰居使用者(相似使用者)喜歡的東西推薦給目前使用者。

計算方法:

将一個使用者對所有物品的偏好作為一個向量,計算使用者之間的相似度。找到鄰居後,根據鄰居的相似度權重以及他們對物品的偏好,預測目前使用者未涉及的物品,計算得到一個排序的物品清單作為推薦。

相似度即為兩個向量之間的距離。距離越小相似度越大。

例子:

如下圖,使用者A與使用者C相似,那麼就會給使用者A推薦“使用者A未涉及但是使用者C喜歡的東西”,也就是物品D了。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-2skNr3nb-1576912472052)(http://www.shadowingszy.top/ServerTest/Assets/01.png)]

缺點:

基于使用者的協同過濾難以形成有意義的鄰居集合。

在很多時候,很多使用者兩兩之間隻有很少幾個共同評分,也就是使用者之間的重合度并不高。而僅有的共同打了分的物品,往往是一些很常見的物品(如票房大片,如生活必需品)。

再者,使用者之間的距離可能變得很快,這種離線算法難以瞬間更新推薦結果。

1.1.2.基于物品的協同過濾

算法思想:

基于使用者對物品的偏好找到相似的物品,然後根據使用者的曆史偏好,推薦相似的物品。

計算方法:

将所有使用者對某個物品的偏好作為一個向量來計算物品之間的相似度。

得到物品的相似物品後,根據使用者曆史的偏好預測目前使用者還沒有涉及的物品的偏好,計算得到一個排序的物品清單作為推薦。

例子:

如下圖,物品A和物品C都被使用者A和使用者B所檢視,是以物品A和物品C比較相似。又由于使用者C看了物品A,是以我們就會推薦與之相似的物品C給使用者C。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-ZbfJp0qv-1576912472054)(http://www.shadowingszy.top/ServerTest/Assets/02.png)]

優點:

物品之間的距離可能是根據成百上千萬的使用者的評分計算得出,往往能在一段時間内保持穩定。是以,這種算法可以預先計算距離,其線上部分能更快地生産推薦清單。

缺點:

不同領域的最熱門物品之間經常具有較高的相似度。比如,基于本算法,我們可能會給喜歡《算法導論》的同學推薦《哈利波特》,也就是推薦不同領域的暢銷作品,這樣的推薦結果可能并不是我們想要的。

1.1.3.實作協同過濾的步驟

1、收集使用者偏好

2、找到相似的使用者或物品

計算相似度的方式(此部分了解方法即可,考試時并不會要求直接計算):

(1)歐氏距離

(2)餘弦距離

(3)Tanimoto 系數

(4)k近鄰或基于相似度門檻

3、計算推薦

額外考慮時間因素:

1、在基于商品的協同過濾中:

(1)同一個使用者在間隔很短的時間内喜歡的兩件商品之間,可以給予更高的相似度。

(2)在描述目标使用者偏好時,給其最近喜歡的商品較高權重。

2、在基于使用者的協同過濾中:

(1)如果兩個使用者同時喜歡了相同的物品,那麼可以給這兩個使用者更高的相似度。

(2)在描述鄰居使用者的偏好時,給其最近喜歡的物品較高權重。

額外考慮空間因素:

1、在基于商品的協同過濾中:

(1)同一個使用者在同一個地域内喜歡的兩件商品之間,可以給予更高的相似度。

2、在基于使用者的協同過濾中:

(2)把類似地域使用者的行為作為推薦的主要依據。

1.2.基于内容的推薦

基本思想:

根據推薦物品或内容的中繼資料,發現物品或者内容的相關性,然後基于使用者以往的喜好記錄,推薦給使用者相似的物品。

例子:

如下圖,電影A和C的類型都是愛情和浪漫,那麼就會給看過電影A的人推薦電影C

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-pzVoocMa-1576912472055)(http://www.shadowingszy.top/ServerTest/Assets/03.png)]

1.3.三種推薦算法的差別

基于使用者的協同過濾:

适于物品比使用者多、物品時效性較強的情形,否則計算慢。

推薦結果的個性化較弱、較寬泛,但能實作跨領域、驚喜度高的結果。

基于物品的協同過濾:

應用最廣泛,尤其以電商行業為典型。

适于使用者多、物品少的情形,否則計算慢

在物品冷啟動、資料稀疏時效果不佳

推薦精度高,更具個性化

傾向于推薦同類商品,推薦的多樣性不足,形成資訊閉環

基于内容的推薦:

是最直覺的算法

容易受限于對文本、圖像、音視訊的内容進行描述的詳細程度

常借助文本相似度計算

不存在冷啟動問題

但推薦精度通常墊底

主題過于集中,驚喜度不足

繼續閱讀