淺析Attention在推薦系統中的應用(3)AutoInt模型

歡迎關注本人公衆號: petertalks

專欄目錄:

淺析Attention在推薦系統中的應用(1)Attention簡介

淺析Attention在推薦系統中的應用(2)阿里Deep Interest Network模型

淺析Attention在推薦系統中的應用(3)AutoInt模型

淺析Attention在推薦系統中的應用(4)Transformer與阿里BST模型

 

前言

前面的文章介紹了attention機制和它的一些應用,本文主要向大家介紹一下CIKM 2019的一篇文章《AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks》。該文主要介紹了一種名叫AutoInt的模型,該模型以multi-head self-attention爲基礎在將高維稀疏特徵(包括連續特徵和類別特徵)映射到低維空間的同時建模高級特徵交叉。相比其他的顯示特徵交叉的模型如Deep cross network、xDeepFM等具有更高的效率和可解釋性。

 

背景與動機

CTR預估問題在廣告和推薦系統中有着特別重要的地位。而機器學習又在CTR預估中扮演重要角色,其中存在着很多挑戰。首先輸入的往往是離散化後的高維稀疏特徵,很容易造成模型過擬合;其次模型要取得較好的效果做好高階特徵的交叉工作是少不了的,但這塊相當依賴人工經驗,耗費着相當大的人力。所以業界爲能將高階特徵映射到低維並且自動建模高階特徵交叉做了不少的努力和嘗試。

這邊的嘗試總體來講可以分成幾塊:

1)以NFM、PNN、FNN、DeepFM等網絡爲代表的採用隱式的方法利用前向網絡去擬合高階特徵交叉,這類方法缺乏較好的可解釋性。

2)以Deep&Cross和xDeepFM爲代表的網絡採用特徵外積的方式顯示構造高階特徵交叉,但是這種方法也無法直接解釋出哪些特徵交叉是更爲有效。

3)一些樹模型結合了embedding和樹模型的優勢,但卻不得不將訓練分成多個階段。

4)HOFM等高階因子分解機,但這類模型需要太多參數,難以投入實踐。

爲此這篇文章借鑑了attention和圖像領域常用的residual network,提出了AutoInt模型。

 

模型

 

模型概覽

AutoInt模型的結構如下圖所示

 

整體結構較爲清晰,首先是稀疏特徵X(包括類別特徵和連續特徵)作爲輸入,通過Embedding層映射成低維embedding向量,緊接將向量輸入到Interacting Layer,通過multi-head self-attention,捕獲高階特徵交叉。這邊採用multi-head可將特徵映射到不同的空間獲得不同類型的特徵組合,通過疊加多個Interacting Layer可以實現不同階的建模。最後將Interacting Layer產生的向量輸入到輸出層,通過sigmoid函數預估CTR。接下來讓我們來具體看一下每一個模塊。

 

模型輸入層與Embedding層

模型的輸入是離散化後的User和Item的屬性特徵,每個field代表一類特徵,將這些特徵concat到一起作爲輸入。

到了Embedding層,對於類別特徵直接獲得Embedding,對於多值類的特徵直接採用average pooling的方式取均值。

這邊值得注意的一點是該模型將連續值特徵也進行了Embedding映射,這邊的做法是對每個field學到一個Embedding,然後直接用特徵值和這個field對應的Embedding相乘。

最後將不同field的embedding concat到一起作爲下一層輸入。

 

特徵交叉層

該層爲整個模型的核心部分,如下圖

很容易看出,該層的核心就是該專欄第一篇文章所介紹的multi-head self-attention。這邊來複習一下公式,首先是self-attention

 

 

再來看一下multi-head attention

 

 

AutoInt中通過引入self attentin來刻畫不同field之間的關聯關係,加權後得到指定head處的embedding

 

 

然後將不同head的輸出concat到一起,獲得不同空間的交叉

 

爲了保留原始特徵,接下來引入了殘差網絡的結構

 

通過重複疊加上述的結構,我們可以得到任意不同階的組合特徵。

 

輸出層

該層的輸入包括殘差網絡(residual block)保留的原始特徵和multi-head self-attention產生的交叉特徵。將所有特徵concat到一起後,用非線性映射直接得到預估結果。

 

 

訓練目標

這邊的Loss直接採用交叉熵的方式

 

通過反向傳播學習出

 

複雜度分析

空間複雜度

,時間複雜度

,一般來講H,d,d’都較小,所以時間複雜度和空間複雜度都不會太高。

 

實驗結果

實驗數據

 

數據預處理

1) 採用頻次過濾,對於低於閾值的特徵直接設成<unkown>。

2) 對於連續型特徵採用和Criteo大賽冠軍一樣的處理,

3)採用80%的數據作爲訓練集,隨機平均切分成驗證集和測試集。

4) batch size=1024,嵌入維度 d=16,Adam優化器。對小數據集MoveLens使用dropout=0.5

5)AutoInt中,Attention轉化矩陣維度d’=32, 3層Interacting,每層2個attention head

6)DeepCross—4隱層+每層100 node,NFM—1隱層+200 node,CrossNet和CIN—3隱層

實驗結果

實驗一 單獨模塊

 

實驗二 性能對比

 

 

實驗三 殘差、Interacting層數、嵌入維度等對效果的影響

 

 

實驗四 模型都加上Deep部分

 

AutoInt的效果最好,而且相比其他模型加上Deep部分後提升的幅度最小,這也證明了AutoInt模型結構的有效性。

 

參考文獻:

https://arxiv.org/pdf/1810.11921.pdf

https://zhuanlan.zhihu.com/p/60185134

https://arxiv.org/abs/1706.03762

https://zhuanlan.zhihu.com/p/69701477

https://zhuanlan.zhihu.com/p/95605853

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章