盧 敏,王千里
(1.中國民航大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,天津 300300;2.中國民航大學(xué) 民航智慧機(jī)場理論與系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,天津 300300)
傳統(tǒng)推薦方法如基于協(xié)同過濾的推薦[1]、基于內(nèi)容的推薦[2],更偏向于以靜態(tài)建模的方式得到用戶長期的一般偏好,但其推薦性能會(huì)受到例如項(xiàng)目(item)特征向量的建模效果、數(shù)據(jù)是否存在“冷啟動(dòng)”等問題的影響。序列推薦系統(tǒng)[3-5]則是通過挖掘用戶行為記錄中的序列關(guān)系,將用戶-項(xiàng)目的交互當(dāng)作一種動(dòng)態(tài)的序列(其中序列每一個(gè)節(jié)點(diǎn)為項(xiàng)目),充分考慮了用戶歷史行為中的興趣偏移[6],推薦用戶未來可能交互的項(xiàng)目。然而,這些算法僅針對項(xiàng)目交互序列進(jìn)行分析計(jì)算,或者將項(xiàng)目屬性作為輔助信息,沒有充分利用項(xiàng)目屬性特征挖掘用戶偏好,導(dǎo)致推薦性能受限。其原因是一方面他們沒有考慮用戶在不同項(xiàng)目屬性上的興趣偏移以及單獨(dú)建模項(xiàng)目屬性特征對更新項(xiàng)目表示的重要性,另一方面他們沒有探究屬性特征交互對捕獲用戶興趣的影響。
實(shí)際上,用戶的興趣偏好更多體現(xiàn)在項(xiàng)目的各種屬性上,根據(jù)項(xiàng)目屬性信息可以更好地表示用戶的意圖和目標(biāo),建模用戶的動(dòng)態(tài)特征,而傳統(tǒng)的序列推薦模型只能學(xué)習(xí)項(xiàng)目交互序列的序列模式,無法獲得用戶在項(xiàng)目屬性上的興趣偏移,限制了推薦性能。為了解決上述問題,提出了一種基于特征交叉注意力網(wǎng)絡(luò)的序列推薦算法(feature cross aware attention network for sequential recommendation,F(xiàn)CAN)。該算法通過構(gòu)建兩種注意力捕獲用戶興趣與項(xiàng)目屬性之間的關(guān)系。一種是項(xiàng)目屬性級(jí)別注意力,針對同一項(xiàng)目下的屬性,利用項(xiàng)目作為中間橋梁,建模屬性間的自適應(yīng)相關(guān)性,得到融入項(xiàng)目的屬性表示。另一種是序列級(jí)別注意力,在項(xiàng)目序列或?qū)傩孕蛄猩?,挖掘用戶對?xiàng)目及項(xiàng)目屬性的動(dòng)態(tài)興趣,更好地提取序列模式。
序列推薦旨在通過挖掘用戶行為記錄中的順序關(guān)系來推薦用戶未來可能交互的物品?;谘h(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)的序列推薦模型通過建模交互序列中項(xiàng)目之間的相互依賴關(guān)系,學(xué)習(xí)表示用戶興趣偏好的序列模式。Quadrana等[7]提出層次化的RNN模型,該模型通過將較低級(jí)別RNN的隱藏狀態(tài)作為輸入傳遞給較高級(jí)別RNN,刻畫會(huì)話中用戶個(gè)人的興趣變化。Ren等[8]創(chuàng)新性地將復(fù)購機(jī)制(repeat consumption)納入具有編碼器-解碼器結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)中,其中的復(fù)購解碼器預(yù)測復(fù)購的可能性,探索解碼器預(yù)測用戶購買新項(xiàng)目的可能性。但基于循環(huán)神經(jīng)網(wǎng)絡(luò)的序列推薦缺點(diǎn)是很容易產(chǎn)生假依賴,因?yàn)橛捎谶^于強(qiáng)烈的假設(shè)認(rèn)為任何相鄰的交互必須依賴一個(gè)序列,并且可能只捕獲點(diǎn)依賴關(guān)系而忽略集合依賴(例如,幾個(gè)項(xiàng)目交互協(xié)作影響下一個(gè)項(xiàng)目推薦)。Tang等[9]提出基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的嵌入序列方法,將相鄰項(xiàng)目視作“圖像”矩陣,通過不同類型的卷積濾波器提取序列模式。Yu等[10]設(shè)計(jì)了一種融合殘差網(wǎng)絡(luò)和空洞卷積的多階注意力排序模型,將用戶多種級(jí)別的行為序列結(jié)合后進(jìn)行推薦預(yù)測。Ying等[11]利用雙層注意力機(jī)制提取交互行為的屬性信息(時(shí)間、空間等),學(xué)習(xí)用戶的靜態(tài)特征和動(dòng)態(tài)特征。然而基于CNN的序列推薦模型無法學(xué)習(xí)到用戶的長期偏好[12],這限制了其進(jìn)一步應(yīng)用。Kang等[13]為了解決RNN模型在稀疏數(shù)據(jù)集推薦性能不好的問題,提出了一個(gè)基于自注意力網(wǎng)絡(luò)(self-attention network,SAN)序列推薦模型,該模型可以在每個(gè)時(shí)間步長中對之前的項(xiàng)目自適應(yīng)地配權(quán)重(沒有使用任何循環(huán)或卷積操作),通過SAN學(xué)習(xí)交互序列中不同項(xiàng)目對用戶的重要程度,從整個(gè)序列行為中捕獲序列信息的長期依賴并根據(jù)之前的部分項(xiàng)目行為來生成預(yù)測。Li等[14]認(rèn)為交互項(xiàng)目的時(shí)間間隔不同對生成推薦預(yù)測的影響也不同,應(yīng)根據(jù)行為序列中的時(shí)間步長,將用戶歷史行為建模為不同間隔的交互序列。然而上述這些方法忽略了項(xiàng)目屬性對挖掘用戶興趣的重要性。
基于項(xiàng)目特征級(jí)別的序列推薦系統(tǒng)通過將各種項(xiàng)目特征聯(lián)合到神經(jīng)網(wǎng)絡(luò)中以獲得項(xiàng)目表示。Zhang等[15]把學(xué)習(xí)到不同權(quán)重的項(xiàng)目進(jìn)行區(qū)分,將項(xiàng)目的各種屬性特征整合到一個(gè)特征空間,運(yùn)用自注意力機(jī)制捕獲項(xiàng)目級(jí)別以及特征級(jí)別的轉(zhuǎn)換模式。但是他們沒有通過項(xiàng)目的不同屬性特征獲取項(xiàng)目表示,而是將各種屬性特征拼接到一起,并且沒有關(guān)注不同屬性特征進(jìn)行交互帶來的影響。此外在序列推薦中,現(xiàn)有研究方法大多沒有考慮項(xiàng)目屬性對預(yù)測下一項(xiàng)目影響。
值得注意的是,在推薦系統(tǒng)中考慮項(xiàng)目的屬性特征對精確建模用戶偏好有很大幫助。Guo等[16]同時(shí)在用戶方面和項(xiàng)目方面使用自注意力機(jī)制,并利用從知識(shí)圖譜中提取的項(xiàng)目屬性特征,共同優(yōu)化用戶表示和項(xiàng)目表示,充分捕獲用戶和項(xiàng)目之間的相關(guān)性。Liu等[17]構(gòu)建了一個(gè)包含用戶、項(xiàng)目、屬性3種類型節(jié)點(diǎn)的圖,并利用圖卷積網(wǎng)絡(luò)來表征<用戶、項(xiàng)目、屬性>之間的復(fù)雜交互。為了學(xué)習(xí)節(jié)點(diǎn)表示,他們采用消息傳遞策略聚合從其它類型節(jié)點(diǎn)傳遞的信息,并利用屬性信息來學(xué)習(xí)用戶和項(xiàng)目表示,但仍然存在屬性丟失等問題。事實(shí)上,將項(xiàng)目屬性結(jié)合到序列推薦中可以更好地從用戶的歷史行為中捕捉用戶的興趣偏好。
本文提出了一種基于特征交叉注意力網(wǎng)絡(luò)的序列推薦模型,該模型旨在根據(jù)用戶所有歷史交互的項(xiàng)目序列來推薦用戶未來可能感興趣的項(xiàng)目。本文模型方法的框架結(jié)構(gòu)如圖1所示。模型主要由以下幾部分組成,即嵌入層模塊、特征交叉層模塊和預(yù)測層模塊。嵌入層模塊把用戶-項(xiàng)目交互歷史項(xiàng)目數(shù)據(jù)以及項(xiàng)目屬性數(shù)據(jù)編碼成項(xiàng)目序列向量和項(xiàng)目屬性序列向量,將離散項(xiàng)目及其屬性映射到稠密向量。特征交叉層模塊在項(xiàng)目屬性視角下增強(qiáng)項(xiàng)目與其屬性之間的關(guān)系,同時(shí)在序列視角下捕捉項(xiàng)目級(jí)別序列與屬性級(jí)別序列的相關(guān)性,由此挖掘用戶興趣。預(yù)測層模塊計(jì)算用戶興趣與所有項(xiàng)目之間的相關(guān)性分?jǐn)?shù),從而推薦相關(guān)性分?jǐn)?shù)最高的項(xiàng)目,預(yù)測交互序列中下一個(gè)用戶可能交互的項(xiàng)目。
圖1 特征交叉注意力網(wǎng)絡(luò)結(jié)構(gòu)
用戶的歷史行為由一系列項(xiàng)目表示,即按時(shí)間戳排序(visiting time)的用戶交互項(xiàng)目列表S={i1,i2,…,ik,…,in},ik∈I表示在第k步交互的項(xiàng)目,n為序列長度,I是全部項(xiàng)目的集合。同時(shí)每個(gè)項(xiàng)目都有對應(yīng)的屬性信息,如品牌、種類和用戶評(píng)分等,每個(gè)項(xiàng)目序列有對應(yīng)的屬性序列,如f1={i1f1,i2f1,…,ikf1,…,inf1}。
(1)
如圖1所示,特征交叉層網(wǎng)絡(luò)由N個(gè)相同的子層網(wǎng)絡(luò)堆疊(stack)而成,每個(gè)子層網(wǎng)絡(luò)由兩個(gè)模塊組成。在第一個(gè)模塊中主要構(gòu)建項(xiàng)目屬性級(jí)別注意力網(wǎng)絡(luò),該模塊旨在針對同一項(xiàng)目下的屬性特征,利用項(xiàng)目作為中間橋梁,建模項(xiàng)目及項(xiàng)目屬性間的自適應(yīng)相關(guān)性,通過將項(xiàng)目及項(xiàng)目的各個(gè)屬性之間進(jìn)行特征交叉運(yùn)算,挖掘用戶對項(xiàng)目屬性的動(dòng)態(tài)興趣,最終得到融入項(xiàng)目信息的屬性表示。該模塊的整體計(jì)算公式如下
(2)
(3)
(4)
(5)
如圖每個(gè)子層中的第二個(gè)模塊是序列級(jí)別注意力網(wǎng)絡(luò),其目的是從項(xiàng)目序列或?qū)傩孕蛄兄袑W(xué)習(xí)用戶對項(xiàng)目及其屬性的興趣
(6)
(7)
如圖1所示,預(yù)測層為了可以計(jì)算立方體矩陣與項(xiàng)目間的相關(guān)性分?jǐn)?shù),需要先對立方體矩陣進(jìn)行操作,其原因是立方矩陣的三維形式不能與項(xiàng)目特征及其屬性特征表示的二維形式相乘。利用和池化(sum pooling)沿序列方向?qū)α⒎骄仃嚽蠛?,將三維立方體矩陣降維為二維矩陣,并獲取序列動(dòng)態(tài)性
O=sum_pooling(MN)
(8)
(9)
預(yù)測層通過式(9)計(jì)算用戶對所有項(xiàng)目興趣的相關(guān)性分?jǐn)?shù),然后推薦分?jǐn)?shù)最高的項(xiàng)目。為了有效地學(xué)習(xí)模型參數(shù),在整個(gè)訓(xùn)練序列 {S1,…,ST} 采用了二元交叉熵?fù)p失函數(shù)作為目標(biāo)函數(shù)
(10)
式中:Ot是序列St的目標(biāo)項(xiàng)目,yOt是通過等式(9)計(jì)算得到的目標(biāo)項(xiàng)目的相關(guān)性分?jǐn)?shù),σ是Sigmod激活函數(shù)。yj(j?St)是每個(gè)序列在t時(shí)刻從該用戶未交互的項(xiàng)目中隨機(jī)選取負(fù)樣本j的相關(guān)性分?jǐn)?shù)。模型通過Adam優(yōu)化器優(yōu)化,該優(yōu)化器是具有自適應(yīng)功能的隨機(jī)梯度下降(SGD)的變體。
本文在Amazon的兩個(gè)公開數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)論證。實(shí)驗(yàn)從兩個(gè)方面進(jìn)行驗(yàn)證,一方面是驗(yàn)證本文所提出的算法是否可以獲得比對比算法更高的性能,另一方面是分析超參數(shù)的影響。
3.1.1 數(shù)據(jù)集
本文使用Amazon[13,14]的兩個(gè)子數(shù)據(jù)集Toys and Games和Beauty作為實(shí)驗(yàn)數(shù)據(jù)集。每個(gè)數(shù)據(jù)集都包含了用戶歷史行為數(shù)據(jù),以及項(xiàng)目的屬性信息。Toys and Games數(shù)據(jù)集囊括了34 039個(gè)用戶對14 209個(gè)項(xiàng)目的購買記錄。同時(shí)該數(shù)據(jù)集中的項(xiàng)目包含434個(gè)類別屬性,1391個(gè)品牌屬性,商品評(píng)分采用5分制(1分~5分)。另外Beauty也是推薦系統(tǒng)中經(jīng)常用到的數(shù)據(jù)集,它提供了51 592多個(gè)用戶對17 655個(gè)項(xiàng)目的購買記錄,以及259個(gè)類別屬性,2598個(gè)品牌屬性以及5個(gè)商品評(píng)分屬性。表1列出了數(shù)據(jù)集的詳細(xì)統(tǒng)計(jì)信息。本文按參考文獻(xiàn)[10,13,14]中對數(shù)據(jù)的處理方法重新處理這兩個(gè)數(shù)據(jù)集,項(xiàng)目按時(shí)間戳排序以進(jìn)行預(yù)處理,少于5個(gè)行為的冷啟動(dòng)用戶和項(xiàng)目被過濾掉。本文根據(jù)文獻(xiàn)[13]中的數(shù)據(jù)集處理方法,將用戶最近的交互項(xiàng)目用于測試,其次的項(xiàng)目用于驗(yàn)證,其余項(xiàng)目用于訓(xùn)練,并為每個(gè)用戶隨機(jī)抽取100個(gè)負(fù)樣本,并根據(jù)相關(guān)性分?jǐn)?shù)對這些項(xiàng)目進(jìn)行排序。
表1 數(shù)據(jù)集描述
3.1.2 評(píng)價(jià)指標(biāo)
本文使用推薦系統(tǒng)常用的3個(gè)Top-N指標(biāo)來測試模型性能。命中率(HR@10)是預(yù)測準(zhǔn)確度的度量,判斷項(xiàng)目是否出現(xiàn)在模型返回的前10名推薦列表中。歸一化折損累積增益(NDCG@10)用于評(píng)價(jià)推薦列表中項(xiàng)目排序的準(zhǔn)確性,預(yù)測項(xiàng)目在推薦列表中的位置越靠前,指標(biāo)越高。平均倒數(shù)排名(MRR@10)考慮項(xiàng)目在前10名列表中出現(xiàn)位置順序的準(zhǔn)確性,如一個(gè)物品在推薦物品中排在10名以外,則其準(zhǔn)確度為0。
3.1.3 比較方法
為了驗(yàn)證模型的性能,將本文提出的算法分別與Caser[9]、SASRec[13]、MARank[10]、TiSASRec[14]基準(zhǔn)算法進(jìn)行對比。
Caser[9]:該模型將用戶與項(xiàng)目交互矩陣視作“圖像”,利用卷積神經(jīng)網(wǎng)絡(luò)對短期序列的信息進(jìn)行提取,通過卷積運(yùn)算捕獲高階馬爾科夫鏈。
SASRec[13]:該模型利用自注意力機(jī)制自適應(yīng)地學(xué)習(xí)交互序列中的項(xiàng)目權(quán)重,捕獲序列信息的長期依賴并提取用戶的短期興趣偏好。
MARank[10]:該模型根據(jù)個(gè)體級(jí)別與聯(lián)合級(jí)別的項(xiàng)目交互學(xué)習(xí)用戶興趣偏好,并通過將用戶和項(xiàng)目編碼到深度神經(jīng)網(wǎng)絡(luò)的中間隱藏狀態(tài),作為多階特征來表示用戶的短期偏好。
TiSASRec[14]:該模型根據(jù)項(xiàng)目之間的相對時(shí)間間隔,為每個(gè)用戶建模一個(gè)項(xiàng)目關(guān)系矩陣,將其加入到項(xiàng)目級(jí)別序列中計(jì)算相關(guān)性分?jǐn)?shù),預(yù)測用戶后續(xù)可能的交互項(xiàng)目。
3.1.4 超參數(shù)設(shè)置
本文通過Adam優(yōu)化器來優(yōu)化網(wǎng)絡(luò)模型,學(xué)習(xí)率設(shè)置為0.001,一次訓(xùn)練的用戶個(gè)數(shù)(batch size)設(shè)置為128,丟失率(dropout rate)設(shè)置為0.5,特征交叉層模塊堆疊數(shù)N設(shè)置為2。項(xiàng)目交互序列長度n設(shè)置為100,嵌入維度d設(shè)置為50。
3.2.1 性能比較
表2列出了本文模型FCAN和基準(zhǔn)模型的實(shí)驗(yàn)結(jié)果。Caser[9]應(yīng)用卷積操作來捕獲項(xiàng)目間的序列模式,但由于CNN中使用的卷積濾波器大小的限制,它無法有效地捕獲長期依賴關(guān)系,這使得其性能低于其它使用注意力的推薦模型。MARank[10]的性能優(yōu)于Caser,主要原因是該模型可以自適應(yīng)地計(jì)算項(xiàng)目序列中用戶的興趣偏好。然而,這兩種模型僅對用戶短期興趣建模,忽略了序列信息中的長期依賴,導(dǎo)致其性能低于SASRec[13]。SASRec雖然使用注意力機(jī)制來區(qū)分用戶交互過的項(xiàng)目,但是忽略了項(xiàng)目屬性特征對捕捉序列模式的影響,如用戶購買衣服后可能會(huì)買鞋,這說明下一個(gè)項(xiàng)目的類別與該類別高度相關(guān)。TiSASRec[14]使用相對時(shí)間信息來自適應(yīng)地計(jì)算不同項(xiàng)目的和其絕對位置的權(quán)重,但在數(shù)據(jù)集高度稀疏并且項(xiàng)目序列中存在許多相同時(shí)間戳的情況下,其性能受到了很大限制。在本文提出的模型中,同時(shí)考慮了項(xiàng)目屬性及項(xiàng)目屬性交互對用戶動(dòng)態(tài)興趣的影響,獲得了更好的推薦性能。
表2 在兩個(gè)數(shù)據(jù)集上的性能展示
在Beauty數(shù)據(jù)集上,本文模型在指標(biāo)HR@10,NDCG@10和MRR@10上的平均性能提升分別為11.52%、7.11%和5.93%。在Toys and Games數(shù)據(jù)集上,本文模型在指標(biāo)HR@10,NDCG@10和MRR@10上的平均性能提升分別為8.35%、7.02%和4.58%。實(shí)驗(yàn)結(jié)果顯示出本文所提出的算法通過考慮項(xiàng)目屬性獲得項(xiàng)目表示以及通過項(xiàng)目屬性交互挖掘用戶興趣可以提高序列推薦性能。
3.2.2 特征交叉有效性驗(yàn)證
本節(jié)旨在驗(yàn)證特征交叉注意力模塊的有效性,為了分析項(xiàng)目屬性信息的對用戶興趣的影響,去除式(5)中的特征交叉注意力模塊來構(gòu)建對比模型。去除特征交叉注意力部分的對比模型將提取到的項(xiàng)目序列及屬性序列嵌入拼接后作為用戶興趣偏好表示,相較于FCAN缺少了不同屬性信息進(jìn)行交互運(yùn)算的部分。表3列出了兩種模型在兩個(gè)數(shù)據(jù)集上的性能比較。實(shí)驗(yàn)結(jié)果顯示,對比模型通過加入項(xiàng)目屬性信息表征用戶興趣可以根據(jù)用戶偏好自適應(yīng)地選擇項(xiàng)目屬性中有吸引力的潛在特征來更新項(xiàng)目表示向量,通過項(xiàng)目屬性特征來豐富項(xiàng)目表示,推薦性能相較于表2中未考慮項(xiàng)目屬性特征的基線模型都獲得了最佳結(jié)果。然而如果根據(jù)本文所述加入特征交叉注意力模塊,則模型可以進(jìn)一步承載不同屬性特征之間的交互,通過項(xiàng)目作為中間橋梁,將項(xiàng)目屬性間的高階特征交叉融入到項(xiàng)目表示中,進(jìn)一步優(yōu)化用戶興趣表示向量,保留交互序列中重要的屬性特征,相較于未加入屬性特征交叉模塊的對比模型,推薦性能得到進(jìn)一步提高。這表明用戶的興趣會(huì)根據(jù)項(xiàng)目各個(gè)屬性的不同而動(dòng)態(tài)變化,引入屬性特征交叉模塊可以更好地捕獲用戶針對不同屬性感興趣的程度大小。
表3 特征交叉注意力影響分析
3.2.3 超參數(shù)影響
本文在Beauty和Toys and Games兩個(gè)數(shù)據(jù)集做了不同嵌入維度大小對各模型性能影響的對比實(shí)驗(yàn),本文所提FCAN模型在各個(gè)嵌入維度均能保持最好的推薦性能,具體結(jié)果如圖2~圖7所示。實(shí)驗(yàn)結(jié)果顯示嵌入維度對模型性能有一定的影響,從圖2~圖7可以發(fā)現(xiàn)當(dāng)嵌入維度d小于60時(shí),嵌入維度越大,模型的建模能力越強(qiáng),所蘊(yùn)含的信息越多。從圖中可以看出當(dāng)嵌入維度大于60后,模型已經(jīng)得到充分訓(xùn)練,嵌入維度變化比較穩(wěn)定,但模型性能略有下降,模型的過擬合風(fēng)險(xiǎn)增大。
圖2 Toys and Games數(shù)據(jù)集下嵌入維度大小對推薦性能的影響(NDCG@10)
圖3 Toys and Games數(shù)據(jù)集下嵌入維度大小對推薦性能的影響(HR@10)
圖4 Toys and Games數(shù)據(jù)集下嵌入維度大小對推薦性能的影響(MRR@10)
圖5 Beauty數(shù)據(jù)集下嵌入維度大小對推薦性能的影響(NDCG@10)
圖6 Beauty數(shù)據(jù)集下嵌入維度大小對推薦性能的影響(HR@10)
圖7 Beauty數(shù)據(jù)集下嵌入維度大小對推薦性能的影響(MRR@10)
本文提出了一種利用項(xiàng)目屬性來挖掘用戶興趣的特征交叉注意力網(wǎng)絡(luò)。該網(wǎng)絡(luò)主要構(gòu)建項(xiàng)目屬性級(jí)別注意力網(wǎng)絡(luò),從各種項(xiàng)目屬性中學(xué)習(xí)特征間有意義的相關(guān)性,并通過屬性特征間的高階特征交叉計(jì)算,捕獲用戶興趣與項(xiàng)目屬性之間的關(guān)系。另外構(gòu)建序列級(jí)別注意力網(wǎng)絡(luò),建模用戶在不同項(xiàng)目及不同項(xiàng)目屬性上的興趣偏移,挖掘用戶對項(xiàng)目及項(xiàng)目屬性的動(dòng)態(tài)興趣。本文在兩個(gè)Amazon公開數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),驗(yàn)證了本文提出的模型方法比基準(zhǔn)模型更進(jìn)一步促進(jìn)了推薦性能的提升,取得了最好的推薦性能。