楊正成,劉浩
(東華大學 信息科學與技術學院,上海 201620)
基于市場對短視頻廣告創意的需求增長[1],字節跳動旗下廣告創意定制平臺應運而生。該平臺是一個廣告創意定制化服務的雙邊交易平臺,致力于將廣告主的需求與創作者的能力進行撮合匹配。截至2021年底,平臺提供超16 000個廣告商品服務,導致廣告主的商品挑選難度較大、效率較低。拆解廣告主下單路徑并構建轉化漏斗,發現商品平臺總體下單轉化率較低,其中從商品廣場到商品詳情頁的轉化率為21.7%(無購買記錄的新廣告主的下單點擊率更低,為12%左右),商品卡片的點擊率(CTR)僅為2.0%。究其原因,是平臺尚無以提升廣告主的下單轉化率與廣告創作者的商品CTR為目標而設計的推薦排序策略。
本文針對上述問題,在整體架構、軟件體系架構和算法層面做了優化設計。
(1)從整體架構層面,設計重構廣告服務推薦策略,新增點擊率預測模型。一方面將商品服務點擊率作為評價指標,另一方面又作為預測結果[2]。
(2)從軟件體系架構層面,采用責任鏈的設計模式,這種模式會根據給予請求的數據模型類型,對請求的數據發送方和接收方進行解耦,使得整個系統可以在不影響客戶端的情況下動態地重新組織責任鏈和分配責任[3],達到可拔插和方便擴展的目的,方便了算法的接入與擴展。
(3)從算法層面,對平臺商品售前能力進行優化,提出基于GBDT模型和LightGBM框架優化推薦策略[4],來提升商品的CTR。其中的原理可以概括成:利用我們所需要的全部特征來預測廣告主是否點擊推薦內容或者廣告主是否會選擇這個商品的概率[5-6],對廣告主進行個性化推薦。
本文以字節跳動旗下廣告創意定制平臺為研究系統,廣告主從進入平臺到下單的全流程如圖1所示。

圖1 廣告主下單流程拆解圖
圖1展示了廣告主從進入平臺到下單,需要經過的幾個階段。首先,廣告主進入廣告商品平臺,商品平臺會展示不同的商品供客戶挑選,客戶選中商品點擊進入詳情頁,最終完成下單的轉化。
本文對該廣告商品平臺模塊的商品推薦、排序、搜索能力進行重新架構設計[7]。該架構整體分為3個階段:召回階段,算法精排階段和封裝階段,如圖2所示。

圖2 商品平臺搜索推薦整體架構圖
圖2架構圖解釋了用戶進入站點,從行為采集到反饋的全流程。其中,為了貫通召回及排序的整體邏輯,本文通過定義一個搜索執行流水線SearchPipeline來進行整體流程的控制。采用責任鏈模式,通過自定義搜索執行流水線上下文SearchContext,存放原始搜索參數及各階段的參數和結果,而后搜索執行流水線SearchPipeline會按順序執行單個搜索階段的處理邏輯SearchHandler。
針對商品平臺搜排推整體軟件體系架構,共設計了4個搜索執行器,分別是商品召回執行器SpuRecal lHandler、商品算法精排執行器SpuSortHandler、商品封裝處理器SearchPackHandler(SpuPacker),以及記錄搜索關鍵詞SearchRecordHandler。
通過前期埋點采集得到用戶行為特征數據,由于數據量級巨大,需要借助HDFS(Hadoop分布式文件系統,由Apache開發的分布式系統框架[8])批量計算得到廣告商品對用戶的點擊/曝光行為樣本數據,以及廣告主側特征、廣告商品側特征、廣告主與廣告商品側交叉特征4個特征數據,最終分別存儲并生成5張Hive表。
起初商品平臺使用的檢索邏輯僅包含商品初步召回邏輯,查詢分布式搜索引擎ElasticSearch[9]召回商品數據。ElasticSearch支持文檔的全文搜索,為數據的每個字段建立倒排索引,倒排索引是ElasticSearch針對全文檢索使用的索引數據結構。
利用ElasticSearch初篩召回規則如下:通過ElasticSearch索引召回、通過商品服務名字、創作者名字進行模糊匹配和通過查詢銷量等綜合評分等數據進行召回等。
平臺歷史邏輯的召回階段雖然能夠通過廣告主指定的篩選條件執行快速篩選,或者簡單地通過訂單評分召回的方式實現篩選,但是缺乏針對廣告主行為,如對商品點擊、曝光等交互場景更進一步地建模,導致召回排序排名靠前的CTR和下單轉化率都不高。基于此,本文增加了精排模型的處理器,對召回的數據進行精排。
2.3.1 樣本獲取
本文主要使用廣告創意定制平臺的商品平臺中的商品曝光和商品點擊2張Hive表,見表1。

