1. 程式人生 > >探索推薦引擎內部的祕密,第 1 部分: 推薦引擎初探

探索推薦引擎內部的祕密,第 1 部分: 推薦引擎初探

簡介: 隨著 Web 技術的發展,使得內容的建立和分享變得越來越容易。每天都有大量的圖片、部落格、視訊釋出到網上。資訊的極度爆炸使得人們找到他們需要的資訊將變得越來越難。傳統的搜尋技術是一個相對簡單的幫助人們找到資訊的工具,也廣泛的被人們所使用,但搜尋引擎並不能完全滿足使用者對資訊發現的需求,原因一是使用者很難用恰當的關鍵詞描述自己的需求,二是基於關鍵詞的資訊檢索在很多情況下是不夠的。而推薦引擎的出現,使使用者獲取資訊的方式從簡單的目標明確的資料的搜尋轉換到更高階更符合人們使用習慣的上下文資訊更豐富的資訊發現。

“探索推薦引擎內部的祕密”系列將帶領讀者從淺入深的學習探索推薦引擎的機制,實現方法,其中還涉及一些基本的優化方法,例如聚類和分類的應用。同時在理論講解的基礎上,還會結合 Apache Mahout 介紹如何在大規模資料上實現各種推薦策略,進行策略優化,構建高效的推薦引擎的方法。本文作為這個系列的第一篇文章,將深入介紹推薦引擎的工作原理,和其中涉及的各種推薦機制,以及它們各自的優缺點和適用場景,幫助使用者清楚的瞭解和快速構建適合自己的推薦引擎。

資訊發現

如今已經進入了一個數據爆炸的時代,隨著 Web 2.0 的發展, Web 已經變成資料分享的平臺,那麼,如何讓人們在海量的資料中想要找到他們需要的資訊將變得越來越難。

在這樣的情形下,搜尋引擎(Google,Bing,百度等等)成為大家快速找到目標資訊的最好途徑。在使用者對自己需求相對明確的時候,用搜索引擎很方便的通過關鍵字搜尋很快的找到自己需要的資訊。但搜尋引擎並不能完全滿足使用者對資訊發現的需求,那是因為在很多情況下,使用者其實並不明確自己的需要,或者他們的需求很難用簡單的關鍵字來表述。又或者他們需要更加符合他們個人口味和喜好的結果,因此出現了推薦系統,與搜尋引擎對應,大家也習慣稱它為推薦引擎。

隨著推薦引擎的出現,使用者獲取資訊的方式從簡單的目標明確的資料的搜尋轉換到更高階更符合人們使用習慣的資訊發現。

如今,隨著推薦技術的不斷髮展,推薦引擎已經在電子商務 (E-commerce,例如 Amazon,噹噹網 ) 和一些基於 social 的社會化站點 ( 包括音樂,電影和圖書分享,例如豆瓣,Mtime 等 ) 都取得很大的成功。這也進一步的說明了,Web2.0 環境下,在面對海量的資料,使用者需要這種更加智慧的,更加了解他們需求,口味和喜好的資訊發現機制。

推薦引擎

前面介紹了推薦引擎對於現在的 Web2.0 站點的重要意義,這一章我們將講講推薦引擎到底是怎麼工作的。推薦引擎利用特殊的資訊過濾技術,將不同的物品或內容推薦給可能對它們感興趣的使用者。


圖 1. 推薦引擎工作原理圖
圖 1. 推薦引擎工作原理圖  

圖 1 給出了推薦引擎的工作原理圖,這裡先將推薦引擎看作黑盒,它接受的輸入是推薦的資料來源,一般情況下,推薦引擎所需要的資料來源包括:

  • 要推薦物品或內容的元資料,例如關鍵字,基因描述等;
  • 系統使用者的基本資訊,例如性別,年齡等
  • 使用者對物品或者資訊的偏好,根據應用本身的不同,可能包括使用者對物品的評分,使用者檢視物品的記錄,使用者的購買記錄等。其實這些使用者的偏好資訊可以分為兩類:
  • 顯式的使用者反饋:這類是使用者在網站上自然瀏覽或者使用網站以外,顯式的提供反饋資訊,例如使用者對物品的評分,或者對物品的評論。
  • 隱式的使用者反饋:這類是使用者在使用網站是產生的資料,隱式的反應了使用者對物品的喜好,例如使用者購買了某物品,使用者查看了某物品的資訊等等。

