推薦系統的常用演算法原理和實現

2021-07-11 03:09:21 字數 2512 閱讀 6165

推薦系統的任務就是解決,當使用者無法準確描述自己的需求時,搜尋引擎的篩選效果不佳的問題。聯絡使用者和資訊,一方面幫助使用者發現對自己有價值的資訊,另一方面讓資訊能夠展現在對他感興趣的人群中,從而實現資訊提供商與使用者的雙贏。

基於人口統計學的推薦

系統首先會根據使用者的屬性建模,比如使用者的年齡,性別,興趣等資訊。根據這些特徵計算使用者間的相似度。比如系統通過計算發現使用者a和c比較相似。就會把a喜歡的物品推薦給c。

優缺點:

基於內容的推薦

與上面的方法相類似,只不過這次的中心轉到了物品本身。使用物品本身的相似度而不是使用者的相似度。

系統首先對物品(圖中舉電影的例子)的屬性進行建模,圖中用型別作為屬性。在實際應用中,只根據型別顯然過於粗糙, 還需要考慮演員,導演等更多資訊。通過相似度計算,發現電影a和c相似度較高,因為他們都屬於愛情類。系統還會發現使用者a喜歡電影a,由此得出結論,使用者 a很可能對電影c也感興趣。於是將電影c推薦給a。

優缺點:

協同過濾

協同過濾是推薦演算法中最經典最常用的,分為基於使用者的協同過濾和基於物品的協同過濾。那麼他們和基於人口學統計的推薦和基於內容的推薦有什麼區別和聯絡呢?

基於使用者的協同過濾——基於人口統計學的推薦

基於使用者的協同過濾推薦機制和基於人口統計學的推薦機制都是計算使用者的相似度,並基於「鄰居」使用者群計算推薦,但它 們所不同的是如何計算使用者的相似度,基 於人口統計學的機制只考慮使用者本身的特徵,而基於使用者的協同過濾機制可是在使用者的歷史偏好的資料上計算使用者的相似度,它的基本假設是,喜歡類似物品的使用者 可能有相同或者相似的口味和偏好。

基於物品的協同過濾——基於內容的推薦

基於專案的協同過濾推薦和基於內容的推薦其實都是基於物品相似度**推薦,只是相似度計算的方法不一樣,前者是從使用者歷史的偏好推斷,而後者是基於物品本身的屬性特徵資訊。

協同過濾的優勢:

協同過濾的缺點:

混合推薦演算法

以上介紹的方法是推薦領域最常見的幾種方法。但是可以看出,每個方法都不是完美的。因此實際應用中都是混合使用各種推薦演算法,各取所長。我們的大量醫療資料中,也可以多考慮一下什麼情況下更適合使用哪種推薦演算法,能更好的為醫生提供診斷資訊

協同過濾推薦演算法原理和實現

找到與目標使用者興趣相似的使用者集合

找到這個集合中使用者喜歡的、並且目標使用者沒有聽說過的物品推薦給目標使用者

發現興趣相似的使用者

通常用 jaccard 公式或者余弦相似度計算兩個使用者之間的相似度。設 n(u) 為使用者 u 喜歡的物品集合,n(v) 為使用者 v 喜歡的物品集合,那麼 u 和 v 的相似度是多少呢:

jaccard 公式:

余弦相似度:

假設目前共有4個使用者: a、b、c、d;共有5個物品:a、b、c、d、e。使用者與物品的關係(使用者喜歡物品)如下圖所示:

如何一下子計算所有使用者之間的相似度呢?為計算方便,通常首先需要建立「物品—使用者」的倒排表,如下圖所示:

然後對於每個物品,喜歡他的使用者,兩兩之間相同物品加1。例如喜歡物品 a 的使用者有 a 和 b,那麼在矩陣中他們兩兩加1。如下圖所示:

計算使用者兩兩之間的相似度,上面的矩陣僅僅代表的是公式的分子部分。以余弦相似度為例,對上圖進行進一步計算:

到此,計算使用者相似度就大功告成,可以很直觀的找到與目標使用者興趣較相似的使用者。

推薦物品

首先需要從矩陣中找出與目標使用者 u 最相似的 k 個使用者,用集合 s(u, k) 表示,將 s 中使用者喜歡的物品全部提取出來,並去除 u 已經喜歡的物品。對於每個候選物品 i ,使用者 u 對它感興趣的程度用如下公式計算:

其中 rvi 表示使用者 v 對 i 的喜歡程度,在本例中都是為 1,在一些需要使用者給予評分的推薦系統中,則要代入使用者評分。

舉個例子,假設我們要給 a 推薦物品,選取 k = 3 個相似使用者,相似使用者則是:b、c、d,那麼他們喜歡過並且 a 沒有喜歡過的物品有:c、e,那麼分別計算 p(a, c) 和 p(a, e):

杏樹林研發  孫騰

推薦系統 推薦系統的常用演算法概述

前一陣子準備畢業 的開題,一直在看推薦系統相關的 對推薦系統有了乙個更加清晰和理性的認識,也對推薦演算法有了深入了解。藉此機會總結分享一下,大家多多拍磚。推薦系統的出現 隨著網際網路的發展,人們正處於乙個資訊 的時代。相比於過去的資訊匱乏,面對現階段海量的資訊資料,對資訊的篩選和過濾成為了衡量乙個系...

推薦系統的常用演算法

推薦系統的任務就是,聯絡使用者和資訊,一方面幫助使用者發現對自己有價值的資訊,另一方面讓資訊能夠展現在對他感興趣的人群中,從而實現資訊提供商與使用者的雙贏。1 基於人口統計學的推薦 根據系統使用者的基本資訊發現使用者的相關程度,然後將相似使用者喜愛的其他物品推薦給當前使用者。2 基於內容的推薦 與上...

推薦系統常用演算法

在推薦系統簡介中,我們給出了推薦系統的一般框架。很明顯,推薦方法是整個推薦系統中最核心 最關鍵的部分,很大程度上決定了推薦系統效能的優劣。目前,主要的推薦方法包括 基於內容推薦 協同過濾推薦 基於關聯規則推薦 基於效用推薦 基於知識推薦和組合推薦。一 基於內容推薦 基於內容的推薦 content b...