一、推薦系統是什麼?算法
推薦系統本質上是銷售系統的一部分。網絡
爲了解決信息過載和用戶無明確需求的問題,找到用戶感興趣的物品,纔有了個性化推薦系統。架構
推薦系統普遍存在於各種網站中,做爲一個應用爲用戶提供個性化的推薦。它須要一些用戶的歷史數據,通常由三個部分組成:基礎數據、推薦算法系統、前臺展現。dom
基礎數據包括不少維度,包括用戶的訪問、瀏覽、下單、收藏,用戶的歷史訂單信息,評價信息等不少信息;機器學習
推薦算法系統主要是根據不一樣的推薦訴求由多個算法組成的推薦模型;學習
前臺展現主要是對客戶端系統進行響應,返回相關的推薦信息以供展現。測試
二、推薦引擎的分類網站
根據目標用戶進行區分:根據這個指標能夠分爲基於大衆行爲的推薦引擎和個性化推薦引擎。編碼
這是一個最基本的推薦引擎分類,其實大部分人們討論的推薦引擎都是將個性化的推薦引擎,由於從根本上說,只有個性化的推薦引擎纔是更加智能的信息發現過程。spa
根據數據源進行區分:主要是根據數據之間的相關性進行推薦,由於大部分推薦引擎的工做原理仍是基於物品或者用戶的類似集進行推薦。
根根據推薦模型進行區分:能夠想象在海量物品和用戶的系統中,推薦引擎的計算量是至關大的,要實現實時的推薦務必須要創建一個推薦模型,關於推薦模型的創建方式能夠分爲如下幾種:
三、常見的推薦算法
基於用戶的協同過濾算法
第一代協同過濾技術是基於用戶的協同過濾算法,基於用戶的協同過濾算法在推薦系統中得到了極大的成功,但它有自身的侷限性。由於基於用戶的協同過濾算法先計算的是用戶與用戶的類似度(興趣相投,人以羣分物以類聚),而後將類似度比較接近的用戶A購買的物品推薦給用戶B,專業的說法是該算法用最近鄰居(nearest-neighbor)算法找出一個用戶的鄰居集合,該集合的用戶和該用戶有類似的喜愛,算法根據鄰居的偏好對該用戶進行預測。
基於用戶的推薦邏輯有兩個問題:冷啓動與計算量巨大。基於用戶的算法只有已經被用戶選擇(購買)的物品纔有機會推薦給其餘用戶。在大型電商網站上來說,商品的數量實在是太多了,沒有被至關數量的用戶購買的物品實在是太多了,直接致使沒有機會推薦給用戶了,這個問題被稱之爲協同過濾的「冷啓動」。另外,由於計算用戶的類似度是經過目標用戶的歷史行爲記錄與其餘每個用戶的記錄相比較的出來的,對於一個擁有千萬級活躍用戶的電商網站來講,每計算一個用戶都涉及到了上億級別的計算,雖然咱們能夠先經過聚類算法經用戶先分羣,可是計算量也是足夠的大。
新用戶怎麼推薦?------默認推薦
基於用戶的協同過濾算法,推薦的商品都是已經被購買過的,對於沒有被用戶購買的商品,該如何推薦?------混合推薦,將多種推薦模型的結果打亂混合推薦。
商品數據和用戶數量都很大的狀況下,如何處理?------按照必定的聚類策略,將用戶聚類\物品聚類。
基於物品的協同過濾算法
第二代協同過濾技術是基於物品的協同過濾算法,基於物品的協同過濾算法與基於用戶的協同過濾算法基本相似。他使用全部用戶對物品或者信息的偏好,發現物品和物品之間的類似度,而後根據用戶的歷史偏好信息,將相似的物品推薦給用戶。可能這幾件商品的商品名稱風馬牛不相及,產品屬性有天壤之別,但經過模型算出來以後就是認爲他們是類似的。
舉個例子:假設用戶 A 喜歡物品 A 和物品 C,用戶 B 喜歡物品 A,物品 B 和物品 C,用戶 C 喜歡物品 A,從這些用戶的歷史喜愛能夠分析出物品 A 和物品 C 是比較相似的,喜歡物品 A 的人都喜歡物品 C,基於這個數據能夠推斷用戶 C 頗有可能也喜歡物品 C,因此係統會將物品 C 推薦給用戶 C。
基於人口統計學的推薦
基於人口統計學的推薦機制(Demographic-based Recommendation)是一種最易於實現的推薦方法,它只是簡單的根據系統用戶的基本信息發現用戶的相關程度,而後將類似用戶喜好的其餘物品推薦給當前用戶。基於人口統計學的推薦機制的好處在於:由於不使用當前用戶對物品的喜愛歷史數據,因此對於新用戶來說沒有「冷啓動(Cold Start)」的問題。這個方法不依賴於物品自己的數據,因此這個方法在不一樣物品的領域均可以使用,它是領域獨立的(domain-independent)。
基於內容的推薦
基於內容的推薦是在推薦引擎出現之初應用最爲普遍的推薦機制,它的核心思想是根據推薦物品或內容的元數據,發現物品或者內容的相關性,而後基於用戶以往的喜愛記錄,推薦給用戶類似的物品。基於內容的推薦機制的好處在於它能很好的建模用戶的口味,能提供更加精確的推薦。
但它也存在如下幾個問題:
雖然這個方法有不少不足和問題,但他仍是成功的應用在一些電影,音樂,圖書的社交站點,有些站點還請專業的人員對物品進行基因編碼,好比潘多拉,在一份報告中說道,在潘多拉的推薦引擎中,每首歌有超過 100 個元數據特徵,包括歌曲的風格,年份,演唱者等等。
四、混合推薦機制(重要)
在現行的 Web 站點上的推薦每每都不是單純只採用了某一種推薦的機制和策略,他們每每是將多個方法混合在一塊兒,從而達到更好的推薦效果。關於如何組合各個推薦機制,這裏講幾種比較流行的組合方法。
l 加權的混合(Weighted Hybridization): 用線性公式(linear formula)將幾種不一樣的推薦按照必定權重組合起來,具體權重的值須要在測試數據集上反覆實驗,從而達到最好的推薦效果。
l 切換的混合(Switching Hybridization):前面也講到,其實對於不一樣的狀況(數據量,系統運行情況,用戶和物品的數目等),推薦策略可能有很大的不一樣,那麼切換的混合方式,就是容許在不一樣的狀況下,選擇最爲合適的推薦機制計算推薦。
l 分區的混合(Mixed Hybridization):採用多種推薦機制,並將不一樣的推薦結果分不一樣的區顯示給用戶。其實,Amazon,噹噹網等不少電子商務網站都是採用這樣的方式,用戶能夠獲得很全面的推薦,也更容易找到他們想要的東西。
l 分層的混合(Meta-Level Hybridization): 採用多種推薦機制,並將一個推薦機制的結果做爲另外一個的輸入,從而綜合各個推薦機制的優缺點,獲得更加準確的推薦。
五、推薦系統的應用場景
Amazon 利用能夠記錄的全部用戶在站點上的行爲,根據不一樣數據的特色對它們進行處理,並分紅不一樣區爲用戶推送推薦:
六、推薦系統架構