一、推薦系統目的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來對比效果。
七、改進
另外,公司的優點——社交平臺也是一個很好利用的地方。利用用戶的社交網絡,能夠很方便地經過用戶的好友、興趣羣的成員等更快捷地找到類似用戶以及用戶可能感興趣的內容,提升推薦的準確度。
參考文獻:https://www.cnblogs.com/rongyux/articles/5396844.html