推薦系統簡介



一、概述

推薦系統是一種信息過濾系統,用於預測用戶對物品的“評分”或“偏好”。(即實質上是一種預測系統)。簡單得說,就是一個可以根據用戶(users)的歷史行爲、社交關係、興趣點、所處上下文環境等去判斷用戶的當前需求或感興趣的物品(items)的系統。推薦系統通過分析、挖掘用戶行爲,發現用戶的個性化需求與興趣特點,將用戶可能感興趣的信息或商品推薦給用戶。一個優秀的推薦系統,能夠很好的串聯起用戶、商家以及平臺方,並讓三方都收益。
在這裏插入圖片描述
本質上來講,推薦系統就是對所有商品針對特定用戶進行按照一定策略進行排序,然後篩選出若干商品推薦給用戶的過程。

1.1 產生的原因

如今,我們這代人正經歷從信息時代(Information Technology,IT)到數據時代(Data Technology,DT)的變遷,DT時代比較明顯的標誌就是:信息過載
在這裏插入圖片描述
在DT時代,充斥着海量的信息,如何從海量的信息中快捷的幫助特定用戶找到感興趣的信息呢?有兩種相關的解決技術:搜索引擎與推薦系統

搜索引擎與推薦系統有什麼區別?

  • 搜索引擎:實現人找信息 eg.百度搜索…
  • 推薦系統:實現信息找人 eg.抖音的短視頻推薦

與搜索引擎不同,推薦系統不需要用戶準確地描述出自己的需求,而是根據分析歷史行爲建模,主動提供滿足用戶興趣和需求的信息。

1.2 應用場景

  • 圖書影音:Netflix、Youtube、愛奇藝、優酷、騰訊視頻、網易雲音樂等
  • 新聞資訊:今日頭條、知乎等
  • 人際社交:Facebook、Twitter、微博、人人網
  • 旅遊出行:Wanderfly、TripAdvisor、螞蜂窩、去哪兒
  • 電商零售:亞馬遜、淘寶、天貓、京東

1.3 推薦系統的本質

實際上,推薦系統是一個策略行爲。對於策略,他有四要素,分別是:

  • 待解決問題
  • 輸入(影響解決方案的因素)
  • 計算邏輯(將輸入轉換成輸出的規則)
  • 輸出(具體的解決方案)

以今日頭條爲例

  • 待解決的問題:從海量的內容中,找到用戶喜歡的內容;
  • 輸入:用戶畫像和內容特徵;
  • 計算邏輯:將這些內容特徵按一定規則轉化爲喜歡度;
  • 輸出:將內容按喜歡度從高到低排序。

二、工業推薦系統架構

我們以微博的推薦系統爲例,來簡單介紹一下:現在工業級的大規模推薦系統是怎麼來做推薦架構和推薦流程的。

在這裏插入圖片描述
它分爲兩大部分,最上面那部分是在線推薦部分,底下部分是離線部分

先說線上部分。我們習慣把微博叫做物料庫,實際就是item,物料庫的規模會比較大,一般會先過召回模塊。

爲什麼要走召回?

  • 要給微博的每一個用戶在熱門流推出個性化的信息流,假設一天新發的微博條數以億計算,再加上歷史的條數,任何一個人登上微博去刷熱門流,都需要算幾億條微博給這一個人。如果不增加召回環節,直接部署排序模型,這個計算量是很巨大的,速度上根本算不過來。

召回的目的很簡單,就是把個性化的推薦item數目降下來。召回等於說把用戶可能感興趣的物料進行一些縮減,縮到一定的數量範圍裏面,但是還要跟用戶興趣相關。

如果如果召回Item的數量還是比較多,可以部署一個粗排模塊,用簡單的排序模型再篩選一下,Item數量就可以再往下減一減,然後進入精排環節。因爲到這一步已經經過兩輪篩選,對於某個用戶來說,剩下的物料已經不多了。

精排的意思就是:在此基礎上可以加一些複雜模型,精製地給把少量微博根據用戶興趣排一排序,把用戶真正感興趣的內容排到前面去。

之後還有業務邏輯。比如說要把已讀的微博內容過濾掉,需要考慮推薦結果的多樣性以及其它各方面的業務邏輯。

我們會捕捉用戶行爲,舉個例子,用戶看過哪些微博、反饋過哪些微博、互動過哪些微博,這些行爲就被收集起來,對於實時的用戶行爲,一般會部署一個實時的模型,可以實時地更新在線模型,這體現在:召回可以改成實時的模式,包括ranking也可以改造成實時的模式

實時的意思就是:用戶刷了一條微博,或者互動了一條微博,立刻就在刷出下一條微博的時候,體現出用戶剛纔這個行爲了。

當然還會計算離線模型,因爲這個模型它的訓練數據更充分、更精準。通過這種方式,定期地更新線上的這三個模型,這就是典型的工業界做大規模推薦系統的整體流程。

這個框架是大多數做推薦的公司的推薦業務基本框架,只不過可能幾個關鍵環節使用的具體技術方法不同而已。

三、推薦系統的方法

1.協同過濾推薦(Collaborative Filtering Recommendation):

  • 該方法收集分析用戶歷史行爲、活動、偏好,計算一個用戶與其他用戶的相似度,利用目標用戶的相似用戶對商品評價的加權評價值,來預測目標用戶對特定商品的喜好程度。通過相似用戶進行推薦的算法稱爲基於用戶的協同過濾算法(User-based Collaborative Filtering);通過相似項進行推薦的算法稱爲基於項的協同過濾算法(Item-based Collaborative Filtering)

  • 優點是可以給用戶推薦未瀏覽過的新產品;

  • 缺點是對於沒有任何行爲的新用戶存在冷啓動的問題,同時也存在用戶與商品之間的交互數據不夠多造成的稀疏問題,會導致模型難以找到相近用戶。

