京東推薦系統架構揭祕:大資料時代下的智慧化改造

架構師springboot發表於2018-11-27

在電商領域,推薦的價值在於挖掘使用者潛在購買需求,縮短使用者到商品的距離,提升使用者的購物體驗。

京東推薦系統架構揭祕:大資料時代下的智慧化改造
京東推薦的演進史是絢麗多彩的。京東的推薦起步於2012年,當時的推薦產品甚至是基於規則匹配做的。整個推薦產品線組合就像一個個鬆散的原始部落一樣,部落與部落之前沒有任何工程、演算法的交集。2013年,國內大資料時代到來,一方面如果做的事情與大資料不沾邊,都顯得自己水平不夠,另外一方面京東業務在這一年開始飛速發展,所以傳統的方式已經跟不上業務的發展了,為此推薦團隊專門設計了新的推薦系統。

京東推薦系統架構揭祕:大資料時代下的智慧化改造
隨著業務的快速發展以及移動網際網路的到來,多屏(京東App、京東PC商城、M站、微信、手Q等)互通,推薦型別從傳統的商品推薦,逐步擴充套件到其他型別的推薦,如活動、分類、優惠券、樓層、入口圖、文章、清單、好貨等。個性化推薦業務需求比較強烈,基於大資料和個性化推薦演算法,實現向不同使用者展示不同內容的效果。為此,團隊於2015年底再次升級推薦系統。2016年618期間,個性化推薦大放異彩,特別是團隊開創的“智慧賣場”,實現了活動會場的個性化分發,不僅帶來GMV的明顯提升,也大幅降低了人工成本,大大提高了流量效率和使用者體驗,從而達到商家和使用者雙贏,此產品獲得了2016年度的集團優秀產品。為了更好地支撐多種個性化場景推薦業務,推薦系統一直在迭代優化升級,未來將朝著“滿屏皆智慧推薦”的方向發展。

推薦產品 使用者從產生購買意向,到經歷購買決策,直至最後下單的整個過程,在任何一個購物鏈路上的節點,推薦產品都能在一定程度上幫助使用者決策。

1 . 推薦產品發展過程 推薦產品發展歷程主要經歷了幾個階段,由簡單的關聯推薦過程到個性化推薦,逐步過渡到場景智慧推薦。從相關、相似的產品推薦過渡到多特徵、多維度、使用者實時行為、結合使用者場景進行的全方位智慧推薦。

京東推薦系統架構揭祕:大資料時代下的智慧化改造
2 . 多屏多型別產品形態 多型別主要指推薦型別覆蓋到多種型別,如商品、活動、分類、優惠券、樓層、入口圖、文章、清單、好貨等。在移動互聯時代,多屏場景非常普遍,整合使用者在多屏的資訊,能使個性化推薦更精準。多屏整合的背後技術是通過前端埋點,使用者行為觸發埋點事件,通過點選流系統進行多屏的行為資訊收集。這些行為資料通過實時流計算平臺來計算使用者的興趣偏好,從而根據使用者興趣偏好對推薦結果進行重排序, 達到個性化推薦的效果。京東多屏終端如下圖所示。

京東推薦系統架構揭祕:大資料時代下的智慧化改造
推薦系統架構 1 .整體業務架構 推薦系統的目標是通過全方位的精準資料刻畫使用者的購買意圖,推薦使用者有購買意願的商品,給使用者最好的體驗,提升下單轉化率,增強使用者黏性。

京東推薦系統架構揭祕:大資料時代下的智慧化改造
系統架構。對外提供統一的 HTTP 推薦服務,服務京東所有終端的推薦業務。

模型服務

為了提高個性化的效果而開發的一系列公共的個性化服務,使用者維度有 使用者行為服務和使用者畫像服務,商品維度有商品畫像,地域維度有小區畫像,特徵維度有特徵服務。通過這些基礎服務,讓個性化推薦更簡單、更精準。

機器學習

演算法模型訓練階段,嘗試多種機器學習模型,結合離線測評和線上 A/B, 驗證不同場景下的演算法模型的效果,提高推薦的轉化率。

資料平臺

資料是推薦的源泉,包括資料收集和資料計算。資料雖然是整體推薦架 構的最底層,卻是非常重要的,因為資料直接關係到推薦的健康發展和效果提升。

