當一個推薦系統面臨高頻、瞬時、大幅的流量突變時,如何在維持穩定性的同時,最小化推薦效果損失?
?
背景
618對京東來說是一場重要的營銷盛會,大促將為業務各個層面帶來爆發式增長。然而,超大規模的流量洪峰也對京東各系統提出了嚴峻考驗。
京東聯盟是京東的聯盟營銷平臺,主要通過投放站外CPS廣告來推廣京東商品。聯盟合作伙伴生成鏈接并在其他網站或社交媒體平臺上推廣,用戶通過點擊這些鏈接在京東購物,合作伙伴則獲得銷售提成(傭金)。京東聯盟通過這種方式吸引流量,擴大平臺的可見度和用戶接觸范圍,實現拉新促活等目標。作為聯盟業務流量的主戰場,京東聯盟推薦系統在大促期間面臨著流量突變的巨大挑戰。由于業務本身及營銷活動和站外媒體引流推動的影響,大促期間推薦系統的流量呈現以下特點:
1.營銷活動繁多且頻率不一:系統流量波動頻繁,難以預測。
2.營銷力度及效果差異顯著:冰點與爆點流量同時存在,流量分布極不均衡。
3.站外場景眾多:目前已達數百個,不同場景流量的變化節奏各不相同。
4.紅包活動具有秒殺特性:流量在急速拉升后斷崖式下跌。例如,某次活動中,流量表現如下:
圖中流量 QPS在19:59:57秒從3.7K開始增長,20:00:01秒達到峰值2.9W,隨后的1分鐘內逐步回落。流量在4秒內增長9倍,整個拉升和回降過程在1分鐘內全部完成。
?
問題&挑戰
面對上述流量變化的挑戰,聯盟推薦系統的備戰面臨以下重大障礙:
1.難以準確預估流量變化:導致無法提前準備充足的系統資源,系統有潛在的崩潰風險。
2.不同場景推薦策略與模型差異大:難以實現統一控制,管理和優化的復雜性升高。
3.流量瞬時大幅波動:需要系統具備秒級響應和調控能力,技術實現難度增加。
?
方案設計
因此,在推薦系統領域中,為了有效應對高頻、瞬時、大幅的流量突變,我們需要一種“自適應”能力。這種能力應具備以下特性:
1. 差異化控制不同場景鏈路
?場景識別與分級處理:系統應能夠識別不同的業務場景和鏈路,對于不同重要性和緊急程度的場景進行差異化處理。例如,核心業務鏈路和次要鏈路可以有不同的降級策略,以確保關鍵功能的優先保障。
2. 自動化執行,無需人工干預
?全自動化降級與恢復:通過智能化的監控和決策機制,系統能夠在檢測到流量異常時自動執行降級操作,并在條件恢復正常后自動恢復,無需人工干預,從而減少響應時間和人為錯誤。
3. 敏銳感知并隨流量變化進行調整
?實時監控與動態調整:系統應具備實時監控流量和性能指標的能力,并根據流量變化動態調整降級策略。這種敏銳的感知能力能夠確保系統在流量突變時迅速做出反應,保持服務的穩定性。
4. 流量洪峰過后自動恢復至完整推薦
?智能恢復機制:在流量洪峰過后,系統應能夠自動檢測流量回落情況,并逐步恢復至完整的推薦服務。這個恢復過程應是平滑且智能的,避免因過快恢復而引發新的性能問題。
5. 最小化推薦損失
?精準降級與優化推薦:降級策略應盡可能精準,確保在降級過程中推薦質量和用戶體驗的損失最小化。通過優化推薦算法和策略,確保在資源受限的情況下仍能提供高質量的推薦服務。
?
方案實踐
為實現上述自適應降級與恢復的能力目標,我們以如下思路進行方案設計。首先,監控不同場景流量的推薦耗時,根據性能變化將流量劃分為主力流量和降級流量。接著,根據各召回通路、粗排、精排和重排的業務貢獻及耗時,在總耗時限制下求得最優組合,確定降級鏈路。然后,通過調用鏈動態生成模塊,生成實際的調用pipeline。最后,通過實時組織pipeline調用,完成整個降級推薦過程。
與此同時,在降級流量中,抽取小部分流量作為探測流量,檢測流量洪峰是否已過去,以便及時進行降級恢復。以下是詳細的設計實現:
1、實時高效性能感知
1.1、配置化超時閾值和守護協程
由于UMP統計數據對非0級黃金流程系統不開放秒級數據查詢權限,并且UMP數據可能因流量不均衡等原因與具體實例機器上的性能存在較大差距,故而采用以下方法:
?配置化超時閾值:為每個推薦場景和鏈路配置合理的超時閾值。
?守護協程實時統計:在每個推薦服務實例上運行守護協程,實時監控請求的響應時間,并統計超時率。
1.2、威爾遜置信區間算法修正超時率
為了避免在流量低谷時的統計誤差,引入威爾遜置信區間算法修正超時率。具體的Wilson修正公式如下:
其中,P為當前統計的秒級超時率,WilsonP為置信超時率,z = 1.96(95%的置信水平)。
2. 差別化場景控制
?分場景統計耗時數據,配合各場景配置的耗時閾值,實現差別化控制。
3. 流量切分實現細粒度逐步降級
?根據超時比例設置降級流量比例:只對降級流量進行降級,而非全部流量都降級。
?策略決策:參考KMFP用戶分層標簽,對于不活躍和特征不豐富的用戶,直接降級。對于高活躍和高價值用戶,動態決策降級力度。
4. 動態線性規劃推薦鏈路
根據各召回通路、粗排、精排和重排的CTCVR貢獻值及其當前耗時,進行線性規劃,在耗時限制下求得業務貢獻最大化的最優解。
?目標函數:最大化業務收益。
?約束條件:各模塊的當前耗時不得超過設定閾值。
其中,E1i為各召回通路的業務收益,E2、E3、E4分別為粗排、精排和重排的業務收益;T1i為各召回通路的當前耗時,T2、T3、T4分別為粗排、精排和重排的當前耗時(各模塊的99耗時統計視情況配置為實時/近線方式,1~3秒);各W取值為0或1。問題即為求上述線性規劃下的最優W組合,每當超時率發生階躍變化時,重新計算最優解。
5. 實時組織pipeline調用
在得出上述W組合之后,由調用鏈生成器生成實際的調用關系pipeline,再交由管道調度器來組織調度完成整個推薦過程。
6. 小流量探測,階梯式自動恢復
在降級狀態下,周期性地從降級流量中抽取一定的小流量進行降級回彈測試,以監控是否流量回落或系統自動擴容。
?回彈測試不通過:繼續維持降級狀態。
?回彈測試通過:反向階梯式逐級擴大回彈流量,直到全部降級流量都恢復至完全推薦。
7. 業務無關API,低成本移植
自適應降級模塊設計了與具體業務無關的通用交互接口,包括收益與耗時數據輸入、超時閾值設置、降級標志與降級組合查詢等,可低成本移植到其他業務系統中。
?
在上述基礎上,配合統一的限流防護和公司動態擴縮容技術,理論上聯盟推薦系統可以做到足夠的穩定性和推薦效果保障。以下是京東聯盟自適應降級&恢復推薦系統的整體架構圖:
大促效果
本方案大促期間的業務效果有:
1.大促期間流量損失減少90%以上,對比以往活動高峰時的主動降級,系統可秒級完成自適應降級,結合serverless自動擴容策略,在分鐘級別完成自動恢復。
2.聯盟推薦系統的大促備戰不再強依賴業務方評估峰值流量。
3.大促期間經歷多次流量突變,均未依賴上游系統的降級保護。
4.大促期間零干預,零事故。
?
以上就是京東聯盟廣告推薦系統在大促期間保障穩定性和效果的相關工作,隨著廣告推薦業務進入存量時代的深水區,以及新推薦技術的不斷涌現,我們要持續進化推薦系統,也歡迎大家一起交流學習。
審核編輯 黃宇
-
實時監控
+關注
關注
1文章
87瀏覽量
13555
發布評論請先 登錄
相關推薦
評論