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