作為2021年的第一篇原創(chuàng),首先祝大家在新的一年里身體健康恬口,萬事順意。今天給大家介紹的是騰訊發(fā)表的一篇論文《Future-Aware Diverse Trends Framework for Recommendation》。推薦系統(tǒng)中的用戶體驗非常重要世吨,而推薦多樣性是其中比較關(guān)鍵的一環(huán)。論文提出了一種提升多樣性的推薦系統(tǒng)框架FAT(future-aware diverse trends (FAT) framework)呻征,其核心思路是根據(jù)與用戶最近行為相似用戶的行為來建模用戶未來可能的多樣化興趣演化趨勢耘婚,接下來一起學(xué)習(xí)一下。
1陆赋、背景
基于用戶歷史行為序列來預(yù)測用戶下一個可能交互的物品沐祷,方法有多種,如基于馬爾可夫鏈攒岛、YoutubeDNN赖临、DIN、MIMN等方法灾锯。但是兢榨,上述所有的方法都僅僅考慮用戶過往的行為,忽略了對用戶興趣在未來演進(jìn)趨勢的考慮顺饮。
用戶的興趣往往是多樣且不斷變化的吵聪,僅考慮用戶過往的行為可能導(dǎo)致推薦結(jié)果多樣性欠缺,時效性較差兼雄,如下圖中上半部分吟逝,用戶的歷史行為中包括美國歷史、人物傳記等赦肋,那么推薦的結(jié)果往往局限于這幾類中块攒,不僅多樣性較差,同時沒有及時發(fā)現(xiàn)用戶興趣可能的演進(jìn)趨勢佃乘。
為解決上述問題局蚀,論文提出了一種未來感知的多樣化趨勢推薦框架FAT,其核心思想是根據(jù)與用戶最近行為相似用戶的未來行為來建模用戶可能的多樣化興趣演化趨勢恕稠,并進(jìn)行推薦琅绅。如下圖中的下半部分,同樣喜歡美國歷史或者人物傳記的用戶鹅巍,可能還會喜歡其他類別的內(nèi)容千扶,通過FAT料祠,這些內(nèi)容將同樣會推薦給用戶,提升推薦系統(tǒng)的多樣性和時效性澎羞。
再用一個例子簡單介紹下論文的建模思路髓绽,假設(shè)今天我買了一本《機(jī)器學(xué)習(xí)》,同樣買過《機(jī)器學(xué)習(xí)》的用戶妆绞,部分繼續(xù)深入研究顺呕,買了《深度學(xué)習(xí)》,部分想要補(bǔ)充下對應(yīng)的代碼能力括饶,買了《深入淺出python》株茶,還有部分用戶覺得有些難度,轉(zhuǎn)向?qū)W習(xí)數(shù)據(jù)分析图焰,買了《利用python進(jìn)行數(shù)據(jù)分析》启盛。模型通過建模這些用戶后續(xù)的行為,來發(fā)現(xiàn)我未來可能的多樣的興趣演化趨勢技羔,在推薦時僵闯,不僅會進(jìn)一步推薦機(jī)器學(xué)習(xí)相關(guān)的內(nèi)容,深度學(xué)習(xí)藤滥、python和數(shù)據(jù)分析的內(nèi)容也會推薦給我鳖粟。
接下來,稍微詳細(xì)介紹下FAT框架的具體實現(xiàn)拙绊。
2向图、FAT介紹
FAT框架如下圖所示:
可以看到,主要包含三個模塊时呀,Sequential Modeling、Future-Aware Diverse Trends Capture Module和Time-Interval Activation Layer晶默,接下來對這幾部分進(jìn)行介紹谨娜。這里提一下,論文中的符號有些混亂磺陡,所以本文不涉及過多公式的介紹趴梢。
2.1 模型輸入
模型輸入主要包含三部分,分別是用戶歷史行為序列Iu币他,相似用戶行為序列Tu和待推薦物品的特征Fi坞靶。這里重點介紹下相似用戶行為序列的獲取。
首先蝴悉,需要對用戶進(jìn)行一個過濾彰阴,假設(shè)用戶歷史行為序列中最后一個物品為a(也可以用最后多個物品進(jìn)行過濾,但論文中提到僅使用最后一個物品效果就可以了)拍冠,那么歷史行為中沒有a物品的用戶將被過濾掉尿这,僅保留與物品a交互過的用戶簇抵,隨后,使用皮爾遜相關(guān)系數(shù)計算保留的用戶與當(dāng)前用戶的相關(guān)性射众,保留相關(guān)性最高的N個用戶作為相似用戶碟摆。最后將相似用戶與物品a交互后的行為序列進(jìn)行截取,作為模型輸入叨橱。
感覺有點繞典蜕,咱們舉個簡單的例子,如兩個相似用戶的行為序列是{c,a,b,d,e},{f,b,a,t,g}罗洗,那么得到的相似用戶行為序列分別是{b,d,e}和{t,g}愉舔。
2.2 Sequential Modeling
序列建模使用LSTM,對用戶歷史行為序列和相似用戶的行為序列進(jìn)行建模栖博,得到用戶歷史偏好向量和相似用戶的偏好向量屑宠。這里不再過多介紹。
2.3 Future-Aware Diverse Trends Capture Module
這一模塊的主要功能是從相似用戶的序列中挖掘用戶多樣化的興趣演化趨勢仇让,通過膠囊網(wǎng)絡(luò)進(jìn)行建模典奉。膠囊網(wǎng)絡(luò)在MIND中曾經(jīng)介紹過,這里簡單回顧下丧叽。
有關(guān)膠囊網(wǎng)絡(luò)卫玖,下面的圖可以幫助你快速理解(圖片來源于知乎:https://zhuanlan.zhihu.com/p/68897114):
可以看到,膠囊網(wǎng)絡(luò)和傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)較為類似踊淳。傳統(tǒng)神經(jīng)網(wǎng)絡(luò)輸入一堆標(biāo)量假瞬,首先對這堆標(biāo)量進(jìn)行加權(quán)求和,然后通過非線性的激活函數(shù)得到一個標(biāo)量輸出迂尝。而對膠囊網(wǎng)絡(luò)來說脱茉,這里輸入的是一堆向量,首先對這組向量進(jìn)行仿射變換垄开,然后進(jìn)行加權(quán)求和琴许,隨后通過非線性的"squash"方程進(jìn)行變換,得到另一組向量的輸出溉躲。
2.4 Time-Interval Activation Layer
這一模塊使用時間感知的注意力機(jī)制來計算每個趨勢的權(quán)重榜田,捕捉每個趨勢的時效性,得到用戶u的未來偏好向量Fu锻梳。Fu的計算公式如下:
其中tu代表趨勢向量,Ti代表推薦目標(biāo)物品i的時間辩块,Ttr代表趨勢中每一個物品的交互時間庆捺。這里比較奇怪的一點是,如何計算每個物品屬于哪一個趨勢捉腥?論文這里沒有說明抵碟。
2.5 Prediction
得到未來偏好向量Fu和用戶歷史行為序列建模的輸出向量hu坏匪,兩部分進(jìn)行拼接得到用戶最終的偏好向量(拼接的話向量長度就不對了吧,感覺應(yīng)該是對位相加更為合理)敦迄,基于如下的公式計算物品i的預(yù)測得分:
至于模型如何訓(xùn)練罚屋,論文沒有過多介紹脾猛。
3鱼鸠、實驗結(jié)果
這一部分看一下論文的實驗結(jié)果,首先是FAT與base模型的對比:
隨后看一下在多樣性指標(biāo)上的表現(xiàn):
多樣性指標(biāo)的計算公式如下,即推薦的N個物品中兩兩品類不同的占比:
可以看到跛溉,F(xiàn)AT模型在推薦準(zhǔn)確性和多樣性上哥蔚,都優(yōu)于base模型糙箍。
4牵祟、總結(jié)
這里再談一下個人的感覺,F(xiàn)AT框架類似于基于用戶和基于物品的協(xié)同過濾的融合咕晋,依據(jù)用戶歷史行為進(jìn)行推薦類似于基于物品的協(xié)同過濾掌呜,即給用戶推薦和歷史行為物品相似的物品;而趨勢挖掘部分势篡,則像是基于用戶的協(xié)同過濾模暗,購買過相同物品的用戶還喜歡什么物品兑宇。論文創(chuàng)新點不錯,但是涉及到的很多細(xì)節(jié)沒有詳細(xì)介紹瓷产,感興趣的同學(xué)可以找來原文進(jìn)行閱讀拦英。關(guān)注公眾號“小小挖掘機(jī)”测秸,后臺回復(fù)【FAT】即可獲取論文。