天天看點

京東廣告研發——效率為王:廣告統一檢索平台實踐

作者:京東雲開發者

1、系統概述

實踐證明,将網際網路流量變現的線上廣告是網際網路最成功的商業模式,而電商場景是線上廣告的核心場景。京東服務中國數億的使用者和大量的商家,商品池海量。平台在兼顧使用者體驗、平台、廣告主收益的前提推送商品具有挑戰性。京東廣告檢索平台需要在保證服務高效可靠的前提下,為廣告與使用者需求進行有效比對,提供個性化、精準的廣告推薦和檢索服務,為廣告主和使用者創造更好的互動與價值。

1.1、檢索平台功能概述

檢索平台将廣告主投放訴求轉換為播放系統的語言;同時,作為廣告系統的最上遊,完成人貨場的初步比對。從上億級的檢索空間,傳回數百個物料發送至下遊,需要考慮使用者體感、廣告主的投放訴求、召回結果的相關性、平台收入等,承載了大部分的廣告業務邏輯。其效果決定了整個廣告效果的天花闆。

京東廣告研發——效率為王:廣告統一檢索平台實踐

Fig 1: 京東廣告檢索系統架構

1.2、問題定義

檢索平台核心能力

本文檔重點關注檢索系統核心功能之“為使用者檢索出相關的廣告”,即召回。其他核心功能另起文檔,不再贅述。為了不失一般性,相關性函數可以抽象成一個打分函數

,那麼召回過程是一個最值搜尋問題:對于評分

,給定輸入

 ,從候選集

中尋找固定大小的子集

,使得

在

盡可能排序靠前。以深度學習廣泛應用于線上廣告為分水嶺:

•前深度學習時期,召回主要由簡單的算法或者規則完成

•後深度學習時期,召回主要是由雙塔模型+向量檢索完成

基于規則的前深度學習時期的相關性打分是對業務規則的抽象,具備解釋性強的優勢。但是不同規則的分數通常不具可比性。例如基于标簽的規則比對定向是一種隻傳回布爾結果的特殊打分方式,其打分函數可以表示為:

,此種離散分數很難與其他分支進行對比。後深度學習時期打分由模型完成。多路模型的相關性模組化方式類似,價值評估方式統一且分數可比。但受檢索系統算力/耗時制約,召回模型通常采用結構簡單的雙塔模型,限制了模型的表達能力。在硬體發展和算力釋放的背景下,打分函數呈現逐漸複雜的趨勢。

檢索平台核心技術難點

檢索系統人貨場的比對由多個OP(算子)協同完成

京東廣告研發——效率為王:廣告統一檢索平台實踐

Fig 2:檢索系統内部OP處理的資料量呈現漏鬥狀,用于平衡海量資料和有限算力之間的沖突

以過濾OP為例,即從通過召回環節的廣告集合中挑選滿足業務規則限制的廣告,如果将過濾抽象成一個輸出為布爾值的打分函數,其表述如下:業務評分

,給定輸入

 ,尋找固定大小的

的子集

,使得

在

盡可能靠前。由于召回和業務評分函數之間的差異,召回的廣告可能并不能滿足業務要求。名額

衡量了兩個環節評分函數的差别,也可以粗略衡量召回環節浪費了多少算力用來評估無效的廣告。在前深度時期,由于召回環節打分消耗算力有限,其浪費的算力尚不會影響到系統的整體檢索效率。在打分模型愈加複雜的後深度學習時期,對候選集内每個候選廣告的單點計算量逐漸增加的背景下,召回算力的浪費已經不可忽視。

檢索平台核心技術難點:在有限的算力和海量資料進行中找到平衡。為了緩解檢索階段海量資料和有限算力之間的沖突,檢索系統進行了以下方面的探索:

1.算力配置設定:為檢索系統計算密集型環節,節省算力與耗時

2.算力優化:提升相關性打分準确性,提升機關算力産生的業務收益

3.疊代效率:配置中心--一站式實驗平台,提升疊代效率

文章以下篇幅圍繞上述三方面展開,闡述檢索系統核心能力建設的過程

京東廣告研發——效率為王:廣告統一檢索平台實踐

