楊正成,劉浩
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
基于市場對短視頻廣告創(chuàng)意的需求增長[1],字節(jié)跳動旗下廣告創(chuàng)意定制平臺應(yīng)運而生。該平臺是一個廣告創(chuàng)意定制化服務(wù)的雙邊交易平臺,致力于將廣告主的需求與創(chuàng)作者的能力進行撮合匹配。截至2021年底,平臺提供超16 000個廣告商品服務(wù),導(dǎo)致廣告主的商品挑選難度較大、效率較低。拆解廣告主下單路徑并構(gòu)建轉(zhuǎn)化漏斗,發(fā)現(xiàn)商品平臺總體下單轉(zhuǎn)化率較低,其中從商品廣場到商品詳情頁的轉(zhuǎn)化率為21.7%(無購買記錄的新廣告主的下單點擊率更低,為12%左右),商品卡片的點擊率(CTR)僅為2.0%。究其原因,是平臺尚無以提升廣告主的下單轉(zhuǎn)化率與廣告創(chuàng)作者的商品CTR為目標(biāo)而設(shè)計的推薦排序策略。
本文針對上述問題,在整體架構(gòu)、軟件體系架構(gòu)和算法層面做了優(yōu)化設(shè)計。
(1)從整體架構(gòu)層面,設(shè)計重構(gòu)廣告服務(wù)推薦策略,新增點擊率預(yù)測模型。一方面將商品服務(wù)點擊率作為評價指標(biāo),另一方面又作為預(yù)測結(jié)果[2]。
(2)從軟件體系架構(gòu)層面,采用責(zé)任鏈的設(shè)計模式,這種模式會根據(jù)給予請求的數(shù)據(jù)模型類型,對請求的數(shù)據(jù)發(fā)送方和接收方進行解耦,使得整個系統(tǒng)可以在不影響客戶端的情況下動態(tài)地重新組織責(zé)任鏈和分配責(zé)任[3],達到可拔插和方便擴展的目的,方便了算法的接入與擴展。
(3)從算法層面,對平臺商品售前能力進行優(yōu)化,提出基于GBDT模型和LightGBM框架優(yōu)化推薦策略[4],來提升商品的CTR。其中的原理可以概括成:利用我們所需要的全部特征來預(yù)測廣告主是否點擊推薦內(nèi)容或者廣告主是否會選擇這個商品的概率[5-6],對廣告主進行個性化推薦。
本文以字節(jié)跳動旗下廣告創(chuàng)意定制平臺為研究系統(tǒng),廣告主從進入平臺到下單的全流程如圖1所示。
圖1 廣告主下單流程拆解圖
圖1展示了廣告主從進入平臺到下單,需要經(jīng)過的幾個階段。首先,廣告主進入廣告商品平臺,商品平臺會展示不同的商品供客戶挑選,客戶選中商品點擊進入詳情頁,最終完成下單的轉(zhuǎn)化。
本文對該廣告商品平臺模塊的商品推薦、排序、搜索能力進行重新架構(gòu)設(shè)計[7]。該架構(gòu)整體分為3個階段:召回階段,算法精排階段和封裝階段,如圖2所示。
圖2 商品平臺搜索推薦整體架構(gòu)圖
圖2架構(gòu)圖解釋了用戶進入站點,從行為采集到反饋的全流程。其中,為了貫通召回及排序的整體邏輯,本文通過定義一個搜索執(zhí)行流水線SearchPipeline來進行整體流程的控制。采用責(zé)任鏈模式,通過自定義搜索執(zhí)行流水線上下文SearchContext,存放原始搜索參數(shù)及各階段的參數(shù)和結(jié)果,而后搜索執(zhí)行流水線SearchPipeline會按順序執(zhí)行單個搜索階段的處理邏輯SearchHandler。
針對商品平臺搜排推整體軟件體系架構(gòu),共設(shè)計了4個搜索執(zhí)行器,分別是商品召回執(zhí)行器SpuRecal lHandler、商品算法精排執(zhí)行器SpuSortHandler、商品封裝處理器SearchPackHandler(SpuPacker),以及記錄搜索關(guān)鍵詞SearchRecordHandler。
通過前期埋點采集得到用戶行為特征數(shù)據(jù),由于數(shù)據(jù)量級巨大,需要借助HDFS(Hadoop分布式文件系統(tǒng),由Apache開發(fā)的分布式系統(tǒng)框架[8])批量計算得到廣告商品對用戶的點擊/曝光行為樣本數(shù)據(jù),以及廣告主側(cè)特征、廣告商品側(cè)特征、廣告主與廣告商品側(cè)交叉特征4個特征數(shù)據(jù),最終分別存儲并生成5張Hive表。
起初商品平臺使用的檢索邏輯僅包含商品初步召回邏輯,查詢分布式搜索引擎ElasticSearch[9]召回商品數(shù)據(jù)。ElasticSearch支持文檔的全文搜索,為數(shù)據(jù)的每個字段建立倒排索引,倒排索引是ElasticSearch針對全文檢索使用的索引數(shù)據(jù)結(jié)構(gòu)。
利用ElasticSearch初篩召回規(guī)則如下:通過ElasticSearch索引召回、通過商品服務(wù)名字、創(chuàng)作者名字進行模糊匹配和通過查詢銷量等綜合評分等數(shù)據(jù)進行召回等。
平臺歷史邏輯的召回階段雖然能夠通過廣告主指定的篩選條件執(zhí)行快速篩選,或者簡單地通過訂單評分召回的方式實現(xiàn)篩選,但是缺乏針對廣告主行為,如對商品點擊、曝光等交互場景更進一步地建模,導(dǎo)致召回排序排名靠前的CTR和下單轉(zhuǎn)化率都不高?;诖?,本文增加了精排模型的處理器,對召回的數(shù)據(jù)進行精排。
2.3.1 樣本獲取
本文主要使用廣告創(chuàng)意定制平臺的商品平臺中的商品曝光和商品點擊2張Hive表,見表1。
表1 廣告商品曝光、點擊表
market_spu_card_expose和market_spu_card_click 2張表分別記錄廣告主進入廣告商品平臺的廣告商品服務(wù)的曝光和點擊行為數(shù)據(jù),每一條數(shù)據(jù)記錄一次曝光或者點擊行為。
利用Dorado平臺(Dorado是字節(jié)跳動旗下集數(shù)據(jù)集成、數(shù)據(jù)開發(fā)、任務(wù)調(diào)度、運維管理和數(shù)據(jù)分析等功能為一體的大數(shù)據(jù)研發(fā)平臺,提供一站式大數(shù)據(jù)研發(fā)解決方案,幫助業(yè)務(wù)部門進行數(shù)倉建設(shè),包括ETL開發(fā),數(shù)據(jù)分析及探索,簡單高效構(gòu)建自己的數(shù)據(jù)中臺,專注于數(shù)據(jù)價值的挖掘和探索),通過HiveSQL語句,對Hive數(shù)據(jù)進行加工處理[10],對于數(shù)據(jù)樣本量大且對數(shù)據(jù)處理時效性要求并不高的情況,使用Dorado處理離線數(shù)據(jù),其步驟如圖3所示。
圖3 離線數(shù)據(jù)處理步驟圖
樣本構(gòu)造后最終生成的ctr模型樣本存放于名為market_spu_card_ctr_samples的表中,該表的每一條樣本數(shù)據(jù)記錄了某一廣告主對某個廣告創(chuàng)作者旗下的一個廣告商品的曝光點擊數(shù)據(jù),如果廣告主對廣告商品發(fā)生曝光并點擊則為正樣本,如果商品曝光但未點擊則為負樣本。本實驗數(shù)據(jù)選取時間2021年8月—2021年11月底,一共產(chǎn)生樣本數(shù)1 273 186個樣本數(shù)據(jù),見表2。
表2 樣本數(shù)據(jù)分布
2.3.2 特征工程
在廣告主的商品點擊率預(yù)估模型的建模中,最重要的就是特征工程。在信息透明化的互聯(lián)網(wǎng)時代,用戶特征行為對于互聯(lián)網(wǎng)產(chǎn)品的更新迭代尤為關(guān)鍵[11]。模型綜合考慮3個方面的特征,分別為廣告主側(cè)特征、商品服務(wù)側(cè)特征和廣告主與商品服務(wù)交叉特征?,F(xiàn)存3張?zhí)卣鲾?shù)據(jù)Hive表,見表3。
表3 特征數(shù)據(jù)Hive表
與處理樣本類似,通過HSQL任務(wù)對特征大數(shù)據(jù)進行離線處理,加工上述3張Hive表特征數(shù)據(jù)到最終的點擊率Hive表中ctr_market_label_and_features,總共166個初始特征。
LightGBM(Light Gradient Boosting Machine)是一個實現(xiàn)GBDT算法的工業(yè)級框架,具有訓(xùn)練速度更快、內(nèi)存消耗更低、準(zhǔn)確率更好及支持分布式等優(yōu)點,在點擊率預(yù)測方面有很好的應(yīng)用[12]。在機器學(xué)習(xí)領(lǐng)域,GBDT是一個很好的算法模型,其利用弱分類器(決策樹)的思想迭代訓(xùn)練,從而得到最優(yōu)模型,該模型具有性能良好、不易過擬合等優(yōu)點。在互聯(lián)網(wǎng)界GBDT應(yīng)用非常普遍,被用于多分類、點擊率預(yù)測和搜索排序等任務(wù),在Kaggle上的比賽一大半的優(yōu)秀方案都是基于GBDT[13]。
LightGBM主要融合了2種算法:單邊采樣算法(Gradient-based One-Side Sampling,GOSS)和特征捆綁算法(Exclusive Feature Bunding,EFB)。
GOSS在采樣時對樣本的梯度絕對值進行排序,按照選取前a×100%個大梯度樣本保留,對剩下的(1-a)×100%個小梯度樣本進行隨機采樣,隨機選取b×(1-a)×100%個數(shù)據(jù),并且乘以(1-n)/m作為信息增益。使用這種方法學(xué)習(xí)一個新的弱學(xué)習(xí)器,重復(fù)直至收斂。這樣的優(yōu)化帶來的好處是大梯度樣本會有更多的信息增益,不用給予小樣本過多的關(guān)注,能夠?qū)φ麄€訓(xùn)練起正向作用。
GOSS算法降低時間復(fù)雜度的方式是減少樣本數(shù)量,而EFB算法則考慮減少特征數(shù)量來降低復(fù)雜度。一般來說,使用的數(shù)據(jù)不會同時取0值,即存在互斥特征。EFB算法實現(xiàn)降維是通過綁定互斥特征來減少互斥特征的數(shù)量達成的。選擇互斥的特征作為捆綁對象能夠避免損失信息,如果2個特征并不是完全的互斥,可以通過引進沖突比率來對特征之間的不互斥程度進行衡量。如果當(dāng)沖突比率值較小時,即使捆綁不完全互斥的2個特征,也不會影響最終精度。
利用LightGBM進行模型構(gòu)建主要涉及以下2個步驟。
(1)導(dǎo)入上述的訓(xùn)練集和測試集數(shù)據(jù)。
(2)對模型參數(shù)進行調(diào)優(yōu)。本次實驗采用的是python中l(wèi)ightgbm包中的LGBMClassifier函數(shù),其中主要的參數(shù)設(shè)定見表4。
表4 LightGBM參數(shù)設(shè)置
將上述166個特征放入LightGBM訓(xùn)練處feat_importance特征樹,通過特征樹的重要性排序并導(dǎo)出得到3個特征的具體特征舉例(按照特征重要性排序),見表5。
表5 特征重要性表
可以發(fā)現(xiàn),原始推薦的粗排評分并不能作為點擊率預(yù)估的主導(dǎo)因素,在商品維度下最重要的特征是商品在平臺的CTR。因為CTR作為用戶行為指標(biāo),主導(dǎo)因素是用戶,其次才是商品維度的信息。
混淆矩陣是數(shù)據(jù)科學(xué)、數(shù)據(jù)分析和機器學(xué)習(xí)中總結(jié)分類模型預(yù)測結(jié)果的情形分析表,以矩陣形式將數(shù)據(jù)集中的記錄按照真實的類別與分類模型作出的分類判斷2個標(biāo)準(zhǔn)進行匯總。利用LightGBM建模后測試樣例的混淆矩陣見表6。
表6 測試集-LightGBM混淆矩陣
由表6可見,在246 282個測試樣例中,真正點擊的有6 845個,真陽性(TP)有4 702個,假陰性(FN)數(shù)據(jù)為2 143個;真正未點擊的數(shù)據(jù)是239 437個,假陽性(FP)有58 231個,真陰性(TN)有181 206個??梢杂纱擞嬎阏骊栃月剩═PR)來評估模型的敏感度,以及利用真陰性率(TNR)來評估模型的特異度
為評估模型的性能效果,選取曲線下方的面積大?。ˋUC)作為衡量指標(biāo),曲線下方的面積大小(AUC)是衡量學(xué)習(xí)器優(yōu)劣的一種性能指標(biāo),二值場景即正例高于負例的概率。AUC值越大,說明分類模型的性能越好。
實驗選取2021年8月12日—2021年11月7日的樣本作為訓(xùn)練樣本,利用2021年11月8日—2021年11月30日的樣本作為測試樣本。利用all-feature特征,采用LightGBM模型進行擬合,模型實驗的結(jié)論基本符合預(yù)期,最終實驗樣本和測試樣本的結(jié)果見表7。
表7 訓(xùn)練樣本和測試樣本AUC評分
為驗證模型的實際應(yīng)用效果,進行推薦系統(tǒng)優(yōu)化前后的線上A/B實驗。展示了在接入本文推薦系統(tǒng)前后不同廣告主進入服務(wù)廣場的展示效果,達到了個性化的展示效果(由于涉及線上肖像數(shù)據(jù),圖片相應(yīng)做了模糊處理,不影響結(jié)果的觀察),如圖4所示。
圖4 廣告主視角下推薦系統(tǒng)接入前后的對比圖
圖4模擬了接入本文推薦系統(tǒng)前后,不同廣告主視角下進入平臺服務(wù)廣場頁面進行選品的商品展示效果對比。其中,在接入文本推薦系統(tǒng)之前,服務(wù)廣場對于不同廣告主所展示的商品服務(wù)及其排列順序是一致的。而在接入本文推薦系統(tǒng)之后,服務(wù)廣場后所見的商品及其排序因不同廣告主而異,因為系統(tǒng)會根據(jù)不同廣告主的特征屬性差異,以及不同商品的特征進行個性化的召回。
為了得到可靠的CTR數(shù)據(jù)支撐,將上述2個實驗分為2組,將未接入該推薦模型的版本作為v1基準(zhǔn)組,以及本次實驗新增點擊率模型推薦版本v2為對照組,分別記錄CTR參數(shù)指標(biāo)。實驗選取選取2022年1月4日—2022年1月17日共14 d作為本次A/B實驗的時間窗口,在此周期內(nèi)檢測基準(zhǔn)組和對照組數(shù)據(jù)。實驗點擊率結(jié)果如圖5和圖6所示。
圖5 單個用戶對商品點擊率對比圖
圖6 商品整體點擊率對比圖
記錄基準(zhǔn)組與對照組的下單轉(zhuǎn)化率數(shù)據(jù)見表8。
表8 下單轉(zhuǎn)化率對比
實驗結(jié)果表明,新推薦系統(tǒng)下,單個用戶的廣告商品點擊率平均上漲27.67%,廣告平臺商品點擊率總體上漲10.52%;下單轉(zhuǎn)化率從優(yōu)化前的1.89%提升至3.39%,增長79.3%。可見,該商品推薦系統(tǒng)有助于改善從商品點擊到下單轉(zhuǎn)化的營銷鏈路,為平臺帶來收益。
為了提高字節(jié)跳動廣告定制平臺商品服務(wù)的點擊率和轉(zhuǎn)化率,本文在原有平臺能力的基礎(chǔ)上,對平臺商品推薦系統(tǒng)進行設(shè)計和應(yīng)用。本研究涉及從數(shù)據(jù)采集、召回,以及精排的全流程,核心亮點體現(xiàn)于算法精排階段。精排模型增加了基于LightGBM模型的點擊率預(yù)估功能,以AUC為評分指標(biāo)評估模型效果,并通過線上A/B實驗對商品點擊率的提升效果進行驗證。實驗結(jié)果證實了本文提出的新增算法能夠根據(jù)廣告主特征進行個性化點擊率預(yù)估并進行合理的推薦,該算法已應(yīng)用至字節(jié)跳動的線上服務(wù)中,可為廣告定制平臺的商品點擊與轉(zhuǎn)化的提升帶來實際收益。