1. 程式人生 > >訂單貢獻率10%,京東個性化推薦系統持續優化的奧祕

訂單貢獻率10%,京東個性化推薦系統持續優化的奧祕

摘要:京東基於大資料和個性化推薦演算法,實現了向不同使用者展示不同的內容的效果,在PC端和移動端都已經為京東貢獻了10%的訂單。為了探索京東全品類平臺“千人千面”背後的演算法奧妙,CSDN記者採訪了推薦搜尋部總監劉尚堃。
在資訊過剩的網際網路時代,個性化推薦技術對於網際網路公司運營的重要性自不待言。本文要談的是京東商城最新的推薦系統。京東已經在新版首頁上線了“今日推薦”和“猜你喜歡”兩項功能,基於大資料和個性化推薦演算法,實現了向不同使用者展示不同的內容的效果(俗稱“千人千面”),該系統目前在PC端和移動端都已經為京東貢獻了10%的訂單。為了探索京東全品類平臺“千人千面”背後的演算法奧妙,CSDN記者採訪了推薦搜尋部總監劉尚堃。

京東推薦系統三部曲

總體而言,京東推薦演算法的步驟並不神祕,無非是建立召回模型——召回模型效率分析——排序模型三步。但這並不意味著每一步的具體實現都是簡單的事情。劉尚堃對此做了詳細的解析。

召回模型

召回模型,即候選集的獲取,大體從基於使用者歷史行為的召回、基於使用者偏好的召回、基於地域的召回三個維度來實現。

基於行為的召回,根據使用者購買行為推薦相關/相似的商品。大家都知道根據使用者的瀏覽記錄推薦相似商品,但京東更進一步地把購買行為視為一個重要的分界線,當用戶已購買某個商品,京東會根據商品種類和用途選擇推薦相關/相似的商品,而不是沒玩沒了地重複推薦,比如為Kindle買家推薦Kindle保護套而不是Kindle。當然,對於如肥皂、洗髮水之類的日用品,會根據一個購買週期來再次推薦。

基於使用者偏好的召回包括了兩個重要的元素:使用者畫像和多屏互通。結合商品品牌、適用人群、價格指數以及使用者對商品的點選、購買、關注和收藏等行為,京東對使用者進行畫像,從而確定可以長期推薦的品類。針對移動時代的購物新習慣,京東還注意到了根據使用者ID及MEI等資訊融合不同的終端的資料,包括PC端、移動APP、微信和手Q,從而做到更加精準的畫像。當然,在最終的內容展示上,會根據終端的差異選擇不同的展示結果。

基於地域的召回,把整個地圖劃分多個網格運用資料統計結果。以北京為例,三里屯地區使用者更感興趣的商品是撲克牌、水等,中低端小學校的資料主要集中在襪子、晾衣架等等。基於地域的召回主要用於在京東使用者行為比較時候少的新使用者。

召回模型效率分析

具體的技術實現,三類模型當然會包含多個子模型,例如線上相關,線上相似,離線相關,離線相似,近期熱銷品牌品類等,都加入到模型當中。那麼問題來了:對某個具體的使用者,到底要使用哪個模型?這就涉及到模型效率分析。評判某個模型效率的高低,主要是看該模型帶來的點選率、轉發率、GMV等。

劉尚堃給出了一個重要的結論:基於使用者實時行為建立的模型,它的效率更高一些,比如說線上相關的產品和線上相似的推薦。為了達到更好的效果,京東採用了多個模型融合的演算法,而不是使用單一模型去做。劉尚堃表示,合適的模型組合在一起,總體效率可以達到最高。如果某個模型效率較低,它就會只佔據較小的流量,實現總體流量價值最大化。當然,是針對不同的人採用不同的模型組合。

效率提升主要來自最近嘗試的兩個模型:最近點選和最近關注的商品模型,和加入購物車的商品模型。前者是指將最近瀏覽過的商品推薦到首頁,後者是將放入購物車未購買的商品推薦給使用者,實驗的結果,轉化率的提升分別達到了100%和5%-10%。

排序模型

在模型融合的基礎上,京東還進行排序學習,推薦排序的問題轉化為分類的問題去實現,即從使用者的互動日誌中通過模型訓練特徵權重,再通過L2R排序學習演算法來改進,轉化率又獲得了20%的提升。

劉尚堃透露,京東推薦搜尋部也有過包括邏輯迴歸在內的多種嘗試,包括Vowpal Wabbit(VW)、排序學習、PMI等等,但邏輯迴歸演算法只有1%的提升,而排序學習有20%的提升。

每週迭代7個新演算法的架構

不管是模型本身優化的需求,抑或因為使用者偏好隨著時間或條件變化,持續的迭代都是必不可少的,也就是說特徵的增加、修改或者不同的組合,這些工作幾乎都是常態。事實上,京東平均每週就有7個新的演算法實驗上線。這需要一個很好的推薦架構來支援演算法的高速迭代。基於HBase、Storm、Spark以及MapReduce等,京東搭建了自己的推薦架構,具體如下圖所示:

劉尚堃認為,Spark分散式計算框架對大資料的支援好,效率高,同時提供了不斷改進的MLlib機器學習庫,對協同過濾等常用於推薦系統的機器學習演算法支援很好,使用起來很方便。

經驗與未來優化

由於個性化首頁產品上線還不到一個月,劉尚堃相信,當前推薦位的情況下,還有提升40%-50%的提升空間。

整體來看,京東推薦系統的主要經驗如下:

積累更多、更新的資料支援迭代。京東具有龐大的使用者量和全品類的商品,能夠根據使用者瀏覽、點選、購買、評論資料以及品牌、品類、描述等商品自身的資料的積累,分別做基於使用者和基於商品的協同過濾,更精確地進行個性化推薦。為了與時俱進,京東不僅做多屏互通,還正在規劃與騰訊合作獲取一些關係資料,包括針對微信朋友圈資料探勘出不同使用者的偏好,並將其作用到推薦結果中來。

開源工具的利用。比如實時行為模型的利用、排序演算法的實現,都離不開Spark的支援。此外,京東也會基於一些開源演算法針對自身業務場景做一些修改,來實現更好的推薦效果。

效率是評判推薦模型的標準。例如邏輯迴歸,本來被寄予厚望,卻效果不佳;本來不屑一顧的最近點選和最近關注模型,反而能實現100%的轉化提升。這裡補充說明:京東評判模型效率採用了先驗和後驗結合的方式,先驗是用一些排序預測演算法去預測模型,得到一個最佳模型組合的方案,配備給每個使用者,後驗即基於更精細化的模型效率分析,找出能夠提升效率的最佳模型。

深度學習是未來推薦的方向。特徵的選擇仍然是難點。特徵選擇、特徵提取對機器學習而言都是大課題,而機器學習又是模型排序與融合從而持續提升轉化率的關鍵。很自然地,排序特徵的豐富是京東未來迭代優化的一個主要方向。

劉尚堃表示,將京東正在研發的DNN深度學習技術應用於排序是未來要做的事情,當然,還有用於線性低維空間模型的邏輯迴歸,預計提升5%轉化率。據我們瞭解,京東DNN Lab的研究成果已經目前應用於京東智慧客服機器人。