Fig 3:檢索平台核心能力。藍色方塊為本文涉及到的環節

2、主線一:Beyond Serverless,資料驅動的自适應算力優化架構

檢索系統業務邏輯複雜,計算密集,子產品衆多。各子產品的各自算力優化并不等于系統整體算力優化。為優化檢索系統的算力配置設定,檢索系統完成了從單個子產品的圖化,到關聯上下遊的分布式執行圖的更新。

2.1、全圖化到資料驅動的圖化,逼近算力優化天花闆

分布式執行圖是一種基于RPC調用的資料驅動、跨服務圖架構,它突破了實體服務之間的上下遊依賴,從資料依賴出發,站在整體鍊路上實作全局算力最優解,将京東廣告檢索系統的算力自動配置設定能力推至行業領先水準。

難點:「為什麼要立足整體管理子圖」1)解決服務間(子圖間)的割裂。架構進入Serverless時代後,各個圖互相割裂,服務内部的疊代優化很難考慮整體架構的收益;2)代碼驅動的執行流程在實際執行時有大量不必要的等待/依賴。

創新:「資料,資料,還是資料」自上而下來看,廣告系統的大圖為函數

,依賴于自己的資料源

,為下遊産出

。自下往上看,每個子圖是由多個OP函數組成的,每個OP也是

。理清圖與圖、OP與OP的關鍵在于理清各層級的資料依賴。從依賴程度來看,分布式執行圖将OP之間的資料依賴分為三種:無依賴、局部依賴和全部依賴。無依賴的OP之間執行流充分并行;局部依賴的OP之間引入Batch概念後可支援在Batch間執行流充分并行。

「一套架構,多重視角」完整的分布式執行圖能實作自動排程,依據業務編排自動進行串/并行的執行;支援資料驅動的DAG表達,充分釋放算力,持續保持系統處于算力配置設定的最佳狀态。目前分布式執行圖已經落地京東搜尋廣告,通過充分發掘檢索系統及其上下遊的資料依賴關系,經過自動編排後的系統對比流程驅動的架構,檢索環節節省耗時超過16%,極大釋放了檢索鍊路的算力。

京東廣告研發——效率為王:廣告統一檢索平台實踐

Fig 4: 分布式執行圖實作一套架構,多重視角

2.2、彈性系統,智能算力配置設定助業務平穩增長

京東廣告檢索平台日常管理超數十萬核CPU,站内站外日常處理大量請求。大促期流量還會翻倍,如何保證平台的穩定對京東廣告檢索系統帶來巨大的挑戰。

難點:

•平台多樣。京東檢索平台涉及業務包括搜尋廣告、推薦廣告、首焦廣告和站外廣告。不同平台在檢索流程上存在差異,且通路量也有所不同,每個業務單獨模組化,人力成本大

•硬體異構。京東廣告叢集不僅管理着不同的計算硬體(CPU/GPU),且同類硬體也會因為采購批次,品牌型号的不同存在性能差異

應對思路:将算力配置設定沉澱成基礎能力,為廣告系統在不同時期,不同場景賦能。

數學模組化:經過數年的疊代,京東廣告彈性系統的目标從維持系統穩定度過流量高峰期轉至通過算力配置設定以提升收益。彈性系統的模組化目标也随之發生改變。

階段一、維持系統穩定的PID彈性系統:

,以系統目前CPU和目标CPU之間的內插補點模組化系統誤差,用PID控制彈性降級使得伺服器CPU使用率達到預設水準。相比于常見的控制QPS以間接調控CPU的模組化方式,CPU更加直接。性能不同的機器在同一QPS下的CPU使用率也不同,CPU目标模組化考慮了京東檢索服務異構硬體的特點,更具适用性。

階段二、合理利用系統日常閑置算力,為系統帶來收益:

京東APP的流量分布呈現早晚兩高峰結構,非高峰時期閑置大量備援算力。階段二的目标為滿足系統限制下的流量價值最大化。調控手段為擴大/縮小召回系統各個環節的隊列長度。新的系統回報定義如下:

系統目标為在一定時間粒度下最大化機關算力的期望收益。該模組化有如下挑戰:

•流量的價值難以定義。使用政策的後驗Uplift收益作為價值的Groudtruth來訓練價值評估函數。廣告檢索系統使用點選和消費作為收益名額。

•糟糕的政策會對線上系統帶來無可挽回的損失。系統使用離線資料預訓練彈性系統。在實際運作中,彈性政策會在系統指定的安全邊界内生效。同時,完備的熔斷機制也保證了彈性政策失效後會由更穩定的保守政策接管系統。

•目前基于收益優化的彈性系統已經運用在日常情形下。現階段彈性系統的價值評估函數還比較簡單,且該彈性系統還無法應用于大促階段。下一階段的目标為精細化價值評估以及将收益最大化的彈性系統應用于大促。

京東廣告研發——效率為王:廣告統一檢索平台實踐

Fig 5: 京東廣告彈性系統疊代road map

3、主線二:與時間賽跑,高效檢索引擎打開廣告效果天花闆

在有限的時間内最大化算力的價值是檢索團隊追逐的目标。在硬體資源有限的背景下,一百ms耗時内周遊億級商品池并用模型打分難以實作。京東檢索團隊參考了大量業界優秀的公開設計文檔,結合京東廣告的實際情況,規劃了高效算法檢索引擎的疊代路線。整體規劃可以分為4個階段:

第一階段:算法檢索引擎矩陣初具雛形

初期複用網際網路通用的雙塔範式,快速賦能廣告業務。後續疊代過程中不斷沉澱諸如PQ索引壓縮,基于業務的階層化檢索,全庫檢索等技術,與行業先進檢索系統接軌并有效支撐了京東廣告業務的發展。

第二階段:效率為王,極緻提升資料時效性

檢索系統感覺物料的時效性,對引擎的檢索效果具有顯著影響。提升算法檢索引擎感覺物料的速度,将對億級物料的感覺延遲壓縮至分鐘級,達到業内領先水準。

第三階段:鍊路目标對齊,任意目标模組化的召回

廣告檢索系統的目标是為使用者挑選出相關廣告,通常以單一目标如CTR名額來模組化。而廣告系統通常以廣告的eCPM評估廣告,即bid x CTR。檢索目标與系統目标的不一緻會為廣告系統的效果帶來損失。廣告檢索團隊從業務出發,推出支援最大化任意目标的ANN檢索範式。

第四階段:标量向量混檢,檢索目标再對齊

在檢索+過濾的舊架構模式下,檢索出來的部分廣告單元因為不滿足業務規則限制而被過濾,浪費了算力。基于模型結構向更深度演化的背景下,這種架構帶來的算力浪費被放大。檢索團隊從節省算力角度出發,建設标量向量混合檢索能力,用過濾前置的思想完成檢索與後鍊路過濾的目标對齊,提升機關算力的收益。

3.1、雙塔到深度,從行業追趕到第一梯隊

京東檢索廣告從無到有打造出算法檢索引擎産品矩陣,完成了從簡單的樹索引到結合業務的層級化索引,再到深度索引的演變,支撐了平台對億級廣告的高效檢索。

「ANN是什麼?」為了在規定的耗時限制内完成對億級候選集的檢索,系統通常會使用近似近鄰檢索(ANN)來避免窮舉候選集裡所有的廣告。常用的樹狀索引按照向量間的歐式距離将距離近的向量放在索引上相鄰的位置。此索引上葉子結點為廣告對應的節點,中間節點為聚類産生的沒有實體含義的節點。結合寬度為K的Beam Search,則每層索引上需要打分的節點個數小于等于

個,縮小了計算量。

京東廣告研發——效率為王:廣告統一檢索平台實踐

Fig 6: 以一個2叉為例示範了k=1的beam search過程:給節點P2,1和P2,2打分後選取分數更高的P2,1。依次類推最後召回SKU1