2 . 個性化推薦架構 在起步初期,推薦產品比較簡單,每個推薦產品都是獨立服務實現。新版推薦系統是一個系統性工程,其依賴資料、架構、演算法、人機互動等環節的有機結合。新版推薦系統的目標,是通過個性化資料探勘、機器學習等技術,將“千人一面”變為“千人千面”,提高使用者忠誠度和使用者體驗,提高使用者購物決策的質量和效率;提高網站交叉銷售能力,縮短使用者購物路徑,提高流量轉化率(CVR)。目前新版推薦系統支援多型別個性化推薦,包括商品、店鋪、品牌、活動、優惠券、樓層等。

京東推薦系統架構揭祕:大資料時代下的智慧化改造
個性化推薦系統架構圖中不同的顏色代表不同的業務處理場景:

資料處理部分(最底層灰色模組),包括離線資料預處理、機器學習模型訓練,以及線上實時行為的接入、實時特徵計算。

推薦平臺(藍色模組),主要體現響應使用者請求時推薦系統的各服務模組之間的互動關係。推薦系統核心模組:

推薦閘道器

推薦服務的入口,負責推薦請求的合法性檢查、請求分發、線上 Debug 以及組裝請求響應的結果。

排程引擎

負責推薦服務按策略排程及流量分發,主要根據配置中心的推薦產品的 實驗配置策略進行分流,支援按使用者分流、隨機分流和按關鍵引數分流。支援自定義埋點, 收集實時資料;支援應急預案功能,處理緊急情況,秒級生效。

推薦引擎

負責推薦線上演算法邏輯實現,主要包括召回、過濾、特徵計算、排序、多樣化等處理過程。

個性化基礎服務

目前主要個性化基礎服務有使用者畫像、商品畫像、使用者行為、預 測服務。使用者畫像包括使用者的長期興趣、短期興趣、實時興趣。興趣主要有性別、品牌偏好、品類偏好、購買力等級、自營偏好、尺碼顏色偏好、促銷敏感度、家庭情況等。商品畫像主要包括商品的產品詞、修飾詞、品牌詞、質量分、價格等級、性別、年齡、標籤等。使用者行為主要獲取使用者近期行為,包括使用者的搜尋、點選、關注、加入購車、下單等。預測服務主要是基於使用者的歷史行為,使用機器學習訓練模型,用於調整召回候選集的權重。

特徵服務平臺

負責為個性服務提供特徵資料和特徵計算,特徵服務平臺主要針對 特徵資料,進行有效的宣告、管理,進而達到特徵資源的共享,快速支援針對不同的特徵進行有效的宣告、上線、測試以及A/B 實驗效果對比。提供個性化迭代速度。

個性化技術(黃色模組),個性化主要通過特徵和演算法訓練模型來進行重排序,達到精準推薦的目的。特徵服務平臺主要用於提供大量多維度的特徵資訊,推薦場景回放技術是指通過使用者實時場景特徵資訊反饋到推薦排序,線上學習(Online-Learning)和深度學習都是大規模特徵計算的個性化服務。

個性化推薦系統的主要優勢體現為支援多型別推薦和多屏產品形態,支援演算法模型A/ B 實驗快速迭代,支援系統架構與演算法解耦,支援儲存資源與推薦引擎計算的解耦,支援預測召回與推薦引擎計算的解耦,支援自定義埋點功能;推薦特徵資料服務平臺化,支援推薦場景回放。

資料平臺 京東擁有龐大的使用者量和全品類的商品以及多種促銷活動,可以根據使用者在京東平臺上的行為記錄積累資料,如瀏覽、加購物車、關注、搜尋、購買、評論等行為資料,以及商品本身的品牌、品類、描述、價格等屬性資料的積累,活動、素材等資源的資料積累。這些資料是大規模機器學習的基礎,也是更精確地進行個性化推薦的前提。

1 . 資料收集 使用者行為資料收集流程一般是使用者在京東平臺(京東App、京東PC 網站、微信手Q) 上相關操作,都會觸發埋點請求點選流系統(專門用於收集行為資料的平臺系統)。點選流系統接到請求後,進行實時訊息傳送(用於實時計算業務消費)和落本地日誌(用於離線模型計算),定時自動抽取行為日誌到大資料平臺中心。演算法人員在資料集市上通過機器學習訓練模型,這些演算法模型應用於推薦服務,推薦服務輔助使用者決策,進一步影響使用者的購物行為,購物行為資料再傳送到點選流,從而達到資料收集閉環。

