1. 程式人生 > >推薦機制 協同過濾和基於內容推薦的區別

推薦機制 協同過濾和基於內容推薦的區別

來源

基於人口統計學的推薦

基於人口統計學的推薦機制(Demographic-based Recommendation)是一種最易於實現的推薦方法,它只是簡單的根據系統使用者的基本資訊發現使用者的相關程度,然後將相似使用者喜愛的其他物品推薦給當前使用者,圖 2 給出了這種推薦的工作原理。

圖 2. 基於人口統計學的推薦機制的工作原理
圖 2. 基於人口統計學的推薦機制的工作原理

從圖中可以很清楚的看到,首先,系統對每個使用者都有一個使用者 Profile 的建模,其中包括使用者的基本資訊,例如使用者的年齡,性別等等;然後,系統會根據使用者的 Profile 計算使用者的相似度,可以看到使用者 A 的 Profile 和使用者 C 一樣,那麼系統會認為使用者 A 和 C 是相似使用者,在推薦引擎中,可以稱他們是“鄰居”;最後,基於“鄰居”使用者群的喜好推薦給當前使用者一些物品,圖中將使用者 A 喜歡的物品 A 推薦給使用者 C。

這種基於人口統計學的推薦機制的好處在於:

  1. 因為不使用當前使用者對物品的喜好歷史資料,所以對於新使用者來講沒有“冷啟動(Cold Start)”的問題。
  2. 這個方法不依賴於物品本身的資料,所以這個方法在不同物品的領域都可以使用,它是領域獨立的(domain-independent)。

那麼這個方法的缺點和問題是什麼呢?這種基於使用者的基本資訊對使用者進行分類的方法過於粗糙,尤其是對品味要求較高的領域,比如圖書,電影和音樂等領域,無法得到很好的推薦效果。可能在一些電子商務的網站中,這個方法可以給出一些簡單的推薦。另外一個侷限是,這個方法可能涉及到一些與資訊發現問題本身無關卻比較敏感的資訊,比如使用者的年齡等,這些使用者資訊不是很好獲取。

基於內容的推薦

基於內容的推薦是在推薦引擎出現之初應用最為廣泛的推薦機制,它的核心思想是根據推薦物品或內容的元資料,發現物品或者內容的相關性,然後基於使用者以往的喜好記錄,推薦給使用者相似的物品。圖 3 給出了基於內容推薦的基本原理。

圖 3. 基於內容推薦機制的基本原理
圖 3. 基於內容推薦機制的基本原理

圖 3 中給出了基於內容推薦的一個典型的例子,電影推薦系統,首先我們需要對電影的元資料有一個建模,這裡只簡單的描述了一下電影的型別;然後通過電影的元資料發現電影間的相似度,因為型別都是“愛情,浪漫”電影 A 和 C 被認為是相似的電影(當然,只根據型別是不夠的,要得到更好的推薦,我們還可以考慮電影的導演,演員等等);最後實現推薦,對於使用者 A,他喜歡看電影 A,那麼系統就可以給他推薦類似的電影 C。

這種基於內容的推薦機制的好處在於它能很好的建模使用者的口味,能提供更加精確的推薦。但它也存在以下幾個問題:

  1. 需要對物品進行分析和建模,推薦的質量依賴於對物品模型的完整和全面程度。在現在的應用中我們可以觀察到關鍵詞和標籤(Tag)被認為是描述物品元資料的一種簡單有效的方法。
  2. 物品相似度的分析僅僅依賴於物品本身的特徵,這裡沒有考慮人對物品的態度。
  3. 因為需要基於使用者以往的喜好歷史做出推薦,所以對於新使用者有“冷啟動”的問題。

雖然這個方法有很多不足和問題,但他還是成功的應用在一些電影,音樂,圖書的社交站點,有些站點還請專業的人員對物品進行基因編碼,比如潘多拉,在一份報告中說道,在潘多拉的推薦引擎中,每首歌有超過 100 個元資料特徵,包括歌曲的風格,年份,演唱者等等。

基於協同過濾的推薦

隨著 Web2.0 的發展,Web 站點更加提倡使用者參與和使用者貢獻,因此基於協同過濾的推薦機制因運而生。它的原理很簡單,就是根據使用者對物品或者資訊的偏好,發現物品或者內容本身的相關性,或者是發現使用者的相關性,然後再基於這些關聯性進行推薦。基於協同過濾的推薦可以分為三個子類:基於使用者的推薦(User-based Recommendation),基於專案的推薦(Item-based Recommendation)和基於模型的推薦(Model-based Recommendation)。下面我們一個一個詳細的介紹著三種協同過濾的推薦機制。

