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