顯式的使用者反饋能準確的反應使用者對物品的真實喜好,但需要使用者付出額外的代價,而隱式的使用者行為,通過一些分析和處理,也能反映使用者的喜好,只是資料不是很精確,有些行為的分析存在較大的噪音。但只要選擇正確的行為特徵,隱式的使用者反饋也能得到很好的效果,只是行為特徵的選擇可能在不同的應用中有很大的不同,例如在電子商務的網站上,購買行為其實就是一個能很好表現使用者喜好的隱式反饋。

推薦引擎根據不同的推薦機制可能用到資料來源中的一部分,然後根據這些資料,分析出一定的規則或者直接對使用者對其他物品的喜好進行預測計算。這樣推薦引擎可以在使用者進入的時候給他推薦他可能感興趣的物品。

推薦引擎的分類

推薦引擎的分類可以根據很多指標,下面我們一一介紹一下:

  1. 推薦引擎是不是為不同的使用者推薦不同的資料

    根據這個指標,推薦引擎可以分為基於大眾行為的推薦引擎和個性化推薦引擎

    • 根據大眾行為的推薦引擎,對每個使用者都給出同樣的推薦,這些推薦可以是靜態的由系統管理員人工設定的,或者基於系統所有使用者的反饋統計計算出的當下比較流行的物品。
    • 個性化推薦引擎,對不同的使用者,根據他們的口味和喜好給出更加精確的推薦,這時,系統需要了解需推薦內容和使用者的特質,或者基於社會化網路,通過找到與當前使用者相同喜好的使用者,實現推薦。

    這是一個最基本的推薦引擎分類,其實大部分人們討論的推薦引擎都是將個性化的推薦引擎,因為從根本上說,只有個性化的推薦引擎才是更加智慧的資訊發現過程。

  2. 根據推薦引擎的資料來源

    其實這裡講的是如何發現數據的相關性,因為大部分推薦引擎的工作原理還是基於物品或者使用者的相似集進行推薦。那麼參考圖 1 給出的推薦系統原理圖,根據不同的資料來源發現數據相關性的方法可以分為以下幾種:

    • 根據系統使用者的基本資訊發現使用者的相關程度,這種被稱為基於人口統計學的推薦(Demographic-based Recommendation)
    • 根據推薦物品或內容的元資料,發現物品或者內容的相關性,這種被稱為基於內容的推薦(Content-based Recommendation)
    • 根據使用者對物品或者資訊的偏好,發現物品或者內容本身的相關性,或者是發現使用者的相關性,這種被稱為基於協同過濾的推薦(Collaborative Filtering-based Recommendation)。
  3. 根據推薦模型的建立方式

    可以想象在海量物品和使用者的系統中,推薦引擎的計算量是相當大的,要實現實時的推薦務必需要建立一個推薦模型,關於推薦模型的建立方式可以分為以下幾種:

    • 基於物品和使用者本身的,這種推薦引擎將每個使用者和每個物品都當作獨立的實體,預測每個使用者對於每個物品的喜好程度,這些資訊往往是用一個二維矩陣描述的。由於使用者感興趣的物品遠遠小於總物品的數目,這樣的模型導致大量的資料空置,即我們得到的二維矩陣往往是一個很大的稀疏矩陣。同時為了減小計算量,我們可以對物品和使用者進行聚類, 然後記錄和計算一類使用者對一類物品的喜好程度,但這樣的模型又會在推薦的準確性上有損失。
    • 基於關聯規則的推薦(Rule-based Recommendation):關聯規則的挖掘已經是資料探勘中的一個經典的問題,主要是挖掘一些資料的依賴關係,典型的場景就是“購物籃問題”,通過關聯規則的挖掘,我們可以找到哪些物品經常被同時購買,或者使用者購買了一些物品後通常會購買哪些其他的物品,當我們挖掘出這些關聯規則之後,我們可以基於這些規則給使用者進行推薦。
    • 基於模型的推薦(Model-based Recommendation):這是一個典型的機器學習的問題,可以將已有的使用者喜好資訊作為訓練樣本,訓練出一個預測使用者喜好的模型,這樣以後使用者在進入系統,可以基於此模型計算推薦。這種方法的問題在於如何將使用者實時或者近期的喜好資訊反饋給訓練好的模型,從而提高推薦的準確度。

