本篇博客重點關注Attention在推薦系統中的常見幾類用法。Attention 這里就不多做介紹了,可以參考之前的博客。
為什么推薦系統需要Attention?Attention在推薦系統中怎么用呢?
縱觀排序模型的發展歷程,有兩個主要的演進方向:
1、特征組合自動化;
2、用戶行為序特征的挖掘。
像華為很喜歡做各種特征交叉模型,典型代表如deepFM;而阿里很喜歡去挖掘用戶行為序特征,典型模型如DIN、BST等。
在推薦系統中 Attention 最常見用法就是對用戶行為序列進行建模。我們先來介紹其中最具代表性的模型——DIN。
DIN
論文:Deep Interest Network for Click-Through Rate Prediction
地址:https://arxiv.org/abs/1706.06978
論文中指出,用戶興趣具有以下兩個特點:
1、多樣性(Diversity): 即用戶在線上購物時往往同時表現出多種興趣。
2、局部聚焦(Local Activation): 即用戶是否會點擊推薦給他的某一件商品,往往是基於他之前的部分興趣,而非所有興趣。
在DIN提出之前,使用了行為序特征的深度學習模型多采用上圖所示的Base Model模型結構。模型可以划分成三層:

而后面提出的DIEN模型,可以看作是升級版的DIN,主要針對DIN的兩個缺點:
1、用戶興趣應該是不斷進化的,DIN無法捕獲到興趣的這種進化性;
2、DIN無法保證通過用戶的顯式的行為得到的興趣是有效的。
詳細參考論文 https://arxiv.org/abs/1809.03672
BST
論文:Behavior Sequence Transformer for E-commerce Recommendation in Alibaba
地址:https://arxiv.org/abs/1905.06874
Transformer 大火,使其成為NLP中最受歡迎的特征提取器(Transformer參考 ),把Attention升級成Transformer也很簡單粗暴。模型結構如下:
在NLP問題中,self-attention幫助我們編碼句子中的某個詞語時,關注句子中其他詞對當前詞的重要度,並將其他詞的部分信息編碼到當前詞語中。簡單理解就是可以更好地編碼當前詞語。
Transformer在推薦系統中的主要作用,則是為了更好地學習用戶行為序中商品的Embedding表示。
在BST中,行為序中各商品的Embedding是concat起來的,然后再和其他特征的Embedding一起concat成一個長向量,作為后面全連接層的輸入。DIN則是對用戶行為序中商品的Embedding做sum pooling,最終得到的行為序特征的Embedding和單個商品的 Embedding 長度相同。所以在這一層上,BST的參數量要大於DIN。
美團Transformer
在美團2020技術干貨中,介紹了Transformer在美團APP搜索排序中的應用。迭代了以下三個版本,我們一一來看。
第一版
模型結構如上圖所示。
模型核心點有以下三個:
(1)用戶行為分成了短期行為序和長期行為序,用來捕捉用戶的短期和長期特征;
(2)使用 Transformer 對行為序中的item學習更好的 Embedding 表示;
(3)對行為序中各商品的 Embedding 做sum pooling操作,得到行為序特征的 embedding 表示。
方法簡單直接,不需再過多介紹。不過該方法主要的問題是,對候選商品打分時,對於所有商品,行為序的 embedding 都是一樣的。即對於目標商品,並沒有對行為序中的item pay attention,Transformer只是用來更好的學習行為序中item的Embedding。
第二版
針對第一版存在的問題,並參考 BST 模型,在第一個版本的基礎上引入 Target-item, 這樣可以學習行為序列內部的 item 與 Target-item 的相關性,這樣在對不同的 item 打分時,用戶的 Embedding 表示是不一樣的網絡結構如下:
第三版
從模型結構圖容易看出,第三版其實是 DIN + Transformer。基礎架構還是DIN,和DIN相比,改進的地方有兩個:
(1)使用 Transformer 對行為序中的item學習更好的 Embedding 表示;
(2)短期行為序和長期行為序,用來捕捉用戶的短期和長期特征。
文章開頭簡單介紹過,在推薦系統中 Attention 最常見用法就是對用戶行為序列進行建模。
還有一種用法是在進行特征組合時,對不同的特征pay attention。代表模型有AFM模型和AutoInt模型。
AFM
論文:Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks∗
地址:https://www.ijcai.org/Proceedings/2017/0435.pdf
FM與DNN結合有兩種主流方法:
先簡單回顧下FM模型。
FM的函數形式如下

AutoInt
模型使用multi-head self-attention機制來進行自動特征交叉學習來提升CTR預測的效果。論文中的multi-head self-attention與Transformer中的多頭注意力機制類似。
模型有兩個亮點:
(1)將類別特征和連續特征都嵌入到低維空間中,因此模型允許不同類型的特征通過矢量算法相互交互;
(2)通過多頭注意力機制捕捉有意義的高階特征組合,多頭機制在不同的子空間中可以捕獲不同的特征交互模式,並且可以通過層的疊加捕獲更高階的交互模式。
模型結構如下
輸入層和嵌入層
1、類別特征,通過embedding映射成低維稠密向量;
2、連續特征,賦予其一個embedding向量,用歸一化后的特征值與embedding向量的乘積作為其最終表示。
對於連續特征,也可以將其離散化后作為類別特征處理,孰優孰劣要在實際場景中測試。
交互層(Interacting Layer)
相信熟悉self-attention和Transformer的各位看圖就明白了AutoInt的原理。
最后的輸出層即經典神經網絡。