2.基於內容過濾推薦(Content-based Filtering Recommendation):

  • 該方法利用商品的內容描述,抽象出有意義的特徵,通過計算用戶的興趣和商品描述之間的相似度,來給用戶做推薦。
  • 優點是簡單直接,不需要依據其他用戶對商品的評價,而是通過商品屬性進行商品相似度度量,從而推薦給用戶所感興趣商品的相似商品;
  • 缺點是對於沒有任何行爲的新用戶同樣存在冷啓動的問題。

3.隱語義與矩陣分解模型(Latent Factor Model):

  • 該方法通過隱含特徵(latent factor)聯繫用戶興趣和物品。隱語義模型,可以基於用戶的行爲自動進行聚類,並且這個類的數量,即粒度完全由可控。對於某個物品是否屬與一個類,完全由用戶的行爲確定,假設兩個物品同時被許多用戶喜歡,那麼這兩個物品就有很大的機率屬於同一個類。而某個物品在類所佔的權重,也完全可以由計算得出。
  • 優點是非常節省空間,比較前面講到的協同過濾算法,在用戶物品數量都很大的情況下,LFM 無疑是可以節省大量空間的;其次,
  • 缺點是LFM 不適合做實時推薦算法,不具備較好的解釋性,計算複雜度上略高於 協同過濾,但是還是在一個量級。

4.組合推薦(Hybrid Recommendation):

  • 運用不同的輸入和技術共同進行推薦,以彌補各自推薦技術的缺點。

5.基於深度學習的推薦系統:
在這裏插入圖片描述

  • 伴隨着機器學習的興起了非常多的技術被應用到推薦系統中,從傳統的機器學習方式LR、GBDT、XGBoost到LightGBM,深度學習從最初利用word2vec用於評估用戶的相似度,到CNN、RNN等模型也開始被很多的推薦小組嘗試。
  • 優點是深度學習具有優秀的自動提取特徵的能力,能夠學習多層次的抽象特徵表示,並對異質或跨域的內容信息進行學習,可以一定程度上處理推薦系統冷啓動問題;
  • 缺點是模型的可解釋性差,而且需要足夠的數據才能完全支持其豐富的參數化。

四、推薦系統的三大實驗方法

1. 離線實驗:

  • 通過日誌系統獲得用戶行爲數據,按照一定的格式生成一個標準的數據集 將數據集按照一定的規則分成訓練集和測試集。在訓練集上訓練用戶興趣模型,在測試集上進行預測 通過事先定義的離線指標評測算法在測試集上的預測結果。
  • 優點:不需要真實用戶的參與 不需要有對實際系統的控制權 速度快,可以測試大量算法。
  • 缺點:無法計算商業關心的指標,例如點擊率、轉化率等。

2.用戶調查

  • 由於離線試驗的指標與商業指標存在差異,高準確率不等於高用戶滿意度。所以,想要準確的評測一個算法,需要相對比較真實的環境。最好的方法就是直接上線測試,而由於無法確定算法的影響,上線測試會有比較大的風險,這時,我們的用戶調查就派上用場了。很多離線試驗無法獲得的主觀感受指標都可以通過用戶調查獲得。
  • PS:過程大致和產品的用戶調查差不多,但應儘量保證雙盲實驗,儘量使用多樣用戶羣,並保證用戶屬性的平衡。
  • 優點: 可以獲得很多體現用戶主觀感受的指標 相對在線實驗風險很低,出現錯誤後很容易彌補
  • 缺點:招募測試用戶代價較大,很難組織大規模的測試用戶,設計雙盲實驗較困難,並且用戶在測試環境下的行爲和真實環境下的行爲可能有所不同,導致測試結果在真實環境下無法重現。

3.在線實驗

  • 在線實驗就是大殺器了,它可以統計到最真實的用戶反饋和商業指標。在完成必要的離線試驗和用戶調查後,可以採用AB測試的方式比較新舊算法。

AB測試(一種在線評測算法的實驗方法):

  • 根據一定規則將用戶隨機分成幾組,對不同組的用戶採用不同的算法,然後統計不同組用戶的各種不同的評測指標來比較不同算法。比如可以統計不同組用戶的點擊率,通過該指標來比較不同算法的性能。

五、評測指標

1.用戶滿意度

  • 用戶滿意度是推薦系統最重要的指標,但是,用戶滿意度無法離線計算,只能通過用戶調查或在線實驗得到。

2.預測準確度

  • 是度量一個推薦系統預測用戶行爲的能力,是最重要的離線評測方法。

3.TopN推薦

  • TopN 推薦是指,用戶會不會對物品感興趣。TopN 推薦有兩個重要指標:準確率和召回率。

  • 準確率:爲用戶推薦且用戶感興趣的物品,在推薦結果列表中所佔的比例。

  • 召回率:爲用戶推薦且用戶感興趣的物品,在用戶感興趣的所有物品列表中所佔的比例。

4.評分預測

  • 評分預測是指用戶會對一個物品產生怎樣的評分,由此可以習得用戶的興趣模型或用戶畫像。

5.覆蓋率

  • 覆蓋率描述一個推薦系統對長尾的發掘能力。覆蓋率沒有唯一的定義方法,一個簡單的定義是,推薦列表中的物品佔總物品數的比例。

還有實時性健壯性等指標。

發佈了90 篇原創文章 · 獲贊 37 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章