許王昊,肖秦琨
(西安工業(yè)大學(xué)電子信息工程學(xué)院,西安 710021)
在按次計費(Cost-Per-Click,CPC)廣告系統(tǒng)[1]中,廣告按有效價格(eCPM)進行排名[2],該價格是出價與點擊率(Click-Through Rate,CTR)的乘積,而CTR 需要通過系統(tǒng)來預(yù)估。CTR 預(yù)估模型在廣告系統(tǒng)中發(fā)揮著至關(guān)重要的作用[3],其準(zhǔn)確度直接影響最終廣告受益,因此,CTR 預(yù)估模型受到研究人員的廣泛關(guān)注[4]。
CTR 預(yù)估模型是一個典型的二分類模型,結(jié)果分為點擊和不點擊[5]。目前,業(yè)界應(yīng)用最廣泛的CTR 預(yù)估模型是邏輯回歸(Logistic Regression,LR)。LR 的優(yōu)點是模型結(jié)構(gòu)簡單、容易進行大規(guī)模線上高并發(fā)處理[6],但是,由于線性模型更適合表示低階特征,對高階特征(非線性特征)進行表示時存在不足,從而限制了LR 預(yù)測性能的提升。為此,Google 提出Wide&Deep 模型[7],華為諾亞方舟實驗室提出DeepFM 模型[8]等,這些模型都是基于embedding 和多層感知機(MLP)而設(shè)計[9],它們首先將大規(guī)模稀疏輸入特征映射到低維embedding向量中,然后以逐組方式轉(zhuǎn)換為固定長度的向量,最后將向量連接在一起輸入到多層感知機[10]中,提取用戶感興趣的非線性特征。與常用的LR 模型[11]相比,這些深度學(xué)習(xí)模型可以大幅減少特征工程工作,并提高模型的高階表示能力[12]。但是,embedding&MLP 模型只能表現(xiàn)有限維度的用戶興趣,無法表示用戶的多樣化興趣[13]。例如,在訪問電子商務(wù)站點時,用戶可能同時對不同種類的商品感興趣。當(dāng)涉及點擊率預(yù)測任務(wù)時,通常會從用戶行為數(shù)據(jù)中捕獲用戶興趣[14]。embedding&MLP 方法通過將用戶行為的embedding 向量轉(zhuǎn)換為固定長度的向量來學(xué)習(xí)特定用戶的所有興趣表示,固定長度向量位于所有用戶的代表向量所在的歐氏空間中[15],此時,用戶的不同興趣被壓縮為固定長度的向量,這限制了embedding&MLP方法的表達能力。為了使興趣的表示具有足夠的能力來表達用戶的不同興趣,需要擴展固定長度向量的維數(shù)。但是,這會大幅提高學(xué)習(xí)參數(shù)的數(shù)量,提升有限參數(shù)下過擬合的風(fēng)險[16],還會增加計算和存儲負擔(dān),這是實時在線系統(tǒng)所無法接受的。
在預(yù)測候選廣告時,不必將某個用戶的所有多樣化興趣壓縮到相同的向量中,因為只有部分用戶的興趣會影響其點擊或不點擊行為。為了在該情況下進行預(yù)測[17],本文基于注意力機制構(gòu)建一種興趣網(wǎng)絡(luò)點擊率預(yù)估模型ADIN。ADIN 模型引入局部激活單元,通過軟搜索歷史行為的相關(guān)部分來關(guān)注相關(guān)用戶的興趣。此時,用戶興趣的表示向量隨廣告的不同而變化,提高了模型在有限維度下的表示能力,使得ADIN 能夠更好地量化用戶的不同興趣。ADIN 還引入注意力機制,注意力機制借鑒了人類視覺的處理方式,將注意力集中于關(guān)鍵區(qū)域,其本質(zhì)是從諸多信息中選擇對任務(wù)起關(guān)鍵作用的信息,從而降低任務(wù)的復(fù)雜度。在ADIN 模型中,通過注意力機制將歷史行為與當(dāng)下行為相結(jié)合,從而更好地預(yù)估用戶的實時興趣,提高模型的預(yù)測能力。
相比于傳統(tǒng)的機器學(xué)習(xí)模型,深度學(xué)習(xí)模型在CTR 預(yù)估中表現(xiàn)出了較大潛力。CTR 預(yù)估模型中使用的樣本數(shù)量和特征維度越來越大,為了更好地提取特征之間的關(guān)系以提升模型性能,研究人員對模型的結(jié)構(gòu)設(shè)計進行了研究。為了避免語義建模中的維數(shù)爆炸問題,一些自然語言處理模型和CTR 預(yù)估模型在輸入層和神經(jīng)網(wǎng)絡(luò)層之間加入一個embedding 層,用于降低特征維數(shù)[18]。假設(shè)特征數(shù)為n,每個embedding 向量的維度為D,特征的embedding向量v可以寫成一個矩陣,如式(1)所示:
LS-PLM[19]模型和FM[20]模型可以看作具有一個隱藏層的一類網(wǎng)絡(luò),它們首先在稀疏輸入上使用embedding層,然后對目標(biāo)擬合施加專門設(shè)計的轉(zhuǎn)換函數(shù),旨在捕獲特征之間的組合關(guān)系。PLM 結(jié)合聚類和分類的思想[21],即將特征空間進行分片或分區(qū)間,每個分片就是一個聚類,每個聚類對應(yīng)一個單獨的線性模型LR,此處的聚類是軟聚類,即每個樣本可以屬于多個分片。最后,計算出每個分片的CTR,按屬于各個分片的概率進行加權(quán)平均,通過分片線性擬合達到非線性的效果。在高維稀疏數(shù)據(jù)下,假設(shè)一個二分類數(shù)據(jù)集為其中,yt∈{0,1},xt∈?d。LS-PLM 模型為:
其中,m表示分片數(shù),其為人工設(shè)定的超參數(shù),{u1,u2,…,um,w1,w2,…,wm}∈?d×2m表示模型參數(shù),由訓(xùn)練得到。FM 模型在二維特征下定義為:
其中,模型參數(shù)w0∈?,wi∈?n,V∈?n×k,<·,·>表示大小為k的2 個向量的點積:
其中,vi表示k個因子中的第i個變量表示定義因子維度的超參數(shù)。
在深度學(xué)習(xí)模型中,Deep Crossing[22]和Wide&Deep通過用復(fù)雜的MLP 網(wǎng)絡(luò)代替或擴展LS-PLM 和FM,從而大幅提升了模型的性能。PNN[23]通過在embedding層之后加入一個product層來提取高階特征。DeepFM[8]在Wide&Deep[7]中將分解機改進為“wide”模塊,無需進行功能設(shè)計??傮w而言,這些方法遵循相似的模型結(jié)構(gòu),即包括embedding 層和MLP 的組合,其中,embedding 層用于學(xué)習(xí)稀疏特征的密集表示,MLP 用于自動學(xué)習(xí)特征的組合關(guān)系。
注意力機制源自神經(jīng)機器翻譯(NMT)領(lǐng)域[24]。NMT 對所有注釋進行加權(quán)求和以獲得預(yù)期的注釋,其僅關(guān)注與生成下一個目標(biāo)單詞有關(guān)的信息。與NMT相似,Deep-Intent使用RNN[25]對文本進行建模,然后學(xué)習(xí)一個全局隱藏向量來關(guān)注每個查詢中的關(guān)鍵字。結(jié)果表明,注意力機制的使用有利于提取查詢或廣告的主要特征。ADIN 模型設(shè)計了一個局部激活單元來軟搜索相關(guān)的用戶行為,并通過加權(quán)和池化獲取針對給定廣告的用戶興趣的自適應(yīng)表示。
工業(yè)點擊率預(yù)測任務(wù)中的數(shù)據(jù)大多采用多組類別的形式[26],例如,[weekday=Monday,gender=Male,visited_cate_ids={Keyboard,Mouse},ad_cate_id=Computer],通常將這種數(shù)據(jù)轉(zhuǎn)換為高維稀疏二進制特征,編碼后的特征為[64,18,32]。數(shù)學(xué)上將第i個特征組的向量編碼為,Ki表示特征組i的維數(shù),即特征組i包含了Ki唯一的ID。ti[j]是ti的第j個元素,ti[j]∈當(dāng)k=1 時向量ti即one-hot編碼,k>1時向量ti即multi-hot編碼,此時一組用戶行為特征可以表示為,其中,M表示特征組的數(shù)量,表示整個特征空間的維度。此時,上述具有4 組特征的實例可以表示為:
表1 截取自阿里巴巴數(shù)據(jù)集中的部分特征,其中主要分為用戶生理特征、用戶行為特征、廣告特征和上下文特征4 個類別,除了用戶行為特征使用multi-hot 編碼,其余均使用one-hot 編碼。
表1 阿里巴巴展示廣告數(shù)據(jù)集部分統(tǒng)計結(jié)果Table 1 Some statistical results of Alibaba display advertising dataset
由于ADIN 模型的輸入是高維二進制向量,因此加入embedding 層將其轉(zhuǎn)換為低維密集表示。對于ti的第i個特征組,令表示第i個embedding 字典,其中是一個D維的embedding 向量,embedding 操作通過查表簡化計算。當(dāng)ti是第j個元素ti[j]=1 的one-hot 向量時,embedding層將其轉(zhuǎn)換為一個單個embedding 向量當(dāng)ti是ti[j]=1 且j∈{i1,i2,…,ik}的multi-hot 向量時,ti的embedding 表示形式是一個embedding 向量列表:
不同用戶的行為特征數(shù)量不同,因此,multi-hot行為特征向量ti=1 的數(shù)量會因?qū)嵗?,從而?dǎo)致相應(yīng)的embedding 向量列表的長度可變。由于全連接層網(wǎng)絡(luò)只能處理固定長度的輸入[27],通常需要通過池化層來轉(zhuǎn)換embedding 向量的列表以獲得固定長度的向量,如下:
池化層最常用的算法是求和與平均[28],其將每個元素的求和與平均運算應(yīng)用于embedding 向量列表。池化層和embedding 層均以逐組的方式運行,將原始的稀疏特征映射到多個固定長度的向量中,然后拼接層將所有的向量連接在一起以獲得該實例的整體表示向量。
多層感知機層給定級聯(lián)的密集表示向量,可以使用全連接層自動學(xué)習(xí)特征的組合,從而更好地提取特征。
ADIN 模型中使用的目標(biāo)函數(shù)是負對數(shù)似然函數(shù)[29],如下:
其中,S表示大小為N的訓(xùn)練集,x表示網(wǎng)絡(luò)的輸入,y∈{0,1}表示訓(xùn)練集的標(biāo)簽,p(x)表示Softmax 層之后網(wǎng)絡(luò)的輸出,即樣本被點擊的預(yù)測概率。
ADIN 模型將局部激活單元應(yīng)用于用戶行為特征提取,將其作為加權(quán)和池化來執(zhí)行,以自適應(yīng)地計算給定廣告A下的用戶表示vU:
其中,{e1,e2,…,eH}表示長度為H的用戶U的行為特征的embedding 向量列表,vA表示廣告A的embedding 向量。此時,vU(A)隨不同廣告而變化。a(·)是一個前饋網(wǎng)絡(luò),其輸出作為激活權(quán)重。除了2 個輸入embedding向量,a(·)將其余embedding 向量按權(quán)重進行乘積相加并輸入后續(xù)網(wǎng)絡(luò)。
注意力機制對用戶行為特征通過使用相似度函數(shù)比對計算得到權(quán)重s(xi,q):
其中,xi表示輸入第i個用戶的特征,q表示第i個用戶的興趣向量。將得到的權(quán)重s(xi,q)進行歸一化處理[30]操作得到注意力分布ai:
將得到的ai值與對應(yīng)區(qū)域加權(quán)求和得到最后的attention:
ADIN 模型中的注意力機制算法包括4 個步驟:
步驟1選擇一個用戶行為特征向量作為注意力信號。
步驟2對輸入的序列進行編碼,計算出注意力分布。
步驟3計算注意力的加權(quán)平均,根據(jù)相似度將其轉(zhuǎn)換成注意力權(quán)重。
步驟4根據(jù)權(quán)重對輸入的序列進行加權(quán)融合得到向量并作為輸入序列的聚合特征。
ADIN 模型采用了當(dāng)前流行的PReLU 激活函數(shù),如下:
此處f(s)也可寫為:
其中,s表示激活函數(shù)f(·)的輸入,p(s)=I(s>0)控制f(s)在f(s)=s和f(s)=αs之間切換。此外,在ADIN模型中還加入了自適應(yīng)激活函數(shù)Dice,如下:
其中,E[s]和Var[s]分別表示每個小批量輸入的均值和方差,ε是一個常數(shù),本文實驗中取10-8。
本文ADIN 模型結(jié)構(gòu)如圖1 所示。
圖1 ADIN 模型結(jié)構(gòu)Fig.1 ADIN model structure
為了評估本文ADIN模型的預(yù)估性能,基于Amazon、MovieLens和Alibaba 3個公開數(shù)據(jù)集進行對比實驗。
Amazon 數(shù)據(jù)集包含了亞馬遜的產(chǎn)品評論和元數(shù)據(jù),常被作為基準(zhǔn)數(shù)據(jù)集來訓(xùn)練模型[31]。如表2 所示,本文使用Amazon數(shù)據(jù)集中的Electronics子數(shù)據(jù)集,其包含192403個用戶,63001個商品,801個類別和1689188個樣本。該子數(shù)據(jù)集中用戶行為豐富,每個用戶和商品評論均超過5 條,包含了goods_id、cate_id、user reviewed goods_id_list 和cate_id_list 等特征。假設(shè)一個用戶的所有行為是(b1,b2,…,bk,…,bn),模型的任務(wù)是通過使用前k個商品來預(yù)測第k+1 個商品。實驗中對于所有模型均采用SGD 作為優(yōu)化器,其中,學(xué)習(xí)率從1 開始,衰減率設(shè)置為0.1,最小批量設(shè)置為32。
表2 3 個公開數(shù)據(jù)集統(tǒng)計信息Table 2 Statistical information of three public datasets
MovieLens數(shù)據(jù)集[32]包含138 493個用戶,27 278部電影,21 個類別和20 000 263 個樣本,包括movie_id、movie_cate_id、user rated movie_id_list 和movie_cate_list等特征。為了使其適合CTR 預(yù)估任務(wù),實驗中將該數(shù)據(jù)集轉(zhuǎn)換為二進制分類數(shù)據(jù)集。電影的原始評分是從0~5 的連續(xù)值,實驗中將評分為4 和5 的樣本標(biāo)記為正樣本,其余樣本標(biāo)記為負樣本。根據(jù)用戶ID 將數(shù)據(jù)集分為訓(xùn)練集和測試集,在所有138 493 個用戶中,100 000 個用戶劃分為訓(xùn)練集(14 469 238 個樣本),其余38 493 個用戶劃分為測試集(5 531 025 個樣本)。模型的任務(wù)即根據(jù)歷史行為來預(yù)測用戶對電影的評分是否高于3 分(正標(biāo)記)。實驗中優(yōu)化器、學(xué)習(xí)率和最小批量設(shè)置與Amazon 數(shù)據(jù)集相同。
本文實驗還采用Alibaba 在線展示廣告系統(tǒng)公開數(shù)據(jù)集[33],由于其數(shù)據(jù)量過于龐大,因此采用隨機連續(xù)的兩周樣本作為訓(xùn)練集,后續(xù)一天的樣本作為測試集。訓(xùn)練集約有20 億個樣本,測試集約有1.4 億個樣本,隨機抽取1%的樣本用于模型訓(xùn)練。對于所有深層模型,所有16 組特征的embedding 向量維度均為12,多層感知機的層數(shù)設(shè)置為192×200×80×2,最小批量設(shè)置為100,使用Adam 優(yōu)化器。學(xué)習(xí)率從0.001 開始,衰減率設(shè)置為0.9。
本文實驗選擇5 種具有代表性的CTR 預(yù)估模型與ADIN 模型進行對比。對比模型具體如下:
1)LR 模型,其是在使用深度學(xué)習(xí)進行CTR 預(yù)測任務(wù)之前被廣泛使用的淺層模型,優(yōu)勢是模型簡單、訓(xùn)練速度快,本次實驗中將其作為弱基準(zhǔn)模型。
2)embedding 與多層感知機模型(embedding&MLP),其是多數(shù)使用深度學(xué)習(xí)進行CTR 預(yù)估的基礎(chǔ)。
3)Wide&Deep 模型,在實際中被廣泛使用,其由兩部分組成,Wide 模型處理手動設(shè)計的跨產(chǎn)品特征,Deep 模型自動提取特征之間的非線性關(guān)系。Wide&Deep 模型基本等價于embedding 與多層感知機模型。
4)PNN模型,其通過在embedding 層后引入product 層以捕獲高階特征。
5)DeepFM 模型,其在Wide&Deep 的基礎(chǔ)上將Wide 模型改為因子分解機。
實驗采用LogLoss和AUC作為評價指標(biāo)。用式(6)作為LogLoss 的計算公式以評估模型的準(zhǔn)確度,通過對所有預(yù)期CTR 的廣告進行排序來評價模型的性能。實驗引入用戶加權(quán)AUC 的變體,通過用戶平均AUC 來衡量模型的優(yōu)劣[34]。AUC 計算公式如下:
本次報告以伊利股份財務(wù)指標(biāo)的分析為主要內(nèi)容,先介紹了伊利股份公司的情況,然后結(jié)合企業(yè)經(jīng)濟效益指標(biāo)體系以及乳制品行業(yè)和上市公司自身的特點,以2012年-2016年為分析的時間區(qū)間,將伊利股份縱向的財務(wù)分析指標(biāo)分為償債能力、盈利能力、營運能力和發(fā)展能力四個方面,先進行單項指標(biāo)的分析評價,再進行財務(wù)趨勢分析和財務(wù)綜合分析。
其中,n表示用戶數(shù),#impressioni和AUCi分別表示第i個用戶的權(quán)重和AUC 指標(biāo)。
本文依次在3 個公開數(shù)據(jù)集中評估6 種模型的預(yù)測性能,在Amazon 數(shù)據(jù)集中比較不同的激活函數(shù)、超參數(shù)設(shè)置和網(wǎng)絡(luò)層數(shù)等對各模型性能的影響。
3.4.1 預(yù)測效果比較
表3 所示為3 個公開數(shù)據(jù)集中不同模型的預(yù)測效果,從中可以看出:
1)學(xué)習(xí)高階特征可以提高模型的預(yù)測性能。將LR 和其他模型進行比較,LR 是唯一一個沒有學(xué)習(xí)高階特征的模型。在3 個公開數(shù)據(jù)集上,ADIN 模型的AUC 指標(biāo)分別比LR 模型提高了1.55%、4.56%和0.45%,LogLoss 指標(biāo)分別比LR 模型降低了0.72%、0.50%和0.37%。
2)同時學(xué)習(xí)高階特征和低階特征的模型預(yù)測效果明顯優(yōu)于僅學(xué)習(xí)高階特征或低階特征的模型。DeepFM 和ADIN 模型同時提取高階特征和低階特征,AUC 指標(biāo)和LogLoss 指標(biāo)明顯優(yōu)于其余4 種只學(xué)習(xí)低階或高階特征的模型。與只學(xué)習(xí)高階特征的PNN相比,ADIN 模型在3 個數(shù)據(jù)集上的AUC指標(biāo)分別提高了1.31%、1.65%和0.13%,LogLoss 指標(biāo)分別降低了0.38%、0.21%和0.22%。
表3 6 種模型在3 個公開數(shù)據(jù)集上的預(yù)測效果比較Table 3 Comparison of prediction effects of six models on three public datasets
3.4.2 激活函數(shù)比較
本文研究Amazon 數(shù)據(jù)集上不同激活函數(shù)對5 種模型的影響,結(jié)果如圖2 所示。與Sigmoid 激活函數(shù)相比,ReLU 和Tanh 更適合深層模型。從圖2 可以看出,除了PNN以外,所有模型的ReLU均優(yōu)于Tanh。在PNN模型上,ReLU 可能導(dǎo)致了數(shù)據(jù)稀疏問題。
圖2 不同激活函數(shù)下AUC 和LogLoss 指標(biāo)比較Fig.2 Comparison of AUC and LogLoss indices under different activation functions
將ReLU、Tanh 與ADIN 模型使用的PReLU/Dice激活函數(shù)進行對比。從圖3 可以看出,PReLU/Dice 激活函數(shù)在ADIN 模型上相對ReLU 具有明顯優(yōu)勢,這與ADIN 的局部激活和注意力機制結(jié)構(gòu)有很大關(guān)系。
圖3 ADIN 模型采用不同激活函數(shù)的結(jié)果比較Fig.3 Comparison of the results of ADIN model with different activation functions
3.4.3 神經(jīng)元數(shù)比較
當(dāng)其余條件不變時,增加每層網(wǎng)絡(luò)的神經(jīng)元數(shù)會提升網(wǎng)絡(luò)復(fù)雜性。從圖4 可以看出,增加每層神經(jīng)元數(shù)不一定能提高模型性能,當(dāng)每層神經(jīng)元數(shù)從300 增加到800 時,ADIN 模型性能保持穩(wěn)定,PNN 模型的性能會降低,當(dāng)神經(jīng)元過多、模型過于復(fù)雜時,PNN 會出現(xiàn)過擬合問題。本文ADIN 模型考慮到模型復(fù)雜度提升會帶來過多的消耗,通常將每層神經(jīng)元的數(shù)量設(shè)置為80~200 范圍內(nèi)。
圖4 不同神經(jīng)元數(shù)對AUC 和LogLoss 的影響Fig.4 The effect of different number of neurons on AUC and LogLoss
3.4.4 隱層層數(shù)比較
從圖5 可以看出,適當(dāng)增加隱層層數(shù)可以提高模型性能,但當(dāng)隱層層數(shù)持續(xù)增加時,會在一定程度上導(dǎo)致過擬合問題,使得模型性能降低。因此,在ADIN 模型中,隱層層數(shù)通常設(shè)置為2 層或3 層。
圖5 不同隱層層數(shù)對AUC 和LogLoss 的影響Fig.5 The effect of different hidden layers on AUC and LogLoss
本文構(gòu)建一種網(wǎng)絡(luò)點擊率預(yù)估模型ADIN,該模型引入注意力機制和局部激活單元,無需任何預(yù)訓(xùn)練,同時學(xué)習(xí)高階特征和低階特征,此外,通過引入embedding 層來避免特征工程。在3 個公開數(shù)據(jù)集上進行實驗,結(jié)果表明,ADIN 模型的預(yù)估性能優(yōu)于LR、PNN 等模型。目前,強化學(xué)習(xí)在阿里巴巴和京東等互聯(lián)網(wǎng)公司已經(jīng)被廣泛使用,因此,在ADIN 模型的局部激活單元中引入強化學(xué)習(xí)以提升模型性能將是下一步的研究方向。