陳育康,龍慧云,吳 云,林 建
貴州大學 計算機科學與技術學院,貴陽 550025
預測用戶對某廣告或項目的點擊率(click-through rate,CTR)是推薦系統中的關鍵問題[1],通過預測用戶對項目的點擊率,對候選項目進行排序,將項目推送給其可能的潛在客戶。一方面為公司帶來巨大的商業價值,另一方面提高了用戶使用滿意度,用戶可以更容易地找到其想要的內容。點擊率預測的好壞直接關系到公司的收益,由于其重要性,近年來學術界和工業界對點擊率預測展開了廣泛的研究。
特征組合對于預測用戶點擊率至關重要,例如,向一位女士推薦化妝品時合理的,在此情況下,<性別=女,商品類別=化妝品>是一組非常有用的二階特征組合。再比如向一個9歲大的男孩推薦游戲機也是合理的,其中<性別=男,年齡=9,商品類別=游戲機>是一組重要的三階特征組合。在推薦場景中,存在巨量這樣有效的特征組合,然而找尋這些高階特征組合在很大程度上依賴于領域專家,由于龐大的特征數量以及高的階數,人工挑選所有有效的特征組合幾乎是不可能的。因此,對特征交互進行自動建模對提高CTR預測準確度非常重要,近年來許多學者使用機器學習和深度學習方法對自動化特征工程展開了研究。
在自動化特征工程CTR預測模型研究上,經歷了從淺層到深層的演變。最初人們利用LR[2-3]模型進行CTR預測,具有可解釋性強的特點,但其無法進行特征交叉,表達能力不強。對此Rendle等人[4]提出了因子分解機(factorization machine,FM),將成對特征的交互建模為兩兩嵌入向量的內積,能同時處理不同類別的特征,并大大降低了模型參數。由于不同特征交互對最終預測的貢獻是不同的,為了讓模型關注到重要的特征交互,Xiao等人[5]在FM的基礎上提出了AFM,利用注意力機制學習不同二階特征組合的重要性。然而在這類淺層模型中,只利用到了低階特征交互,無法提取特征間的高階復雜關系,表達能力不足。
隨著深度學習的興起[6-7],近年來許多研究利用深度神經網絡挖掘特征之間的隱式高階非線性交互,其具有學習能力強的優點。Cheng等人[8]提出的Wide&deep和Guo等人提出的DeepFM[9]采用了并行的方式,分別將一階特征、二階特征與DNN部分進行聯合,使得網絡同時具備記憶能力和泛化能力。為了利用神經網絡進一步挖掘低階特征的信息,蔣興渝等人[10]提出的APNN模型將一階特征重要性信息、二階特征重要性信息以及Product交互信息三個部分的輸出融合,并以串聯的方式輸入多個全連接層進行學習。為了對DNN部分進行優化,Wang等人[11]提出了AdnFM,其利用注意力機制對DNN中不同層的重要性進行學習。在這類基于神經網絡的CTR預測模型中,由于神經網絡黑盒的特點,以一種隱式的方式建模高階特征交互,難以保證特征交互的有效性。
為了有效建模高階特征交互,人們對顯式高階特征交互方法展開了研究。深度交叉網絡(DCN)[12]和極深因子分解機(xDeepFM)[13]提出了Cross網絡與CIN網絡的特征交互方式,分別在元素級與向量級對特征交互進行建模,將顯式交互部分拓展到了高階。為了結合DNN、Cross、FM三種模型的優勢,陳彬等人[14]提出了DCFM模型,其在Embedding層上將對三部分并行計算,得到的輸出拼接后輸入全連接神經網絡進行預測,由于組件過多,使得參數量過大。然而在這類高階特征交互模型中,沒有考慮到不同特征交互的重要性,無用的特征交互將對預測產生干擾。
為了區分高階特征交互的重要性,Song等人[15]提出的AutoInt使用自注意力機制更新特征表示,但其拓展到高階時特征交互較為隱式,并且只將最后一層結果作為輸出拓展到高階時可能會損失部分信息。Tao等人[16]提出了HoAFM,利用元素級注意力機制對特征交互進行建模,并可拓展到高階,但由于特征表示維度受限于Embedding維度,限制了模型的表達能力,并且模型在拓展到高階時容易過擬合。
為了解決以上模型中存在的問題,本文提出了一種新的CTR預測模型,稱為增強型高階注意力因子分解機EHAFM,其主要創新點如下:(1)針對神經網絡建模高階特征交互不可控的缺陷,設計了一種新的顯式特征交互層,通過聚合其他特征的表示來更新特征的表示,改變其層數可將特征表示拓展到高階;(2)針對無用特征交互對預測產生干擾的問題,提出了增強型元素級注意力機制,其利用投影矩陣拓展特征表示維度,擴大特征表示空間的同時,使得新的特征表示具有全局特征信息,增強了模型挖掘特征交互重要性的能力,減少無用特征交互干擾;(3)通過融合多個增強型元素級注意力頭的信息,提高了模型的泛化能力。
本文的工作與以下兩項工作有關:(1)特征的編碼與嵌入;(2)基于注意力機制的顯式特征交互模型。
在點擊率預測任務中,數據通常包含類別特征和數值特征,對于數值特征來說可以直接輸入網絡。但對于類別特征來說,必須先將其編碼,目前常用的操作是獨熱編碼(one-hot encoder)[17]。例如對性別特征進行編碼,性別特征字段中有性別=男,性別=女兩個類別,獨熱編碼可以分別將其表示為[1,0]和[0,1]兩個向量,向量維度與類別數對應。
獨熱編碼解決了類別型特征表示問題,但在Web級規模推薦系統中,由于同一個特征字段中有多個類別,將其進行獨熱編碼后會出現兩個問題:(1)維度較大,獨熱向量維度需對應特征字段類別數;(2)向量稀疏,維度龐大的獨熱向量中僅有一位代表某個特征,其余全為零。若將其直接輸入神經網絡,由于第一層參數量龐大,會產生極大的計算開銷,不利于網絡訓練。因此,通常在獨熱向量輸入網絡前,將其進行Embedding[18-20]嵌入。將高維稀疏的獨熱編碼映射到一個低維稠密的空間中,大幅減少了網絡計算量。例如顏色特征字段中有紅、黃、藍、綠四個類別,獨熱編碼分別為[1,0,0,0]、[0,1,0,0]、[0,0,1,0]、[0,0,0,1],其Embedding表示可以為紅[0.9,0.1]、黃[0.8,0.2]、藍[0.7,0.3]、綠[0.6,0.4],大大壓縮了向量維度。
1.2.1 AFM模型
Xiao等人[5]的研究表明,不同特征交互對最終預測的貢獻是不同的,為了區分不同特征組合的重要性,AFM通過在交互層后添加一個加權池化層來實現注意力機制。在注意力權重的計算方法上,AFM采用的是軟注意力機制[21],引入了多層感知機(MLP),利用單隱層的神經網絡學習特征交互重要性,注意力機制形式化定義如下:其中,W、h、b分別為權重矩陣、權重向量和偏置向量,a'ij為特征組合ij的注意力分數,aij為特征組合ij的注意力權重,⊙為向量間哈達瑪積,計算方法為向量對應元素相乘。