2 . 離線計算 目前離線計算平臺涉及的計算內容主要有離線模型、離線特徵、使用者畫像、商品畫像、使用者行為,離線計算主要在Hadoop 上執行MapReduce,也有部分在Spark 平臺上計算,計算的結果通過公共導數工具匯入儲存庫。團隊考慮到業務種類繁多、型別複雜以及儲存型別多樣,開發了外掛化導數工具,降低離線資料開發及維護的成本。

京東推薦系統架構揭祕:大資料時代下的智慧化改造
3 . 線上計算

目前線上計算的範圍主要有使用者實時行為、使用者實時畫像、使用者實時反饋、實時互動特徵計算等。線上計算是根據業務需求,快速捕捉使用者的興趣和場景特徵,從而實時反饋到使用者的推薦結果及排序,給使用者專屬的個性化體驗。線上計算的實現訊息主要來源於Kafka 叢集的訊息訂閱和JMQ 訊息訂閱,通過Storm 叢集或Spark 叢集實時消費,推送到Redis 叢集和HBase 叢集儲存。

京東推薦系統架構揭祕:大資料時代下的智慧化改造
推薦引擎 推薦系統涉及的技術點比較多,考慮到篇幅有限,這裡重點介紹個性化推薦中比較重要的部分之一——推薦引擎。

個性化推薦系統的核心是推薦引擎,推薦引擎的一般處理過程是召回候選集,進行規則過濾,使用演算法模型打分,模型融合排序,推薦結果多樣化展示。主要使用的技術是機器學習模型,結合知識圖譜,挖掘商品間的關係,按使用者場景,通過高維特徵計算和海量召回,大規模排序模型,進行個性化推薦,提升排序效果,給使用者極致的購物體驗。

推薦引擎處理邏輯主要包括分配任務,執行推薦器,合併召回結果。推薦器負責召回候選集、業務規則過濾、特徵計算、排序等處理。

京東推薦系統架構揭祕:大資料時代下的智慧化改造
◆ 分配。根據推薦場景,按召回源進行任務拆分,關鍵是讓分散式任務到達負載均衡。

◆ 推薦器。推薦引擎的核心執行元件,獲取個性化推薦結果,推薦器的實現如圖。

京東推薦系統架構揭祕:大資料時代下的智慧化改造
召回階段

獲取候選集,一般從基於使用者畫像、使用者偏好、地域等維度進行召回, 如果是新使用者的召回資源不夠,會使用冷啟動服務進行召回。

規則過濾階段

對人工規則、一品多商、子母碼、郵差差價等進行過濾。

特徵計算階段

結合使用者實時行為、使用者畫像、知識圖譜、特徵服務,計算出召回的候選集的特徵向量。

排序階段

使用演算法模型對召回候選集打分,根據召回源和候選集的分值,按一定的策略對候選集進行重新排序。

◆ 合併。歸併多個推薦器返回的推薦結果,按業務規則進行合併,考慮一定的多樣性。

舉例來說,京東App首頁“猜你喜歡”的實現過程如下圖。

首先根據使用者畫像資訊和使用者的近期行為及相關反饋資訊,選擇不同的召回方式,進行業務規則過濾;對滿足要求的候選商品集,提取使用者特徵、商品特徵、使用者和商品的交叉特徵;使用演算法模型根據這些特徵計算候選商品的得分;根據每個商品的得分對商品進行排序,同時會豐富推薦理由,考慮使用者體驗,會對最終排好序推薦結果進行微調整,如多樣性展示。

京東推薦系統架構揭祕:大資料時代下的智慧化改造

感興趣可以加Java架構師群獲取Java工程化、高效能及分散式、高效能、深入淺出。高架構。效能調優、Spring,MyBatis,Netty原始碼分析和大資料等多個知識點高階進階乾貨的直播免費學習許可權 都是大牛帶飛 讓你少走很多的彎路的 群..號是:855801563 對了 小白勿進 最好是有開發經驗

注:加群要求

1、具有工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的可以加。

2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的可以加。

3、如果沒有工作經驗,但基礎非常紮實,對java工作機制,常用設計思想,常用java開發框架掌握熟練的,可以加。

4、覺得自己很牛B,一般需求都能搞定。但是所學的知識點沒有系統化,很難在技術領域繼續突破的可以加。

5.阿里Java高階大牛直播講解知識點,分享知識,多年工作經驗的梳理和總結,帶著大家全面、科學地建立自己的技術體系和技術認知!

相關文章