【論文解讀】騰訊FAT | 未來感知的多樣化趨勢推薦框架
“本文介紹了騰訊提出的一種未來感知的多樣化趨勢推薦框架FAT,根據(jù)相似用戶的行為來構(gòu)建未來序列,再通過動態(tài)路由學(xué)習(xí)多樣化的趨勢。實驗表明,考慮了潛在未來偏好趨勢的FAT不僅能夠提升推薦的準(zhǔn)確性,也能提高多樣性。”
本文介紹的論文是《Future-Aware Diverse Trends Framework for Recommendation》
摘要
在推薦系統(tǒng)的用戶表示學(xué)習(xí)中,對用戶-項目交互的建模很重要。現(xiàn)有的序列推薦系統(tǒng)通過用戶歷史序列來捕捉歷史偏好。然而,用戶的偏好是「不斷變化且多樣化」的,僅僅對歷史偏好建模(不考慮偏好隨時間變化的趨勢)可能導(dǎo)致推薦多樣性、時效性不足。
本文為縮小「歷史偏好」和「潛在未來偏好」之間的gap,提出了未來感知的多樣化趨勢(FAT)框架。其中未來感知是指根據(jù)「相似用戶」來構(gòu)建目標(biāo)用戶的「未來序列」(提出了一種鄰居行為提取器);多樣化趨勢是指:認為未來偏好是多樣化的,提出了多樣化趨勢提取器和時間感知的注意力機制,使用「多個向量」表達用戶潛在的偏好趨勢。利用歷史偏好和潛在未來趨勢進行最終的推薦。實驗表明,F(xiàn)AT不僅能夠提升序列推薦的準(zhǔn)確性,也能提高推薦的「多樣性」和時效性。
貢獻
為更好地捕捉用戶行為的動態(tài)變化,設(shè)計了一個FAT框架,利用了未來信息并捕捉了多樣化的用戶偏好趨勢。 首先從相似用戶中提取未來行為,然后利用動態(tài)路由進行自適應(yīng)的融合(也可以理解為聚類),得到趨勢向量。然后使用時間感知的注意力機制來更好地建模隨時間變化的用戶潛在偏好。 與現(xiàn)有方法相比,F(xiàn)AT在幾個公開數(shù)據(jù)集上效果更好,且FAT召回的項目具有更高的多樣性
模型
模型結(jié)構(gòu)圖:

左側(cè):對當(dāng)前用戶的歷史序列建模,得到歷史偏好向量 ?;疑∏蚝拖蛄勘硎緦ΥA(yù)測item做embedding,后面預(yù)測層使用。
右側(cè):為當(dāng)前用戶找到多個相似用戶,對每個相似用戶進行歷史序列建模,得到其偏好向量。這些偏好向量經(jīng)過一個膠囊網(wǎng)絡(luò)得到T個趨勢向量,再通過時間感知的注意力層來融合,得到未來偏好向量。
下面對每個模塊進行具體介紹:
Sequence Modeling
輸入是按照時間排列的用戶歷史行為序列,對這些item id做embedding之后使用LSTM提取序列特征(LSTM公式不再贅述),得到用戶的偏好向量。
相似用戶的歷史序列同樣也使用LSTM來進行特征提取。
Implicit Neighbor Behavior Extractor
用皮爾遜相關(guān)系數(shù)來計算用戶間相似度 (但作者并未說明找到相似用戶后如何構(gòu)建序列)。除此之外,也設(shè)計了一個更簡單的過濾器來提取相似用戶:
在當(dāng)前用戶的歷史序列中,挑出K個目標(biāo)項目用于訓(xùn)練,剩下的用于測試。實際中K=1的效果就足夠好且簡單。(論文也沒寫K>1時具體怎么處理,是分別用每個target item跑一遍右側(cè)的網(wǎng)絡(luò),然后得到K個和拼接?還是找那些和這K個target items都有過交互的用戶?)
找出與目標(biāo)項目交互過的所有用戶,然后對每個近鄰用戶(使用目標(biāo)項目找到的)構(gòu)建未來序列:
「舉個例子」描述一下模型的主要思想:
我今天買了《深度學(xué)習(xí)推薦系統(tǒng)》,模型在給我推薦時,會參考其他買了這本書的用戶「后面會買什么」。假如有5個用戶也買了這本書,其中用戶a, c后面買了《計算廣告》(「繼續(xù)深入學(xué)習(xí)」),用戶b, d, e后面買了《java從入門到精通》(「棄坑轉(zhuǎn)方向」),這就代表未來兩種不同的偏好趨勢。動態(tài)路由部分的任務(wù)就是從這5個用戶中,學(xué)習(xí)出(也可以理解為聚類)2個趨勢 。
那模型又怎么確定我更可能偏向哪種趨勢呢?這個任務(wù)就交給后面的注意力部分了,主要根據(jù)時間間隔來判斷(這里感覺不太合理,只看時間間隔,并不能體現(xiàn)我更偏向哪種趨勢呀)。
Future-Aware Diverse Trends
把每個近鄰用戶的偏好向量作為鄰居膠囊,使用動態(tài)路由來學(xué)習(xí)興趣膠囊。具體過程為:
其中為輸入的鄰居膠囊,代表低階膠囊與高階膠囊連接的概率。
膠囊網(wǎng)絡(luò)可以看作一種“向量神經(jīng)元”,其輸入和輸出都是「向量」,且每一步也都可以與傳統(tǒng)的標(biāo)量神經(jīng)元對應(yīng),對比如下(圖片來自文獻2):

