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