利用得到的注意力權重對交互向量進行池化,得到二階注意力特征表示。其形式化為:

但AFM模型的缺陷是只局限于二階特征交互,而未考慮高階特征交互。
1.2.2 HoAFM模型
為將AFM拓展到高階,最新的研究中Tao等人[16]提出了高階注意力因子分解機HoAFM,探討了如何顯式建模高階特征交互,以及不同注意力機制對模型效果的影響,包括元素級注意力機制、軟注意力機制、稀疏注意力機制[22],實驗表明元素級注意力機制有更優的效果,其形式化定義如下:

其中,e1i為第i個特征的一階嵌入向量,eli為第i個特征的l階表示向量,μ(·)為激活函數。wij為論文提出的注意力權重向量,用于在元素級粒度上建模注意力機制。
但由于特征高階表示向量維度始終固定,與Embed‐ding維度一致,缺少維度可伸縮性,限制了模型的表達能力。
針對以上問題,本文提出了EHAFM模型,該模型主要由特征Embedding嵌入層、顯式特征交互層、輸出層構成,模型整體框架如圖1所示。首先將輸入模型的特征向量通過Embedding層,統一編碼為維度相同的Embedding向量,接著將特征Embedding向量分別輸入一階線性部分和顯式特征交互部分進行學習,提取線性特征信息和高階特征交互信息,最后將兩部分的輸出聯合進行點擊率預測。

