【论文解读】腾讯FAT | 未来感知的多样化趋势推荐框架
“本文介紹了騰訊提出的一種未來感知的多樣化趨勢推薦框架FAT,根據相似用戶的行為來構建未來序列,再通過動態路由學習多樣化的趨勢。實驗表明,考慮了潛在未來偏好趨勢的FAT不僅能夠提升推薦的準確性,也能提高多樣性。”
本文介紹的論文是《Future-Aware Diverse Trends Framework for Recommendation》
摘要
在推薦系統的用戶表示學習中,對用戶-項目交互的建模很重要。現有的序列推薦系統通過用戶歷史序列來捕捉歷史偏好。然而,用戶的偏好是「不斷變化且多樣化」的,僅僅對歷史偏好建模(不考慮偏好隨時間變化的趨勢)可能導致推薦多樣性、時效性不足。
本文為縮小「歷史偏好」和「潛在未來偏好」之間的gap,提出了未來感知的多樣化趨勢(FAT)框架。其中未來感知是指根據「相似用戶」來構建目標用戶的「未來序列」(提出了一種鄰居行為提取器);多樣化趨勢是指:認為未來偏好是多樣化的,提出了多樣化趨勢提取器和時間感知的注意力機制,使用「多個向量」表達用戶潛在的偏好趨勢。利用歷史偏好和潛在未來趨勢進行最終的推薦。實驗表明,FAT不僅能夠提升序列推薦的準確性,也能提高推薦的「多樣性」和時效性。
貢獻
為更好地捕捉用戶行為的動態變化,設計了一個FAT框架,利用了未來信息并捕捉了多樣化的用戶偏好趨勢。
首先從相似用戶中提取未來行為,然后利用動態路由進行自適應的融合(也可以理解為聚類),得到趨勢向量。然后使用時間感知的注意力機制來更好地建模隨時間變化的用戶潛在偏好。
與現有方法相比,FAT在幾個公開數據集上效果更好,且FAT召回的項目具有更高的多樣性
模型
模型結構圖:
左側:對當前用戶的歷史序列建模,得到歷史偏好向量 。灰色小球和向量表示對待預測item做embedding,后面預測層使用。
右側:為當前用戶找到多個相似用戶,對每個相似用戶進行歷史序列建模,得到其偏好向量。這些偏好向量經過一個膠囊網絡得到T個趨勢向量,再通過時間感知的注意力層來融合,得到未來偏好向量。
下面對每個模塊進行具體介紹:
Sequence Modeling
輸入是按照時間排列的用戶歷史行為序列,對這些item id做embedding之后使用LSTM提取序列特征(LSTM公式不再贅述),得到用戶的偏好向量。
相似用戶的歷史序列同樣也使用LSTM來進行特征提取。
Implicit Neighbor Behavior Extractor
用皮爾遜相關系數來計算用戶間相似度 (但作者并未說明找到相似用戶后如何構建序列)。除此之外,也設計了一個更簡單的過濾器來提取相似用戶:
在當前用戶的歷史序列中,挑出K個目標項目用于訓練,剩下的用于測試。實際中K=1的效果就足夠好且簡單。(論文也沒寫K>1時具體怎么處理,是分別用每個target item跑一遍右側的網絡,然后得到K個和拼接?還是找那些和這K個target items都有過交互的用戶?)
找出與目標項目交互過的所有用戶,然后對每個近鄰用戶(使用目標項目找到的)構建未來序列:
「舉個例子」描述一下模型的主要思想:
我今天買了《深度學習推薦系統》,模型在給我推薦時,會參考其他買了這本書的用戶「后面會買什么」。假如有5個用戶也買了這本書,其中用戶a, c后面買了《計算廣告》(「繼續深入學習」),用戶b, d, e后面買了《java從入門到精通》(「棄坑轉方向」),這就代表未來兩種不同的偏好趨勢。動態路由部分的任務就是從這5個用戶中,學習出(也可以理解為聚類)2個趨勢 。
那模型又怎么確定我更可能偏向哪種趨勢呢?這個任務就交給后面的注意力部分了,主要根據時間間隔來判斷(這里感覺不太合理,只看時間間隔,并不能體現我更偏向哪種趨勢呀)。
Future-Aware Diverse Trends
把每個近鄰用戶的偏好向量作為鄰居膠囊,使用動態路由來學習興趣膠囊。具體過程為:
其中為輸入的鄰居膠囊,代表低階膠囊與高階膠囊連接的概率。
膠囊網絡可以看作一種“向量神經元”,其輸入和輸出都是「向量」,且每一步也都可以與傳統的標量神經元對應,對比如下(圖片來自文獻2):
Time-Aware Attention Layer
使用一種時間感知的注意力機制來計算多個趨勢的權重 捕捉每個趨勢的時效性
計算用戶u最終的未來偏好:
其中是target item 的交互時間,是趨勢的交互時間,即對與趨勢相關的項目的交互時間取平均值(從items變到trends經過了LSTM以及動態路由,那一個item怎么樣算是related to the trend?論文并沒有說明)。是趨勢的向量表示
,,分別對應注意力機制中的q, k, v(即query, key, value)。通過衡量q和k之間的相關性(這里即時間上相隔的遠近),找出與q相關的value,再對value進行加權求和。這里的時間應該是歸一化后的,即0~1之間的值,這樣可以讓與間隔更近的trend的權重更高,即最近的興趣趨勢在中占比更高。
Prediction
得到attention激活后的趨勢向量后,將其與用戶歷史偏好向量拼接(所以是保證拼接后的向量維度與item embedding一致?K>1時也是這樣處理嗎?可能會有問題啊),作為用戶最終的偏好向量。給定一個訓練樣本以及用戶的偏好向量、項目的向量表示,通過如下公式來計算交互概率:
其中U, V, I分別是用戶集合、項目集合、交互集合。
實驗
模型效果對比
實驗數據集及其統計信息:
評價指標選取Recall和NDCG。對比結果:
推薦多樣性
這里是使用項目類目的多樣性來衡量,具體公式如下:
多樣性的對比結果:
實驗結果表明,FAT不僅能夠提升序列推薦的效果,也能提高推薦的多樣性。
Case Study
上圖是為某用戶召回的項目的分布。由于論文對圖中橫坐標和圓圈的意義描述有歧義,這里說一下筆者的愚見:
圓圈大小代表項目和trend或歷史興趣的相似度,橫坐標中的數值代表透出概率。
結果顯示,如果使用歷史偏好進行推薦,即使是很相似的項目,其透出概率也很低;但如果使用FAT學習出的trend向量找相似的項目,就很容易被推薦出去,體現了本文中未來偏好趨勢建模的有效性。
參考文獻
[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
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯 獲取本站知識星球優惠券,復制鏈接直接打開: https://t.zsxq.com/qFiUFMV 本站qq群704220115。加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【论文解读】腾讯FAT | 未来感知的多样化趋势推荐框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【NLP】文本分类综述 (上)
- 下一篇: 【Python基础】用Python制作漂