若是您有任何疑問,請在下面發表評論。
大數據部落 -中國專業的第三方數據服務提供商,提供定製化的一站式數據挖掘和統計分析諮詢服務
統計分析和數據挖掘諮詢服務:y0.cn/teradat(諮詢服務請聯繫官網客服)
【服務場景】
科研項目; 公司項目外包;線上線下一對一培訓;數據爬蟲採集;學術研究;報告撰寫;市場調查。
【大數據部落】提供定製化的一站式數據挖掘和統計分析諮詢
歡迎選修咱們的R語言數據分析挖掘必知必會課程!
概要算法
拓端幫助國內母嬰電商公司建立智能推薦引擎,由此打造精準、高效的購物體驗,探索如何在大規模數據上實現各類推薦策略,進行策略優化,構建高效的推薦引擎的解決方案。微信
業務挑戰網絡
隨着電商網站用戶數量和商品數量的增長,數據成爲影響推薦質量的重要因素。做爲電子商務中一個熱門領域,價值萬億的中國母嬰市場隨着二孩政策的全面放開已經進入高增速增加時代,母嬰消費市場每一年可新增超300億母嬰消費,至少帶來年均13%左右的新增加空間,巨大的市場必然蘊含着巨大的商機和強大的利潤空間。app
衆所周知,解決信息過載的方式主要有類目導航、搜索、推薦,還有目前大熱的聊天機器人(chatbot),但其本質也是基於推薦系統和知識圖譜實現的。推薦不一樣於或者優於搜索的地方在於:搜索須要用戶知道本身須要什麼,而推薦則能夠作到幫助用戶發現本身須要什麼或者讓你須要的信息主動找到你,並且更加個性化,甚至能作到「比你本身更瞭解你本身」。dom
傳統推薦機制主要有基於人口統計學的推薦機制的工做原理和基於內容推薦機制的基本原理。機器學習
基於人口統計學的推薦機制的工做原理分佈式
豆瓣的推薦「豆瓣猜」post
基於內容推薦機制的基本原理性能
而母嬰類的商品具備種類多、功能類似的特色,用戶在購買時會出現「信息迷航」的問題,同時,因爲母嬰市場激烈的競爭,商品同質化愈來愈嚴重,傳統的推薦機制能難知足業務需求。學習
對於本次合做而言,所面臨的主要挑戰就是如何設計智能推薦引擎從海量商品中準確找到用戶所須要的商品。
混合IBCF算法的離線與實時的分佈式設計實現
在現行的 Web 站點上的推薦每每都不是單純只採用了某一種推薦的機制和策略,每每是將多個方法混合在一塊兒,從而達到更好的推薦效果。結合業務痛點,咱們採用一種基於矩陣填充技術的混合IBCF算法。首先利用準確度指標找出SVD的最優參數和混合IBCF算法的最佳權重,而後使用SVD降維方法對原始的高維稀疏矩陣進行預測填充,最後使用IBCF在用戶所屬類中尋找目標用戶最近鄰並使用最佳權重合並結果產生推薦。該算法利用用戶與商品之間的潛在關係克服了稀疏性問題,同時保留了可離線建模、可擴展性好等優勢。
以母嬰產品爲例,經過分析母嬰類產品,收集數據集構造母嬰領域不一樣類型產品的特徵向量。提取母嬰類偏好係數不爲0的用戶爲目標用戶,經過用戶訪問的時間偏好來肯定服務推薦的權重,計算其訪問的母嬰類與目標產品的特徵向量的類似度來肯定推薦產品的類型。最後,在母嬰之家購物平臺上實踐結果代表,該方法確實可提高用戶的個性化推薦。
用戶個性化需求解決方案設計
提升計算精度——優化k值,SVD和ItemCF的合併
因爲母嬰類商品的類似性較高,不一樣商品具備比較固定的類似度,因此咱們使用基於物品的協同過濾算法(IBCF)來進行推薦,在推薦過程當中能夠預先在線下計算好不一樣商品之間的類似度結果,而後把結果存在類似度表中,當推薦時進行表的查詢,預測用戶可能的偏好值,從而進行推薦。同時,因爲母嬰商品類似度高,當推薦過程的運算量比較大的時候,使用物品的一個小部分子集也能夠獲得高質量的預測結果。
針對上述問題,使用SVD方法將用戶評分分解爲不一樣的特徵及這些特徵對應的重要程度,利用用戶與商品之間潛在的關係,用初始評分矩陣的奇異值分解去抽取一些本質的特徵,下降數據維度來進行推薦,從而提升運算效率。
因爲SVD算法中保留的維數k很重要,也不容易選取,k若是過小,容易失去原始數據中重要的信息,不能獲得用戶評分矩陣的重要結構,k若是選大了,達不到降維的目的,並且容易過擬合訓練數據,所以測試數據時須要先對k的取值進行優化,選取最優的k值而後再進行實驗。
更客觀地評價用戶對商品的興趣——用戶行爲權重、用戶遺忘曲線
首先根據用戶的不一樣行爲(bhv)定義偏好權重,行爲: "投訴" 、"下單"、 "商品瀏覽" 、"商品加入購物車" 、"評論"分別對應偏好分值-一、四、三、二、3。
然而傳統的推薦基於用戶興趣是固定不變的假設,即用戶興趣不隨時間的變化而改變,所以,這些方法不能反映用戶興趣的變化。同時,被推薦的資源(產品)每每具備時效性,用戶的興趣也每每隨時間的不一樣而變化。
針對以上問題,爲了知足用戶的個性化需求,咱們提出了基於時間加權的協同過濾算法,考慮了時間對推薦質量的影響,認爲用戶興趣隨時間的流逝而衰減,即某個用戶感興趣的資源最可能和他近期訪問過的資源類似。
其中,艾賓浩斯遺忘曲線能夠較好的描述用戶瀏覽商品和遺忘的過程。它認爲當用戶瀏覽商品時,商品信息輸入大腦後,遺忘也就隨之開始了。遺忘率隨時間的流逝而先快後慢,特別是在剛剛識記的短期裏,遺忘最快。遵循艾賓浩斯遺忘曲線所揭示的記憶規律,對所瀏覽的商品及時進行推薦,能夠提高用戶的個性化推薦。
所以,咱們根據用戶對商品行爲距今的時間差對用戶的偏好進行權重調整,其中時間權重的計算使用艾賓浩斯(H.Ebbinghaus)遺忘率 ,獲得最終的用戶行爲偏好爲。
用戶購買週期性問題解決——懲罰上一週購買
然而,經常存在這樣一種現象,用戶每每在根據本身的興趣愛好購買了商品以後,一段時間內會對所購買物品類似的物品產生「疲倦期」,會更加趨向於選擇與之前購買過的商品較爲相異的那些新商品進行購買。從本質上講,這種狀況每每發生在做爲用戶短時間興趣的資源上,這樣的用戶興趣會隨時間的接近而衰減。所以,若是能有效識別出用戶的短時間興趣,在預測用戶最感興趣的資源時加以考慮,區分不一樣時間對推薦的不一樣影響,能夠提高用戶的個性化推薦。
所以,進一步清晰區分用戶長期興趣和短時間興趣在預測評分時所起的不一樣做用。認爲預測資源的評分時,做爲短時間興趣的可進行衰減。
Item畫像設計
變量 |
描述 |
變量類型 |
DeviceIdentity |
用戶id |
名義變量 |
SKUId_All |
商品id |
名義變量 |
is_temai |
是否特賣商品 |
名義變量 |
bhv_type |
用戶行爲類型 |
名義變量 |
bhv_cnt |
行爲數量 |
數值變量 |
bhv_datetime |
行爲時間 |
日期變量 |
基於Item畫像的類似度計算是Item間類似度計算中相當重要的一部分,也是增長Item間區分度的有效手段(由於同質化都比較嚴重),同時也經過這種方式將CB算法融入到了CF中。
SVD算法參數k的設定
SVD算法中保留的維數k很重要,也不容易選取,k若是過小,容易失去原始數據中重要的信息,不能獲得用戶評分矩陣的重要結構,k若是選大了,達不到降維的目的,並且容易過擬合訓練數據,本節利用測試集數據先對k的取值進行優化,選取最優的k值而後再進行實驗。
奇異值分解(SVD)中k值優化
性能比較
爲了驗證所提出的算法的性能,將傳統的推薦算法和提出的基於SVD的協同過濾的算法(SVD approximation)進行TOP-N實驗比對。其中,使用SVD對用戶-商品評價矩陣下降稀疏程度時使用上述實驗獲得的45做爲最佳維度。實驗指標使用ROC曲線性能。在測試數據集上,這五種方法在不一樣近鄰個數上的ROC性能表現如圖所示,其中橫座標爲FPR,縱座標是TPR值。
不一樣算法準確度的比較
在圖中,曲線random item表明隨機推薦算法,曲線popular item表明熱門物品推薦算法,曲線user-based cf表明基於用戶的協同過濾算法,曲線item-based cf表明基於物品的協同過濾算法,曲線SVD approximation表明基於SVD矩陣分解的協同過濾算法。
能夠看到基於SVD矩陣分解的協同過濾算法在ROC指標上要優於其餘算法。
線上AB實驗評估
主要採用的評價指標包括點擊量、點擊率等。算法效果簡述以下:
商品推薦方面(原算法爲基於點擊行爲的CF算法):
離線:PC商品詳情頁推薦點擊率提高12%;
實時:PC商品詳情頁推薦點擊率提高3%左右。該部分通過後續優化,效果略有提高。
後續可優化點
一、如何度量用戶的社交信息。根據用戶評分信息使用皮爾遜類似度來衡量社交網絡中用戶關係權重,標準單一,算法準確度受到必定影響。所以,利用社交網絡中的信息更加準確地衡量用戶關係是值得進一步研究的問題。
二、界定短時間偏好的時間閾值的自動調整。提出的算法在離線階段結束後,時間閾值已經肯定,然而在實際應用中用戶數目、用戶行爲、用戶關係都是不斷變化的。
大數據部落 -中國專業的第三方數據服務提供商,提供定製化的一站式數據挖掘和統計分析諮詢服務
統計分析和數據挖掘諮詢服務:y0.cn/teradat(諮詢服務請聯繫官網客服)
【服務場景】
科研項目; 公司項目外包;線上線下一對一培訓;數據爬蟲採集;學術研究;報告撰寫;市場調查。
【大數據部落】提供定製化的一站式數據挖掘和統計分析諮詢
歡迎選修咱們的R語言數據分析挖掘必知必會課程!