基於使用者的協同過濾推薦

基於使用者的協同過濾推薦的基本原理是,根據所有使用者對物品或者資訊的偏好,發現與當前使用者口味和偏好相似的“鄰居”使用者群,在一般的應用中是採用計算“K- 鄰居”的演算法;然後,基於這 K 個鄰居的歷史偏好資訊,為當前使用者進行推薦。下圖 4 給出了原理圖。

圖 4. 基於使用者的協同過濾推薦機制的基本原理
圖 4. 基於使用者的協同過濾推薦機制的基本原理

上圖示意出基於使用者的協同過濾推薦機制的基本原理,假設使用者 A 喜歡物品 A,物品 C,使用者 B 喜歡物品 B,使用者 C 喜歡物品 A ,物品 C 和物品 D;從這些使用者的歷史喜好資訊中,我們可以發現使用者 A 和使用者 C 的口味和偏好是比較類似的,同時使用者 C 還喜歡物品 D,那麼我們可以推斷使用者 A 可能也喜歡物品 D,因此可以將物品 D 推薦給使用者 A。

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

基於專案的協同過濾推薦

基於專案的協同過濾推薦的基本原理也是類似的,只是說它使用所有使用者對物品或者資訊的偏好,發現物品和物品之間的相似度,然後根據使用者的歷史偏好資訊,將類似的物品推薦給使用者,圖 5 很好的詮釋了它的基本原理。

假設使用者 A 喜歡物品 A 和物品 C,使用者 B 喜歡物品 A,物品 B 和物品 C,使用者 C 喜歡物品 A,從這些使用者的歷史喜好可以分析出物品 A 和物品 C 時比較類似的,喜歡物品 A 的人都喜歡物品 C,基於這個資料可以推斷使用者 C 很有可能也喜歡物品 C,所以系統會將物品 C 推薦給使用者 C。

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

圖 5. 基於專案的協同過濾推薦機制的基本原理
圖 5. 基於專案的協同過濾推薦機制的基本原理

同時協同過濾,在基於使用者和基於專案兩個策略中應該如何選擇呢?其實基於專案的協同過濾推薦機制是 Amazon 在基於使用者的機制上改良的一種策略,因為在大部分的 Web 站點中,物品的個數是遠遠小於使用者的數量的,而且物品的個數和相似度相對比較穩定,同時基於專案的機制比基於使用者的實時性更好一些。但也不是所有的場景都是這樣的情況,可以設想一下在一些新聞推薦系統中,也許物品,也就是新聞的個數可能大於使用者的個數,而且新聞的更新程度也有很快,所以它的形似度依然不穩定。所以,其實可以看出,推薦策略的選擇其實和具體的應用場景有很大的關係。

基於模型的協同過濾推薦

基於模型的協同過濾推薦就是基於樣本的使用者喜好資訊,訓練一個推薦模型,然後根據實時的使用者喜好的資訊進行預測,計算推薦。

基於協同過濾的推薦機制是現今應用最為廣泛的推薦機制,它有以下幾個顯著的優點:

  1. 它不需要對物品或者使用者進行嚴格的建模,而且不要求物品的描述是機器可理解的,所以這種方法也是領域無關的。
  2. 這種方法計算出來的推薦是開放的,可以共用他人的經驗,很好的支援使用者發現潛在的興趣偏好

而它也存在以下幾個問題:

  1. 方法的核心是基於歷史資料,所以對新物品和新使用者都有“冷啟動”的問題。
  2. 推薦的效果依賴於使用者歷史偏好資料的多少和準確性。
  3. 在大部分的實現中,使用者歷史偏好是用稀疏矩陣進行儲存的,而稀疏矩陣上的計算有些明顯的問題,包括可能少部分人的錯誤偏好會對推薦的準確度有很大的影響等等。
  4. 對於一些特殊品味的使用者不能給予很好的推薦。
  5. 由於以歷史資料為基礎,抓取和建模使用者的偏好後,很難修改或者根據使用者的使用演變,從而導致這個方法不夠靈活。

混合的推薦機制