「創新,基于業務的層次索引」京東廣告的特定場景下,使用者表現出明顯的意圖能夠有效幫助檢索系統縮小候選集。利用這一業務知識,京東廣告推出基于業務了解的多級向量索引。以搜尋為例,使用者Query包含使用者明确的意圖。如果将廣告按使用者意圖離線分區,線上檢索時僅檢索指定分區。不僅能有效減少檢索計算量,還能減少因為模型泛化引入的Bad Case。分區内使用樹狀索引可以進一步減少檢索的耗時和計算開銷。

京東廣告研發——效率為王:廣告統一檢索平台實踐

Fig 7:結合業務的層級召回首先根據業務将索引分區。召回階段隻需要檢索指定分區下的索引

「全庫索引」京東檢索系統管理分支衆多,覆寫廣告達上億,每個廣告均用多元浮點向量表示,占據檢索系統可觀的記憶體。在檢索引擎疊代中,樹狀索引逐漸被扁平的Product Quantization(PQ)索引取代。PQ将高次元浮點數向量轉化為低次元整型向量,實測記憶體壓縮率高達85%以上,大幅提升了檢索系統表達容量。得益于PQ節省的算力,扁平索引使用暴力計算代替樹狀索引Beam Search的檢索方式,實作全庫檢索。

「深度索引」雙塔模型因其産生的向量滿足近鄰檢索性質的特點在召回階段受到廣泛的應用。但模型表征能力,即打分能力也受到如下影響:

•雙塔獨立導緻使用者側與Item側特征融合不充分

•上層Matching函數為向量點積,限制了模型的表達能力

結合以上不足,京東廣告檢索推出基于EM的深度索引。新索引突破了傳統索引對雙塔模型的結構限制。算法不僅可以縱向疊代:表征函數更複雜;還可以橫向疊代:matching函數更複雜,且使用者和廣告可以任意階段融合。

京東廣告研發——效率為王:廣告統一檢索平台實踐

Fig 8:深度索引支援召回算法新的疊代模式

值得注意的是,因為召回模型不再遵守雙塔模型的範式,即模型不再假設将使用者與廣告映射到同一個向量空間内,模型産生的向量不再具備近似近鄰檢索的性質。

廣告檢索的本質是在索引上找到通向高價值廣告的路徑。雙塔模型的樹索引,作為一種特殊的深度索引,從根節點到葉子節點的路徑由向量叉乘确定,無需模型參與。而深度索引的路徑根據模型打分确認,目标為最大化路徑指向廣告的價值。

京東廣告研發——效率為王:廣告統一檢索平台實踐

Fig 9:向量索引建構和召回過程抽象

3.2、召回架構更新,極緻追求資料時效

「為什麼追求時效」京東廣告檢索作為廣告鍊路的最上遊,其資料的時效性極大影響了全鍊路的營銷效果。

難點:京東廣告服務大量廣告主,覆寫億級廣告,每分鐘都有廣告因為廣告主的操作等因素而發生狀态改變的情況。對于分秒必争的流量高峰期,廣告主操作的生效時間将直接影響廣告主的營銷效果。物料變化帶來的索引更新本身對算力就有較大的消耗,如果疊加平台日常檢索的資源消耗,對于平台能力提出了更高的要求,特别是在京東這種億級廣告量級的情況,更是一個巨大的挑戰。

「行業領先,廣告分鐘級生效」京東廣告檢索系統支援分鐘級别的廣告資訊更新并展現在算法索引上。索引建構采用全量+增量的思想,全量期間僅為有效廣告快速建構索引,全量後廣告資訊的變更反映在增量上。索引的資料上遊-流水系統将資料湖思想內建至索引建構中,減少全量索引建構耗時,縮短索引生效延遲。同時以出色的拓展性,為檢索系統高效建構和管理多種形式的索引,如向量索引,KV索引等。

3.3、鍊路對齊,檢索效率再提升

「為什麼要鍊路對齊」自上而下看,目标的鍊路對齊有兩個層次:

•從廣告系統來看,檢索負責篩選與使用者相關的廣告,後鍊路環節如粗排/精排的目标是最大化候選廣告的eCPM等目标。廣告系統各子產品間的目标不齊限制了廣告系統的整體收益

•檢索系統内部多個OP目标不一緻,導緻檢索結果陷入局部影響整個廣告系統的優化疊代

