達觀數據於敬:個性化推薦系統實踐

達觀數據於敬:個性化推薦系統實踐

在DT(datatechnology)時代,網上購物、觀看視頻、聆聽音樂、閱讀新聞等各個領域無不充斥着各種推薦,個性化推薦已經完全融入人們的日常生活當中。個性化推薦根據用戶的歷史行爲數據進行深層興趣點挖掘,將用戶最感興趣的物品推薦給用戶,從而做到千人千面,不僅滿足了用戶本質的信息訴求,也最大化了企業的自身利益,所以個性化推薦蘊含着無限商機。

號稱“推薦系統之王”的電子商務網站亞馬遜曾宣稱,亞馬遜有20%~30%的銷售來自於推薦系統。其最大優勢就在於個性化推薦系統,該系統讓每個用戶都能有一個屬於自己的在線商店,並且在商店中能招到自己最感興趣的商品。美國著名視頻網站Netflix曾舉辦推薦系統比賽,懸賞100萬美元,希望能將其推薦算法的預測準確度提升10%。美國最大的視頻網站YouTube曾做過實驗比較個性化推薦和熱門視頻的點擊率,結果顯示個性化推薦的點擊率是後者的兩倍。

達觀數據擁有雄厚的研發推薦系統的技術積累,曾在ACM、CIKM、KDD、Hackathon等國際競賽的獲獎,在內容推薦,文本挖掘、廣告系統等方面申請有超過三十項國家發明專利。本文從數據處理、用戶行爲建模到個性化推薦,分享達觀數據在個性化推薦系統方面積累的一些經驗。(達觀數據聯合創始人於敬)

 

  1. 1.數據收集及預處理

推薦系統的本質其實就是通過一定的方式將用戶和喜歡的物品聯繫起來。物品和用戶自身擁有衆多屬性信息進行標識。

  • 物品屬性

物品表示推薦系統的客體,在不同的應用場景下,物品指代不同的待推薦事物。比如,在書籍推薦中,物品表示書籍;在電商推薦中,物品表示商品;在電影推薦中,物品表示電影;在社交網絡推薦中,物品表示人。商品有多種屬性標識自己是什麼。

                            wKioL1aq3ZfS2NJtAABSM0yVGK0950.png

商品屬性

  • 用戶屬性

用戶表示推薦系統的主體,自身屬性包括人口統計學信息以及從用戶行爲數據中挖掘分析得到的偏好等。

wKiom1aq3WjAreEsAAeB9mnDIEI730.png

用戶屬性

  • 用戶行爲

用戶的每一次的行爲操作無不反應用戶內心的本質需求,包括頁面瀏覽、點擊、收藏、購物、搜索、打分、評論等,這些數據是個性化推薦系統的最重要的數據。根據用戶自身獨有的行爲數據,可以爲每一個用戶生成特有的畫像。

wKiom1aq3YGj7QUkAAer3tdJEtA727.png

用戶行爲分析

  • 數據處理

在數據採集的過程中,難免會出現一些髒數據,在使用數據前需要進行清洗。過濾掉關鍵字段爲空、數值異常、類型異常等數據;用戶id包括cookie、手機號、email、註冊id等,需要進行映射得到用戶唯一id;以及數據去重等操作。另外,還有“人爲”的髒數據,如作弊、刷單等行爲,這些數據也需要清除,否則會嚴重影響後續算法的效果。達觀數據在反作弊方面也做了很多工作,可有效篩選各種行爲上的作弊情況。

  1. 2.用戶行爲建模

基於用戶歷史行爲的進行挖掘分析,得到刻畫用戶本質需求的一組屬性集合,即得到用戶模型,個性化推薦的準確性很大程度上依賴於對用戶屬性刻畫的準確性。達觀數據採用了多種方式進行量化,主要包括顯式用戶偏好分析和隱式用戶興趣點挖掘。

  • 顯式用戶偏好分析

結合用戶歷史行爲和物品信息,可以得到每種行爲下的用戶偏好數據,包括偏好的維度及偏好程度,如偏好的物品、品牌、類別、標籤等。再將各種行爲的偏好數據合併,最終得到用戶在物品、品牌、類別、標籤等各個維度上的偏好程度。合併不同維度的數據時,需要考慮到不同的行爲類型反應用戶偏好程度是不同的。比如購買行爲比點擊行爲更能反映用戶的偏好,則由購買行爲計算得到的偏好數據在合併時賦予的權重要高一些。要保證各種行爲的各個維度的數據具有可比性,需要進行歸一化,而且同緯度的要採用相同的歸一化方法。

  • 隱式用戶興趣點挖掘

除了結合物品信息進行分析計算得到的顯式偏好外,還有一部分隱式興趣點需要挖掘,這部分主要用於細分用戶羣體,進行有針對性的進行更有效的推薦。劃分羣體的準則要根據具體的業務需求而定,比如是否是高價值用戶、是否價格敏感、是否對大牌情有獨鍾、大神用戶和小白用戶的區分、喜歡熱門流行還是偏小衆的等等。藉助機器學習中的分類(如SVM)和聚類(如k-means)算法可有效解決用戶羣體的劃分問題,牽涉到的訓練和測試數據需要先根據一些規則粗略得到候選集,在結合人工標記的進行篩選。除了可以從行爲數據中抽取特徵外,也可以從物品和用戶的屬性數據中抽取特徵。經過模型的訓練、預測和後處理,從而將用戶劃分到不同的羣體。

  • 協同過濾的基石