圖1 EHAFM模型整體框架Fig.1 Overall framework of EHAFM model
通過改變顯式特征交互層的層數可以將特征交互拓展到任意高階,提取高階特征信息,并與線性部分結合,使得模型兼具泛化能力和記憶能力。
在點擊率預測任務中,輸入模型的特征分為數值特征(0,0.5,7…)和類別特征(性別、城市…),為了使數值特征與類別特征進行交互,構造數值特征與類別特征之間的特征組合,模型將數值特征與類別特征統一嵌入為相同的維度d。
對于類別特征:類別特征是以one-hot形式輸入Embedding層,將其高維稀疏的形式嵌入到低維稠密的Embedding特征向量,如圖2所示,其形式化為:

圖2 類別特征嵌入Fig.2 Category feature embedding

其中,ei為特征i的特征向量,Vi為特征域i的嵌入矩陣,xonehot為特征i的one-hot向量。
類別特征可以是多值的,即xmultihot是一個multi-hot向量。例如一部電影,它的類型可以既是喜劇片也是愛情片,它的multi-hot編碼如[1,0,1,0,0]這樣的形式。為了使模型兼容多值特征輸入,將multi-hot特征的Embed‐ding向量除以多值個數,具體來說:

其中,q為第i個特征域中多值個數,即multi-hot向量中1的個數,xmultihot為特征i的multi-hot向量。
對于數值特征:將特征為數值類型的每個特征域分別用一個可訓練的Embedding向量進行表示,對于每個數值特征來說,其嵌入表示為特征域的Embedding向量乘以特征標量值,如圖3所示,其形式化為:

圖3 數值特征嵌入Fig.3 Numerical feature embedding

其中,vi為第i個特征域的嵌入向量,xNum為特征i的數值標量。
不同特征組合對于最終預測的貢獻是不同的,引入注意力機制區分特征組合的重要性是有必要的。Tao等人的研究表明,向量級注意力機制相比元素級注意力機制具有次優的表示能力,因此本文在元素級上建模注意力機制。相比HoAFM固定的特征表示維度,本文提出的顯式特征交互層拓展了特征表示維度,提高了特征向量的表達能力,同時增強了注意力矩陣的學習能力。顯式特征交互層計算方法如圖4所示。

圖4 顯式特征交互層示意圖Fig.4 Schematic diagram of explicit feature interaction layer
2.2.1 增強型元素級注意力機制
為了改變特征向量維度,模型利用可訓練的投影權重矩陣將特征向量映射到高維空間,以增加特征表示信息量。定義d為原始特征嵌入維度,D為投影變換后的向量維度,eli∈RD×H為特征i的l階表示向量,e1i∈Rd為特征i的一階嵌入向量。將一階特征向量與l階特征向量分別投影到D維空間中:

其中,WlProject∈RD×d為特征i的l階投影矩陣,將維度為d的特征向量投影到D維。
為每個高階特征創建一個可訓練權重矩陣wli,用于在元素級建模注意力機制,以區分不同特征組合的重要性。特征i的l+1階表示可公式化為:

