李致賢, 張紅梅
(桂林電子科技大學(xué) 廣西高校云計算與復(fù)雜系統(tǒng)重點實驗室,廣西 桂林 541004)
隨著互聯(lián)網(wǎng)的發(fā)展,互聯(lián)網(wǎng)廣告在廣告營銷產(chǎn)業(yè)所占比重在逐年增加,成為很多互聯(lián)網(wǎng)廣告公司重要收入來源。許多互聯(lián)網(wǎng)公司構(gòu)建了不同的廣告系統(tǒng)來提高互聯(lián)網(wǎng)廣告的轉(zhuǎn)化率,并以此為用戶提供更好的服務(wù)體驗。
廣告點擊率預(yù)估模型是廣告系統(tǒng)的核心組成部分,其最初采用LR的方法[1],該模型簡單易用,卻忽略了特征間的非線性關(guān)系。為了利用特征間的組合信息,2010年Rendle[2]提出了FM(factorization machine)模型,該模型在原有的線性模型的基礎(chǔ)增加二次多項式組合部分,采用矩陣分解的方法將二階特征組合系數(shù)進行分解,提高了點擊率預(yù)估效果。隨著近幾年深度學(xué)習(xí)的不斷發(fā)展以及深度學(xué)習(xí)對多維數(shù)據(jù)復(fù)雜關(guān)系處理的優(yōu)越性,推薦系統(tǒng)領(lǐng)域?qū)⑸疃葘W(xué)習(xí)的方法引入其中。許多學(xué)者針對特征交互方面做出改進,現(xiàn)有模型可分為并行結(jié)構(gòu)和串行結(jié)構(gòu)2種。并行結(jié)構(gòu)是低維特征組合部分和深度神經(jīng)網(wǎng)絡(luò)部分分開計算,輸出層將兩部分的計算結(jié)果合并,并采用sigmoid函數(shù)輸出,代表模型有DCN[3]、Deep FM[4]、xDeepFM[5]。串行結(jié)構(gòu)是將低維特征組合的結(jié)果作為深度神經(jīng)網(wǎng)絡(luò)的輸入,經(jīng)深度神經(jīng)網(wǎng)絡(luò)的特征交互最終由輸出層輸出,代表模型有FNN[6]、SNN[7]、PNN[8]。采用深度學(xué)習(xí)模型捕捉高維特征間的非線性關(guān)系可提高廣告點擊率預(yù)估的正確率。然而以上基于深度學(xué)習(xí)的點擊率預(yù)估模型忽略了不同的特征組合對于點擊率預(yù)估結(jié)果重要程度的不同,難以有效捕捉高階特征組合間的非線性關(guān)系。注意力機制類似于人類的視覺系統(tǒng),可以有效發(fā)現(xiàn)數(shù)據(jù)的“焦點”,捕捉重要特征組合。AMF模型在FM模型基礎(chǔ)上增加了注意力網(wǎng)絡(luò),對交互特征加權(quán),來表示對不同特征交叉組合間不同的關(guān)注度,因其更貼合現(xiàn)實場景,取得了不錯的效果[9]。溫瑤瑤[10]將注意力模型與極深因子分解機結(jié)合,通過注意力模型篩選極深因子分解機得到的重要高階特征組合,增強模型解釋性的同時提高模型性能。這2個模型雖然仍存在高階特征間非線性關(guān)系捕捉不足,但證明了注意力機制對于廣告點擊率預(yù)估的有效性。2018年Song等[11]提出的AutoInt模型僅采用多頭注意力機制對特征間非線性關(guān)系進行捕捉,雖然模型效果較優(yōu),但由于高階特征間非線性關(guān)系捕捉不足,仍需要進一步對其優(yōu)化。另外,大多數(shù)點擊率預(yù)估模型致力于提高預(yù)估準確率建立復(fù)雜的網(wǎng)絡(luò)模型,導(dǎo)致模型難以在實際場景應(yīng)用,對復(fù)雜點擊率預(yù)估模型壓縮勢在必行。鑒于此,提出一種基于深度網(wǎng)絡(luò)模型壓縮的深度學(xué)習(xí)廣告點擊率預(yù)估模型,提高廣告點擊率預(yù)估準確率的同時,增強模型的可用性。
1)點擊率預(yù)估。令x∈Rw表示用戶u的特征和項目v的特征的級聯(lián),其中w是級聯(lián)特征的維數(shù)。點擊率預(yù)估是指根據(jù)特征向量x預(yù)測用戶u點擊項目v的概率。
2)字節(jié)。字節(jié)指數(shù)據(jù)集中多個同類特征的集合,例如性別字節(jié)有男性和女性,興趣字節(jié)有籃球、足球、游泳、登山等。
3)低階特征組合和高階特征組合。特征組合的選取是點擊率預(yù)估的重要環(huán)節(jié),通過將多個特征同時表達在特征空間,使模型更好擬合,提升模型性能。在點擊率預(yù)估中低階特征組合指一階和二階的特征組合,高階特征組合指二階以上的特征組合。
4)one-hot編碼。one-hot編碼又稱“獨熱”編碼,指采用N位狀態(tài)寄存器對N個狀態(tài)進行編碼,每個狀態(tài)都有獨立的寄存器位,且這些寄存器只有一位有效。因為推薦系統(tǒng)數(shù)據(jù)集中的離散型數(shù)據(jù)不具序列性,所以在數(shù)據(jù)預(yù)處理過程中離散型數(shù)據(jù)不能以簡單的數(shù)值直接替換,而要采用one-hot編碼。
為更好地捕捉特征組合間的非線性關(guān)系,實現(xiàn)廣告點擊率的準確預(yù)估,提出了基于深度網(wǎng)絡(luò)模型壓縮的廣告點擊率預(yù)估模型(soft-MADR模型)。將未經(jīng)模型蒸餾的原始模型稱為MADR模型,其點擊率預(yù)估結(jié)構(gòu)如圖1所示。
圖1 點擊率預(yù)估模塊結(jié)構(gòu)
該模型網(wǎng)絡(luò)結(jié)構(gòu)分為輸入層、嵌入層、特征交互層和點擊率預(yù)估層4層。其廣告點擊率預(yù)估實現(xiàn)流程為:輸入層輸入的稀疏數(shù)據(jù)經(jīng)嵌入層轉(zhuǎn)換為維度固定的特征向量,然后輸入至特征交互層;由多頭注意力網(wǎng)絡(luò)和結(jié)合殘差網(wǎng)絡(luò)的深度神經(jīng)網(wǎng)絡(luò)構(gòu)成。其中多頭注意力網(wǎng)絡(luò)通過將輸入的特征向量映射到不同的低維空間,對輸入的特征向量預(yù)處理,捕捉全局重要的特征組合信息。將特征組合信息送入結(jié)合殘差網(wǎng)絡(luò)的深度神經(jīng)網(wǎng)絡(luò)中,進一步捕捉高階特征組合信息,經(jīng)點擊率預(yù)估層預(yù)測并輸出結(jié)果。
在推薦系統(tǒng)數(shù)據(jù)集中,將離散特征以one-hot編碼,使原本稀疏的數(shù)據(jù)更加稀疏。為了便于訓(xùn)練以及減少內(nèi)存,采用Embedding方法[12]對稀疏數(shù)據(jù)壓縮處理,在盡量不損失信息的前提下,轉(zhuǎn)換為一個稠密嵌入表示,
ei=Vifi,
(1)
其中Vi為字節(jié)fi的嵌入矩陣,Embedding通過模型的迭代將每個字節(jié)fi(i∈[1,n],n為字段總數(shù))的取值映射為一個固定維度d的稠密嵌入向量ei。針對不同類型特征,對其進行不同的處理:1)針對單值離散特征,直接采用Embedding方法將其表示在低維空間。2)針對多值離散特征,為了與多值輸入兼容,將多值離散特征表示為相應(yīng)特征嵌入向量的平均值。3)針對連續(xù)特征,為了使特征組合時離散特征和連續(xù)特征能夠正常交互,在相同的低維空間表示連續(xù)特征,從而與離散特征保持相同的維度d。
不同類型的數(shù)據(jù)經(jīng)嵌入層處理后,將每個樣本中所有字節(jié)的特征對應(yīng)的稠密嵌入向量拼接,從而建立對應(yīng)的映射關(guān)系表e,
e=[e1,e2,…,en]。
(2)
特征交互是廣告點擊率預(yù)估模型的重要模塊,經(jīng)Embedding轉(zhuǎn)化的稠密向量ei在同一低維空間模擬高維特征組合,以得到有意義的特征組合。本點擊率預(yù)估模塊采用多頭注意力模型對嵌入特征初步整合,提取相對重要的特征組合,再將其送入結(jié)合殘差網(wǎng)絡(luò)的深度神經(jīng)網(wǎng)絡(luò)進行更高維度特征組合的捕捉,增加模型的泛化能力,完成對模型整體特征組合信息的捕捉。
2.3.1 多頭注意力網(wǎng)絡(luò)
ψh(em,ek)=〈Wh,Qem,Wh,Kek〉;
(3)
(4)
(5)
(6)
2.3.2 深度神經(jīng)網(wǎng)絡(luò)
深度神經(jīng)網(wǎng)絡(luò)(deep neural networks,簡稱DNN)是深度學(xué)習(xí)的一種基礎(chǔ)網(wǎng)絡(luò),其內(nèi)部的神經(jīng)網(wǎng)絡(luò)層如圖2所示,包括輸入層、隱藏層、輸出層。通常情況下,第一層為輸入層,最后一層為輸出層,中間層都是隱藏層。從輸入層開始,將上一層的輸出結(jié)果作為第二層的輸入,以此計算至最后一層網(wǎng)絡(luò)結(jié)構(gòu),這個過程為前向傳播。前向傳播結(jié)束,為使計算的輸出更好地擬合樣本,采用反向傳播算法更新每層權(quán)重,以最小化損失函數(shù)。前向傳播和反向傳播反復(fù)迭代多次,直至達到停止準則。
圖2 深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
2.3.3 殘差網(wǎng)絡(luò)
殘差網(wǎng)絡(luò)由一系列殘差塊組成。圖3為殘差網(wǎng)絡(luò)的基本單元殘差塊。多層神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)一個潛在恒等映射H(x)=x比較困難,殘差塊使模型由學(xué)習(xí)一個恒等映射H(x)=x變?yōu)閷W(xué)習(xí)一個殘差函數(shù)F(x)=H(x)-x,只要F(x)=0,即構(gòu)成恒等映射H(x)=x。殘差網(wǎng)絡(luò)更新某一節(jié)點參數(shù)時,由于H(x)=F(x)+x求導(dǎo)后始終不為0,就可保證該節(jié)點參數(shù)更新不發(fā)生梯度消失或梯度爆炸現(xiàn)象。另外由于學(xué)習(xí)F(x)=0比H(x)=x簡單,殘差網(wǎng)絡(luò)學(xué)習(xí)的更新參數(shù)能夠更快收斂。
圖3 殘差塊
特征交互層輸出的是一組包含權(quán)重的特征組合向量,對于最終的點擊率預(yù)估,使用簡單的非線性投影將其轉(zhuǎn)化為點擊概率,
(7)
(8)
模型壓縮模塊旨在利用模型蒸餾技術(shù)對點擊率預(yù)估模塊進行輕量化處理,減少模型參數(shù),降低內(nèi)存資源占用的同時加快點擊率預(yù)估的效率,提高模型的可用性。其步驟如下:
1)使用訓(xùn)練數(shù)據(jù)訓(xùn)練點擊率預(yù)估模塊。使用的樣本標簽為實際標簽,即“硬目標”。
2)計算教師模型的“軟目標”。利用訓(xùn)練好的點擊率預(yù)估模塊分別計算多頭注意力層、深度神經(jīng)網(wǎng)絡(luò)層和點擊率預(yù)估層輸出的特征概率信息,
(9)
其中T為溫度參數(shù),zi為歸一化層的輸入。
3)訓(xùn)練學(xué)生模型。訓(xùn)練含有“硬目標”的訓(xùn)練樣本的同時訓(xùn)練教師模型輸出的“軟目標”的訓(xùn)練樣本。損失函數(shù)采用均方誤差函數(shù),
L=αLsoft+(1-α)Lhard,
(10)
(11)
其中α為權(quán)重系數(shù),k為樣本數(shù)。
4)將溫度參數(shù)T設(shè)為1,并輸出壓縮的學(xué)生模型。
綜上所述,提出一種基于深度網(wǎng)絡(luò)模型壓縮的廣告點擊率預(yù)估模型如圖4所示。
圖4 基于深度網(wǎng)絡(luò)模型壓縮的soft-MADR模型
模型工作流程如下:
1)數(shù)據(jù)預(yù)處理。數(shù)據(jù)預(yù)處理包括數(shù)據(jù)清洗、連續(xù)型數(shù)據(jù)歸一化處理、離散數(shù)據(jù)one-hot編碼以及4∶1劃分訓(xùn)練集和測試集。
2)模型訓(xùn)練。預(yù)處理后的數(shù)據(jù)經(jīng)嵌入層、特征交互層自底向上逐層訓(xùn)練,并采用反向傳播更新每層參數(shù)。
3)訓(xùn)練MADR模型的同時進行模型蒸餾,得到soft-MADR模型。
4)采用soft-MADR模型進行點擊率預(yù)估。
本次實驗選用的數(shù)據(jù)集為Avazu數(shù)據(jù)集。Avazu是一家來自德國的技術(shù)類網(wǎng)絡(luò)廣告公司,Avazu數(shù)據(jù)集(http://www.kaggle.com/c/avazu-ctr-prediction)是該公司公開發(fā)布在網(wǎng)絡(luò)上廣告的真實數(shù)據(jù)集。數(shù)據(jù)集的樣本數(shù)為40 428 967,字節(jié)數(shù)為24,特征數(shù)為1 544 488。
實驗中不同的參數(shù)設(shè)置會影響模型的訓(xùn)練結(jié)果,進而影響廣告點擊率預(yù)估的準確率。通過相關(guān)文獻和大量實驗,確定相對較優(yōu)參數(shù)設(shè)置。實驗?zāi)P蛥?shù)設(shè)置如表1所示。
本次實驗評價指標為fAUC、fLogloss和模型運行時間。fAUC指ROC曲線下與坐標軸圍成的面積,常作為衡量二分類模型優(yōu)劣的一種評價指標,表示預(yù)測的正例排在負例前的概率。其計算式為:
表1 實驗?zāi)P蛥?shù)設(shè)置
(12)
rTP=nTP/(nTP+nFN),
(13)
rFP=nFP/(nFP+nFN),
(14)
其中:nTP為樣本正確判斷為正類(少數(shù)類)的樣本數(shù);nTN為樣本正確判斷為負類(多數(shù)類)的樣本數(shù);nFP為樣本錯誤判斷為負類的實際正類樣本數(shù);nFN樣本錯誤判斷為正類的實際負類樣本數(shù)。
反映樣本的平均偏差的對數(shù)損失函數(shù)為
(15)
實驗環(huán)境為Windows 10教育版64位系統(tǒng),Intel(R) Xeon(R) CPU E5-2620 V4@2.10 GHz Anaconda3 2019.10(Python 3.7.4 64-bit)。
對比本模型(soft-MADR模型)與基線模型的fAUC、fLogloss和模型運行時間,其中基線模型分為只使用單一特征的LR線性模型、考慮二階特征組合的FM模型和能夠捕獲高階特征交互的模型3類。為確保實驗的有效性,實驗數(shù)據(jù)均為10次實驗數(shù)據(jù)的平均值。表2為soft-MADR模型與基線模型性能對比。由表2可知,soft-MADR模型性能均優(yōu)于其他模型,說明soft-MADR模型能夠有效捕捉高維特征組合間的非線性關(guān)系。其中soft-MADR模型的fLogloss值最低,這表示該模型的點擊率預(yù)估的準確率較高;fAUC的值最高,表明模型正確分類的性能較好。
表2 soft-MADR模型與基線模型性能對比
圖5為模型運行時間對比。從圖5可看出,本模型運行時間僅高于LR模型,而模型性能遠遠優(yōu)于LR模型,這表明該模型在實際應(yīng)用的綜合優(yōu)勢。綜合各方面指標,本模型性能及可用性更好。
圖5 模型運行時間對比
針對廣告點擊率預(yù)估模型難以有效捕捉高階特征組合的非線性關(guān)系且模型復(fù)雜度較高、實際應(yīng)用困難的問題,提出了一種基于深度網(wǎng)絡(luò)模型壓縮的深度學(xué)習(xí)廣告點擊率預(yù)估模型,該模型提高了點擊率預(yù)估的準確率,且降低了運行時間。模型采用多頭注意力網(wǎng)絡(luò)對特征進行初步交互,使用結(jié)合了殘差的深度神經(jīng)網(wǎng)絡(luò)進一步提取高階特征組合,提高模型點擊率預(yù)估能力。在訓(xùn)練MADR模型的同時使用模型蒸餾對其輕量化處理,得到soft-MADR模型,減少模型參數(shù),提高模型的廣告點擊率預(yù)估效率。在Avazu數(shù)據(jù)集上實驗結(jié)果表明,本模型具有更好的性能和可用性。由于該模型參數(shù)有很多的不確定性,檢測率會受到學(xué)習(xí)率、迭代次數(shù)等因素的影響,下一步研究如何有效選取模型參數(shù)。