在現行的 Web 站點上的推薦往往都不是單純只採用了某一種推薦的機制和策略,他們往往是將多個方法混合在一起,從而達到更好的推薦效果。關於如何組合各個推薦機制,這裡講幾種比較流行的組合方法。

  1. 加權的混合(Weighted Hybridization): 用線性公式(linear formula)將幾種不同的推薦按照一定權重組合起來,具體權重的值需要在測試資料集上反覆實驗,從而達到最好的推薦效果。
  2. 切換的混合(Switching Hybridization):前面也講到,其實對於不同的情況(資料量,系統執行狀況,使用者和物品的數目等),推薦策略可能有很大的不同,那麼切換的混合方式,就是允許在不同的情況下,選擇最為合適的推薦機制計算推薦。
  3. 分割槽的混合(Mixed Hybridization):採用多種推薦機制,並將不同的推薦結果分不同的區顯示給使用者。其實,Amazon,噹噹網等很多電子商務網站都是採用這樣的方式,使用者可以得到很全面的推薦,也更容易找到他們想要的東西。
  4. 分層的混合(Meta-Level Hybridization): 採用多種推薦機制,並將一個推薦機制的結果作為另一個的輸入,從而綜合各個推薦機制的優缺點,得到更加準確的推薦。

相關推薦

推薦機制 協同過濾基於內容推薦區別

來源 基於人口統計學的推薦 基於人口統計學的推薦機制(Demographic-based Recommendation)是一種最易於實現的推薦方法,它只是簡單的根據系統使用者的基本資訊發現使用者的相關程度,然後將相似使用者喜愛的其他物品推薦給當前使用者,圖 2 給出了

基於使用者的協同過濾基於物品的協同過濾推薦演算法圖解

  在協同過濾中,有兩種主流方法:基於使用者的協同過濾,和基於物品的協同過濾。具體怎麼來闡述他們的原理呢,看個圖大家就明白了 基於使用者的 CF 的基本思想相當簡單,基於使用者對物品的偏好找到相鄰鄰居使用者,然後將鄰居使用者喜歡的推薦給當前使用者。計算上,就是將一個使用者對所有物品

協同過濾演算法概述與python 實現協同過濾演算法基於內容(usr-item,item-item)

協調過濾推薦概述   協同過濾(Collaborative Filtering)作為推薦演算法中最經典的型別,包括線上的協同和離線的過濾兩部分。所謂線上協同,就是通過線上資料找到使用者可能喜歡的物品,而離線過濾,則是過濾掉一些不值得推薦的資料,比比如推薦值

個性化推薦系統原理介紹(基於內容過濾協同過濾/關聯規則/序列模式)

信息 來講 行為記錄 鏈接 方程 機器學習 沒有 比較 graph 個性化推薦根據用戶興趣和行為特點,向用戶推薦所需的信息或商品,幫助用戶在海量信息中快速發現真正所需的商品,提高用戶黏性,促進信息點擊和商品銷售。推薦系統是基於海量數據挖掘分析的商業智能平臺,推薦主要基

基於內容推薦協同過濾

基於內容的推薦 需要分析內容,無需考慮其他使用者的行為,例如基於使用者喜歡的item的屬性/內容進行推薦   通常使用在文字相關產品上進行推薦      使用詞袋模型來衡量不同文字的相似度,每個詞的權重可以使用頻率或者tf-idf表示 相似

基於Spark MLlib平臺基於模型的協同過濾演算法的電影推薦系統(一) 協同過濾演算法概述&&基於模型的協同過濾的演算法思想(演算法模型結構待補充)

本文暫時分為三部分: (一)基於Spark MLlib平臺和基於模型的協同過濾演算法的電影推薦系統(一)            → 協同過濾演算法概述&&基於模型的協同過濾的演算法思想 (二)基於Spark MLlib平臺和基於模型的協同過濾演算法的電影推薦

四種推薦系統原理介紹(基於內容過濾協同過濾/關聯規則/序列模式)

      在推薦系統中常用的技術可大致分為四類:基於內容的過濾、協同過濾、基於規則的方法和混合方法。 一、基於內容過濾         基於內容過濾推薦系統思路如下:       (1)通過在抓取每個商品的一系列特徵來構建商品檔案;       (2)通過使用者購買的商品特徵來構建基於內容的使用者檔案

Neo4j 做推薦 (12)—— 協同過濾基於鄰域的推薦

kNN——K近鄰 現在我們有了一種基於偏好查詢類似使用者的方法,下一步是允許每個k個最相似的使用者投票選擇應該推薦的專案。 主要有:             

推薦系統(一)基於協同過濾演算法開發離線推薦

什麼是離線推薦 所謂的離線推薦其實就是根據使用者產生的行為日誌,後臺設定一個離線統計演算法和離線推薦演算法的任務來對這些行為日誌進行週期性的統計,統計過後的結果資料為前臺或者實時分析提供資料的支撐。離線推薦要求實時性不高。 離線推薦演算法之協同過濾 協同過濾其實就是藉助大量已