其中,wli,j∈RD為特征i的l階表示與特征j交互的注意力權重向量,μ(·)為激活函數,本文選用ReLU激活函數,ReLU(z)=max(0,z)。
2.2.2 多頭注意力機制
為了避免過擬合,創建多個不共享參數的注意力頭[23-24]對特征交互重要性學習,分別在不同的表示子空間中學習特征交互重要性,最后對多個注意力頭的輸出進行集成,每個注意力頭公式化如下:其中,⊕為拼接操作,按照嵌入向量所在維度進行拼接,H為注意力頭的總數,對于每個注意力頭,注意力權重參數是相互獨立的。

因此,結合了多個注意力頭后特征i的l階表示可公式化為:

通過疊加多個這樣的特征交互層,從而將特征i更新到其高階表示el+1i,利用設計的交互層,可以顯式建模特征的任意階交互。
將各個特征的l階表示堆疊,得到l階交互矩陣El:

對交互矩陣進行池化,采用的是求和池化,公式化為:

因此,l階池化向量pl=[pl1,pl1,…,plm],將各階池化向量拼接,得到顯式高階交互部分的輸出p+=p1⊕p2⊕…⊕pl。
輸出層由一階線性部分和顯式高階交互兩部分構成,將兩部分的輸出結合起來預測點擊率,使得兩部分相互互補,同時考慮到特征的低階和高階信息。模型的輸出可公式化為:


點擊率預測任務屬于二分類任務(點擊、未點擊),因此本模型損失函數采用的是Log損失:

其中,N為訓練樣本的總數,y為樣本真實標簽(1或0)。
2.4.1 空間復雜度分析
模型參數來自于嵌入層、一階線性部分、顯式特征交互部分三個方面。對于嵌入層,其參數量為ndm,其中n為輸入特征的稀疏表示維數,d為嵌入維數,m為特征個數。一階線性部分的參數量來自于權重向量,其參數量為md。顯式特征交互部分的參數量來自于注意力機制,首先投影矩陣的參數量dD+HDL,其中D為投影后的向量維度,L為顯式特征交互層層數,H為注意力頭數量,注意力矩陣的參數量為m(m-1)HDL。加上顯式特征交互部分的權重向量,EHAFM模型的總參數量為ndm+md+dD+HDL+m(m-1)HDL+mL,空間復雜度為O(m2HDL)。xDeepFM的空間復雜度為O(mF2L),其中F為過濾器數量,由于F的設置通常遠大于m,因此本文模型相比xDeepFM空間復雜度要好。HoAFM的空間復雜度為O(m2dL),本文模型拓展了特征表示,并增加了注意力頭,因此空間復雜度略大于HoAFM。
2.4.2 時間復雜度分析
模型時間消耗主要來自于顯式特征交互層,計算一個注意力頭需要O(m2DL)的時間,本文的模型有H個注意力頭,因此模型的時間復雜度為O(m2HDL)。而xDeepFM的時間復雜度為O(mF2dL),由于H的取值較小,md?HD,并且F?m,因此本文模型在時間復雜度上比xDeepFM要好得多。對于HoAFM,其時間復雜度為O(m2dL),比本文模型略低。但是,在本文模型注意力機制實現上,采用了矩陣乘法的方式,在GPU上進行批量計算以代替for循環,本文模型的時間成本是可以接受的。
本實驗所用數據集為公開數據集Criteo和Movielens-1M。Criteo數據集是CTR預測任務的基準數據集,其中包含了在Kaggle競賽中,Criteo廣告公司提供的約4 500萬條用戶廣告行為記錄,其中包含26個類別特征和13個數值特征。Movielens-1M數據集是GroupLens Research采集的一組從20世紀90年末到21世紀初由MovieLens用戶提供的電影評分數據。數據集中包含了用戶對電影的評分、用戶性別、年齡、職業以及電影風格、年代等數據。
在數據預處理方面:對于數值特征,空值以0填充。由于數值特征變動范圍較大,會對訓練造成不利影響,因此需將其進行標準化,當z>2時,z=lb z。對于類別特征,空值以-1填充。將Movielens-1數據集中用戶評分大于3分的樣本視作正樣本(label=1),小于3的樣本視作負樣本(label=0),去除評分為3的中立樣本。將數據集隨機打亂后按照9∶1分割訓練集和測試集,經預處理后的數據集信息如表1所示。

