阿里定向廣告最新突破:面向下一代的粗排排序系統COLD

這次向大家分享的工作是阿里定向廣告團隊在DLP-KDD 2020發表的文章:COLD: Towards the Next Generation of Pre-Ranking System。COLD是我們新一代粗排排序系統,目前已經在阿里定向廣告各主要業務落地並取得了巨大的線上效果提升。

論文地址:https://arxiv.org/abs/2007.16122

01 粗排簡介

在搜索,推薦,廣告等需要進行大規模排序的場景,級聯排序架構得到了非常廣泛的應用。以阿里的在線廣告系統爲例,按順序一般包含召回,粗排,精排,重排序等模塊。粗排在召回和精排之間,一般需要從上萬個廣告集合中選擇出幾百個符合後鏈路目標的候選廣告,並送給後面的精排模塊。粗排有很嚴格的時間要求,一般需要在10~20ms內完成打分。

02 發展歷程

粗排在工業界的發展歷程可以分成下面幾個階段:

  • 最早期的第一代粗排是靜態質量分,一般基於廣告的歷史平均CTR,只使用了廣告側的信息,表達能力有限,但是更新上可以做到很快。

  • 第二代粗排是以LR爲代表的早期機器學習模型,模型結構比較簡單,有一定的個性化表達能力,可以在線更新和服務。

  • 當前最廣泛應用的第三代粗排模型,是基於向量內積的深度模型。一般爲雙塔結構,兩側分別輸入用戶特徵和廣告特徵,經過深度網絡計算後,分別產出用戶向量和廣告向量,再通過內積等運算計算得到排序分數:

向量內積模型相比之前的粗排模型,表達能力有了顯著提升,但是仍然有很多問題:

  • 模型的表達能力仍然受限:向量內積結構雖然極大的提升了運算速度,節省了算力,但是也導致模型無法使用交叉特徵,能力受到極大限制。
  • 模型實時性較差:因爲用戶向量和廣告向量一般需要提前計算好,而這種提前計算的時間會拖慢整個系統的更新速度,導致系統難以對數據分佈的快速變化做出及時響應,這個問題在雙十一等場景尤爲明顯。

03 COLD模型

前面粗排的相關工作僅僅把算力看做系統的一個常量,模型和算力的優化是分離的。我們重新思考了模型和算力的關係,從兩者聯合設計優化的視角出發,提出了新一代的粗排架構COLD(Computing power cost-aware Online and Lightweight Deep pre-ranking system)。它可以靈活對模型效果和算力進行平衡。COLD沒有對模型進行限制,可以支持任意複雜的深度模型。這裏我們把GwEN ( group-wise embedding network) 作爲我們的初始模型結構。它以拼接好的特徵embedding作爲輸入,後面是多層全連接網絡,支持交叉特徵。當然,如果特徵和模型過於複雜,算力和延時都會難以接受。因此我們一方面設計了一個靈活的網絡架構可以進行效果和算力的平衡。另一方面進行了很多工程上的優化以節省算力。

1. 網絡結構

精簡網絡的方法有很多,例如網絡剪枝 ( network pruning),特徵篩選 ( feature selection),網絡結構搜索 ( neural architecture search)等。我們選擇了特徵篩選以實現效果和算力的平衡。當然其他技術也可以進行嘗試。具體來說,我們把SE (Squeeze-and-Excitation) block引入到了特徵篩選過程中,它最初被用於計算機視覺領域以便對不同通道間的內部關係進行建模。這裏我們用SE block來得到特徵重要性分數。假設一共有M個特徵,ei表示第i個特徵的embedding向量,SE block把ei壓縮成一個實數si。具體來說先將M個特徵的embedding拼接在一起,經過全連接層並用sigmoid函數激活以後,得到M維的向量s:

這裏向量s的第i維對應第i個特徵的重要得分,然後再將si乘回到ei,得到新的加權後的特徵向量用於後續計算。

在得到特徵的重要性得分之後,我們把所有特徵按重要性排序,選擇K組不同的候選特徵,並基於GAUC,QPS和RT指標等離線指標,對效果和算力進行平衡,最終在滿足QPS和RT要求情況下,選擇GAUC最高的一組特徵組合,作爲COLD最終使用的特徵。後續的訓練和線上打分都基於選擇出來的特徵組合。通過這種方式,可以靈活的進行效果和算力的平衡。

2. 工程優化

爲了給COLD使用更復雜的特徵模型打開空間,工程上也進行了很多優化。在阿里定向廣告系統中,粗排的線上打分主要包含兩部分:特徵計算和網絡計算。特徵計算部分主要負責從索引中拉取用戶和廣告的特徵並且進行交叉特徵的相關計算。而網絡計算部分,會將特徵轉成embedding向量,並將它們拼接進行網絡計算。

① 並行化

