機器學習(二十八)— 推薦算法

一、推薦系統目的html

(1)幫助用戶找到想要的商品(新聞/音樂/……),發掘長尾算法

(2)下降信息過載網絡

(3)提升站點的點擊率/轉化率機器學習

(4)加深對用戶的瞭解,爲用戶提供定製化服務工具

二、推薦算法概述學習

  推薦算法是很是古老的,在機器學習尚未興起的時候就有需求和應用了。歸納來講,能夠分爲如下5種:字體

  1)基於內容的推薦:這一類通常依賴於天然語言處理NLP的一些知識,經過挖掘文本的TF-IDF特徵向量,來獲得用戶的偏好,進而作推薦。這類推薦算法能夠找到用戶獨特的小衆喜愛,並且還有較好的解釋性。這一類因爲須要NLP的基礎,本文就很少講,在後面專門講NLP的時候再討論。大數據

  2)協同過濾推薦:本文後面要專門講的內容。協調過濾是推薦算法中目前最主流的種類,花樣繁多,在工業界已經有了不少普遍的應用。它的優勢是不須要太多特定領域的知識,能夠經過基於統計的機器學習算法來獲得較好的推薦效果。最大的優勢是工程上容易實現,能夠方便應用到產品中。目前絕大多數實際應用的推薦算法都是協同過濾推薦算法。網站

  3)混合推薦:這個相似咱們機器學習中的集成學習,博才衆長,經過多個推薦算法的結合,獲得一個更好的推薦算法,起到三個臭皮匠頂一個諸葛亮的做用。好比經過創建多個推薦算法的模型,最後用投票法決定最終的推薦結果。混合推薦理論上不會比單一任何一種推薦算法差,可是使用混合推薦,算法複雜度就提升了,在實際應用中有使用,可是並無單一的協調過濾推薦算法,好比邏輯迴歸之類的二分類推薦算法普遍。spa

  現實應用中,其實不多有直接用某種算法來作推薦的系統。在一些大的網站如Netflix,就是融合了數十種算法的推薦系統。咱們能夠經過給不一樣算法的結果加權重來綜合結果,或者是在不一樣的計算環節中運用不一樣的算法來混合,達到更貼合本身業務的目的。

  4)基於規則的推薦:這類算法常見的好比基於最多用戶點擊,最多用戶瀏覽等,屬於大衆型的推薦方法,在目前的大數據時代並不主流。

  5)基於人口統計信息的推薦:這一類是最簡單的推薦算法了,它只是簡單的根據系統用戶的基本信息發現用戶的相關程度,而後進行推薦,目前在大型系統中已經較少使用。

三、基於內容的推薦算法

  對一個給定的用戶, 推薦與他以前喜歡的項目在內容上有類似性的其餘項目。這種推薦僅須要獲得兩類信息: 項目特徵的描述和用戶過去的喜愛信息。

  舉個栗子,如今系統裏有一個用戶和一條新聞。經過分析用戶的行爲以及新聞的文本內容,咱們提取出數個關鍵字。將這些關鍵字做爲屬性,把用戶(過去的喜愛)和新聞(新的內容)分解成向量。

  以後再計算向量距離,即可以得出該用戶和新聞的類似度了,將計算類似度最大的(例如採用餘弦計算)內容進行推薦。

  這種方法很簡單,若是在爲一名熱愛觀看英超聯賽的足球迷推薦新聞時,新聞裏同時存在關鍵字體育、足球、英超,顯然匹配前兩個詞都不如直接匹配英超來得準確,系統該如何體現出關鍵詞的這種「重要性」呢?這時咱們即可以引入詞權的概念。在大量的語料庫中經過計算(好比典型的TF-IDF算法),咱們能夠算出新聞中每個關鍵詞的權重,在計算類似度時引入這個權重的影響,就能夠達到更精確的效果。sim(user, item) = 文本類似度(user, item) * 詞權,將重要的詞加大權重。

  然而,常常接觸體育新聞方面數據的同窗就會要提出問題了:要是用戶的興趣是足球,而新聞的關鍵詞是德甲、英超,按照上面的文本匹配方法顯然沒法將他們關聯到一塊兒。在此,咱們能夠引用話題聚類:利用word2vec一類工具,能夠將文本的關鍵詞聚類,而後根據topic將文本向量化,再根據topic爲文本內容與用戶做類似度計算。

  綜上,基於內容的推薦算法可以很好地解決冷啓動問題,而且也不會囿於熱度的限制,由於它是直接基於內容匹配的,而與瀏覽記錄無關。然而它也會存在一些弊端,好比過分專業化(over-specialisation)的問題。這種方法會一直推薦給用戶內容密切關聯的item,而失去了推薦內容的多樣性。