表1 數據集信息Table 1 Dataset information
AUC(area under curve):AUC為ROC曲線下面積,其衡量了模型預測的正例排在負例前面的概率,其值越接近于1,二分類性能越好,并且指標對于樣本類別是否均衡不敏感,在樣本不平衡的情況下,依然能做出合理的預測,是點擊率預測任務中最重要的評價指標。
Logloss:對數損失同樣是二分類任務中廣泛使用的評價標準,其可以衡量預估CTR與實際CTR的擬合程度,計算方法為公式(17),Logloss越低擬合能力越強。
在基準模型選擇方面,本文將所提出的模型與兩類模型進行比較:(1)基于多層全連接神經網絡的CTR預測模型;(2)顯式特征交互CTR預測模型。
DNN:由多層全連接前饋神經網絡構成,直接將特征嵌入向量平鋪后輸入網絡進行訓練。
AFM[5]:用注意力機制區別FM中二階特征交互的重要性。
DCN[12]:在元素級上顯式建模特征向量間的高階交互,并與DNN進行結合。
DeepFM[9]:將DNN與FM二階特征交互融合,使模型同時具備高階特征和二階特征信息。
xDeepFM[13]:利用卷積神經網絡對特征交互張量進行壓縮,能在向量級顯式建模高階交互。
AutoInt[15]:利用多頭自注意力機制更新特征交互表示。
DCFM[14]:將DNN、Cross、FM三個組件結合的混合模型。
APNN[10]:將一階特征重要性信息、二階特征重要性信息以及Product交互信息融合,并通過多個全連接層獲取更多潛在高階信息
AdnFM[11]:在DeepFM的基礎上,在DNN部分加入層級注意力機制。
HoAFM[16]:基于元素級注意力機制顯式建模特征高階交互。
所有模型使用Tensorflow2.0框架進行實現。在超參數設置方面,本文不探討Embedding維度對模型的影響,將Embedding嵌入維度統一設置為8,batch-size大小統一設置為1 024。對于含有DNN部分的網絡,將其隱藏層數設置為3,每個隱藏層神經元個數為200,dropout比率設置為0.5,以防止過擬合。對于DCN、xDeepFM、AutoInt、DCFM、HoAFM,將其顯式特征交互層設置為3層,與本文提出模型保持一致,其中CIN過濾器數量設置為200。對于AFM,將其注意力隱層神經元個數設置為8,與嵌入向量維度一致。最后,所有模型使用Adam[25]來優化所有模型,學習率統一設置為0.000 1。
在四個方面對模型性能進行實驗,并對實驗結果展開討論。實驗1為本文提出模型與基線模型的性能比較;實驗2~實驗4是為了探討不同超參數對于本文提出模型的影響,其中對于Criteo數據集,超參數搜索取前60萬條數據作為實驗數據。
3.5.1 與基準模型性能對比
實驗1為驗證模型的有效性,分別在兩個數據集上對所有模型進行實驗,表2為實驗結果。
從表2中可以看出,在Criteo與Movielens-1M數據集上,本文提出的模型在AUC與Logloss指標上明顯優于基準模型。相較于最先進的模型,在Criteo與Movielens-1M數據集上分別有0.21%和0.92%的AUC提升,驗證了模型在大數據集與小數據集上同樣具有優異的性能。此外,在實際業務中,認為0.1%的AUC提升也是頗具意義的,若用戶基數龐大,這將為公司帶來巨額的收入增長[15]。

