推薦系統(tǒng)論文閱讀(五十二)-序列推薦中的稀疏興趣網(wǎng)絡(luò)

論文:

地址:https://arxiv.org/pdf/2102.09267.pdf

論文題目:《Sparse-Interest Network for Sequential Recommendation》

之前我們介紹過mind這篇文章,通過膠囊網(wǎng)絡(luò)來實(shí)現(xiàn)對(duì)用戶多興趣的建模,今天我們來介紹一篇也是多興趣的論文,但是不同于mind生成多個(gè)興趣向量,SINE只在中間過程生成多概念興趣,最后還是會(huì)統(tǒng)一形成一個(gè)向量。

一 、背景

用序列推薦的方式來實(shí)現(xiàn)召回,一般的做法是用self-att或者gru等序列建模的方式來對(duì)用戶的點(diǎn)擊序列生成一個(gè)向量表示這個(gè)用戶,然后跟item向量進(jìn)行內(nèi)積來訓(xùn)練。然而,從經(jīng)驗(yàn)分析中,我們發(fā)現(xiàn)用戶的行為序列通常包含多個(gè)概念上不同的item,而統(tǒng)一的嵌入向量主要受最近頻繁操作的影響。因此,如果概念上相似的item在最近的交互中不占主導(dǎo)地位,它可能無法推斷下一個(gè)首選item。為此,另一種解決方案是用多個(gè)嵌入向量來表示每個(gè)用戶,這些向量編碼用戶意圖的不同方面。然而,最近關(guān)于多興趣嵌入的工作通常考慮通過聚類發(fā)現(xiàn)的少量概念,這可能無法與實(shí)際系統(tǒng)中的大量item類別相提并論。

也就是說,我們對(duì)序列進(jìn)行聚類/偽聚類,形成多個(gè)類,在分別對(duì)幾個(gè)類別進(jìn)行建模,這就建模出多個(gè)興趣向量。比如說我們把序列中的裙子,衣服,褲子分成三類,然后顯式的去建模這三個(gè)子序列,形成多個(gè)興趣向量由于表示user。但是用戶的多興趣這個(gè)概念是難以定義的,也就是說我們對(duì)于seq如何劃分成概念上的興趣比較難,其次,如何定義概念上的興趣K這個(gè)參賽也是個(gè)麻煩。

基于以上的問題,本文提出了一種新穎的稀疏興趣網(wǎng)絡(luò)(SINE)用于序列推薦來解決這些問題。 SINE 可以學(xué)習(xí)大量的興趣組并以端到端的方式捕捉用戶的多個(gè)意圖。 SINE的稀疏興趣提取模塊從大量興趣組中自適應(yīng)地推斷用戶的交互興趣并輸出多個(gè)興趣嵌入。 聚合模塊能夠動(dòng)態(tài)預(yù)測(cè)用戶的下一個(gè)意圖,這有助于顯式地捕獲 Top-N 項(xiàng)目推薦的多興趣。?

接下來我們就來介紹下SINE的具體結(jié)構(gòu)吧。

二 、SINE模型

2.1 模型的輸入

其中N是序列的長度,M是總的item數(shù)。

2.2 Sparse-Interest Framework

首先,在一般的序列推薦模型中,我們使用一個(gè)函數(shù)將用戶的點(diǎn)擊序列進(jìn)行編碼:

在SINE中,我們需要先定義好L個(gè)概念興趣:

其中D是向量的維度,我們的目標(biāo)是從L個(gè)興趣向量中提取K個(gè)向量:


2.2.1 Concept activation

首先,我們計(jì)算出序列中每個(gè)位置的權(quán)值,這部分使用self-attention:

其中a的維度為[n]

得到,每個(gè)位置的權(quán)值后,我們進(jìn)行weight suming得到用戶的表示向量:

得到zu后,我們需要對(duì)興趣向量矩陣C進(jìn)行topk索引,索引出最相關(guān)對(duì)K個(gè)興趣:

也就是在C中找到內(nèi)積排名前K的向量,最后用sigmoid(內(nèi)積)對(duì)這K個(gè)向量進(jìn)行激活。

2.2.2 Intention assignment

在推斷出當(dāng)前的概念原型 C?? 之后,我們可以根據(jù)他們與原型的距離來估計(jì)與他/她的行為序列中每個(gè)項(xiàng)目相關(guān)的用戶意圖,具體的計(jì)算如下:

Pk|t表示序列中第t個(gè)位置跟第k個(gè)興趣向量的匹配程度。

2.2.3 Attention weighting

我們得到第t個(gè)位置跟第k的匹配程度后,還需要反過來計(jì)算一次t對(duì)k的重要程度:

目的是估計(jì)位置 ?? 處的item對(duì)于預(yù)測(cè)用戶的下一個(gè)意圖至關(guān)重要的可能性。

2.2.4 Interest embedding generation.

最后我們進(jìn)行聚合:

這里,我們就得到了表示用戶u對(duì)于興趣點(diǎn)k的表示向量

3.3 Interest Aggregation Module

我們?cè)谇懊娴玫搅擞脩魎對(duì)所有興趣點(diǎn)的表示向量后,還是需要跟mind一樣,最后得到一個(gè)用戶綜合考慮K個(gè)表示興趣向量的最終向量:

其中:

最后我們還是用weight sum求和得到最后的用戶向量:

3.4?Model Optimization

采用softmax進(jìn)行優(yōu)化

優(yōu)化成sample softmax loss后進(jìn)行整個(gè)模型的訓(xùn)練。

三、實(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)容