「任意目标召回」一個模型,多種用法。隻需對向量進行少量修飾即可完成檢索目标的「無痛轉化」。

難點:改變檢索的目标,需要改變模型的訓練方式,成本極大。

創新:以CTR模組化的模型為例,雙塔模型預估的pCTR計算方式為:

,

代表使用者向量,

代表廣告向量。隻需将在原向量加上一維資料,即可将檢索目标從最大化CTR轉化為最大化eCPM:

使用者向量修飾:

Item向量修飾:

 ,經過數學推導修飾後的向量内積能夠逼近eCPM,

經過修飾後的使用者向量與廣告向量的點積與eCPM正相關。此時,ANN檢索出來的廣告即為按照eCPM最大化選出的top-k,完成檢索系統與廣告整體目标的對齊。

「向量标量混檢」建設業務表達能力行業一流的檢索引擎

難點:向量檢索引擎在檢索階段很難表達業務過濾的訴求。為滿足廣告主要求,檢索系統常采取向量引擎+标量過濾的架構。

創新:京東廣告将向量索引結構抽象為:興趣層與業務層。業務層通常為廣告,具備實體意義。興趣層是路徑的中間産物,不具備實體意義。以雙塔索引為例,葉子節點表示廣告,廣告的狀态(上/下架)應直接影響該葉子節點能否被檢索。中間節點代表廣告聚類抽象出的隐式興趣,不受業務層廣告狀态的影響。

京東廣告研發——效率為王:廣告統一檢索平台實踐

Fig 10:索引結構的抽象及檢索過程的抽象

為了減少算力浪費在無效節點上,葉子結點上引入标量,在召回階段避免計算無效的葉子結點,并保證檢索隊列有效結果數充足。标量向量混合檢索不僅提升機關算力的收益,也促進了檢索召回OP與其他後鍊路OP的目标融合,提升檢索系統的整體檢索效率。

4、主線三:平台力量:平台化基建釋放研發生産力

4.1、磨刀不誤砍柴工:從京東廣告業務疊代面臨的挑戰說起

「京東廣告業務疊代密集」廣告檢索平台是一個業務複雜,計算、IO密集,為京東APP、京東小程式、京東PC等用戶端提供線上廣告檢索的服務。平台的重要定位也決定了其疊代的密集程度:檢索代碼庫平均每年有600+次合并,檢索平均每年全量代碼或配置釋出次數已超500次,可見一斑。

「研發容量及效率的挑戰」支撐檢索系統的快速穩定疊代,需要有足夠大的研發容量支撐。每個垂直業務線(搜尋/推薦/首焦/站外)都包含業務架構及算法政策研發。同時在跨業務線的水準子產品(召回/創意/出價)也包含對應的平台業務架構及算法政策研發、以及系統研發、測試等。平台支撐如上近300人的多元研發團隊同時開發,為了保證持續業務健康發展,需具備數百至千級的實驗吞吐量,提供準确易用的洞察分析工具。

「大促場景的緊急疊代挑戰」京東面臨一年兩次以上的(618、雙十一等)大促考驗,大促時特有0邏輯需要得到快速落地。緊急疊代對系統代碼的健壯性、可讀性都帶來不小挑戰。

4.2、萬象适配:平台化支撐多元業務拓展定制

「業務系統分層」把線上系統分為系統架構層、業務架構層及業務算法政策定制層,三層疊代互相獨立。這樣讓業務研發專注于業務邏輯編排及政策本身,而系統研發專注于基礎架構的優化。

京東廣告研發——效率為王:廣告統一檢索平台實踐

Fig 11: 京東廣告業務系統分層架構

「業務架構的算子化設計」系統健康運作的基石是健壯的系統架構。将複雜的業務系統按功能拆分為多個算子(簡稱OP),不僅系統邊界清晰,還可将業務政策進行歸類和抽象。算子作為OP的原子機關,有明确的輸入輸出資料和清晰的業務定位。原子化算子遵循:

1、清晰的資料依賴:每個OP具備各自的INPUT和OUTPUT,同時INPUT具有隻讀屬性

2、OP的可洞察性模組化:OP中記錄運作時DEBUG/TRACE資料,友善調試、監控與分析

