徐紅艷,黨依銘,馮 勇,王嶸冰
(遼寧大學(xué) 信息學(xué)院,遼寧 沈陽 110036)
隨著互聯(lián)網(wǎng)的快速發(fā)展和廣泛應(yīng)用,信息的爆炸性增長使人們?yōu)樽龀龊侠淼倪x擇需要投入更多的時(shí)間和精力。個(gè)性化推薦系統(tǒng)作為處理信息過載的有效工具,一直倍受學(xué)界和業(yè)界的關(guān)注。大型電商平臺的推薦系統(tǒng)既能準(zhǔn)確預(yù)測用戶的偏好,又能快速響應(yīng)用戶當(dāng)前的需求,而傳統(tǒng)的協(xié)同過濾推薦和基于內(nèi)容的推薦等模型[1]主要根據(jù)用戶的訪問記錄計(jì)算用戶間的相似度,為用戶尋找近鄰用戶,利用近鄰用戶的偏好預(yù)測目標(biāo)用戶的偏好進(jìn)行推薦。這些推薦模型主要對靜態(tài)用戶交互進(jìn)行建模,而未考慮到用戶對項(xiàng)目的交互順序,因此不能很好地發(fā)掘用戶歷史行為序列中的動(dòng)態(tài)興趣變化。基于序列的推薦模型對用戶歷史行為序列進(jìn)行建模,能夠同時(shí)捕捉到用戶即時(shí)的短期興趣與穩(wěn)定的長期興趣,反映出用戶在一段時(shí)間內(nèi)的興趣變化,相較于傳統(tǒng)推薦模型可以提高推薦結(jié)果的多樣性,更加符合用戶的需求。
為了更好地利用歷史行為序列中的時(shí)間信息,建模用戶動(dòng)態(tài)興趣變化,有學(xué)者使用不同的時(shí)序預(yù)測和時(shí)間感知預(yù)測方法對用戶興趣進(jìn)行建模。循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)能夠很好地處理序列化數(shù)據(jù),在提取信息時(shí)保留足夠的歷史信息[2-4],因此在對用戶興趣偏好的挖掘上起到了比較良好的輔助效果。Li等人[5]提出了BINN模型,分別使用基于用戶交互的神經(jīng)項(xiàng)目嵌入方法和基于LSTM的判別行為模型學(xué)習(xí)目標(biāo)用戶穩(wěn)定的長期興趣與當(dāng)前的短期興趣。YouTube[6]使用深度神經(jīng)網(wǎng)絡(luò)(DNN)對用戶和項(xiàng)目的特征分別學(xué)習(xí)其嵌入向量,然后對項(xiàng)目向量基于用戶搜索最近鄰項(xiàng)獲得推薦結(jié)果。這些對歷史行為序列的分析和建模在一定程度上緩解了推薦結(jié)果同質(zhì)性的問題,但用戶的興趣在短時(shí)間內(nèi)可能會發(fā)生較大變化,如何及時(shí)、準(zhǔn)確地捕捉用戶行為序列中的動(dòng)態(tài)興趣變化以提升電商平臺的用戶體驗(yàn),是當(dāng)前亟待解決的難點(diǎn)問題。
基于上述分析,該文考慮到用戶歷史行為序列中不同時(shí)間間隔下的動(dòng)態(tài)興趣變化,在短期興趣建模中加入時(shí)間信息,提出了融合時(shí)間信息的序列商品推薦模型(Sequential Product Recommendation Model Integrating Time Information,SPRTI)。首先,為了明確用戶的興趣變化節(jié)點(diǎn),將歷史行為序列以會話為單位,區(qū)分用戶的短期行為序列與長期行為序列;然后,在傳統(tǒng)的門控循環(huán)單元結(jié)構(gòu)(Gated Recurrent Unit,GRU)[7]中加入時(shí)間信息,建模不同時(shí)間間隔對用戶興趣變化的影響,并利用多頭自注意力機(jī)制(Multi-Head Self-attention)[8]捕捉用戶不同的興趣傾向,獲得用戶的短期興趣表示。對于用戶的長期行為采用DeepFM網(wǎng)絡(luò)[9]獲得長期興趣表示;最后,通過自適應(yīng)門控結(jié)構(gòu)融合用戶的長短期興趣,應(yīng)用sigmoid函數(shù)進(jìn)行評分預(yù)測,選擇top-N方法推薦評分靠前的商品。為了驗(yàn)證模型的有效性,在淘寶數(shù)據(jù)集上進(jìn)行了對比實(shí)驗(yàn)。相較于基準(zhǔn)模型,提出的模型在命中率、平均倒數(shù)排名兩個(gè)指標(biāo)上都明顯優(yōu)于基準(zhǔn)模型。
基于序列的推薦的目的是對用戶的偏好進(jìn)行建模,并根據(jù)觀察到的用戶的歷史行為,以基于序列的方式預(yù)測用戶未來的行為,如下次點(diǎn)擊或購買。在早期的工作中,使用基于馬爾可夫鏈(MC)的模型進(jìn)行序列推薦?;隈R爾可夫鏈的模型是基于之前的行為學(xué)習(xí)轉(zhuǎn)移矩陣進(jìn)行推薦。Rendle等[10]提出的分解個(gè)性化馬爾可夫鏈(FPMC)將轉(zhuǎn)移矩陣分解為兩個(gè)潛在的和低秩的子矩陣,以此提高推薦的準(zhǔn)確率。Mcauley等[11]提出了基于物品相似模型的分解序列預(yù)測方法,對已有物品的潛在表示進(jìn)行加權(quán)和聚合,將基于馬爾可夫鏈的方法推廣到高階。最近,神經(jīng)網(wǎng)絡(luò)在序列建模中也取得了不錯(cuò)的效果,王娜等[12]利用深度神經(jīng)網(wǎng)絡(luò)詞向量模型分析用戶播放視頻行為序列,提取視頻的特征向量,對歷史視頻進(jìn)行聚類計(jì)算相似度,得到視頻推薦結(jié)果。葛堯等[13]使用圖卷積網(wǎng)絡(luò)(Graph Convolution Network,GCN),同時(shí)利用用戶與項(xiàng)目之間的異質(zhì)頂點(diǎn)交互信息和同質(zhì)頂點(diǎn)交互信息,挖掘交互圖譜中的連接信息。但這些研究沒有很好地考慮到歷史行為序列中隱藏的用戶動(dòng)態(tài)偏好,因此,該文分別建模用戶的長短期興趣,在項(xiàng)目匹配階段獲得更準(zhǔn)確的結(jié)果。
用戶的興趣會隨著時(shí)間的改變動(dòng)態(tài)變化。通常來說,用戶興趣可以分為易變的短期興趣和穩(wěn)定的長期興趣。在某個(gè)時(shí)間段內(nèi),短期興趣與用戶的當(dāng)前選擇有著密切的聯(lián)系,用戶興趣中穩(wěn)定的長期興趣也反映了用戶在過去較長時(shí)間的總體偏好。實(shí)際上,用戶的長短期興趣僅代表了不同上下文環(huán)境下用戶關(guān)注點(diǎn)的偏移,分別建模長短期興趣能夠利用不同類型的用戶輸入,獲取更全面的用戶興趣。因此,如何提取用戶的長短期興趣并將其有效地融合是研究的重點(diǎn)。蔣武軒等[14]采用時(shí)間窗口的方法挖掘用戶短期興趣,利用遺忘曲線跟蹤用戶長期興趣變化,在此基礎(chǔ)上對用戶進(jìn)行聚類,根據(jù)聚類結(jié)果為用戶推薦興趣相似用戶。為了在建模時(shí)取得更好的效果,許多研究者在開發(fā)推薦模型時(shí)引入了具有強(qiáng)大表征能力的深度神經(jīng)網(wǎng)絡(luò)。Hu L等人[15]提出了一個(gè)異質(zhì)圖神經(jīng)網(wǎng)絡(luò)編碼用戶、新聞和主題之間的高階關(guān)系,同時(shí)設(shè)計(jì)了一個(gè)融合注意力的LSTM模型基于最近的閱讀歷史來建模用戶的短期興趣。馮永等[16]利用攜帶歷史元素的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和基于前饋神經(jīng)網(wǎng)絡(luò)(FNN)的協(xié)調(diào)過濾模型分別建模用戶的長短期興趣進(jìn)行動(dòng)態(tài)推薦。Ma C等[17]提出了一種內(nèi)存增強(qiáng)圖神經(jīng)網(wǎng)絡(luò)MA-GNN,利用圖神經(jīng)網(wǎng)絡(luò)對短期項(xiàng)目進(jìn)行建模,然后使用共享內(nèi)存網(wǎng)絡(luò)捕捉項(xiàng)目之間的長期依賴關(guān)系,同時(shí)采用雙線性函數(shù)來捕獲相關(guān)項(xiàng)目的共現(xiàn)模式。Qi等[18]設(shè)計(jì)了一個(gè)新的模型,在用戶行為序列長度增加的情況下建模用戶的長期興趣,首先利用候選商品查詢相關(guān)行為序列,然后建模相關(guān)序列和候選商品的準(zhǔn)確關(guān)系。
上述研究考慮到了最新的項(xiàng)目比以往的項(xiàng)目對用戶當(dāng)前行為具有更大的影響,但無法很好地建模用戶在短期內(nèi)劇烈變化的偏好特征,并忽略了用戶在購買商品時(shí)會綜合考慮許多不同的因素。因此,該文提出了SPRTI模型,通過改進(jìn)的GRU模型融合注意力機(jī)制捕捉更符合用戶偏好的會話意圖,使預(yù)測結(jié)果更符合用戶當(dāng)前的購買需求。
用戶在使用在線購物服務(wù)時(shí),對項(xiàng)目進(jìn)行的各種點(diǎn)擊、購買、收藏等交互行為構(gòu)成了用戶歷史行為序列,歷史行為序列中包含了用戶在購買時(shí)的上下文信息,隱含了用戶在某一時(shí)間點(diǎn)的興趣及其變化過程。SPRTI模型根據(jù)用戶的歷史行為序列,分別提取用戶的長短期興趣特征,預(yù)測用戶對項(xiàng)目的評分生成推薦結(jié)果。模型框架如圖1所示,具體分為三部分:第一部分為短期興趣建模,首先通過一定的規(guī)則將歷史行為序列劃分為不同的會話,并使用會話內(nèi)項(xiàng)目的Embedding特征向量來表示會話,其中將最新會話視為用戶的短期行為,提取短期興趣,在GRU結(jié)構(gòu)中加入時(shí)間門單獨(dú)處理用戶不同行為之間的時(shí)間間隔,同時(shí)加入多頭自注意力機(jī)制獲取用戶意圖背后多個(gè)不同的關(guān)注點(diǎn);第二部分為長期興趣建模,將用戶的歷史會話序列視為長期行為,使用DeepFM模型進(jìn)行處理;第三部分為評分預(yù)測,通過自適應(yīng)門控單元結(jié)合用戶的長短期興趣,根據(jù)融合后的用戶長短期興趣向量與目標(biāo)項(xiàng)目向量預(yù)測候選項(xiàng)目的評分,選擇topN項(xiàng)進(jìn)行推薦。下面對模型中核心環(huán)節(jié)分別進(jìn)行詳細(xì)描述。
圖1 SPRTI模型整體架構(gòu)
在實(shí)際的購物場景中,用戶的行為序列中隱含著用戶興趣,對行為序列的建模也能反映出用戶興趣的動(dòng)態(tài)變化。用戶的各種決策行為不僅與當(dāng)前的興趣有關(guān),也與用戶的歷史興趣有關(guān),并且通常認(rèn)為用戶在短期會話內(nèi)的興趣會對當(dāng)前決策產(chǎn)生更大的貢獻(xiàn)。傳統(tǒng)的基于序列的推薦通常采用基于統(tǒng)計(jì)學(xué)的方法建模依賴關(guān)系,缺乏復(fù)雜環(huán)境下的建模能力。
考慮到循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)在處理序列時(shí)能夠保留前項(xiàng)的歷史信息,在處理序列數(shù)據(jù)時(shí)能起到更好的效果,該文采用門控循環(huán)單元(GRU)建模短期行為。GRU網(wǎng)絡(luò)包括更新門和重置門,具體計(jì)算過程如公式(1)~公式(4)所示[7]。
zt=σ(xtUz+ht-1Wz)
(1)
rt=σ(xtUr+ht-1Wr)
(2)
ht=tanh(xtUh+(st-1⊙rt)Wh)
(3)
st=(1-zt)⊙st-1+zt⊙ht
(4)
其中,σ表示sigmoid激活函數(shù),zt為更新門,rt為重置門,⊙表示向量的點(diǎn)積,xt表示GRU網(wǎng)絡(luò)的輸入,表示用戶在t時(shí)刻歷史行為序列的嵌入向量,ht為當(dāng)前時(shí)刻的候選隱藏狀態(tài),最后輸出st代表用戶t時(shí)刻的偏好狀態(tài)。
但在建模序列的過程中,傳統(tǒng)的RNN模型及其變體通常將用戶行為序列中的項(xiàng)目視為均勻分布的順序序列,忽略了在實(shí)際購物場景中,用戶的不同交互行為之間存在著不同的時(shí)間間隔,短時(shí)間內(nèi)用戶的交互可能代表了相同的購買意向,經(jīng)過比較大的時(shí)間間隔后用戶的興趣可能已經(jīng)發(fā)生了轉(zhuǎn)移,這些時(shí)間信息對于建模用戶的動(dòng)態(tài)興趣也是十分重要的。為了解決這一問題,該文在GRU模型中加入時(shí)間門單獨(dú)存儲時(shí)間間隔信息,對于模型的影響,使用改進(jìn)后的GRU模型建模短期行為來捕獲短期序列中的全局時(shí)間關(guān)聯(lián)性。融合時(shí)間信息的門控單元網(wǎng)絡(luò)如圖2所示,時(shí)間門控單元以及改進(jìn)后的隱藏狀態(tài)計(jì)算過程如公式(5)~公式(7)所示。
圖2 融合時(shí)間間隔的門控循環(huán)單元結(jié)構(gòu)
Tm=σ(xtUt+σ(ΔtWt)+b)
(5)
ht=tanh(xtUh+(st-1⊙rt⊙Tm)Wh)
(6)
st=(1-zt)⊙st-1+zt⊙ht
(7)
其中,Δt為歷史行為與當(dāng)前時(shí)刻的時(shí)間間隔,Wt,Wh∈Rnh且Wt≤0,Tm表示時(shí)間門,用于存儲時(shí)間間隔對模型造成的影響。顯然,公式(5)為單調(diào)遞減函數(shù),隨著時(shí)間間隔的增大,函數(shù)值會減小,這就保證時(shí)間間隔較小時(shí)Tm輸出比較大的值,時(shí)間間隔較大時(shí)Tm輸出比較小的值,為更近的歷史行為賦予了更大的權(quán)重。
一般來說,用戶在單個(gè)會話內(nèi)的興趣較為穩(wěn)定,不同會話之間的興趣漂移比較明顯。但是即使是在同一個(gè)會話內(nèi),也可能會產(chǎn)生用戶興趣漂移,比如用戶在一段時(shí)間內(nèi)對衣服感興趣,另一段時(shí)間可能又對日用品感興趣,而這兩種項(xiàng)目類型所代表的用戶興趣是完全不同的,且不同的歷史興趣對于當(dāng)前意圖的影響也是完全不同的。因此,要想從用戶的行為中更精準(zhǔn)地捕捉相對隨機(jī)且無序的用戶興趣,除了考慮用戶行為隨時(shí)間演化的變化規(guī)律,捕捉項(xiàng)目之間存在的意圖距離也能有效地從復(fù)雜的綜合序列中提取與用戶當(dāng)前需求相關(guān)的用戶興趣。除此之外,在實(shí)際購物場景中,用戶通常會隨機(jī)點(diǎn)擊一些與當(dāng)前會話內(nèi)興趣無關(guān)的商品,這些隨機(jī)點(diǎn)擊的商品在一定程度上也會影響對短期興趣的建模。
該文采用自注意力機(jī)制調(diào)整每個(gè)分量的權(quán)重,決定哪些歷史即時(shí)興趣應(yīng)該被重點(diǎn)關(guān)注,同時(shí)降低隨機(jī)點(diǎn)擊造成的影響??紤]到用戶的點(diǎn)擊行為背后可能會包含不同的興趣點(diǎn),如商品的價(jià)格、品牌、店鋪等,單一的注意力機(jī)制無法對多個(gè)方面進(jìn)行表征,因此,該文引入多頭自注意力機(jī)制[8],更好地建模短期序列,并盡可能保留與用戶興趣相關(guān)的點(diǎn)擊。
多頭自注意力網(wǎng)絡(luò)對原始的Q、K、V矩陣進(jìn)行線性變換,分成不同的注意頭,每個(gè)head單獨(dú)進(jìn)行點(diǎn)積操作,得到的結(jié)果拼接后進(jìn)行線性變換,獲得最終輸出。計(jì)算過程如公式(8)~公式(9)所示[19]。
(8)
(9)
(10)
則注意頭的計(jì)算可以通過公式(11)實(shí)現(xiàn):
(11)
針對不同的用戶,每個(gè)會話中的即時(shí)興趣序列對用戶短期興趣的貢獻(xiàn)也不盡相同,因此在自注意力網(wǎng)絡(luò)的基礎(chǔ)上,使用用戶的嵌入向量作為查詢向量來進(jìn)一步挖掘用戶的短期興趣表示。計(jì)算過程如公式(12)~公式(13)所示。
(12)
(13)
其中,eu為用戶的嵌入表示,αk為權(quán)重分?jǐn)?shù),pshort為用戶的短期興趣表示。
在較短的用戶行為周期序列中,用戶的興趣會發(fā)生劇烈的變化,所以基于短期偏好的推薦效果比較明顯。但從長遠(yuǎn)來看,用戶長久以來的穩(wěn)定偏好也會影響當(dāng)前的決策。例如,如果一個(gè)用戶是游戲愛好者,他可能會點(diǎn)擊或者購買大量主機(jī)游戲相關(guān)條目。當(dāng)他選擇購買電腦時(shí),高性能的游戲本會比普通的輕薄筆記本更吸引他。因此,該文將歷史會話序列視為用戶的長期行為,采用DeepFM模型提取用戶穩(wěn)定的長期興趣。
如圖3所示,DeepFM模型分為FM和Deep兩部分,F(xiàn)M層可以抽取低維特征,Deep層抽取學(xué)習(xí)高維特征,而這兩部分的分量共享相同的原始特征向量。因此DeepFM模型能夠結(jié)合廣度和深度模型的優(yōu)點(diǎn),同時(shí)學(xué)習(xí)到各階特征之間的組合關(guān)系。
圖3 DeepFM架構(gòu)
首先,將用戶的長期行為序列經(jīng)過嵌入層得到低維稠密向量,將稠密向量進(jìn)行橫向拼接,作為FM層和Deep層的輸入。
FM層即因子分解機(jī),不僅可以建模1階特征,還可以通過隱向量點(diǎn)積的方法高效地獲得2階特征交互。Deep層為前饋神經(jīng)網(wǎng)絡(luò),通過幾層全連接計(jì)算學(xué)習(xí)高階交互表述,DeepFM的計(jì)算過程如公式(14)~公式(16)所示[9]:
(14)
al+1=σ(Wlal+bl)
(15)
LDNN=σ(W|H|+1·aH+bH+1)
(16)
其中,Vi為特征i的潛在向量,F(xiàn)M層的輸出分為一階計(jì)算和二階計(jì)算兩部分,一階計(jì)算為原始特征的線性交互,二階計(jì)算部分對經(jīng)過embedding的結(jié)果做二階交叉計(jì)算。al為前饋神經(jīng)網(wǎng)絡(luò)的第l層輸出結(jié)果,經(jīng)過H個(gè)隱藏層,得到Deep部分的預(yù)測結(jié)果LDNN。
將FM部分的結(jié)果和Deep部分的結(jié)果累加,之后再經(jīng)過sigmoid非線性轉(zhuǎn)換,得到用戶的長期興趣表示,如公式(17)所示[9]。
plong=sigmoid(LFM+LDNN)
(17)
基于上述兩種神經(jīng)網(wǎng)絡(luò)得到了用戶的短期興趣表征和長期興趣表征,在實(shí)際推薦中,長期興趣和短期興趣對用戶當(dāng)前需求的影響會隨著不同的環(huán)境因素發(fā)生變化。一些推薦方法通過時(shí)間衰減函數(shù)控制這兩種表征對用戶興趣的貢獻(xiàn)程度,但這種方法會導(dǎo)致短期興趣的影響遠(yuǎn)遠(yuǎn)大于長期興趣,從而造成推薦結(jié)果的同質(zhì)性。為了更好地表征用戶的興趣向量,該文通過一個(gè)自適應(yīng)的門控網(wǎng)絡(luò)將這兩種表征進(jìn)行結(jié)合,門控單元Gt用于控制在當(dāng)前時(shí)間t下長短期興趣的貢獻(xiàn)度。如公式(18)~公式(19)所示[20]:
Gt=sigmoid(W1eu+W2pshort+W3plong+b)
(18)
pu=(1-Gt)⊙plong+Gt⊙pshort
(19)
其中,eu為用戶的嵌入表示,plong和pshort分別為用戶的長期興趣和短期興趣,W為權(quán)重矩陣,⊙為元素的點(diǎn)積操作,pu為最終的用戶長短期興趣向量表示。
根據(jù)融合后的用戶長短期興趣向量與目標(biāo)項(xiàng)目向量預(yù)測候選項(xiàng)目的評分,選擇topN項(xiàng)進(jìn)行推薦,如公式(20)所示。
(20)
其中,ei為目標(biāo)項(xiàng)目的嵌入向量表征。
該文將評分?jǐn)?shù)據(jù)采用交叉熵?fù)p失函數(shù)作為目標(biāo)函數(shù)進(jìn)行訓(xùn)練,通過隨機(jī)梯度下降算法(SGD)優(yōu)化目標(biāo)函數(shù)直至收斂,如公式(21)所示。
(21)
其中,N為訓(xùn)練集的樣本數(shù)量,K為抽樣實(shí)例集,包括正負(fù)樣本,σ為sigmoid函數(shù),將預(yù)測評分轉(zhuǎn)換為相應(yīng)概率,λ為正則項(xiàng)參數(shù)。
為了驗(yàn)證模型的準(zhǔn)確性,選取采集自淘寶App的用戶點(diǎn)擊購買行為數(shù)據(jù)集進(jìn)行了對比實(shí)驗(yàn)。數(shù)據(jù)集中包含了一個(gè)月時(shí)間內(nèi)來自50萬個(gè)用戶與商品的交互記錄,用戶-商品交互記錄為用戶ID、項(xiàng)目ID、交互類型和時(shí)間戳組成的四元組,其中交互類型包括點(diǎn)擊、收藏、加購物車和購買。參照前人的工作經(jīng)驗(yàn)[21],在數(shù)據(jù)集中根據(jù)歷史行為數(shù)量與交互頻率選取了連續(xù)8天內(nèi)與超過40個(gè)項(xiàng)目進(jìn)行交互的活躍用戶。對于每個(gè)用戶,將其前7天的交互數(shù)據(jù)作為訓(xùn)練用例,第8天的交互數(shù)據(jù)作為測試用例,以最大不超過20的會話長度將歷史行為序列劃分為多個(gè)不同的會話,其中用戶的每一次最新會話視為短期行為,在此之前的所有行為視為長期行為。訓(xùn)練集與測試集的統(tǒng)計(jì)信息如表1所示。
表1 數(shù)據(jù)集的基本統(tǒng)計(jì)信息
為了驗(yàn)證模型的有效性,選取Item-based CF、RNN、DNN和BINN模型進(jìn)行了對比實(shí)驗(yàn),模型介紹如下。
(1)Item-based CF[1]:基于項(xiàng)目的協(xié)同過濾算法,最主要的推薦算法之一,通過生成商品-商品相似度矩陣進(jìn)行推薦。
(2)RNN[3]:基于循環(huán)神經(jīng)網(wǎng)絡(luò)的推薦算法,利用RNN網(wǎng)絡(luò)對順序序列進(jìn)行建模。
(3)DNN[5]:基于深度神經(jīng)網(wǎng)絡(luò)的YouTube視頻推薦算法,將視頻向量與用戶向量連接后反饋給多層前饋神經(jīng)網(wǎng)絡(luò)生成推薦列表。
(4)BINN[4]:采用基于RNN的方法對當(dāng)前消費(fèi)動(dòng)機(jī)和歷史行為進(jìn)行編碼,同時(shí)加入了時(shí)間刻度信息。
(5)SPRTI:融合時(shí)間信息的序列商品推薦模型,即該文提出的模型。
為了評估提出的模型的有效性,使用命中率HR@K(HitRate)和平均倒數(shù)排名MRR(Mean Reciprocal Rank)這兩個(gè)評價(jià)指標(biāo)進(jìn)行測試。在模型返回的推薦列表中,選取評分最高的前K個(gè)項(xiàng)目作為最終的推薦結(jié)果推薦給用戶。
HR@K代表測試結(jié)果中被正確推薦的項(xiàng)目在列表前K位的比例,關(guān)心的是是否正確推薦了用戶想要的項(xiàng)目,即推薦的準(zhǔn)確性。MRR@K主要關(guān)心推薦結(jié)果對于用戶是否顯眼,MRR通過對推薦列表內(nèi)項(xiàng)目排名的倒數(shù)取平均值來評價(jià)推薦順序的質(zhì)量,這兩個(gè)指標(biāo)的定義如公式(22)~公式(23)所示:
(22)
(23)
其中,N表示測試項(xiàng)目的數(shù)目,nhit為推薦列表中推薦正確的商品數(shù)量,ranki表示項(xiàng)目在推薦列表中的排名。HR@K和MRR@K的值越大,代表模型的推薦質(zhì)量越高。
在訓(xùn)練的過程中,采用學(xué)習(xí)率為0.001的Adam優(yōu)化器進(jìn)行優(yōu)化,超參數(shù)的設(shè)置根據(jù)驗(yàn)證集進(jìn)行調(diào)整,對比模型采用對應(yīng)論文中的默認(rèn)參數(shù),根據(jù)相關(guān)實(shí)驗(yàn)結(jié)果設(shè)置多頭注意力機(jī)制的頭數(shù)為4。在K取值為5、10、15、20下進(jìn)行了對比實(shí)驗(yàn),不同的模型在數(shù)據(jù)集下的實(shí)驗(yàn)結(jié)果如表2和表3所示,SPRTI模型在不同K值下的命中率和平均倒數(shù)排名指標(biāo)均取得了更好的效果。
表2 各個(gè)算法在淘寶數(shù)據(jù)集上命中率對比
表3 各個(gè)算法在淘寶數(shù)據(jù)集上平均倒數(shù)排名對比
其中,傳統(tǒng)的協(xié)同過濾算法無法建模用戶行為序列,推薦效果并不理想,其他基于深度學(xué)習(xí)的方法能夠建模更加深層次的特征,在處理序列時(shí)表現(xiàn)明顯優(yōu)于傳統(tǒng)的推薦算法。相較于傳統(tǒng)的RNN和DNN模型,BINN模型同時(shí)考慮了用戶長短期興趣的演化,取得了更好的效果。由此可以看出,細(xì)分用戶的長短期興趣能夠?qū)τ脩舻膭?dòng)態(tài)興趣進(jìn)行更精準(zhǔn)地建模,使推薦結(jié)果更加符合用戶偏好。但由于BINN模型在提取短期興趣時(shí),使用的還是傳統(tǒng)的RNN結(jié)構(gòu),未能建模用戶在不同時(shí)刻下更精準(zhǔn)的興趣轉(zhuǎn)變,因此最終的推薦性能不如提出的SPRTI模型。
在淘寶數(shù)據(jù)集中,用戶在會話內(nèi)的交互行為十分頻繁,會話間的行為聯(lián)系緊密。頻繁的交互行為使得基于循環(huán)神經(jīng)網(wǎng)絡(luò)的模型結(jié)構(gòu)無法區(qū)分短期時(shí)間內(nèi)用戶劇烈的興趣變化,而提出的SPRTI模型能夠根據(jù)兩次不同交互行為之間的時(shí)間間隔確定用戶的購買意圖是否已經(jīng)發(fā)生了轉(zhuǎn)變,從而建模更加準(zhǔn)確的短期興趣表示,因此取得了更好的推薦效果。相較于其他對比模型,SPRTI模型在不同K值下的命中率和平均倒數(shù)排名指標(biāo)中都取得了最好的效果,可以看到當(dāng)推薦列表長度為15時(shí),在命中率指標(biāo)上SPRTI模型較BINN模型提升得最高,達(dá)到了8百分點(diǎn);推薦列表長度為20時(shí)在平均倒數(shù)排名指標(biāo)上,SPRTI模型較BINN模型有最高提升,達(dá)到了5百分點(diǎn)。
在SPRTI模型中,多頭自注意力機(jī)制使得短期內(nèi)用戶的興趣表示更加準(zhǔn)確。為了探明注意力頭數(shù)對模型性能的影響,在淘寶數(shù)據(jù)集上進(jìn)行了驗(yàn)證,采用命中率HR和平均到數(shù)排名MRR這兩個(gè)評價(jià)指標(biāo),實(shí)驗(yàn)設(shè)置中只有SPRTI模型注意力頭的數(shù)量不同,其他參數(shù)保持一致,實(shí)驗(yàn)結(jié)果如圖4所示。從圖4中可以看到,開始時(shí)隨著注意力頭數(shù)的增加,模型在HR和MRR這兩個(gè)指標(biāo)上的表現(xiàn)也越來越好,而當(dāng)注意力頭數(shù)超過4時(shí),模型的性能并沒有隨著注意力頭數(shù)量的增加而提高,可能是由于每個(gè)注意力頭內(nèi)的向量維度過小而導(dǎo)致了性能下降。因此在對比實(shí)驗(yàn)中設(shè)置多頭自注意力機(jī)制的注意力頭數(shù)為4,由此取得最好的效果。
圖4 SPRTI模型在不同注意力頭數(shù)下的結(jié)果
該文提出了一個(gè)融合時(shí)間信息的序列商品推薦模型,通過結(jié)合長短期興趣來捕捉用戶的動(dòng)態(tài)偏好。首先,將用戶行為序列劃分為不同的會話,并將最新會話視為用戶的短期行為,其余歷史會話視為用戶的長期行為;然后,利用融合時(shí)間間隔信息的GRU模型和多頭自注意力機(jī)制提取用戶的短期興趣,同時(shí)采用DeepFM模型建模用戶的長期興趣;最后,利用自適應(yīng)門控單元融合用戶的動(dòng)態(tài)偏好。在淘寶數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,模型在命中率和平均倒數(shù)排名上較其他主流推薦模型取得了比較突出的效果,證明了該模型的有效性。