表1 廣告商品曝光、點擊表
market_spu_card_expose和market_spu_card_click 2張表分別記錄廣告主進入廣告商品平臺的廣告商品服務的曝光和點擊行為數據,每一條數據記錄一次曝光或者點擊行為。
利用Dorado平臺(Dorado是字節跳動旗下集數據集成、數據開發、任務調度、運維管理和數據分析等功能為一體的大數據研發平臺,提供一站式大數據研發解決方案,幫助業務部門進行數倉建設,包括ETL開發,數據分析及探索,簡單高效構建自己的數據中臺,專注于數據價值的挖掘和探索),通過HiveSQL語句,對Hive數據進行加工處理[10],對于數據樣本量大且對數據處理時效性要求并不高的情況,使用Dorado處理離線數據,其步驟如圖3所示。

圖3 離線數據處理步驟圖
樣本構造后最終生成的ctr模型樣本存放于名為market_spu_card_ctr_samples的表中,該表的每一條樣本數據記錄了某一廣告主對某個廣告創作者旗下的一個廣告商品的曝光點擊數據,如果廣告主對廣告商品發生曝光并點擊則為正樣本,如果商品曝光但未點擊則為負樣本。本實驗數據選取時間2021年8月—2021年11月底,一共產生樣本數1 273 186個樣本數據,見表2。

表2 樣本數據分布
2.3.2 特征工程
在廣告主的商品點擊率預估模型的建模中,最重要的就是特征工程。在信息透明化的互聯網時代,用戶特征行為對于互聯網產品的更新迭代尤為關鍵[11]。模型綜合考慮3個方面的特征,分別為廣告主側特征、商品服務側特征和廣告主與商品服務交叉特征。現存3張特征數據Hive表,見表3。

表3 特征數據Hive表
與處理樣本類似,通過HSQL任務對特征大數據進行離線處理,加工上述3張Hive表特征數據到最終的點擊率Hive表中ctr_market_label_and_features,總共166個初始特征。
LightGBM(Light Gradient Boosting Machine)是一個實現GBDT算法的工業級框架,具有訓練速度更快、內存消耗更低、準確率更好及支持分布式等優點,在點擊率預測方面有很好的應用[12]。在機器學習領域,GBDT是一個很好的算法模型,其利用弱分類器(決策樹)的思想迭代訓練,從而得到最優模型,該模型具有性能良好、不易過擬合等優點。在互聯網界GBDT應用非常普遍,被用于多分類、點擊率預測和搜索排序等任務,在Kaggle上的比賽一大半的優秀方案都是基于GBDT[13]。
LightGBM主要融合了2種算法:單邊采樣算法(Gradient-based One-Side Sampling,GOSS)和特征捆綁算法(Exclusive Feature Bunding,EFB)。
GOSS在采樣時對樣本的梯度絕對值進行排序,按照選取前a×100%個大梯度樣本保留,對剩下的(1-a)×100%個小梯度樣本進行隨機采樣,隨機選取b×(1-a)×100%個數據,并且乘以(1-n)/m作為信息增益。使用這種方法學習一個新的弱學習器,重復直至收斂。這樣的優化帶來的好處是大梯度樣本會有更多的信息增益,不用給予小樣本過多的關注,能夠對整個訓練起正向作用。
GOSS算法降低時間復雜度的方式是減少樣本數量,而EFB算法則考慮減少特征數量來降低復雜度。一般來說,使用的數據不會同時取0值,即存在互斥特征。EFB算法實現降維是通過綁定互斥特征來減少互斥特征的數量達成的。選擇互斥的特征作為捆綁對象能夠避免損失信息,如果2個特征并不是完全的互斥,可以通過引進沖突比率來對特征之間的不互斥程度進行衡量。如果當沖突比率值較小時,即使捆綁不完全互斥的2個特征,也不會影響最終精度。
利用LightGBM進行模型構建主要涉及以下2個步驟。
(1)導入上述的訓練集和測試集數據。
(2)對模型參數進行調優。本次實驗采用的是python中lightgbm包中的LGBMClassifier函數,其中主要的參數設定見表4。