3、OP的可配置性模組化:配置的控制範圍僅限于OP内,可控制一個獨立的功能或功能參數

「可插拔的政策定制」每個業務算子提供擴充點供業務政策定制,具有可靈活插拔的特性。這樣的設計思想是采取類的組合關系+功能分治的思想,将單一的功能點從OP中抽離出來,通過單獨的擴充點類來管理,功能上更内聚。

京東廣告研發——效率為王:廣告統一檢索平台實踐

Fig 12: 京東智能出價OP的擴充點示例

4.3、超越極限:一站式配置管理及超大容量的極速實驗釋出平台

「全新視角配置模組化」跳出通用的KV模組化,京東提出基于全新視角業務配置三要素模組化:配置項(Key),配置條件(Condition),配置值(Value)。較KV配置元件,京東的新配置元件更加靈活,定制化能力更強大:以推薦出價OP為例,使用時隻需要配置該Key作用于出價OP,配置Condition為推薦業務,配置Value為1。在全新視角配置下,配置Key從屬于一個算子OP,配置Condition可做流量業務身份的定制擴充,可以随着業務不斷發展疊代。配置方式具有業務語義,便于了解。

「任意配置均可一鍵實驗」上述所有配置更改皆可一鍵AB分層實驗,為線上系統提供超大實驗容量。線上廣告的配置系統關聯分層實驗平台,每個算子具備20+個分層實驗同時運作的能力。京東廣告日常的實驗容量在400以上,理論上分層實驗可以容納無限的實驗容量,足夠滿足超300人的産研團隊的日常疊代需求。配置修改可疊加一鍵發起實驗,極大簡化了研發人員的配置開發測試負擔,使得實驗切換方式更加靈活可控。

「一站式配置管理及釋出」通常業務邏輯疊代需要充分了解目前的配置狀态,将全部配置在統一管理界面中呈現,一方面提高了統一配置管理的便捷程度,同時讓配置具有更優的可閱讀性,讓不具備開發能力的同僚可以随時了解廣告檢索系統的業務處理流程,并進行一鍵實驗操作。同時一站式的配置修改,貫穿于自測、聯調測試、小流量、全量、holdback研發周期的全程跟蹤和托管,免除了在多個平台切換的煩惱。

京東廣告研發——效率為王:廣告統一檢索平台實踐

Fig 13: 一站式配置管理與釋出界面

4.4、洞察專家:可追蹤可歸因的線上洞察系統

「可調試可追蹤」廣告線上檢索系統的強需求就是可追蹤。面向研發,線上洞察系統提供DEBUG模式:

•調試模式可選擇:可以選擇跟蹤特定廣告或者是特定環節

•實時性:立即産出DEBUG資料

•全面性:全面記錄各個子產品各個業務算中間資料,全面透徹

面向營運和廣告主提供TRACE模式:

•線上請求可追蹤:任意線上請求的結果資料均可全系統鍊路追蹤

•請求可重發:實時請求重發複現現場,加速問題定位

•算法可再洞察:對于TRACE日志落盤資料提供了算法可嵌入再洞察分析的子產品,算法可以在系統中自定義常用的業務統計分析歸因腳本,提高分析效率。比如搜尋廣告的低價診斷經常分析某個SKU在同一請求候選隊列中的價格分位數,類目多樣性

「線上系統歸因洞察診斷」除了DEBUG/TRACE模式外,也提供了漏鬥洞察模式。系統全鍊路的漏鬥統計分析助力問題分析,驗證政策發揮着極其重要的作用。線上洞察提供了自定義流量篩選下的漏鬥洞察可視化工具,為廣告諸多業務帶來不可估量收益。

5、總結展望

廣告檢索系統通過執行上述三個主線,實作了機關算力的業務收益最大化,有效地支援了京東廣告的業務發展。未來系統技術部的同學還會沿着這三條主線圍繞算力、檢索效率、疊代效率持續提升廣告檢索的架構。我們也歡迎對此感興趣的小夥伴加入我們,共同成長,一齊助力京東廣告業務的發展。

繼續閱讀