隨着 Web 技術的發展,使得內容的建立和分享變得愈來愈容易。天天都有大量的圖片、博客、視頻發佈到網上。信息的極度爆炸使得人們找到他們須要的信息將變得愈來愈難。傳統的搜索技術是一個相對簡單的幫助人們找到信息的工具,也普遍的被人們所使用,但搜索引擎並不能徹底知足用戶對信息發現的需求,緣由一是用戶很難用恰當的關鍵詞描述本身的需求,二是基於關鍵詞的信息檢索在不少狀況下是不夠的。而推薦引擎的出現,使用戶獲取信息的方式從簡單的目標明確的數據的搜索轉換到更高級更符合人們使用習慣的上下文信息更豐富的信息發現。 「探索推薦引擎內部的祕密」系列將帶領讀者從淺入深的學習探索推薦引擎的機制,實現方法,其中還涉及一些基本的優化方法,例如聚類和分類的應用。同時在理論講解的基礎上,還會結合 Apache Mahout 介紹如何在大規模數據上實現各類推薦策略,進行策略優化,構建高效的推薦引擎的方法。本文做爲這個系列的第一篇文章,將深刻介紹推薦引擎的工做原理,和其中涉及的各類推薦機制,以及它們各自的優缺點和適用場景,幫助用戶清楚的瞭解和快速構建適合本身的推薦引擎。html
信息發現
現在已經進入了一個數據爆炸的時代,隨着 Web 2.0 的發展, Web 已經變成數據分享的平臺,那麼,如何讓人們在海量的數據中想要找到他們須要的信息將變得愈來愈難。 在這樣的情形下,搜索引擎(Google,Bing,百度等等)成爲你們快速找到目標信息的最好途徑。在用戶對本身需求相對明確的時候,用搜索引擎很方便的經過關鍵字搜索很快的找到本身須要的信息。但搜索引擎並不能徹底知足用戶對信息發現的需求,那是由於在不少狀況下,用戶其實並不明確本身的須要,或者他們的需求很難用簡單的關鍵字來表述。又或者他們須要更加符合他們我的口味和喜愛的結果,所以出現了推薦系統,與搜索引擎對應,你們也習慣稱它爲推薦引擎。 隨着推薦引擎的出現,用戶獲取信息的方式從簡單的目標明確的數據的搜索轉換到更高級更符合人們使用習慣的信息發現。 現在,隨着推薦技術的不斷髮展,推薦引擎已經在電子商務 (E-commerce,例如 Amazon,噹噹網 ) 和一些基於 social 的社會化站點 ( 包括音樂,電影和圖書分享,例如豆瓣,Mtime 等 ) 都取得很大的成功。這也進一步的說明了,Web2.0 環境下,在面對海量的數據,用戶須要這種更加智能的,更加了解他們需求,口味和喜愛的信息發現機制。web
推薦引擎
前面介紹了推薦引擎對於如今的 Web2.0 站點的重要意義,這一章咱們將講講推薦引擎究竟是怎麼工做的。推薦引擎利用特殊的信息過濾技術,將不一樣的物品或內容推薦給可能對它們感興趣的用戶。
圖 1. 推薦引擎工做原理圖
圖 1 給出了推薦引擎的工做原理圖,這裏先將推薦引擎看做黑盒,它接受的輸入是推薦的數據源,通常狀況下,推薦引擎所須要的數據源包括:
- 要推薦物品或內容的元數據,例如關鍵字,基因描述等;
- 系統用戶的基本信息,例如性別,年齡等
- 用戶對物品或者信息的偏好,根據應用自己的不一樣,可能包括用戶對物品的評分,用戶查看物品的記錄,用戶的購買記錄等。其實這些用戶的偏好信息能夠分爲兩類:
- 顯式的用戶反饋:這類是用戶在網站上天然瀏覽或者使用網站之外,顯式的提供反饋信息,例如用戶對物品的評分,或者對物品的評論。
- 隱式的用戶反饋:這類是用戶在使用網站是產生的數據,隱式的反應了用戶對物品的喜愛,例如用戶購買了某物品,用戶查看了某物品的信息等等。
顯式的用戶反饋能準確的反應用戶對物品的真實喜愛,但須要用戶付出額外的代價,而隱式的用戶行爲,經過一些分析和處理,也能反映用戶的喜愛,只是數據不是很精確,有些行爲的分析存在較大的噪音。但只要選擇正確的行爲特徵,隱式的用戶反饋也能獲得很好的效果,只是行爲特徵的選擇可能在不一樣的應用中有很大的不一樣,例如在電子商務的網站上,購買行爲其實就是一個能很好表現用戶喜愛的隱式反饋。 推薦引擎根據不一樣的推薦機制可能用到數據源中的一部分,而後根據這些數據,分析出必定的規則或者直接對用戶對其餘物品的喜愛進行預測計算。這樣推薦引擎能夠在用戶進入的時候給他推薦他可能感興趣的物品。
推薦引擎的分類
推薦引擎的分類能夠根據不少指標,下面咱們一一介紹一下:
- 推薦引擎是否是爲不一樣的用戶推薦不一樣的數據根據這個指標,推薦引擎能夠分爲基於大衆行爲的推薦引擎和個性化推薦引擎
- 根據大衆行爲的推薦引擎,對每一個用戶都給出一樣的推薦,這些推薦能夠是靜態的由系統管理員人工設定的,或者基於系統全部用戶的反饋統計計算出的當下比較流行的物品。
- 個性化推薦引擎,對不一樣的用戶,根據他們的口味和喜愛給出更加精確的推薦,這時,系統須要瞭解需推薦內容和用戶的特質,或者基於社會化網絡,經過找到與當前用戶相同喜愛的用戶,實現推薦。
這是一個最基本的推薦引擎分類,其實大部分人們討論的推薦引擎都是將個性化的推薦引擎,由於從根本上說,只有個性化的推薦引擎纔是更加智能的信息發現過程。
- 根據推薦引擎的數據源其實這裏講的是如何發現數據的相關性,由於大部分推薦引擎的工做原理仍是基於物品或者用戶的類似集進行推薦。那麼參考圖 1 給出的推薦系統原理圖,根據不一樣的數據源發現數據相關性的方法能夠分爲如下幾種:
- 根據系統用戶的基本信息發現用戶的相關程度,這種被稱爲基於人口統計學的推薦(Demographic-based Recommendation)
- 根據推薦物品或內容的元數據,發現物品或者內容的相關性,這種被稱爲基於內容的推薦(Content-based Recommendation)
- 根據用戶對物品或者信息的偏好,發現物品或者內容自己的相關性,或者是發現用戶的相關性,這種被稱爲基於協同過濾的推薦(Collaborative Filtering-based Recommendation)。
- 根據推薦模型的創建方式能夠想象在海量物品和用戶的系統中,推薦引擎的計算量是至關大的,要實現實時的推薦務必須要創建一個推薦模型,關於推薦模型的創建方式能夠分爲如下幾種:
- 基於物品和用戶自己的,這種推薦引擎將每一個用戶和每一個物品都看成獨立的實體,預測每一個用戶對於每一個物品的喜愛程度,這些信息每每是用一個二維矩陣描述的。因爲用戶感興趣的物品遠遠小於總物品的數目,這樣的模型致使大量的數據空置,即咱們獲得的二維矩陣每每是一個很大的稀疏矩陣。同時爲了減少計算量,咱們能夠對物品和用戶進行聚類, 而後記錄和計算一類用戶對一類物品的喜愛程度,但這樣的模型又會在推薦的準確性上有損失。
- 基於關聯規則的推薦(Rule-based Recommendation):關聯規則的挖掘已是數據挖掘中的一個經典的問題,主要是挖掘一些數據的依賴關係,典型的場景就是「購物籃問題」,經過關聯規則的挖掘,咱們能夠找到哪些物品常常被同時購買,或者用戶購買了一些物品後一般會購買哪些其餘的物品,當咱們挖掘出這些關聯規則以後,咱們能夠基於這些規則給用戶進行推薦。
- 基於模型的推薦(Model-based Recommendation):這是一個典型的機器學習的問題,能夠將已有的用戶喜愛信息做爲訓練樣本,訓練出一個預測用戶喜愛的模型,這樣之後用戶在進入系統,能夠基於此模型計算推薦。這種方法的問題在於如何將用戶實時或者近期的喜愛信息反饋給訓練好的模型,從而提升推薦的準確度。
其實在如今的推薦系統中,不多有隻使用了一個推薦策略的推薦引擎,通常都是在不一樣的場景下使用不一樣的推薦策略從而達到最好的推薦效果,例如 Amazon 的推薦,它將基於用戶自己歷史購買數據的推薦,和基於用戶當前瀏覽的物品的推薦,以及基於大衆喜愛的當下比較流行的物品都在不一樣的區域推薦給用戶,讓用戶能夠從全方位的推薦中找到本身真正感興趣的物品。
深刻推薦機制
這一章的篇幅,將詳細介紹各個推薦機制的工做原理,它們的優缺點以及應用場景。
基於人口統計學的推薦
基於人口統計學的推薦機制(Demographic-based Recommendation)是一種最易於實現的推薦方法,它只是簡單的根據系統用戶的基本信息發現用戶的相關程度,而後將類似用戶喜好的其餘物品推薦給當前用戶,圖 2 給出了這種推薦的工做原理。
圖 2. 基於人口統計學的推薦機制的工做原理
從圖中能夠很清楚的看到,首先,系統對每一個用戶都有一個用戶 Profile 的建模,其中包括用戶的基本信息,例如用戶的年齡,性別等等;而後,系統會根據用戶的 Profile 計算用戶的類似度,能夠看到用戶 A 的 Profile 和用戶 C 同樣,那麼系統會認爲用戶 A 和 C 是類似用戶,在推薦引擎中,能夠稱他們是「鄰居」;最後,基於「鄰居」用戶羣的喜愛推薦給當前用戶一些物品,圖中將用戶 A 喜歡的物品 A 推薦給用戶 C。 這種基於人口統計學的推薦機制的好處在於:
- 由於不使用當前用戶對物品的喜愛歷史數據,因此對於新用戶來說沒有「冷啓動(Cold Start)」的問題。
- 這個方法不依賴於物品自己的數據,因此這個方法在不一樣物品的領域均可以使用,它是領域獨立的(domain-independent)。
那麼這個方法的缺點和問題是什麼呢?這種基於用戶的基本信息對用戶進行分類的方法過於粗糙,尤爲是對品味要求較高的領域,好比圖書,電影和音樂等領域,沒法獲得很好的推薦效果。可能在一些電子商務的網站中,這個方法能夠給出一些簡單的推薦。另一個侷限是,這個方法可能涉及到一些與信息發現問題自己無關卻比較敏感的信息,好比用戶的年齡等,這些用戶信息不是很好獲取。
基於內容的推薦
基於內容的推薦是在推薦引擎出現之初應用最爲普遍的推薦機制,它的核心思想是根據推薦物品或內容的元數據,發現物品或者內容的相關性,而後基於用戶以往的喜愛記錄,推薦給用戶類似的物品。圖 3 給出了基於內容推薦的基本原理。
圖 3. 基於內容推薦機制的基本原理
圖 3 中給出了基於內容推薦的一個典型的例子,電影推薦系統,首先咱們須要對電影的元數據有一個建模,這裏只簡單的描述了一下電影的類型;而後經過電影的元數據發現電影間的類似度,由於類型都是「愛情,浪漫」電影 A 和 C 被認爲是類似的電影(固然,只根據類型是不夠的,要獲得更好的推薦,咱們還能夠考慮電影的導演,演員等等);最後實現推薦,對於用戶 A,他喜歡看電影 A,那麼系統就能夠給他推薦相似的電影 C。 這種基於內容的推薦機制的好處在於它能很好的建模用戶的口味,能提供更加精確的推薦。但它也存在如下幾個問題:
- 須要對物品進行分析和建模,推薦的質量依賴於對物品模型的完整和全面程度。在如今的應用中咱們能夠觀察到關鍵詞和標籤(Tag)被認爲是描述物品元數據的一種簡單有效的方法。
- 物品類似度的分析僅僅依賴於物品自己的特徵,這裏沒有考慮人對物品的態度。
- 由於須要基於用戶以往的喜愛歷史作出推薦,因此對於新用戶有「冷啓動」的問題。
雖然這個方法有不少不足和問題,但他仍是成功的應用在一些電影,音樂,圖書的社交站點,有些站點還請專業的人員對物品進行基因編碼,好比潘多拉,在一份報告中說道,在潘多拉的推薦引擎中,每首歌有超過 100 個元數據特徵,包括歌曲的風格,年份,演唱者等等。
基於協同過濾的推薦
隨着 Web2.0 的發展,Web 站點更加提倡用戶參與和用戶貢獻,所以基於協同過濾的推薦機制因運而生。它的原理很簡單,就是根據用戶對物品或者信息的偏好,發現物品或者內容自己的相關性,或者是發現用戶的相關性,而後再基於這些關聯性進行推薦。基於協同過濾的推薦能夠分爲三個子類:基於用戶的推薦(User-based Recommendation),基於項目的推薦(Item-based Recommendation)和基於模型的推薦(Model-based Recommendation)。下面咱們一個一個詳細的介紹着三種協同過濾的推薦機制。
基於用戶的協同過濾推薦 基於用戶的協同過濾推薦的基本原理是,根據全部用戶對物品或者信息的偏好,發現與當前用戶口味和偏好類似的「鄰居」用戶羣,在通常的應用中是採用計算「K- 鄰居」的算法;而後,基於這 K 個鄰居的歷史偏好信息,爲當前用戶進行推薦。下圖 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. 基於項目的協同過濾推薦機制的基本原理
同時協同過濾,在基於用戶和基於項目兩個策略中應該如何選擇呢?其實基於項目的協同過濾推薦機制是 Amazon 在基於用戶的機制上改良的一種策略,由於在大部分的 Web 站點中,物品的個數是遠遠小於用戶的數量的,並且物品的個數和類似度相對比較穩定,同時基於項目的機制比基於用戶的實時性更好一些。但也不是全部的場景都是這樣的狀況,能夠設想一下在一些新聞推薦系統中,也許物品,也就是新聞的個數可能大於用戶的個數,並且新聞的更新程度也有很快,因此它的形似度依然不穩定。因此,其實能夠看出,推薦策略的選擇其實和具體的應用場景有很大的關係。
基於模型的協同過濾推薦 基於模型的協同過濾推薦就是基於樣本的用戶喜愛信息,訓練一個推薦模型,而後根據實時的用戶喜愛的信息進行預測,計算推薦。 基於協同過濾的推薦機制是現今應用最爲普遍的推薦機制,它有如下幾個顯著的
優勢:
- 它不須要對物品或者用戶進行嚴格的建模,並且不要求物品的描述是機器可理解的,因此這種方法也是領域無關的。
- 這種方法計算出來的推薦是開放的,能夠共用他人的經驗,很好的支持用戶發現潛在的興趣偏好
而它也存在如下幾個問題:
- 方法的核心是基於歷史數據,因此對新物品和新用戶都有「冷啓動」的問題。
- 推薦的效果依賴於用戶歷史偏好數據的多少和準確性。
- 在大部分的實現中,用戶歷史偏好是用稀疏矩陣進行存儲的,而稀疏矩陣上的計算有些明顯的問題,包括可能少部分人的錯誤偏好會對推薦的準確度有很大的影響等等。
- 對於一些特殊品味的用戶不能給予很好的推薦。
- 因爲以歷史數據爲基礎,抓取和建模用戶的偏好後,很難修改或者根據用戶的使用演變,從而致使這個方法不夠靈活。
混合的推薦機制
在現行的 Web 站點上的推薦每每都不是單純只採用了某一種推薦的機制和策略,他們每每是將多個方法混合在一塊兒,從而達到更好的推薦效果。關於如何組合各個推薦機制,這裏講幾種比較流行的組合方法。
- 加權的混合(Weighted Hybridization): 用線性公式(linear formula)將幾種不一樣的推薦按照必定權重組合起來,具體權重的值須要在測試數據集上反覆實驗,從而達到最好的推薦效果。
- 切換的混合(Switching Hybridization):前面也講到,其實對於不一樣的狀況(數據量,系統運行情況,用戶和物品的數目等),推薦策略可能有很大的不一樣,那麼切換的混合方式,就是容許在不一樣的狀況下,選擇最爲合適的推薦機制計算推薦。
- 分區的混合(Mixed Hybridization):採用多種推薦機制,並將不一樣的推薦結果分不一樣的區顯示給用戶。其實,Amazon,噹噹網等不少電子商務網站都是採用這樣的方式,用戶能夠獲得很全面的推薦,也更容易找到他們想要的東西。
- 分層的混合(Meta-Level Hybridization): 採用多種推薦機制,並將一個推薦機制的結果做爲另外一個的輸入,從而綜合各個推薦機制的優缺點,獲得更加準確的推薦。
推薦引擎的應用
介紹完推薦引擎的基本原理,基本推薦機制,下面簡要分析幾個有表明性的推薦引擎的應用,這裏選擇兩個領域:Amazon 做爲電子商務的表明,豆瓣做爲社交網絡的表明。
推薦在電子商務中的應用 – Amazon Amazon 做爲推薦引擎的鼻祖,它已經將推薦的思想滲透在應用的各個角落。Amazon 推薦的核心是經過數據挖掘算法和比較用戶的消費偏好於其餘用戶進行對比,藉以預測用戶可能感興趣的商品。對應於上面介紹的各類推薦機制,Amazon 採用的是分區的混合的機制,並將不一樣的推薦結果分不一樣的區顯示給用戶,圖 6 和圖 7 展現了用戶在 Amazon 上能獲得的推薦。
圖 6. 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 的電影推薦。
圖 9 . 豆瓣的推薦機制 - 基於用戶品味的推薦
豆瓣的推薦是經過「豆瓣猜」,爲了讓用戶清楚這些推薦是如何來的,豆瓣還給出了「豆瓣猜」的一個簡要的介紹。
「
你的我的推薦是根據你的收藏和評價自動得出的,每一個人的推薦清單都不一樣。你的收藏和評價越多,豆瓣給你的推薦會越準確和豐富。
天天推薦的內容可能會有變化。隨着豆瓣的長大,給你推薦的內容也會愈來愈準。
」 這一點讓咱們能夠清晰明瞭的知道,豆瓣必然是基於社會化的協同過濾的推薦,這樣用戶越多,用戶的反饋越多,那麼推薦的效果會愈來愈準確。 相對於 Amazon 的用戶行爲模型,豆瓣電影的模型更加簡單,就是「看過」和「想看」,這也讓他們的推薦更加專一於用戶的品味,畢竟買東西和看電影的動機仍是有很大不一樣的。 另外,豆瓣也有基於物品自己的推薦,當你查看一些電影的詳細信息的時候,他會給你推薦出「喜歡這個電影的人也喜歡的電影」, 如圖 10,這是一個基於協同過濾的應用。
圖 10 . 豆瓣的推薦機制 - 基於電影自己的推薦
總結
在網絡數據爆炸的年代,如何讓用戶更快的找到想要的數據,如何讓用戶發現本身潛在的興趣和需求,不管是對於電子商務仍是社會網絡的應用都是相當重要的。推薦引擎的出現,使得這個問題愈來愈被你們關注。但對大多數人來說,也許還在驚歎它爲何老是能猜到你到底想要些什麼。推薦引擎的魔力在於你不清楚在這個推薦背後,引擎到底記錄和推理了些什麼。 經過這篇綜述性的文章,你能夠了解,其實推薦引擎只是默默的記錄和觀察你的一舉一動,而後再借由全部用戶產生的海量數據分析和發現其中的規律,進而慢慢的瞭解你,你的需求,你的習慣,並默默的無聲息的幫助你快速的解決你的問題,找到你想要的東西。 其實,回頭想一想,不少時候,推薦引擎比你更瞭解你本身。 經過第一篇文章,相信你們對推薦引擎有一個清晰的第一印象,本系列的下一篇文章將深刻介紹基於協同過濾的推薦策略。在現今的推薦技術和算法中,最被你們普遍承認和採用的就是基於協同過濾的推薦方法。它以其方法模型簡單,數據依賴性低,數據方便採集,推薦效果較優等多個優勢成爲大衆眼裏的推薦算法「No.1」。本文將帶你深刻了解協同過濾的祕密,並給出基於 Apache Mahout 的協同過濾算法的高效實現。Apache Mahout 是 ASF 的一個較新的開源項目,它源於 Lucene,構建在 Hadoop 之上,關注海量數據上的機器學習經典算法的高效實現。 感謝你們對本系列的關注和支持。