表4 LightGBM參數設置
將上述166個特征放入LightGBM訓練處feat_importance特征樹,通過特征樹的重要性排序并導出得到3個特征的具體特征舉例(按照特征重要性排序),見表5。

表5 特征重要性表
可以發現,原始推薦的粗排評分并不能作為點擊率預估的主導因素,在商品維度下最重要的特征是商品在平臺的CTR。因為CTR作為用戶行為指標,主導因素是用戶,其次才是商品維度的信息。
混淆矩陣是數據科學、數據分析和機器學習中總結分類模型預測結果的情形分析表,以矩陣形式將數據集中的記錄按照真實的類別與分類模型作出的分類判斷2個標準進行匯總。利用LightGBM建模后測試樣例的混淆矩陣見表6。

表6 測試集-LightGBM混淆矩陣
由表6可見,在246 282個測試樣例中,真正點擊的有6 845個,真陽性(TP)有4 702個,假陰性(FN)數據為2 143個;真正未點擊的數據是239 437個,假陽性(FP)有58 231個,真陰性(TN)有181 206個。可以由此計算真陽性率(TPR)來評估模型的敏感度,以及利用真陰性率(TNR)來評估模型的特異度

為評估模型的性能效果,選取曲線下方的面積大小(AUC)作為衡量指標,曲線下方的面積大小(AUC)是衡量學習器優劣的一種性能指標,二值場景即正例高于負例的概率。AUC值越大,說明分類模型的性能越好。
實驗選取2021年8月12日—2021年11月7日的樣本作為訓練樣本,利用2021年11月8日—2021年11月30日的樣本作為測試樣本。利用all-feature特征,采用LightGBM模型進行擬合,模型實驗的結論基本符合預期,最終實驗樣本和測試樣本的結果見表7。

表7 訓練樣本和測試樣本AUC評分
為驗證模型的實際應用效果,進行推薦系統優化前后的線上A/B實驗。展示了在接入本文推薦系統前后不同廣告主進入服務廣場的展示效果,達到了個性化的展示效果(由于涉及線上肖像數據,圖片相應做了模糊處理,不影響結果的觀察),如圖4所示。

圖4 廣告主視角下推薦系統接入前后的對比圖
圖4模擬了接入本文推薦系統前后,不同廣告主視角下進入平臺服務廣場頁面進行選品的商品展示效果對比。其中,在接入文本推薦系統之前,服務廣場對于不同廣告主所展示的商品服務及其排列順序是一致的。而在接入本文推薦系統之后,服務廣場后所見的商品及其排序因不同廣告主而異,因為系統會根據不同廣告主的特征屬性差異,以及不同商品的特征進行個性化的召回。
為了得到可靠的CTR數據支撐,將上述2個實驗分為2組,將未接入該推薦模型的版本作為v1基準組,以及本次實驗新增點擊率模型推薦版本v2為對照組,分別記錄CTR參數指標。實驗選取選取2022年1月4日—2022年1月17日共14 d作為本次A/B實驗的時間窗口,在此周期內檢測基準組和對照組數據。實驗點擊率結果如圖5和圖6所示。

圖5 單個用戶對商品點擊率對比圖

圖6 商品整體點擊率對比圖
記錄基準組與對照組的下單轉化率數據見表8。

表8 下單轉化率對比
實驗結果表明,新推薦系統下,單個用戶的廣告商品點擊率平均上漲27.67%,廣告平臺商品點擊率總體上漲10.52%;下單轉化率從優化前的1.89%提升至3.39%,增長79.3%。可見,該商品推薦系統有助于改善從商品點擊到下單轉化的營銷鏈路,為平臺帶來收益。
為了提高字節跳動廣告定制平臺商品服務的點擊率和轉化率,本文在原有平臺能力的基礎上,對平臺商品推薦系統進行設計和應用。本研究涉及從數據采集、召回,以及精排的全流程,核心亮點體現于算法精排階段。精排模型增加了基于LightGBM模型的點擊率預估功能,以AUC為評分指標評估模型效果,并通過線上A/B實驗對商品點擊率的提升效果進行驗證。實驗結果證實了本文提出的新增算法能夠根據廣告主特征進行個性化點擊率預估并進行合理的推薦,該算法已應用至字節跳動的線上服務中,可為廣告定制平臺的商品點擊與轉化的提升帶來實際收益。