爲了實時低延時高吞吐的目標,並行計算是非常重要的。而粗排對於不同廣告的計算是相互獨立的,因此可以將計算拆分成並行的多個請求以同時進行計算,並在最後進行結果合併。特徵計算部分使用了多線程方式以進一步加速,網絡計算部分使用了GPU。

② 列計算轉換

特徵計算的過程可以抽象看做兩個稀疏矩陣的計算,一個是用戶矩陣,另一個是廣告矩陣。矩陣的行是batch_size,對於用戶矩陣來說batch_size爲1,對於廣告矩陣來說batch_size爲廣告數。矩陣的列是featue group的數目。常規計算廣告矩陣的方法是逐個廣告計算在不同feature group下特徵的結果,這個方法符合通常的計算習慣,組合特徵實現也比較簡單,但是這種計算方式是訪存不連續的,有冗餘遍歷,查找的問題。事實上,因爲同一個feature group的計算方法相同,因此可以利用這個特性,將行計算重構成列計算,對同一列上的稀疏數據進行連續存儲,之後利用MKL優化單特徵計算,使用SIMD (Single Instruction Multiple Data)優化組合特徵算子,以達到加速的目的。

③ Float16加速

對於COLD來說,絕大部分網絡計算都是矩陣乘法,而NVIDIA的Turning架構對Float16和Int8的矩陣乘法有額外的加速,因此引入Float16計算對提升性能非常必要 。但是Float16會損失計算精度,特別是在sum-pooling的情況下,數值有可能超出Floa16的範圍。爲了解決這個問題,一種方式是使用BN。但是BN本身的參數範圍也有可能超過Float16. 因此只能使用混合精度的方式,對於BN層使用Float32,而後面的層使用Float16。另一種方式是使用參數無關的歸一化方式,例如log函數。但是log函數不能處理負數,並且輸入值接近0的時候會輸出絕對值較大的數字。因此我們設計了一種分段平滑函數,我們叫做linear-log來解決這個問題:

從函數圖像可以看出,linear_log函數可以將Float32的數值處理到一個比較合適的範圍。所以如果我們將linear_log函數放到第一層,那麼就可以保證網絡的輸入參數在一個比較小的範圍內。具體實踐上,linear_log函數對COLD模型的效果基本沒有影響。使用Float16以後,CUDA kernel的運行性能有顯著提升,同時kernel的啓動時間成爲了瓶頸。爲了解決這個問題,我們使用了MPS (Multi-Process Service)來解決kernel啓動的開銷。Float16和MPS技術,可以帶來接近2倍的QPS提升。

3. 在線服務架構

COLD沒有限制模型的結構,訓練和在線打分都是實時化的,可以帶來以下兩個優點:

  • 在線學習的引入使COLD與向量內積模型相比,可以更及時的響應數據分佈的變化,對新廣告冷啓動也更爲友好。
  • 實時架構對於模型迭代和在線A/B測試都更有利。向量內積模型由於用戶向量和廣告向量需要提前計算好,在線A/B測試也更爲困難。實時架構也使COLD模型可以更快的更新,避免了向量內積模型的更新延遲問題。

04 實驗結果

這裏COLD模型使用了7層全連接的網絡結構。離線評估指標除了GAUC之外,還包含了top-k recall,用於評估粗排和精排的對齊程度。

這裏top k候選集合和top m候選集合均爲粗排的輸入打分集合。top k集合是粗排選出的,而 top m集合是精排選出的,排序指標是eCPM(eCPM = pCTR*bid)。這裏的精排模型是DIEN。我們使用QPS (Queries Per Seconds, which measures the throughput of themodel) 和RT (return time, which measures the latency of model)來評估系統性能的影響。

1. 模型效果評估

離線效果評估可以看到COLD在GAUC和Recall上都優於向量內積模型。在線效果上,COLD與向量內積模型相比在日常CTR +6.1%,RPM + 6.5%。雙十一CTR+9.1%,RPM+10.8%,提升顯著。

2. 系統性能評估

從Table 3可以看到,向量內積模型的系統性能最好,而精排的DIEN的系統性能最差,COLD則在兩者之間取得了平衡。

COLD在得到特徵重要性分數以後,會選出不同的候選特徵,並基於離線指標進行特徵選擇。Table 4列了幾組供選擇的特徵,可以看到COLD是考慮效果和系統性能以後的折中。

Table 5表明,工程優化上引入Float16和MPS優化以後,QPS提升了1倍,效果顯著。

05 總結

這裏我們向大家詳細介紹了阿里定向廣告的新一代粗排架構COLD。它是新的算法和算力聯合迭代視角下的產物。COLD把算力作爲一個變量進行優化,提供了一種更靈活的方式可以實現效果和算力的平衡。COLD的訓練和在線打分都是實時的,可以更好的適用數據分佈的變化。2019年以來,COLD已經在阿里定向廣告的各主要業務上得到廣泛應用並取得了顯著的效果提升。

原文鏈接:

https://zhuanlan.zhihu.com/p/186320100

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章