機器學習:實例1--推薦系統架構

推薦在電商和互聯網應用中已經應用的非常廣泛,相比於根據query進行主動的搜索,推薦是更加被動的由系統自動推出商品給用戶。搜索的意圖比較明顯,直接由query給出,而推薦需要計算猜測用戶的意圖,根據用戶歷史數據和當前行爲,基於各種模型推薦合適的商品,提升用戶體驗,提高轉化率。不過近些年來,搜索和推薦在底層模型和技術方面越來越趨於融合,利用機器學習的方式來改進搜索和推薦的質量,像搜索排序LTR等等。

推薦系統需要考慮用戶、平臺、內容提供方之間的共贏,推薦系統可以增加長尾銷售能力,增加用戶粘性和提高用戶體驗,提高轉化率以及商業收入。

先說一下在我們應用內容分發平臺中幾種推薦算法:

基於內容Content-based的推薦,在內容分發平臺中,利用用戶畫像中的用戶-分類興趣和分類-應用的矩陣向量進行乘法操作,得出應用打分排名進行推薦,用於解決應用的冷啓動和用戶行爲數據稀疏問題。這種方式問題在於,對於物品對應分類比重需要人工的來進行指定,存在人爲方面的因素,很難把控,在推薦的精度方面存在問題。

人工對應於的分類進行標註,難免有缺陷,對應用的內容主題相似度建模,爲用戶推薦和之前有過行爲的應用的主題相似的應用。

在內容推薦中,還有一種是對應用進行打標籤Tag,結合用戶畫像中的標籤,通過內容的匹配算法,推薦應用給用戶。

基於協同過濾的推薦,爲了增加應用推薦的新穎性,利用用戶的歷史行爲數據,進行基於Item的協同過濾推薦,該推薦算法需要離線計算Item之間的相似度,對於用戶行爲的稀疏性問題,採用Jaccard來計算物品的相似度,同時需要考慮規避活躍用戶的影響。

基於關聯規則的推薦,利用並行FPGrowth來計算應用之間的相關性。

推薦系統的架構



推薦系統架構包括離線和在線兩部分,

離線部分,基於用戶特徵(畫像分類興趣、標籤、行爲特徵)和應用庫(類別、標籤,每個應用都可以用類別和標籤來特徵化),利用機器學習、文本挖掘、統計以及相關的推薦算法進行離線模型(用戶特徵表、特徵物品表、融合模型)計算,比如利用LDA進行應用的內容主題抽取以做主題相似度的比較;基於Item的協同過濾,需要根據用戶的行爲,計算物品之間的相似度;以及針對各種算法的融合模型的訓練等等。這些處理過程一般都可以採用分佈式的並行處理過程MR來進行離線的計算。

在線數據處理部分,是給予用戶靜態和實時行爲特徵進行相關物品檢索,以及物品排序的過程。主要由場景意圖、規則設定、算法融合組成。

場景主要負責對用戶意圖的識別,對於場景的判斷,需要結合用戶的實時行爲,來明確用戶的意圖是發散還是聚焦的,不同的場景採用不同的算法進行組裝,比如在首頁或者頻道欄用戶的目的性不是那麼強,爲了增加用戶的粘性,可以基於標籤分類的推薦、協同過濾、最新最熱等的算法進行推薦。在用戶瀏覽到某一應用的詳情頁,那麼用戶的意圖比較明顯,可以基於內容的和關聯規則的算法給用戶推薦應用。在下載進行或者完成後,可以用採用基於Item的協同過濾、最新最熱算法進行推薦。還有一種方式是以PUSH推送客戶端的方式爲用戶精準的推送,可以融合推廣、協同過濾、最新最熱等算法。

在推薦過程中,除了在不同的場景用不同的算法進行融合外,也需要考慮商業的目標,運營業務希望通過人工規則來干預推薦的結果,比如商業推廣。這就需要設定規則來進行干預。

每種算法考慮的問題角度會不一樣,面對特徵的多樣性、模型多樣性、規則多樣性,需要有一種機制來ensemble融合起來,採用邏輯迴歸,以候選應用的每種算法或規則打分作爲特徵輸入,以用戶是否下載該應用作爲二元因變量,進行建模,得出推薦的最終排名,通過這樣一種融合的模型,來學習隱藏在羣體背後的規則。

效果評測部分,可以採用在線A/BTesting方式,引用部分流量,在進行算法調整時對比調整前後的轉化率情況;也可以離線的基於一些評價標準,F1、多樣性、新穎度、RMSE、AUC等進行評測。

設計一個推薦系統,需要算法、數據、產品方面都需綜合考慮,利用算法和數據得出模型並應用於推薦,推薦的結果展示以及對最終的效果的反饋也需要良好的產品設計來支撐,以提高人機交互的能力,提高推薦的效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章