在個性化推薦中,應用很廣泛的是基於用戶的協同過濾算法。這個算法最重要一點是相似用戶的計算。

wKioL1aq3d_wo-3TAAAu54-HTrk803.png

相似度計算方法對推薦效果的影響

相似度的計算很多種方法,如餘弦相似度、皮爾遜相關度等,曾經使用mahout做過的一個不同相似度度量方法下的對比測試結果,測試中score的計算使用的是絕對差值的平均,越小越好。本次測試結果表明,在基於用戶的協同過濾中,使用皮爾遜相關度的計算方法,推薦效果最好。

其實不同的相似度計算方法有各自的優缺點,適用不同的應用場景,可以通過對比測試進行選取。在實際業務中,相似度的計算方法都有很多變種,比如是否考慮去除冷門物品和熱門物品的影響。畢竟過於冷門和過於熱門的物品對衡量用戶間的相似度時區分度不好,這時就需要進行剪枝。這種基於K近鄰的選取相似用戶的方法,相似度的閾值設置對結果影響很大,太大的話召回物品過多,準確度會有下降。

  • 時間維度上的考量

在處理各個維度的偏好數據時,需要考慮用戶行爲的有價值程度是隨時間衰減的,即行爲發生時間距當前的時間越近,得到的數據越能表徵用戶將來的行爲。畢竟用戶的口味隨着時間的推移是會變化的,所以時間越近權重越高。

另外,還需要考慮偏好和興趣點數據的在時間上的持續和變化過程,即需要刻畫用戶的口味呈現的時間規律。爲了解決這個問題,我們根據不同的時間間隔來界定,分長期、短期、近期和實時四個時間維度。長期的覆蓋了用戶幾乎一直不變的興趣,短期的覆蓋了用戶變化中的興趣,而近期則反映了用戶的“嚐鮮”的特點。這三種興趣是離線計算的,還要考慮用戶的實時興趣,我們通過很短的時間間隔進行近線挖掘分析,從而快速適應用戶當前的信息需求。

通過上述過程,最終就爲每個用戶生成了各個維度上的偏好和興趣點數據。

wKioL1aq3e-Dtd-DAAEy2vXaQTQ658.png

  1. 3.個性化推薦的實踐經驗

以用戶模型和物品屬性數據爲載體,結合多種推薦算法和效果優化策略,個性化推薦系統將用戶最感興趣的物品精準推薦給當前用戶。不同算法有自己的應用場景,所以根據業務需要、數據的豐富程度、效果衡量指標等選擇合適的推薦算法,然後根據推薦結果進行不斷迭代,最終完成符合預期效果的個性化推薦系統。

wKioL1aq3f7hEmd7AAEX-bSnky0228.png

個性化推薦流程

  • 基於內容的推薦

主要過程是將用戶的信息特徵和物品對象的特徵相匹配的過程,從而得到待推薦的物品集合。通過用戶模型中的類別、標籤、品牌等各維度的偏好數據,在全量物品列表中尋找與之匹配的用戶感興趣的物品列表,並給出用戶感興趣的程度。根據挖掘的興趣點,對部分用戶進行有針對性的推薦,爲其“量身定製”推薦結果,滿足其特有的需求。基於內容的推薦方法,優點是能保證推薦內容的相關性,並且根據內容特徵可以解釋推薦結果,而且對新物品的推薦是也能有很好的考量。缺點是由於內容高度匹配,導致推薦結果的驚喜度較差,而且對新用戶不能提供可靠的推薦結果。

  • 基於協同過濾的推薦

協同過濾方法主要基於羣體智慧,認爲相似的用戶對新物品的喜好也是相似的,相似的物品對於同一用戶來說,喜好程度也是相似的。這種方法克服了基於內容方法的一些弊端,最重要的是可以推薦一些內容上差異較大但是又是用戶感興趣的物品。大致分爲兩類:基於近鄰的方法和基於模型的方法。前者在數據預測中直接使用已有數據進行預測,將用戶的所有數據加載到內存中進行運算。基於模型的方法則是通過數據進行模型訓練,然後爲用戶預測新的物品,主要包括:pLSA(ProbabilisticLatent Semantic Analysis)、LDA(Latent DirichletAllocation)、SVM(Support Vector Machines)、SVD(Singular Value Decomposition)等。

基於用戶模型中的相似用戶列表和偏好的物品列表,分別使用基於用戶的和基於物品的協同過濾,將相似用戶喜歡的物品和相似的物品加入到推薦的候選集當中。同時,推薦權重的計算會考量相似度的大小及物品自身的質量分。

  • 基於知識的推薦

當用戶的行爲數據較少同時又有明確的需求時,協同過濾和基於內容的推薦效果不盡人意,但是基於知識的推薦可以幫助我們解決這類問題。這種方法不需要用戶行爲數據就能推薦,所以不存在冷啓動問題。推薦結果主要依賴兩種形式,一是用戶需求跟物品之間相似度,一種是明確的推薦規則。實際應用主要是以強規則爲主。

  • 補足策略

當用戶歷史數據比較侷限或者在冷啓動的時候,導致待推薦物品的數量不足沒有達到預定要求時,根據用戶模型的數據,結合挖掘的各種榜單進行補足,如全局熱門、分類熱門等。

  • 多算法融合

單一算法有各自的優缺點,並不能滿足實際的線上需求。爲了提供最優質的個性化推薦服務,保證推薦結果的多樣性、新穎性和驚喜度,需要融合多個推薦算法,進行混合推薦。常見的混合方法有以下幾種:

  1. a) 加權式混合

主要是對每個算法賦予不同的權重,通過將多個推薦算法的結果進行加權組合在一起,最後排序得到推薦結果。

wKioL1aq3hKDFlhDAAAJmsAdczY979.png

不同推薦算法的結果需要歸一化在相同的範圍內,並且各個算法的權重之和爲1。

  1. b) 交叉式混合

主要是直接將不同的推薦算法的結果組合在一起推薦給用戶,從而每個推薦算法的優質結果都會被展示給用戶。

wKiom1aq3dTBFf74AAAKb6uHUdM783.png

  1. c) 切換式混合

主要是根據不同應用場景決定使用哪一種推薦算法,應用場景改變的話則切換推薦算法。例如在新聞推薦時,首先使用基於內容的推薦,當找不到合適的內容時,接着使用協同過濾算法進行跨內容的推薦,最後使用樸素貝葉斯分類器找到與用戶長期興趣匹配的結果。

  1. d) 串聯混合

主要是將不同的推薦算法進行排序,後面的推薦算法對前面的不斷優化,最終得到一個多級優化下的推薦結果。

  1. e) 分級混合

主要是先界定不同的算法的好壞,優先使用好算法的推薦結果,得不到結果時再使用次好的,依次類推。

達觀數據在實踐中充分利用了各種混合方法來提高推薦效果,並取得了優異的成效。例如基於加權式和分級混合的流程是,首先通過權重的大小來衡量每種推薦算法結果的好壞,產生待推薦的物品集合,在合併的時候,將優先使用好的推薦算法的結果。實踐中則是各種指標綜合權衡,整個過程也要複雜很多。(達觀數據於敬 陳運文)

  • 重排序

排序學習(Learning To Rank, LTR)一直是機器學習中的熱門研究領域。由於排序過程牽涉到各種維度的參數數據,導致調參費時費力,而且很可能會出現過擬合現象。而機器學習方法不僅有成熟的理論基礎,而且很容易融合多種特徵,通過不斷的迭代來進行參數優化,可有效解決數據稀疏、過擬合等問題。著名的Netflix 公司就在他們的推薦系統中全面應用了LTR 技術。

wKiom1aq3eTyVua0AABUluWE33Y865.png

排序學習的流程

對於已標註的訓練集,首先選定LTR方法,確定損失函數,以最小化損失函數爲目標進行優化即可得到排序模型的相關參數,這就是學習過程。預測過程將待預測結果輸入學習得到的排序模型中,即可得到結果的相關得分,利用該得分進行排序即可得到待預測結果的最終順序。LTR分按點(pointwise)、按對(pairwise)和按表(listwise) 三種方法,涉及到的常見模型有LR(LogisticRegression)、SVM、DT(DecisionTree)。

關於排序模型的選擇,LR 算法主要適用於特徵數很多、樣本量很大的情況。如果是樣本量很大,但是特徵比較少的情況時,建議使用DT的算法。主要是因爲在特徵數較少時,對應的問題往往是非線性的,此DT算法可以發揮自身的優勢。另外,SVM在解決非線性分類問題是效果也非常好。相對於另外兩種方法,按表的方法往往更加直接,它專注於自己的目標和任務,直接優化排序結果,因此往往效果也是最好的。

經過多個推薦算法的處理,最終得到待推薦物品的結合,使用少量維度的特徵進行排序過於簡單,效果也大打折扣。基於推薦算法得到的相關特徵,結合物品和用戶的特徵進行組合,可以得到各種特徵,並且有些特徵是正相關有些是負相關,需要不斷優化。藉助機器學習方法得到了最終的物品排序,呈現給用戶。

 

  1. 4.結束語

本文從構建用戶模型到個性化推薦,介紹了達觀數據的一些實踐經驗。個性化推薦系統能有效解決信息過載和長尾物品兩個方面的問題,不僅提供了極佳的用戶體檢,滿足了用戶的信息需求,也幫助了企業挖掘其中蘊含的無限商機。達觀數據一直致力於爲企業提供優質的大數據服務,經過多年的摸索,目前在個性化推薦系統研發和效果提升方面已經積累了豐富的實戰經驗。當然新技術也在不斷出現,深度學習的興起也給個性化推薦效果的提升帶來了更大的契機和想象空間,達觀數據也在這方面進行不斷探索,後續有機會再跟大家一起分享。(達觀數據於敬)


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