表2 模型表現Table 2 Models performance
3.5.2 顯式特征交互層層數對性能的影響
顯式交互層層數直接關系到建模特征交互的階數,因此該實驗的目的是為了選取最優顯式交互層層數,實驗結果如圖5所示。

圖5 顯式特征交互層數與模型表現Fig.5 Influence of explicit feature interaction levels on model performance
由此可見,當顯式特征交互層從1層(2階特征)拓展到2層(3階特征)時,獲得了較大的提升,當拓展到3層以上時,模型提升逐漸放緩。對于Movielens-1M數據集來說,由于其只有7個特征字段,因此顯式特征交互層2層以上時提升非常小,將2層顯式特征交互層作為最優參數。對于Criteo數據集來說,由于其特征字段數量較多,較高階的特征交互中也含有有用的信息,將3層作為最優參數。
3.5.3 特征增強對性能的影響
本文提出的算法在進行特征交互前,對特征向量進行了增強,利用投影矩陣將特征向量映射到更高維度的空間,得到特征向量的高維表示,不但拓展了維度,并且所有特征字段共享投影矩陣使得新的特征表示融合了全局特征信息。通過特征增強提高特征向量的表達能力,進而增加注意力矩陣的學習能力。如圖6所示,通過消融實驗對比了特征增強前后模型在兩個數據集上的效果,結果表明特征增強后模型在Criteo與Movielens-1M數據集上分別獲得了0.97%和0.85%的AUC提升。

圖6 特征增強與模型表現Fig.6 Feature enhancement and model representation
此外,為了探討投影向量維度對模型性能的影響,在不同投影向量維度下對模型進行了實驗。從圖7中可以看出,在兩個數據集上AUC隨著投影向量維度增加而提升,但到達峰值后,再增加投影向量維度收效甚微,并且會帶來更高計算成本。

圖7 投影向量維度與模型表現Fig.7 Influence of projection vector dimension on model performance
3.5.4 注意力頭數量對性能的影響
為了驗證多個注意力頭對緩解過擬合問題的作用,本實驗設計了在不同注意力頭數量時模型的表現。
實驗結果如圖8所示,當注意力頭數量為2時,相較單個注意力頭有明顯提升,這是由于不同注意力頭可能觀察到不同的特征交互重要性,結合多個注意力頭提取到的特征交互信息可緩解過擬合,提高模型的泛化能力。當注意力頭數量為3時,AUC與Logloss趨于平穩,再增加注意力頭數量模型效果的提升不明顯。這可能是因為隨著注意力頭增加,每個注意力頭為預測點擊率提供的信息逐漸減少,無法獲取更多有效信息。

圖8 注意力頭數量與模型表現Fig.8 Influence of number of attention heads on model performance
為提高點擊率預測的準確性,本文提出了一種新的點擊率預測模型,稱為增強型高階注意力因子分解機(EHAFM)。模型考慮到不同特征交互對于預測具有不同的重要性,設計了一種增強型元素級注意力機制,其在元素級上區分不同特征交互的重要性,減少了無用特征交互的干擾。并針對模型容易過擬合的問題,融合多個增強型元素級注意力頭的信息,增強模型的泛化能力。隨著堆疊顯式交互層,特征表示可以拓展到任意階數,最后將高階特征交互部分與一階線性部分結合,使模型同時具有記憶能力和泛化能力。通過在兩個數據集上的實驗,結果表明模型在預測準確性上相較基準模型有明顯的提升,驗證了模型的有效性。
此外,在工業級推薦系統中,圖片、文本等形式的數據廣泛存在于用戶、項目特征中,并對預測用戶偏好產生影響,在接下來的工作中,將考慮多模態特征間的交互,進一步提升模型性能。