四、冷啓動問題

  冷啓動問題主要分爲3類:

  • 用戶冷啓動,即如何給新用戶作個性化推薦
  • 物品冷啓動,即如何將新的物品推薦給可能對它感興趣的用戶
  • 系統冷啓動,即如何在一個新開發的網站(沒有用戶,沒有用戶行爲,只有部分物品信息)上設計個性化推薦系統,從而在網站剛發佈時就讓用戶體會到個性化推薦

  解決方案:

  • 推薦熱門排行榜,等到用戶數據收集到必定的時候,再切換爲個性化推薦;
  • 利用用戶註冊信息;
  • 用戶在登陸時對一些物品進行反饋,收集用戶對這些物品的興趣信息,而後給用戶推薦那些和這些物品類似的物品;
  • 採用專家標註;
  • 利用物品的內容信息,物品冷啓動;
  • 利用用戶在其餘地方已經沉澱的數據進行冷啓動;
  • 利用用戶的手機等興趣偏好進行冷啓動,好比安裝的軟件等

五、上下文信息、社交網絡

  推薦系統中的上下文信息是指用戶訪問推薦系統的時間、地點、心情等。介紹時間上下文和地點上下文,讓推薦系統可以準確預測用戶在某個特定時刻及特定地點的興趣。推薦系統的實時性和多樣性。

  社交網絡:電子郵件、註冊信息、位置數據、論壇討論組、社交網站。

  社會化推薦之因此受到不少網站的重視,主要由於下面的優勢:

  • 好友推薦能夠增長推薦的信任度,好友每每是用戶最信任的,用戶每每不必定信任計算機的智能,但會信任好朋友的推薦
  • 社交網絡能夠解決冷啓動問題,當一個新用戶經過新浪微博帳號登陸網站時,能夠從社交網站中獲取用戶的好友列表,而後給用戶推薦好友在網站上喜歡的物品。從而在沒有用戶行爲記錄時就給用戶提供較高質量的推薦結果,部分解決了推薦系統的冷啓動問題

  雲音樂使用了3個維度向人們推薦音樂:朋友推薦、人工推薦、智能推薦

六、評估

  當推薦算法完成後,怎樣來評估這個算法的效果?CTR(點擊率)、CVR(轉化率)、停留時間等都是很直觀的數據。在完成算法後,能夠經過線下計算算法的RMSE(均方根偏差)或者線上進行ABTest來對比效果。 

七、改進

  • 一、打通公司各大業務平臺,經過獲取其餘平臺的用戶數據,完全解決冷啓動問題;
  • 二、在不一樣設備上同步用戶數據,包括QQID、設備號、手機號等;
  • 三、豐富用戶的人口屬性,包括年齡、職業、地域等;
  • 四、更完善的用戶興趣狀態,方便生成用戶標籤和匹配內容。

  另外,公司的優點——社交平臺也是一個很好利用的地方。利用用戶的社交網絡,能夠很方便地經過用戶的好友、興趣羣的成員等更快捷地找到類似用戶以及用戶可能感興趣的內容,提升推薦的準確度。

 

參考文獻:https://www.cnblogs.com/rongyux/articles/5396844.html

相關文章
相關標籤/搜索