其實在現在的推薦系統中,很少有隻使用了一個推薦策略的推薦引擎,一般都是在不同的場景下使用不同的推薦策略從而達到最好的推薦效果,例如 Amazon 的推薦,它將基於使用者本身歷史購買資料的推薦,和基於使用者當前瀏覽的物品的推薦,以及基於大眾喜好的當下比較流行的物品都在不同的區域推薦給使用者,讓使用者可以從全方位的推薦中找到自己真正感興趣的物品。

深入推薦機制

這一章的篇幅,將詳細介紹各個推薦機制的工作原理,它們的優缺點以及應用場景。

基於人口統計學的推薦

基於人口統計學的推薦機制(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): 採用多種推薦機制,並將一個推薦機制的結果作為另一個的輸入,從而綜合各個推薦機制的優缺點,得到更加準確的推薦。

推薦引擎的應用

介紹完推薦引擎的基本原理,基本推薦機制,下面簡要分析幾個有代表性的推薦引擎的應用,這裡選擇兩個領域:Amazon 作為電子商務的代表,豆瓣作為社交網路的代表。

推薦在電子商務中的應用 – Amazon

Amazon 作為推薦引擎的鼻祖,它已經將推薦的思想滲透在應用的各個角落。Amazon 推薦的核心是通過資料探勘演算法和比較使用者的消費偏好於其他使用者進行對比,藉以預測使用者可能感興趣的商品。對應於上面介紹的各種推薦機制,Amazon 採用的是分割槽的混合的機制,並將不同的推薦結果分不同的區顯示給使用者,圖 6 和圖 7 展示了使用者在 Amazon 上能得到的推薦。


圖 6. Amazon 的推薦機制 - 首頁
圖 6. Amazon 的推薦機制 - 首頁  

圖 7. Amazon 的推薦機制 - 瀏覽物品
圖 7. Amazon 的推薦機制 - 瀏覽物品  

