1. 程式人生 > >推薦系統——基本概念

推薦系統——基本概念

  1. 帕洛阿爾託研究中心的Tapestry系統(Goldberg et al.1992)引入了協同過濾的思想和概念,展示瞭如何將顯示標註資料和隱式行為資料注入可查詢的資料庫中,以及使用者如何利用這些資料進行個性化過濾。
  2. Grouplens系統(Resnick et al.1994)展示了協同過濾方法既能跨網計算又能自動完成,GroupLens針對Usenet新聞訊息進行自動協同過濾。
  3. MIT的Ringo系統是針對音樂唱片和藝術家進行過濾。
  4. 貝爾通訊研究中心的視訊推薦系統(Hill et al.1995)針對影片進行過濾。

每個系統都是使用相似的自動化技術——通過演算法識別出其他有相似愛好的使用者,然後綜合他們的評分給出個性化的加權平均值。簡單的“K最近鄰”演算法非常有效,在所有協同過濾演算法中脫穎而出,很快成為黃金標準。

面向系統的探索
此階段(不僅是通過協同過濾,還有基於知識的系統,比如FindMe系統(Burke et al.1996))證明了推薦系統的可行性和效果,極大地激發了人們推動該領域在科研及商業實踐方面不斷向前發展。
這一階段的關鍵事件是1996年3月在伯克利舉辦的協同過濾專題研討會。這次集會將工作在個性化和非個性化系統、不同演算法(從統計彙總、K最近鄰到貝葉斯聚類)、不同領域的人們聚集在了一起,最後達成共識:圍繞一個主題,推薦系統展開。專題學術研討會的《ACM通訊》專刊(Resnick and Varian 1997)

快速商業化
這一時期研究工作的重點是解決技術挑戰。人們開發新的演算法以降低線上計算時間,包括沿用至今的基於物品的關聯演算法和降維方法。研究人員更感興趣的是根據對於top-n推薦列表的各種效能的度量來評價各個推薦系統。研究領域非常廣泛,包括隱式評分、新使用者和新物品的冷啟動問題以及可信度、可解釋性和透明度等使用者體驗相關問題。

推薦成為主流
推薦系統作為一門技術仍然存在,並廣泛應用在電子商務、大規模零售業和各種知識管理應用中;與此同時,來自人工智慧、資訊檢索、資料探勘、安全與隱私以及商業與營銷等各個領域的研究,都為推薦系統提供了新的分析和方法。

前進——基於上下文的推薦
證明推薦領域評估演算法中傳統的“隱藏某些資料”方法存在缺陷的論文 (Marlin and Zemel 2009),而近年被引用冊數最多的推薦領域論文是一篇設計如何讓評估適合使用者需求的論文(Herlocker et al.2004)。

前言

  1. 推薦系統的主要目標:構建支援使用者線上決策的系統,此目標強調要為大規模使用者提供便捷訪問的高質量推薦。
  2. 推薦領域的核心問題是:努力推薦使用者支付得起、個性化、匹配度高的產品,這也對技術和心理學提出了很多挑戰。儘管在技術層面上,我們關心的是發現儘可能有效利用可用資訊和知識的方法,但在設計終端使用者互動過程時,必須考慮到心理層面的因素。因此,推薦系統不能被簡單化為簡單的決策理論概念。

我們重點討論個性化推薦系統。提供個性化推薦系統要求系統知道每個使用者的資訊。推薦系統必須開發並維護一個使用者模型(User Model)使用者記錄(User profile) 儲存使用者的偏好。儘管使用者模型對每個推薦系統很重要,但如何獲得並利用這個資訊取決於特定的推薦技術,使用者的偏好可以通過監測使用者行為隱式地獲取,也可以由推薦系統詢問的方式顯式地獲取。
這種背景下的另一個問題就是,系統在生成個性化推薦列表時該利用社麼樣的額外的資訊。已經應用在許多線上書店的最著名的方法就是考慮其他使用者構成的大規模群體的行為、意見和愛好。系統經常稱之為基於群體或協同的方法

基本概念

目錄

  1. 協同過濾推薦
  2. 基於內容的推薦
  3. 基於知識的推薦
  4. 混合推薦方法
  5. 推薦系統的解釋
  6. 評估推薦系統

1、協同過濾推薦

1)、協同過濾推薦方法的主要思想:
利用已用使用者群過去的行為或意見預測作為當前使用者最可能喜歡那些東西或對那些東西感興趣。主要作為線上零售系統對某個顧客需求個性化定製內容的工具。
2)、協同過濾方法背景下的常見問題如下:

  1. 如何發現與我們要推薦的使用者有著相似偏好的使用者?
  2. 如何衡量相似度
  3. 如何處理還沒有購買經歷的新使用者?
  4. 如果只有很少的評分該怎麼辦?
  5. 除了利用相似的使用者之外,還有那些技術可以用來預測某個使用者是否喜歡其物品?

純粹的協同過濾方法不會利用或要求任何有關物品本身的知識。

1.1 基於使用者的最近鄰推薦

(user-based nearest neighbor recommendation),其主要思想簡述為:首先,給定一個評分資料集合當前(活躍)使用者的ID作為輸入,找出與當前使用者過去有相似偏好的其他使用者,這些使用者有時也被稱為對等使用者或最近鄰使用者;然後,對當前使用者沒有過的每個產品p,利用其近來對p的評分計算預測值。這種方法的假設是:(1)如果使用者過去有相似的偏好,那麼他們未來也會有相似的偏好;(2)使用者偏好不會隨時間而變化。

1.2 基於物品的最近鄰推薦

儘管基於使用者的協同過濾方法已經被成功應用於不同的領域,但在一些有著數以百萬計使用者和物品的大型電子商務網站上還是會存在很多嚴峻挑戰。尤其是當需要掃描大量潛在近鄰時,這種方法很難做到實時計算預測值。因此,大型電子商務網站經常採用一種不同的技術:基於物品的推薦。這種推薦非常適合做線下預處理,因此在評分矩陣非常大的情況下也能做到實時計算推薦(Sarwar et al.2001)
基於物品演算法的主要思想是利用物品間相似度,而不是使用者間相似度來計算預測值。

2、基於內容的推薦

一般來說,推薦系統有兩個目的。一方面,推薦系統被用於激發使用者去做某件事情,比如購買一本或觀賞一部電影;另一方面,推薦系統也可以被看做是解決資訊過載的工具,因為系統的目標是從大集合裡選擇最感興趣的物品。因此推薦系統根植於資訊檢索和資訊過載領域。這些領域主要強調的是區分相關和不相關的文件。(這些領域的許多技術利用了源於文件內容的資訊進行排名)。
1)、基於內容推薦的核心:
基於內容推薦的核心是能夠得到物品的描述(不管是人工生成還是自動獲取的)和這些特徵的重要記錄。與物品的描述類似,使用者記錄也需要自動抽取或“學習”,方法是分析使用者的行為和反饋,或者直接詢問使用者的興趣和偏好。
2)、基於內容推薦必須回答下面的問題:

  1. 系統如何自動獲取並持續改進使用者記錄
  2. 如何決定哪個物品匹配或者至少能接近、符合使用者的興趣?
  3. 什麼技術能自動抽取或學習物品的描述,從而減少人工標註?

3)、基於內容推薦的優點:

  1. 不需要大規模使用者就可以達到適度的推薦精確度;
  2. 一旦得到物品的屬性就能立刻推薦新物品。

3、基於知識的推薦

3.1 基於知識推薦的基本思想

基於知識的推薦系統可以解決冷啟動問題,推薦結果不依賴單個使用者評分:要麼是以使用者需求與產品之間相似度的形式,要麼是根據明確的推薦規則。關於推薦系統是什麼,傳統解釋一般強調資訊過濾這一方面,及過濾出某個使用者可能感興趣的產品。相比較而言,基於知識推薦的互動性很強,這個基本性質也是作為會話式系統的原因。互動性方面的稍微改變使得推薦系統不再僅僅被看做一種過濾系統,而是更為廣義上“以一種個性化方法引導使用者在大量潛在候選項中找到感興趣或有用的物品,或者產生這些物品作為輸出結果”的系統。

3.2 基於知識推薦的型別

基於知識推薦的兩種基本型別是基於約束推薦和基於例項推薦
1)、相同點:這兩種方法在推薦型別上非常類似,使用者必須指定需求,然後系統設法給出解決方案。如果找不到解決方案,使用者必須修改需求。此外,系統還要給出推薦物品的解釋。
2)、不同點:這些推薦系統的不同之處在於如何使用所提供的知識,基於例項的推薦系統著重於根據不同的相似度衡量方法檢索出相似的物品,而基於約束的推薦系統依賴明確定義的推薦規則集合。基於約束的協同會在符合推薦規則的所有物品集合中搜素得出要推薦的物品集合。另一方面,基於例項的系統會根據相似度衡量標準檢索那些與特定使用者需求(在預定義閥值內)相似的物品。

