Transformer在深度推荐系统中的应用及2019最新进展
作者:Alex-zhai
來源:https://zhuanlan.zhihu.com/
p/85825460
整理:深度傳送門
最近基于Transformer的一些NLP模型很火(比如BERT,GPT-2等),因此將Transformer模型引入到推薦算法中是近期的一個潮流。Transformer比起傳統的LSTM、GRU等模型,可以更好地建模用戶的行為序列。本文主要整理Transformer在推薦模型中的一些應用以及在2019年的最新進展。
Self-Attentive Sequential Recommendation, ICDM 2018
模型結構
問題定義:模型輸入是用戶 u 的一個歷史交互序列:??, 其期望的輸出是該交互序列一個時間刻的偏移:??。
Embedding層
將輸入序列??轉化成固定長度的序列??。意思是如果序列長度超過n,則使用最近n個行為。如果不足n,則從左側做padding直到長度為n。
位置embedding:因為self-attention并不包含RNN或CNN模塊,因此它不能感知到之前item的位置。本文輸入embedding中也結合了位置Embedding P信息,并且位置embedding是可學習的。
Self-Attention層
Transformer中Attention的定義為:
本文中,self-attention以embedding層的輸出作為輸入,通過線性投影將它轉為3個矩陣,然后輸入attention層:
為了避免在預測i時刻的item時用到后續時刻的信息,本文將符合(j > i)條件的??與??之間的連接forbidding掉,這是因為self-attention每個時刻的輸出會包含所有時刻的信息。
Point-wise前饋網絡
盡管self-attention能夠用自適應權重并且聚焦之前所有的item,但最終它仍是個線性模型??捎靡粋€兩層的point-wise前饋網絡去增加非線性同時考慮不同隱式維度之間的交互:
預測層
最后采用MF層來預測相關的item i:
其中??是給定t個item,下一個item i的相關性。N是item embedding矩陣。為了減少模型尺寸及避免過擬合,共用一個item embedding。
顯式用戶建模
為了提供個性化推薦,當前主要有兩種方法:學習顯式的用戶embedding表示用戶偏好(MF,FPMC,Caser);考慮用戶之前的行為,通過訪問過的item的embedding推測隱式的用戶embedding。本文采用第二種方式,同時額外在最后一層插入顯式用戶embedding ?,例如通過加法實現:
但是通過實驗發現增加顯式用戶embedding并沒有提升效果。
Next Item Recommendation with Self-Attention, 2018
模型結構
本文亮點是同時建模用戶短期興趣(由self-attention結構提取)和用戶長期興趣。
短期興趣
其短期興趣建模過程如下:假定使用用戶最近的 L 條行為記錄來計算短期興趣??墒褂肵表示整個物品集合的embedding,那么,用戶 u 在 t 時刻的前 L 條交互記錄所對應的embedding表示如下:
其中每個item的embedding維度為d,將??作為transformer中一個block的輸入。
這里需要注意和傳統transformer的不同點:
計算softmax前先掩掉??矩陣的對角線值,因為對角線其實是item與本身的一個內積值,容易給該位置分配過大的權重。
沒有將輸入??乘以??得到??,而是直接將輸入乘以softmax算出來的score。
直接將embedding在序列維度求平均,作為用戶短期興趣向量。
長期興趣
self-attention模塊只使用用戶最近的L個交互商品作為用戶短期的興趣。那么怎么建模用戶的長期興趣呢?可認為用戶和物品同屬于一個興趣空間,用戶的長期興趣可表示成空間中的一個向量,而某物品也可表示為成該興趣空間中的一個向量。那如果一個用戶對一個物品的評分比較高,說明這兩個興趣是相近的,那么它們對應的向量在興趣空間中距離就應該較近。這個距離可用平方距離表示。
綜合短期興趣和長期興趣,可得到用戶對于某個物品的推薦分,推薦分越低,代表用戶和物品越相近,用戶越可能與該物品進行交互:
模型采用pair-wise的方法訓練,即輸入一個正例和一個負例,希望負例的得分至少比正例高γ,否則就發生損失,并在損失函數加入L2正則項:
BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer, CIKM 2019
模型架構
顯而易見,本文的亮點是結合使用預訓練的BERT模型。
Embedding Layer
模型的輸入是用戶歷史交互序列,對交互序列中的每一個物品 i,其Embedding包含兩部分,一部分是物品的Embedding,用vi表示;另一部分是位置信息的Embedding,用 pi 表示。這里的pi是可學習的。
Transformer Layer
主要包括Multi-Head Self-Attention層和Position-Wise Feed-Forward Network,其中Multi-Head Self-Attention計算過程如下:
Stacking Transformer Layer使用了類似于resnet的skip連接結構。
模型訓練
因為在BERT4Rec中,輸入歷史序列[v1, v2, ..., vt-1],輸出的是包含上下文信息的向量[h1, h2, ..., ht-1],這里每個向量ht都包含了整個序列的信息。如果要預測用戶t時刻的交互物品vt,如果直接把 vt 作為輸入,那么其余每個物品在Transformer Layer中會看到目標物品vt的信息,造成一定程度的信息泄漏。
因此可把對應位置的輸入變成[mask]標記。打標記的方式和BERT一樣,隨機把輸入序列的一部分遮蓋住,然后讓模型來預測這部分對應的商品:
Behavior Sequence Transformer for E-commerce Recommendation in Alibaba,?2019
模型結構
問題建模:給定一個用戶u的行為序列:S(u) = {v1, v2, ..., vn },學習一個函數F用于預測用戶 u 點擊item vt的概率。
Transformer layer
對于每個item抽取了一個更深層次的representation,用于捕捉該item和歷史行為序列中的其他item的關系。
DIN、DIEN、DSIN和本文BST模型的區別和聯系
1. DIN模型使用注意力機制來捕獲目標商品與用戶先前行為序列中商品之間的相似性,但是未考慮用戶行為序列背后的序列性質,并且未捕捉用戶興趣的動態變化性。
2. DIEN主要解決DIN無法捕捉用戶興趣的動態變化性的缺點,提出了興趣抽取層Interest Extractor Layer、興趣進化層Interest Evolution Layer。
3. DSIN針對DIN和DIEN沒考慮用戶歷史行為中的會話信息,因為在每個會話中的行為是相近的,而在不同會話之間差別是很大的。DSIN主要是在session層面上來利用用戶的歷史行為序列信息。
4. BST模型通過Transformer模型來捕捉用戶歷史序列中各個item的關聯特征,并且通過加入待推薦的商品item,也可抽取出行為序列中商品與待推薦商品之間的相關性。
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)備注:加入本站微信群或者qq群,請回復“加群”獲取一折本站知識星球優惠券,請回復“知識星球”喜歡文章,點個在看
總結
以上是生活随笔為你收集整理的Transformer在深度推荐系统中的应用及2019最新进展的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文看尽7篇目标跟踪最新论文(ABCTr
- 下一篇: 阿里智能运维算法大赛,邀你挑战大规模硬盘