Amazon 利用可以記錄的所有使用者在站點上的行為,根據不同資料的特點對它們進行處理,並分成不同區為使用者推送推薦:

  • 今日推薦 (Today's Recommendation For You): 通常是根據使用者的近期的歷史購買或者檢視記錄,並結合時下流行的物品給出一個折中的推薦。
  • 新產品的推薦 (New For You): 採用了基於內容的推薦機制 (Content-based Recommendation),將一些新到物品推薦給使用者。在方法選擇上由於新物品沒有大量的使用者喜好資訊,所以基於內容的推薦能很好的解決這個“冷啟動”的問題。
  • 捆綁銷售 (Frequently Bought Together): 採用資料探勘技術對使用者的購買行為進行分析,找到經常被一起或同一個人購買的物品集,進行捆綁銷售,這是一種典型的基於專案的協同過濾推薦機制。
  • 別人購買 / 瀏覽的商品 (Customers Who Bought/See This Item Also Bought/See): 這也是一個典型的基於專案的協同過濾推薦的應用,通過社會化機制使用者能更快更方便的找到自己感興趣的物品。

值得一提的是,Amazon 在做推薦時,設計和使用者體驗也做得特別獨到:

Amazon 利用有它大量歷史資料的優勢,量化推薦原因。

  • 基於社會化的推薦,Amazon 會給你事實的資料,讓使用者信服,例如:購買此物品的使用者百分之多少也購買了那個物品;
  • 基於物品本身的推薦,Amazon 也會列出推薦的理由,例如:因為你的購物框中有 ***,或者因為你購買過 ***,所以給你推薦類似的 ***。

另外,Amazon 很多推薦是基於使用者的 profile 計算出來的,使用者的 profile 中記錄了使用者在 Amazon 上的行為,包括看了那些物品,買了那些物品,收藏夾和 wish list 裡的物品等等,當然 Amazon 裡還集成了評分等其他的使用者反饋的方式,它們都是 profile 的一部分,同時,Amazon 提供了讓使用者自主管理自己 profile 的功能,通過這種方式使用者可以更明確的告訴推薦引擎他的品味和意圖是什麼。

推薦在社交網站中的應用 – 豆瓣

豆瓣是國內做的比較成功的社交網站,它以圖書,電影,音樂和同城活動為中心,形成一個多元化的社交網路平臺,自然推薦的功能是必不可少的,下面我們看看豆瓣是如何推薦的。


圖 8 . 豆瓣的推薦機制 - 豆瓣電影
圖 8 . 豆瓣的推薦機制 - 豆瓣電影  

當你在豆瓣電影中將一些你看過的或是感興趣的電影加入你看過和想看的列表裡,併為它們做相應的評分,這時豆瓣的推薦引擎已經拿到你的一些偏好資訊,那麼它將給你展示如圖 8 的電影推薦。


圖 9 . 豆瓣的推薦機制 - 基於使用者品味的推薦
圖 9 . 豆瓣的推薦機制 - 基於使用者品味的推薦  

豆瓣的推薦是通過“豆瓣猜”,為了讓使用者清楚這些推薦是如何來的,豆瓣還給出了“豆瓣猜”的一個簡要的介紹。

“你的個人推薦是根據你的收藏和評價自動得出的,每個人的推薦清單都不同。你的收藏和評價越多,豆瓣給你的推薦會越準確和豐富。
每天推薦的內容可能會有變化。隨著豆瓣的長大,給你推薦的內容也會越來越準。”

這一點讓我們可以清晰明瞭的知道,豆瓣必然是基於社會化的協同過濾的推薦,這樣使用者越多,使用者的反饋越多,那麼推薦的效果會越來越準確。

相對於 Amazon 的使用者行為模型,豆瓣電影的模型更加簡單,就是“看過”和“想看”,這也讓他們的推薦更加專注於使用者的品味,畢竟買東西和看電影的動機還是有很大不同的。

另外,豆瓣也有基於物品本身的推薦,當你檢視一些電影的詳細資訊的時候,他會給你推薦出“喜歡這個電影的人也喜歡的電影”, 如圖 10,這是一個基於協同過濾的應用。


圖 10 . 豆瓣的推薦機制 - 基於電影本身的推薦
圖 10 . 豆瓣的推薦機制 - 基於電影本身的推薦  

總結

在網路資料爆炸的年代,如何讓使用者更快的找到想要的資料,如何讓使用者發現自己潛在的興趣和需求,無論是對於電子商務還是社會網路的應用都是至關重要的。推薦引擎的出現,使得這個問題越來越被大家關注。但對大多數人來講,也許還在驚歎它為什麼總是能猜到你到底想要些什麼。推薦引擎的魔力在於你不清楚在這個推薦背後,引擎到底記錄和推理了些什麼。

通過這篇綜述性的文章,你可以瞭解,其實推薦引擎只是默默的記錄和觀察你的一舉一動,然後再借由所有使用者產生的海量資料分析和發現其中的規律,進而慢慢的瞭解你,你的需求,你的習慣,並默默的無聲息的幫助你快速的解決你的問題,找到你想要的東西。

其實,回頭想想,很多時候,推薦引擎比你更瞭解你自己。

通過第一篇文章,相信大家對推薦引擎有一個清晰的第一印象,本系列的下一篇文章將深入介紹基於協同過濾的推薦策略。在現今的推薦技術和演算法中,最被大家廣泛認可和採用的就是基於協同過濾的推薦方法。它以其方法模型簡單,資料依賴性低,資料方便採集,推薦效果較優等多個優點成為大眾眼裡的推薦演算法“No.1”。本文將帶你深入瞭解協同過濾的祕密,並給出基於 Apache Mahout 的協同過濾演算法的高效實現。Apache Mahout 是 ASF 的一個較新的開源專案,它源於 Lucene,構建在 Hadoop 之上,關注海量資料上的機器學習經典演算法的高效實現。

感謝大家對本系列的關注和支援。


參考資料

學習


轉載自:http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy1/index.html