推薦系統(tǒng)論文閱讀(二十六)-基于上下文時(shí)序注意力機(jī)制的序列推薦模型

論文:

題目:《A Contextualized Temporal Attention Mechanism for Sequential Recommendation》

地址:https://dl.acm.org/doi/pdf/10.1145/3366423.3380285

序列推薦任務(wù)很少使用時(shí)間和上下文信息對(duì)h(h就是rnn,gru等序列建模網(wǎng)絡(luò)輸出的狀態(tài))進(jìn)行加權(quán),www這篇論文融合了上下文和時(shí)間信息的加權(quán)信號(hào),一起看看吧,雖然筆者覺得這篇論文非常笨重。。

一 、背景

這篇論文的背景其實(shí)可以放在sequence recommendation任務(wù)中去看待,根據(jù)歷史記錄中用戶的先后行為來(lái)預(yù)測(cè)用戶的偏好對(duì)于現(xiàn)代推薦系統(tǒng)而言具有挑戰(zhàn)性且至關(guān)重要。現(xiàn)有的大多數(shù)序列推薦算法都將重點(diǎn)放在順序動(dòng)作之間的傳遞結(jié)構(gòu)上,但是在對(duì)歷史事件對(duì)當(dāng)前預(yù)測(cè)的影響進(jìn)行建模時(shí),很大程度上會(huì)忽略時(shí)間和上下文信息。

論文認(rèn)為,過(guò)去事件對(duì)用戶當(dāng)前動(dòng)作的影響應(yīng)隨時(shí)間推移以及在不同背景下發(fā)生變化。因此,我們提出了一個(gè)基于上下文和時(shí)間的注意機(jī)制,該機(jī)制可以學(xué)會(huì)權(quán)衡歷史行為對(duì)行為的影響,不僅影響行為是什么,而且還影響行為發(fā)生的時(shí)間和方式。更具體地說(shuō),為了動(dòng)態(tài)地校準(zhǔn)自注意機(jī)制的相對(duì)輸入依存關(guān)系,我們?cè)O(shè)計(jì)了多個(gè)參數(shù)化的核函數(shù)來(lái)學(xué)習(xí)各種時(shí)間動(dòng)態(tài),然后使用上下文信息來(lái)確定對(duì)每個(gè)輸入遵循哪些weight kernel函數(shù)。

上面的說(shuō)法可能有點(diǎn)晦澀難懂,下面結(jié)合一張圖來(lái)描述一下


以上圖中所示的在線購(gòu)物場(chǎng)景為例:系統(tǒng)獲得了一系列用戶行為記錄,并且需要推薦下一組商品。 我們應(yīng)該注意,在此場(chǎng)景中,我們假設(shè)這些交互行為不是彼此獨(dú)立的, 這更好地反映了推薦系統(tǒng)只能訪問(wèn)脫機(jī)數(shù)據(jù)和部分用戶行為記錄的情況。好了,接著看上圖中的場(chǎng)景,用戶在過(guò)去的一段時(shí)間內(nèi)點(diǎn)擊來(lái)網(wǎng)球拍,手機(jī),運(yùn)動(dòng)鞋,智能手環(huán),然后在昨天一直在瀏覽手機(jī),那么這個(gè)時(shí)候我們需要預(yù)估用戶的下一次點(diǎn)擊,這個(gè)時(shí)候的用戶正想買一個(gè)手表,那么這個(gè)時(shí)候系統(tǒng)是給用戶推薦運(yùn)動(dòng)手表呢,還是推薦電子手表呢,因?yàn)橛脩暨^(guò)去的瀏覽有運(yùn)動(dòng)類的物品和智能設(shè)備的物品。

按照時(shí)間的分段性來(lái)看:長(zhǎng)期的歷史記錄表明用戶對(duì)購(gòu)物體育相關(guān)產(chǎn)品感興趣。 現(xiàn)在,用戶正在尋找手表,該系統(tǒng)可以推薦一些運(yùn)動(dòng)手表。 從本質(zhì)上講,長(zhǎng)期的用戶歷史記錄通常可能會(huì)攜帶稀少但至關(guān)重要的用戶偏好信息,影響著現(xiàn)在的意圖,而最近的交互操作應(yīng)該會(huì)更能代表用戶在將來(lái)的意圖。

按上下文細(xì)分:由于用戶仔細(xì)瀏覽幾個(gè)智能手機(jī)(比平均時(shí)間間隔短得多的時(shí)間間隔),因此可以認(rèn)為這些物品跟當(dāng)前用戶的偏愛非常相關(guān),因此智能手表可能比傳統(tǒng)手表更受青睞。 通常,用戶瀏覽日志的某些時(shí)間段可能看起來(lái)是異構(gòu)的,這個(gè)時(shí)間段里面充滿了用戶的短期興趣偏好,用戶在這個(gè)時(shí)間點(diǎn)上會(huì)以重復(fù)的方式專注于一小部分同類物品。

很容易理解,時(shí)間因素可以理解為用戶的長(zhǎng)期興趣偏好,即使在很遙遠(yuǎn)的歷史,也會(huì)對(duì)現(xiàn)在的興趣產(chǎn)生影響,上下文偏好可以理解為用戶的短期興趣偏好,也就是用戶在近期瀏覽的物品表征了用戶現(xiàn)在的短期意圖。說(shuō)白了就是對(duì)用戶進(jìn)行長(zhǎng)短期興趣建模。

二、三個(gè)問(wèn)題

本來(lái)不想說(shuō)這三個(gè)問(wèn)題的,無(wú)奈部分論文說(shuō)的太抽象了,或許是越抽象越容易中稿?

說(shuō)實(shí)話這篇論文在解釋時(shí)間跟上下文關(guān)系的時(shí)候說(shuō)的太晦澀難懂了,筆者看的也是很頭疼,比如下面這段話:

首先,我們看第一個(gè)問(wèn)題,我的理解就是用self-attention進(jìn)行序列建模,第二個(gè)就是確定時(shí)間因素和上下文因素的影響,第三個(gè)就是綜合考慮時(shí)間和上下文的影響。

三、模型

還是直接看模型吧,扯一堆什么因果關(guān)系看得頭大:


3.1 模型輸入

用戶空間U,大小為U;物品空間V,大小為V。

用戶的歷史行為序列為{S^1 ,S^2 ,...S^U},其中s^u ={(t_{1}^u ,s_{1}^u ), (t_{2}^u ,s_{2}^u ) , ... },其中t_{1}^u 用戶u的交互時(shí)間,s_{1}^u代表交互的物品。

模型的輸入為包括窗口大小為L(zhǎng)的用戶歷史記錄:{ (t_{i} ,s_{i} ) i: 0 -> L},當(dāng)前需要推薦的時(shí)間戳t_{L+1},輸入序列的embedding X表示:

同時(shí)將輸入序列的時(shí)間信息使用時(shí)間戳差來(lái)表示:

模型整體上分為三個(gè)部分:content-based attention,temporal kernels和contextualized mixture

三層模型可以表示為:

其中,M^\alpha  根據(jù)content X來(lái)計(jì)算每個(gè)輸入的權(quán)重,輸出權(quán)重序列α ∈ R^{L\times 1} ;M^\beta  將時(shí)間信息T通過(guò)K temporal kernels計(jì)算每個(gè)輸入的temporal權(quán)重β ∈ R^{L\times k} ;M^\gamma  X中提取context信息,并結(jié)合前兩個(gè)階段獲得的α 和β 來(lái)計(jì)算得到最終的contextualized temporal權(quán)重γ ∈ R^{L\times 1} 。

最終被推薦的物品的表示為:

其中,F(xiàn)-out是一個(gè)feed-forward層。

3.2?\alpha 階段 (what is the action)

這里用到的是self-attention機(jī)制,具體的細(xì)節(jié)不在贅述,只需要知道結(jié)果輸出就行:




其中?x_{L} 表示最后一個(gè)物品的輸入embedding,其實(shí)就是用最后一個(gè)物品的embedding作為key,self-attention最后一層的狀態(tài)H^{j+1}作為query來(lái)計(jì)算\alpha 的。

3.3?\beta 階段 (what is the action)

基于觀察:用戶隨意瀏覽的物品對(duì)短期的影響會(huì)急劇下降,但是在長(zhǎng)期來(lái)說(shuō)仍有著重要的作用。用戶仔細(xì)瀏覽過(guò)的物品對(duì)用戶短期的興趣有著重要的作用。

所以,文章提出了很多temporal kernels來(lái)建模這種時(shí)間變化,不同的kernel函數(shù)\phi (.):R^{L} R^{L} 如下所示:

(1)?\phi (T)?=?ae^{-T} + b ,假設(shè)一個(gè)用戶操作的影響會(huì)隨著時(shí)間指數(shù)下降,但是永遠(yuǎn)不會(huì)消失。

(2)?\phi (T) = -alog_{1+T} + b ,假設(shè)一個(gè)用戶操作的影響會(huì)隨著時(shí)間而減弱,最終可以忽略不計(jì)。
(3)?\phi (T) = -alT + b,假設(shè)一個(gè)用戶操作的影響會(huì)隨著時(shí)間線性下降,之后的softmax操作會(huì)將某個(gè)時(shí)間段內(nèi)的影響置為0。

(4)?\phi (T) = 1假設(shè)一個(gè)用戶操作的影響不受時(shí)間影響。

根據(jù)K個(gè)kernal函數(shù){{\phi_1 (T)},{\phi_2 (T)},...{\phi_K (T)}},我們可以將T轉(zhuǎn)為K個(gè)temporal權(quán)重集合:

\beta 作為下一階段的輸入。

3.4? \gamma 階段 (what is the action)

這一階段的目標(biāo)是基于提取到的context信息融合前兩個(gè)階段獲得的content和temporal信息。

使用Bidirectional RNN結(jié)構(gòu)來(lái)獲得context信息。從輸入序列embedding表示X中,我們可以計(jì)算得到循環(huán)隱藏層的狀態(tài):

其中,⊕是拼接操作,C_a?ttr是可選擇的context特征(可以是特定推薦系統(tǒng)中每個(gè)行為的屬性,表示行為發(fā)生時(shí)的上下文),本文中只使用了Bi-RNN的輸出作為context特征。

行為i的context特征需要映射為一個(gè)長(zhǎng)度為K的權(quán)重向量,每一個(gè)元素p_{i}(k|c_{i} ) 都是這個(gè)行為經(jīng)過(guò)\phi ^k(.) 后的結(jié)果,使用feed forwaed層Fγ將它們映射到概率空間R^K,然后經(jīng)過(guò)softmax操作得到概率分布:


最后將context和temporal信息進(jìn)行融合:


其中,\beta \in R^{L \times K} ,\gamma  \in R^{L \times 1} \gamma  \in R^{L}

3.5 模型的輸出


其中,r是每一個(gè)item的分?jǐn)?shù),對(duì)于給定的用戶,通過(guò)softmax層對(duì)item分?jǐn)?shù)進(jìn)行歸一化,該層會(huì)在item表上產(chǎn)生概率分布,也就是進(jìn)行多分類的意思。

四、損失函數(shù)和實(shí)驗(yàn)結(jié)果

4.1 損失函數(shù)


其中Ns是根據(jù)頻率進(jìn)行負(fù)采樣的負(fù)樣本。


4.2 實(shí)驗(yàn)結(jié)果


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容