Time-Aware Attention Layer
使用一種時間感知的注意力機制來計算多個趨勢的權(quán)重 捕捉每個趨勢的時效性
計算用戶u最終的未來偏好:
其中是target item 的交互時間,是趨勢的交互時間,即對與趨勢相關(guān)的項目的交互時間取平均值(從items變到trends經(jīng)過了LSTM以及動態(tài)路由,那一個item怎么樣算是related to the trend?論文并沒有說明)。是趨勢的向量表示
,,分別對應(yīng)注意力機制中的q, k, v(即query, key, value)。通過衡量q和k之間的相關(guān)性(這里即時間上相隔的遠近),找出與q相關(guān)的value,再對value進行加權(quán)求和。這里的時間應(yīng)該是歸一化后的,即0~1之間的值,這樣可以讓與間隔更近的trend的權(quán)重更高,即最近的興趣趨勢在中占比更高。
Prediction
得到attention激活后的趨勢向量后,將其與用戶歷史偏好向量拼接(所以是保證拼接后的向量維度與item embedding一致?K>1時也是這樣處理嗎?可能會有問題啊),作為用戶最終的偏好向量。給定一個訓(xùn)練樣本以及用戶的偏好向量、項目的向量表示,通過如下公式來計算交互概率:
其中U, V, I分別是用戶集合、項目集合、交互集合。
實驗
模型效果對比
實驗數(shù)據(jù)集及其統(tǒng)計信息:

評價指標(biāo)選取Recall和NDCG。對比結(jié)果:

推薦多樣性
這里是使用項目類目的多樣性來衡量,具體公式如下:
多樣性的對比結(jié)果:

實驗結(jié)果表明,F(xiàn)AT不僅能夠提升序列推薦的效果,也能提高推薦的多樣性。
Case Study

上圖是為某用戶召回的項目的分布。由于論文對圖中橫坐標(biāo)和圓圈的意義描述有歧義,這里說一下筆者的愚見:
圓圈大小代表項目和trend或歷史興趣的相似度,橫坐標(biāo)中的數(shù)值代表透出概率。
結(jié)果顯示,如果使用歷史偏好進行推薦,即使是很相似的項目,其透出概率也很低;但如果使用FAT學(xué)習(xí)出的trend向量找相似的項目,就很容易被推薦出去,體現(xiàn)了本文中未來偏好趨勢建模的有效性。
參考文獻
[1] Lu Y, Zhang S, Huang Y, et al. Future-Aware Diverse Trends Framework for Recommendation[J]. arXiv preprint arXiv:2011.00422, 2020.
[2] CapsNet-Tensorflow, https://github.com/naturomics/CapsNet-Tensorflow
往期精彩回顧
獲取本站知識星球優(yōu)惠券,復(fù)制鏈接直接打開:
https://t.zsxq.com/qFiUFMV
本站qq群704220115。
加入微信群請掃碼:
