推薦系統的主要演算法

2021-07-23 16:28:25 字數 3273 閱讀 3179

主流的推薦系統演算法大致分為兩類:

1. 基於使用者行為資料的協同過濾演算法

2. 基於內容資料的過濾演算法

大致而言,基於內容資料的演算法適用於cold start,即使用者和專案都比較少的時候,而基於使用者行為資料的協同過濾演算法在使用者和專案較多,資料比較豐富的情況下有較高的準確率。

除此之外,還包括基於社會網路資料的推薦,基於語境(上下文)感知資料的推薦,基於心理學資料的推薦等等。

本文參考總結自:

雷建雲, 何順, and 王淑娟. 「一種改進的基於使用者專案喜好的相似度度量方法.」 中南民族大學學報 (自然科學版) 34.4 (2015).

基於專案的協同過濾推薦(item-based cf)基於這樣的假設[8]: 乙個使用者會喜歡與他之前喜歡的專案相似的專案。因此, 基於專案的協同過濾推薦關鍵在於計算物品之間的相似度。

基於使用者的協同過濾和基於專案的協同過濾統稱為基於鄰域的推薦 (nearest neighbor recommendation),也稱作基於記憶的推薦演算法(memory-based recommendation)。

基於鄰域的推薦演算法需要維護乙個使用者相似度矩陣或專案相似度矩陣, 因此對於專案的數目更新速度遠遠小於使用者數目的增長速度的情況, 宜採用基於專案的推薦演算法, 如 amazon 建立的推薦系統正是基於專案的協同過濾推薦演算法[5], 還有移動應用產品的推薦[9]。另外, 有研究表明, 基於專案的演算法一般在效能上要優於基於使用者的演算法[10]。

基於領域的推薦演算法不足之處在於資料稀疏性等問題, 難以處理大資料量下的即時結果。因此提出了基於模型的協同過濾推薦演算法。

基於模型的協同過濾推薦 (model-based cf) 是採用機器學習或資料探勘等演算法, 用訓練資料來學習識別複雜模式, 從而得到學習模型, 然後基於學習模型在資料集上進行智慧型**[12]。主要有以下模型:

對乙個給定的使用者, 推薦與他之前喜歡的專案在內容上有相似性的其他專案。

基於社會網路資料的推薦(social network-based recommendation)早先大部分是基於領域的方法。首先探索打分者的社會網路, 聚集打分者的打分來計算**打分; 然後找到打分者的鄰居。除了簡單的基於鄰域的方法,

還有許多是基於模型的推薦方法,如採用矩陣分解方法[26]、 圖模型[27], 將使用者的社會網路和使用者物品的喜好關係建模到一張圖中, 聯合基於專案的推薦和基於信任(trust-based)的推薦, 然後利用隨機遊走演算法給使用者做推薦。採用異構資料來源對使用者興趣進行建模, 從異構社會網路中學習相關性[28]。

這裡, 基於信任的推薦是將信任度引入推薦系統, 用信任度代替相似度。有許多方法可以計算使用者的 top-n信任鄰居。用乙個信任矩陣 (如 eigentrust[29])來計算 top-n 被信任的使用者, 或者啟用擴散模型(spreading activation model) [30]通過他們接收到的能量來給結點排序。

語境資訊型別包括時間、 資訊、 外界物理環境 (如天氣、溫度等)、 裝置型別、 周圍人員、 活動狀態、 目的/意圖等。

還有些系統考慮了情緒、 計算平台、 網路條件、社會網路等更為廣泛的語境。

基於人口統計學資料的推薦 (demographic-based recommendation)是根據人口統計學資料對每個使用者建立乙個使用者剖面(user profile), 系統根據使用者的剖面圖, 計算使用者間相似度, 得到當前使用者的最近鄰集, 最後系統會把基於 「鄰居」使用者群喜好的專案推薦給當前使用者。

人的心理特徵和情感因素在使用者做決策時非常重要[42-43]。人類情感、 個性及其模型已經被廣泛地在計算機上實施[44]。基於心理學資料的推薦(psychology-based recommendation)方法有情感智慧型 (emotional intelligence) [45]、 滿意度 (satisfaction) [46]、 心理作用 (psychological effects) [47]、 個性特質 (personalitybased) [48]。

值得一提的是, neflix競賽獲獎者之一就是學心理學的。

目前, 大資料通常被認為是當前傳統技術難以處理的, 這裡的傳統技術也包括傳統推薦技術。

基於大資料的推薦(big data-based recommendation)有兩個內涵: 乙個是大資料使得傳統推薦技術更加準確; 另乙個是傳統的技術已經不能滿足需求, 大資料需要新的推薦技術

大資料的**多樣, 對推薦系統而言,「大資料」包含系統可觸及到的資料, 如使用者行為資料、 社會網路資料、 人口統計學資料、 語境感知資料等。

大資料環境下的推薦是至少基於兩種型別的資料而進行的推薦。研究表明, 基於大資料的各種混合推薦演算法的推薦效果要優於單純的基於一種資料的推薦,

如將基於社會網路的推薦和協同過濾推薦結合[50], 將基於內容的推薦和協同過濾方法結合[51], 跨領域推薦[52]。

目前大多數推薦系統的評價指標有**準確度[58]、 覆蓋率、 召回率、 多樣性 [59]、 roc(receiver operating characteristic)等 [60], 文獻[61]從準確度、 多樣性、 新穎性及覆蓋率等方面進行多角度闡述, 細分為 27個評價指標, 並對各自的優缺點以及適用環境進行了深入的分析, 如表2所示。其中準確度是最重要也是最常用的推薦系統評測指標, 用來度量推薦系統**的能力。對於top-n推薦,用準確率 (precision) 和召回率 (recall) 來評測推薦系統。

從大資料的4v角度看, 主要的挑戰及未來研究方向有以下幾個方面:

- volume(資料規模)。

資料量巨大加劇了資料稀疏性問題和長尾(long tail)問題。

在推薦系統中, 可獲得的已打分數目通常遠小於需要**的打分數目。常用的資料集都非常稀疏, 當評分矩陣達到某種程度之後, 相比標準的協同過濾技術, 推薦質量會有所下降, 而且距離關係的計算代價很高, 很難實際應用到大規模評分資料上。

長尾是指那些原來不受到重視的銷量小但種類多的產品或服務由於總量巨大, 累積起來的總收益超過主流產品的現象。

- variety (資料型別多樣)。推薦系統可使用的資料複雜繁多, 如社交網路裡面的資訊、 地點位置資訊和其他上下文感知資訊都考慮進來, 不但資料量

增加, 計算複雜度亦會成倍增加。

- value (價值)。大資料本身的價值密度低, 但價值巨大。對推薦系統而言, 對使用者興趣建模, 並將使用者可能感興趣的專案推薦給他, 這裡的專案相對使用者而言, 是有價值的專案(資料)。

- velocity(時效性)。推薦系統對時效性要求較高, 想真正捕獲最優的推薦機會, 時效性非常重要。如何將海量的使用者資料應用到實時的使用者互動中以提高使用者體驗, 這就涉及到推薦系統可擴充套件性(scalability)問題。

推薦演算法 推薦系統的評估

其中 ep 是測試資料集合 rs ua i ualu lu u 待推薦的列表大小 離線測試,使用者 u在測試集中影片數量 未打分的影片數量 iu a 是 影片 a 在使用者推薦列表中的排名ap x i 1x pre dict ioni ch ange inre call i ap 2 p redi ...

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

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

推薦系統演算法

常用的推薦任務分為兩種,一種是評分 而另一種是 top n 推 薦。評分 就是給那些沒有評分的專案進行評分,主要依據目標使用者的歷史評 分行為以及相似度計算來 目標專案的分數。top n 推薦就是根據使用者的偏好給 目標使用者推薦其可能喜歡的 n 件物品。1.協同過濾演算法 協同過濾演算法可分為基於...