机器学习(二十八)— 推荐算法
1、推薦系統目的
(1)幫助用戶找到想要的商品(新聞/音樂/……),發掘長尾
(2)降低信息過載
(3)提高站點的點擊率/轉化率
(4)加深對用戶的了解,為用戶提供定制化服務
2、推薦算法概述
推薦算法是非常古老的,在機器學習還沒有興起的時候就有需求和應用了。概括來說,可以分為以下5種:
1)基于內容的推薦:這一類一般依賴于自然語言處理NLP的一些知識,通過挖掘文本的TF-IDF特征向量,來得到用戶的偏好,進而做推薦。這類推薦算法可以找到用戶獨特的小眾喜好,而且還有較好的解釋性。這一類由于需要NLP的基礎,本文就不多講,在后面專門講NLP的時候再討論。
2)協同過濾推薦:本文后面要專門講的內容。協調過濾是推薦算法中目前最主流的種類,花樣繁多,在工業界已經有了很多廣泛的應用。它的優點是不需要太多特定領域的知識,可以通過基于統計的機器學習算法來得到較好的推薦效果。最大的優點是工程上容易實現,可以方便應用到產品中。目前絕大多數實際應用的推薦算法都是協同過濾推薦算法。
3)混合推薦:這個類似我們機器學習中的集成學習,博才眾長,通過多個推薦算法的結合,得到一個更好的推薦算法,起到三個臭皮匠頂一個諸葛亮的作用。比如通過建立多個推薦算法的模型,最后用投票法決定最終的推薦結果。混合推薦理論上不會比單一任何一種推薦算法差,但是使用混合推薦,算法復雜度就提高了,在實際應用中有使用,但是并沒有單一的協調過濾推薦算法,比如邏輯回歸之類的二分類推薦算法廣泛。
現實應用中,其實很少有直接用某種算法來做推薦的系統。在一些大的網站如Netflix,就是融合了數十種算法的推薦系統。我們可以通過給不同算法的結果加權重來綜合結果,或者是在不同的計算環節中運用不同的算法來混合,達到更貼合自己業務的目的。
4)基于規則的推薦:這類算法常見的比如基于最多用戶點擊,最多用戶瀏覽等,屬于大眾型的推薦方法,在目前的大數據時代并不主流。
5)基于人口統計信息的推薦:這一類是最簡單的推薦算法了,它只是簡單的根據系統用戶的基本信息發現用戶的相關程度,然后進行推薦,目前在大型系統中已經較少使用。
3、基于內容的推薦算法
對一個給定的用戶, 推薦與他之前喜歡的項目在內容上有相似性的其他項目。這種推薦僅需要得到兩類信息: 項目特征的描述和用戶過去的喜好信息。
舉個栗子,現在系統里有一個用戶和一條新聞。通過分析用戶的行為以及新聞的文本內容,我們提取出數個關鍵字。將這些關鍵字作為屬性,把用戶(過去的喜好)和新聞(新的內容)分解成向量。
之后再計算向量距離,便可以得出該用戶和新聞的相似度了,將計算相似度最大的(例如采用余弦計算)內容進行推薦。
這種方法很簡單,如果在為一名熱愛觀看英超聯賽的足球迷推薦新聞時,新聞里同時存在關鍵字體育、足球、英超,顯然匹配前兩個詞都不如直接匹配英超來得準確,系統該如何體現出關鍵詞的這種“重要性”呢?這時我們便可以引入詞權的概念。在大量的語料庫中通過計算(比如典型的TF-IDF算法),我們可以算出新聞中每一個關鍵詞的權重,在計算相似度時引入這個權重的影響,就可以達到更精確的效果。sim(user, item) = 文本相似度(user, item) * 詞權,將重要的詞加大權重。
然而,經常接觸體育新聞方面數據的同學就會要提出問題了:要是用戶的興趣是足球,而新聞的關鍵詞是德甲、英超,按照上面的文本匹配方法顯然無法將他們關聯到一起。在此,我們可以引用話題聚類:利用word2vec一類工具,可以將文本的關鍵詞聚類,然后根據topic將文本向量化,再根據topic為文本內容與用戶作相似度計算。
綜上,基于內容的推薦算法能夠很好地解決冷啟動問題,并且也不會囿于熱度的限制,因為它是直接基于內容匹配的,而與瀏覽記錄無關。然而它也會存在一些弊端,比如過度專業化(over-specialisation)的問題。這種方法會一直推薦給用戶內容密切關聯的item,而失去了推薦內容的多樣性。
4、冷啟動問題
冷啟動問題主要分為3類:
用戶冷啟動,即如何給新用戶做個性化推薦
物品冷啟動,即如何將新的物品推薦給可能對它感興趣的用戶
系統冷啟動,即如何在一個新開發的網站(沒有用戶,沒有用戶行為,只有部分物品信息)上設計個性化推薦系統,從而在網站剛發布時就讓用戶體會到個性化推薦
解決方案:
推薦熱門排行榜,等到用戶數據收集到一定的時候,再切換為個性化推薦;
利用用戶注冊信息;
用戶在登錄時對一些物品進行反饋,收集用戶對這些物品的興趣信息,然后給用戶推薦那些和這些物品相似的物品;
采用專家標注;
利用物品的內容信息,物品冷啟動;
利用用戶在其他地方已經沉淀的數據進行冷啟動;
利用用戶的手機等興趣偏好進行冷啟動,比如安裝的軟件等
5、上下文信息、社交網絡
推薦系統中的上下文信息是指用戶訪問推薦系統的時間、地點、心情等。介紹時間上下文和地點上下文,讓推薦系統能夠準確預測用戶在某個特定時刻及特定地點的興趣。推薦系統的實時性和多樣性。
社交網絡:電子郵件、注冊信息、位置數據、論壇討論組、社交網站。
社會化推薦之所以受到很多網站的重視,主要因為下面的優點:
好友推薦可以增加推薦的信任度,好友往往是用戶最信任的,用戶往往不一定信任計算機的智能,但會信任好朋友的推薦
社交網絡可以解決冷啟動問題,當一個新用戶通過新浪微博賬號登錄網站時,可以從社交網站中獲取用戶的好友列表,然后給用戶推薦好友在網站上喜歡的物品。從而在沒有用戶行為記錄時就給用戶提供較高質量的推薦結果,部分解決了推薦系統的冷啟動問題
云音樂使用了3個維度向人們推薦音樂:朋友推薦、人工推薦、智能推薦
6、評估
當推薦算法完成后,怎樣來評估這個算法的效果?CTR(點擊率)、CVR(轉化率)、停留時間等都是很直觀的數據。在完成算法后,可以通過線下計算算法的RMSE(均方根誤差)或者線上進行ABTest來對比效果。
7、改進
1、打通公司各大業務平臺,通過獲取其他平臺的用戶數據,徹底解決冷啟動問題;
2、在不同設備上同步用戶數據,包括QQID、設備號、手機號等;
3、豐富用戶的人口屬性,包括年齡、職業、地域等;
4、更完善的用戶興趣狀態,方便生成用戶標簽和匹配內容。
另外,公司的優勢——社交平臺也是一個很好利用的地方。利用用戶的社交網絡,可以很方便地通過用戶的好友、興趣群的成員等更快捷地找到相似用戶以及用戶可能感興趣的內容,提高推薦的準確度。
參考文獻:https://www.cnblogs.com/rongyux/articles/5396844.html
總結
以上是生活随笔為你收集整理的机器学习(二十八)— 推荐算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PYG教程【二】使用networkx创建
- 下一篇: 人工智能技术应用学什么