利用Python實現基於協同過濾演算法的影片推薦

協同過濾演算法即對一大群人進行搜尋,找出其中品味與我們相近的一小群人,並將這一小群人的偏好進行組合來構造一個推薦列表。 本文利用Python3.5分別實現了基於使用者和基於物品的協同過濾演算法的影片推薦。具體過程如下:先建立了一個涉及人員、物品和評價值的字典,

推薦演算法】協同過濾演算法——基於使用者 Java實現

基本概念就不過多介紹了,相信能看明白的都瞭解。如果想了解相關推薦先做好知識儲備: 1.什麼事推薦演算法 2.什麼是基於鄰域的推薦演算法 筆者選用的是GroupLens的MoviesLens資料 傳送門GroupLens 資料集處理 此處擷取資

基於近鄰使用者協同過濾演算法的音樂推薦系統

0. 摘 要 基於近鄰使用者的協同過濾音樂推薦系統,主要是將與目標使用者有相同行為和興趣愛好的使用者,形成一個最近鄰的推薦群組,從最近鄰推薦群組中產生最終的目標使用者推薦列表。該推薦系統通過網路爬蟲獲取蝦米音樂網站真實未脫敏使用者的行為資訊,採用餘弦相似度作為

基於使用者的協同過濾演算法的電影推薦系統

上一篇講解了推薦演算法的分類,這裡電影推薦系統具體分析一下 第一步:建立使用者電影矩陣模型         如表1所示,協同過濾演算法的輸入資料通常表示為一個m*n的使用者評價矩陣Matrix,m是使

基於物品的協同過濾內容過濾有什麼區別

    基於物品的協同過濾,首先從資料庫裡獲取他之前喜歡的東西,然後從剩下的物品中找到和他歷史興趣近似的物品推薦給他。核心是要計算兩個物品的相似度。 內容過濾的基本思想是,給使用者推薦和他們之前喜歡的物品在內容上相似的其他物品。核心任務就是計算物品的內容相似度。 可以注意到兩者的相同點都是要計算兩個物品的相似

【Machine Learning】Mahout基於協同過濾(CF)的使用者推薦

一、Mahout推薦演算法簡介 Mahout演算法框架自帶的推薦器有下面這些: l  GenericUserBasedRecommender:基於使用者的推薦器,使用者數量少時速度快; l  GenericItemBasedRecommender:基於商品推薦器,商品數量

Music Recommendation System with User-based and Item-based Collaborative Filtering Technique(使用基於用戶及基於物品的協同過濾技術的音樂推薦系統)【更新】

effect 方向 流動 建議 comm 時代 歌曲 .net man 摘要: 大數據催生了互聯網,電子商務,也導致了信息過載。信息過載的問題可以由推薦系統來解決。推薦系統可以提供選擇新產品(電影,音樂等)的建議。這篇論文會介紹一個音樂推薦系統,他會根據用戶的歷史行為和口味

【Spark機器學習速成寶典】推薦引擎——協同過濾

屬性 寶典 系統 ont 宋體 logs images 機器 back 目錄   推薦模型的分類   條目2   條目3   條目4   條目5   條目6   條目7   條目8   條目9 推薦模型的分類   最為流行的兩種方法是基於內容的過濾、協

推薦系統-協同過濾原理與實現

一、基本介紹 1. 推薦系統任務 推薦系統的任務就是聯絡使用者和資訊一方面幫助使用者發現對自己有價值的資訊,而另一方面讓資訊能夠展現在對它感興趣的使用者面前從而實現資訊消費者和資訊生產者的雙贏。 2. 與搜尋引擎比較 相同點:幫助使用者快速發現有用資訊的工具 不同點:和搜尋引擎不同的是推薦系統不

推薦系統-協同過濾

一、基本介紹 1. 推薦系統任務 推薦系統的任務就是聯絡使用者和資訊一方面幫助使用者發現對自己有價值的資訊,而另一方面讓資訊能夠展現在對它感興趣的使用者面前從而實現資訊消費者和資訊生產者的雙贏。 2. 與搜尋引擎比較 相同點:幫助使用者快速發現有用資訊的工具 不同點:和搜尋引擎不同的是推

推薦演算法 協同過濾sklearn實現

資料集使用MovieLens資料集 import pandas as pd import numpy as np header = ['user_id', 'item_id', 'rating', 'timestamp'] dataset = pd.read