3.3 基於知識推薦系統要解決的問題

  1. 哪種領域知識能表示成知識庫
  2. 什麼機制可根據使用者的特點來選擇和排名物品?
  3. 如何在沒有購買記錄的領域獲取使用者資訊?如何處理使用者直接給出的偏好資訊?
  4. 哪種互動式能夠用於互動式推薦系統?
  5. 設計對話時,要考慮哪些個性化因素才能確保準確獲得使用者偏好資訊?

4、混合推薦方法

我們已經看到,由於問題背景不同,目前討論的方法各有優、缺點。一種顯而易見的方法就是組合不同技術產生更好或更精確的推薦(我們以後會討論什麼是”好“的推薦)。如果既有群體知識,又可以取得詳細的物品資訊,那麼把基於內容的技術和協同或社會化過濾技術相混合就能夠增強系統的效果。這種設計尤其適用於克服純粹協同方法的規模膨脹問題,並依賴內容分析處理新物品或新使用者。

4.1 混合推薦方法遇到的問題

  1. 哪種方法能夠被組合,特定組合的前提是什麼?
  2. 兩個或多個推薦演算法是應該順序計算,還是採用其他混合方式?
  3. 不同方法的結果如何賦以權重,可以動態決定嗎?、

5、推薦系統的解釋

人們在交流和推理的時候經常會用到”解釋“。因此,在人工智慧研究領域,尤其在開發模仿人類行為的系統方面,研究者對解釋的本質產生極大的興趣。從”什麼是解釋?“這個問題開始,我們遇到了無數的可能性。因此,人們還不清楚該如何設計一種通用的方法生成解釋。面對這樣的挑戰,有人可能會問為什麼推薦系統需要給出解釋。問題的答案與兩個方面有關:推薦的提供方和接受方。
儘管對”解釋“ 的理解各不相同,但幾乎所有人都同意解釋是一種在溝通過程中進行交流的資訊。在推薦系統裡,用這種資訊補充推薦結果的目的有很多。從實用角度看,在推薦結果中提供解釋的主要目的可以列舉如下:

  1. 透明性
  2. 正確性
  3. 可信度
  4. 說服力
  5. 有效性
  6. 效率
  7. 滿意度
  8. 關聯度
  9. 可理解性
  10. 教育

解釋被用於溝通過程中。因此,一個解釋是否適合取決於解釋的提供方和接受方兩者的目標。因此,我們可以通過對接受方進行建模來提高解釋的質量。
此外,解釋是否正確(或有用)取決於溝通過程本身,後面將會講到早期生成解釋的嘗試中忽視的一個事實,這個事實將有可能導致虛假的解釋。總結,下面幾個因素會影響到推薦系統在與接收方溝通時的解釋生成:

  1. 需要解釋的資訊項
  2. 提供(接受)解釋的目的
  3. 溝通的狀態,指交換的資訊,包括提供的推薦。

如何實現這些目標取決於所用的推薦方法!

6、評估推薦系統

推薦系統需要使用者和計算機系統以及其他使用者進行互動。因此,在解答一些研究問題時,社會行為研究的一些方法仍然是適用的,比如,使用者認為與推薦系統互動有用嗎?他們對收到的推薦結果滿意嗎?是什麼驅使使用者貢獻知識,比如有助於提高系統領域預測質量的評分或評論?或者使用者關於接受推薦真正喜歡的是什麼?是意外與新奇,還是他們只是不想再繼續找下去?要想評估一個技術體系在針對某個特定目標時是否有效,比如提高使用者滿意度,或者確保電子商務平臺的經濟效益,我們還可以列出更多類似的問題進行研究。此外,在評估推薦系統時還有跟多相關的技術問題,比如,與系統性能有關的,像使用者請求的響應度、可伸縮性以及峰值負載或可靠性。此外,有關推薦系統的整個生命週期的目標,比如,增大效應、可維護性和可擴充套件性,還有減少經營成本,這些都是評估研究領域需要考慮的。

我們也研究論了一些替代方法來更好地描述使用者體驗或系統目標。這些評估方法可以劃分為實驗、半實驗和非實驗三種研究設計方案。因此,評估推薦系統必須回答下列問題:

  1. 哪些研究設計適用於評估推薦系統
  2. 如何利用歷史資料實驗評估推薦系統
  3. 什麼衡量標準適合不同的評估目標
  4. 現有評估技術的侷限是什麼?尤其是在推薦系統的會話性或商業價值。