冼海鋒,沈 韜,曾 凱
(昆明理工大學(xué) 信息工程與自動化學(xué)院,昆明 650500)
(昆明理工大學(xué) 云南省計(jì)算機(jī)技術(shù)應(yīng)用重點(diǎn)實(shí)驗(yàn)室,昆明 650500)
E-mail:xianhaifeng@stu.kust.edu.cn
現(xiàn)如今無論是與我們生活密切相關(guān)的電商應(yīng)用,還是當(dāng)下正大熱的短視頻應(yīng)用,他們流行的背后是運(yùn)用了推薦系統(tǒng).目前用戶在使用這些應(yīng)用時產(chǎn)生大量的隱反饋[1]行為(例如瀏覽、點(diǎn)擊、收藏、加入購物車、分享等行為),但傳統(tǒng)協(xié)同過濾[2,3]算法利用這些數(shù)據(jù)存在缺陷,所以序列推薦就成為使得這些數(shù)據(jù)價值最大化的關(guān)鍵技術(shù).
序列推薦為了捕獲用戶的動態(tài)偏好,通常做法是對過去一段時間內(nèi)用戶與項(xiàng)目交互的序列進(jìn)行建模.如傳統(tǒng)序列推薦中的馬爾科夫鏈模型就是其中的典型應(yīng)用.馬爾科夫鏈將從序列建模中所捕獲到的信息用于下一交互預(yù)測,但是馬爾科夫鏈模型[4]存在一個明顯的弊端,即是它認(rèn)為當(dāng)前的交互喜好僅僅與用戶最近的一個或者幾個交互行為有關(guān).其中一階馬爾科夫鏈模型認(rèn)為用戶當(dāng)前的偏好僅僅與用戶最后一次的序列行為有關(guān),而高階馬爾科夫鏈模型[5]假設(shè)用戶當(dāng)前的交互偏好與用戶最近幾次的序列行為相關(guān).只能捕捉用戶近期偏好,而忽略了用戶長期偏好是低階馬爾科夫鏈和高階馬爾科夫鏈模型的共同問題.另一種比較常用的序列推薦模型就是基于分解機(jī)[6]的方法,它主要是把用戶-項(xiàng)目之間的交互編碼成兩個對應(yīng)的低維度矩陣.此外Wang等人[7,8]的工作也是利用了概率矩陣分解推薦算法,解決了傳統(tǒng)矩陣分解存在的數(shù)據(jù)稀疏問題.貝葉斯個性化排序(BPR-MF)[9]模型方法通過隨機(jī)梯度下降來優(yōu)化pairwise目標(biāo)函數(shù),很好地捕獲到了用戶的偏好.最具代表性的基準(zhǔn)算法FPMC[10]可以很好地為下一物品實(shí)現(xiàn)推薦預(yù)測,因?yàn)槠浼婢吡笋R爾科夫鏈模型與基于矩陣分解模型的優(yōu)點(diǎn).基于矩陣分解的算法模型存在的弊端是它們往往是針對低階的用戶-項(xiàng)目交互進(jìn)行建模的,并沒有考慮捕獲高階交互的轉(zhuǎn)換模式.
隨后在推薦系統(tǒng)領(lǐng)域,深度學(xué)習(xí)技術(shù)得到研究者們的大力追捧,無論在工業(yè)界還是學(xué)術(shù)界都占據(jù)了極為重要的地位.循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是最早被應(yīng)用于序列推薦系統(tǒng)的深度學(xué)習(xí)技術(shù)之一.相比于傳統(tǒng)的序列推薦技術(shù),基于RNN的序列推薦在處理一個會話內(nèi)的序列數(shù)據(jù)時,精準(zhǔn)建模交互序列的項(xiàng)目間依賴關(guān)系,Hidasi等人[11]的工作就是其中的典型.由于傳統(tǒng)序列推薦模型和基于循環(huán)神經(jīng)網(wǎng)絡(luò)的序列推薦技術(shù)存在只能建模用戶-項(xiàng)目交互序列當(dāng)中的點(diǎn)依賴關(guān)系問題,為此Tang等人[12]率先在序列推薦領(lǐng)域引用卷積神經(jīng)網(wǎng)絡(luò)來建模用戶-項(xiàng)目交互序列中的跳過關(guān)系以及項(xiàng)目間的聯(lián)合關(guān)系.另外一個在序列推薦中比較熱門的深度學(xué)習(xí)技術(shù)是注意力機(jī)制,它可以在一定程度上解決傳統(tǒng)序列推薦、基于CNN的序列推薦存在的交互序列有噪音的情況.
當(dāng)前,傳統(tǒng)序列推薦方法和基于深度學(xué)習(xí)的序列推薦方法存在著以下兩點(diǎn)問題:
1)已有方法中大多只考慮項(xiàng)目ID的影響,而忽略了其他特征的影響,如用戶與項(xiàng)目上下文信息特征,即還沒有考慮到用戶行為上下文信息或者項(xiàng)目上下文信息.
2)現(xiàn)有一些研究方法在建模時通常是假設(shè)相鄰之間的項(xiàng)目存在關(guān)系,但是交互序列中相鄰的項(xiàng)目不一定存在關(guān)系,從而存在著不能建模非相鄰項(xiàng)目之間關(guān)系問題.
為解決以上問題,本文提出一種并行結(jié)構(gòu)的混合神經(jīng)網(wǎng)絡(luò)模型,其并行結(jié)構(gòu)由卷積神經(jīng)網(wǎng)絡(luò)與自注意力機(jī)制構(gòu)成.主要貢獻(xiàn)如下:
1)本文提出了融合項(xiàng)目與用戶上下文信息的混合神經(jīng)網(wǎng)絡(luò)模型,該網(wǎng)絡(luò)模型包含了以下模塊,分別為嵌入編碼層、卷積神經(jīng)網(wǎng)絡(luò)模塊和自注意力機(jī)制模塊.本文方法實(shí)現(xiàn)了同時建模用戶動態(tài)偏好以及用戶與項(xiàng)目交互的上下文信息,解決了當(dāng)前已有研究方法忽略了上下文信息特征影響的問題.
2)本文方法中卷積神經(jīng)網(wǎng)絡(luò)模塊結(jié)合pairse編碼方法,該方法將用戶與項(xiàng)目交互序列中的任意兩個項(xiàng)目成對編碼成張量.最后提取張量特征的工作由卷積神經(jīng)網(wǎng)絡(luò)完成.所以本文方法可以學(xué)習(xí)到交互序列的項(xiàng)目之間關(guān)系,這解決了現(xiàn)存研究方法不能建模交互序列中非相鄰項(xiàng)目的問題.
3)在Movielens-1m與Tmall數(shù)據(jù)集上,本文分別建立了實(shí)驗(yàn).結(jié)果表明本文方法比基準(zhǔn)方法Caser[12]、CosRec[13]在Prec@5、Recall@5、MAP、NDCG@5、HR@5等推薦評價指標(biāo)上都要好.本文方法在Movielens-1m數(shù)據(jù)集上MAP獲得了6.5%的提升,Precision@5提高了3.5%,Recall@5提升了7.8%,F(xiàn)1@5提升了7.1%.Tmall數(shù)據(jù)集上,本文方法在MAP提高了3.2%,Precision@5提高了2.8%,Recall@5提升了3.3%,F(xiàn)1@5提升了3.1%.
卷積神經(jīng)網(wǎng)絡(luò)將用戶與項(xiàng)目交互序列當(dāng)作“圖像”,通過卷積層提取這些“圖像”的特征.這些學(xué)習(xí)到的局部特征再被用于后續(xù)的序列推薦.與循環(huán)神經(jīng)網(wǎng)絡(luò)相比,卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)勢在于其不需要像基于循環(huán)神經(jīng)網(wǎng)絡(luò)序列推薦中的交互序列相鄰物品必須相互獨(dú)立的假設(shè).但基于卷積神經(jīng)網(wǎng)絡(luò)的序列推薦缺點(diǎn)是不能學(xué)習(xí)到用戶的長期偏好,這是由卷積濾波器大小限制決定的.
Tang等人的研究工作在基于卷積神經(jīng)網(wǎng)絡(luò)序列推薦中開啟了一個新的研究點(diǎn).他們的創(chuàng)新點(diǎn)是將用戶近期的行為序列視作“圖像”,然后采用垂直和水平卷積層提取其特征.這在一定程度上解決了Top-N序列推薦模型問題.Yuan等人[14]針對Tang等人研究工作還因卷積網(wǎng)絡(luò)結(jié)構(gòu)簡單存在著不能建模復(fù)雜關(guān)系與長期依賴問題,引入了一種簡單但十分有效的卷積生成網(wǎng)絡(luò)模型.該模型是由帶1D膨脹卷積的掩碼濾波器和剩余塊組成的,能夠同時從短期和長期項(xiàng)目依賴中學(xué)習(xí)高階表征.此外Yan等人也針對Tang等人的研究工作進(jìn)行了更進(jìn)一步的研究,提出了基于2D卷積神經(jīng)網(wǎng)絡(luò)序列推薦模型.這個模型框架的工作大體流程是先把項(xiàng)目的序列編碼成一個三維張量,通過2D卷積從張量中學(xué)習(xí)局部特征,最后再以前向傳播的方式匯聚成高階交互.
由于注意力機(jī)制具有學(xué)習(xí)不同東西之間權(quán)重的特點(diǎn),因而在序列推薦中被用于學(xué)習(xí)交互序列中不同項(xiàng)目對用戶的重要程度關(guān)系,從而實(shí)現(xiàn)更切合實(shí)際的下一可能交互項(xiàng)目推薦.而Kang和McAuley等人[15]為了解決馬爾科夫鏈模型存在的在密集數(shù)據(jù)集性能不太好和RNN模型在稀疏數(shù)據(jù)集推薦性能不好的問題,提出了一個在稀疏數(shù)據(jù)集和密集數(shù)據(jù)集表現(xiàn)性能都不錯的自注意力序列推薦模型.該模型可以在每個時間步中對之前的項(xiàng)目自適應(yīng)地分配權(quán)重,通過這樣的方式自注意力序列推薦模型一方面可以像RNN那樣從整個序列行為中捕獲序列信息的長期依賴.同時另一方面也可以像MC那樣只是根據(jù)之前的一小部分項(xiàng)目行為來生成預(yù)測.簡而言之,自注意力序列推薦模型同時兼具了RNN和MC的優(yōu)點(diǎn).但有些研究工作僅考慮了項(xiàng)目級別上轉(zhuǎn)換模式,忽略了項(xiàng)目特征級別轉(zhuǎn)換模式的影響.因此Zhang等人[16]在他們的研究工作基礎(chǔ)上,提出項(xiàng)目特征級別的深層注意力網(wǎng)絡(luò)(FDSA)模型.具體來說,F(xiàn)DSA這個改進(jìn)模型先是通過香草注意機(jī)制用不同的權(quán)重把項(xiàng)目的各種異構(gòu)特征整合到一個特征空間.在這之后,F(xiàn)DSA分別對項(xiàng)目級別序列和特征級別的序列應(yīng)用自注意力機(jī)制.這一步主要是為了捕獲項(xiàng)目級別和特征級別的轉(zhuǎn)換模式.最后將上述兩個級別的輸出輸入到全連接層用于生成推薦.
Wang等人[17]提出的雙重最相關(guān)注意網(wǎng)絡(luò)也是分成了項(xiàng)目級別和特征級別.不過他們先是把連續(xù)的時間特征信號編碼成離散特征,然后分別實(shí)現(xiàn)項(xiàng)目級別注意和特征級別自注意.他們是通過項(xiàng)目級別注意把不相關(guān)的項(xiàng)目過濾掉,從而減小序列大小.而通過特征級別的自注意力網(wǎng)絡(luò)可以學(xué)習(xí)到項(xiàng)目不同特征的權(quán)重,這對精準(zhǔn)建模用戶偏好起了至關(guān)重要的作用.當(dāng)然自注意力網(wǎng)絡(luò)的作用遠(yuǎn)不止于此,如有些研究工作[18]提出的多階注意排序模型.該模型同時把單個級別的和聯(lián)合級別的項(xiàng)目交互整合到偏好引用,這可以把通用的和序列模式聯(lián)合起來生成推薦.還有一些研究工作[19]也是利用自注意力網(wǎng)絡(luò),但他們主張將用戶交互序列視為有不同時間間隔的序列,而且不同時間間隔對于預(yù)測下一項(xiàng)目的影響是不一樣的.因此他們展開了基于時間感知自注意力機(jī)制的推薦模型研究工作.該研究工作不僅考慮到了自注意力網(wǎng)絡(luò)序列推薦模型中項(xiàng)目的絕對位置,還兼顧了項(xiàng)目之間的相對時間間隔,這就很好地用來預(yù)測用戶后續(xù)可能的交互項(xiàng)目.
但是以上提及的這些模型方法都存在著問題.
首先現(xiàn)有工作在構(gòu)建模型并沒有考慮到項(xiàng)目與用戶行為上下文信息的影響.
其次現(xiàn)有方法大多存在著沒有充分利用用戶與項(xiàng)目交互序列中非相鄰項(xiàng)目之間的關(guān)系問題.
最后為了解決現(xiàn)存工作所存在的問題,本文提出了一種融合上下文信息的混合神經(jīng)網(wǎng)絡(luò)推薦模型.該模型同時利用了卷積神經(jīng)網(wǎng)絡(luò)和自注意力機(jī)制的優(yōu)勢,其中卷積神經(jīng)網(wǎng)絡(luò)被用來建模用戶的近期偏好、自注意力機(jī)制則被用來建模項(xiàng)目上下文信息或者用戶行為上下文信息.
本文模型方法的框架結(jié)構(gòu)如圖1所示.其中Item1、Item2、…、ItemL表示為任一用戶所有歷史交互的項(xiàng)目嵌入序列,而Context1、Context2、…、ContextN表示為用戶交互歷史項(xiàng)目對應(yīng)項(xiàng)目與用戶上下文信息.模型主要有以下幾部分組成,即嵌入層模塊、卷積神經(jīng)網(wǎng)絡(luò)處理模塊、自注意力機(jī)制模塊、全連接層模塊.整個模型的流程如下:1)在嵌入層模塊中把用戶數(shù)據(jù)編碼成向量、用戶-項(xiàng)目交互歷史項(xiàng)目數(shù)據(jù)編碼成項(xiàng)目序列向量、將交互項(xiàng)目種類數(shù)據(jù)編碼成矩陣;2)卷積神經(jīng)網(wǎng)絡(luò)(CNN)負(fù)責(zé)處理用戶嵌入、用戶-項(xiàng)目交互序列信息,解決用戶的短期偏好問題;3)自注意力機(jī)制負(fù)責(zé)處理用戶交互項(xiàng)目中上下文信息的種類序列數(shù)據(jù),聚合得到上下文信息對偏好的權(quán)重;4)結(jié)合建模得到的所有偏好與上下文信息權(quán)重,實(shí)現(xiàn)用戶在交互序列中下一可能交互項(xiàng)目推薦.
圖1 本文模型的框架結(jié)構(gòu)圖Fig.1 Frame structure of the model
本文將U表示成所有的用戶集,U={u1,u2,…,u|U|},|U|是用戶的數(shù)量.全部項(xiàng)目的集合用I代表,I={i1,i2,…,i|I|},項(xiàng)目的全部數(shù)量為|I|.將S表示用戶與項(xiàng)目交互的集合,S={s1,s2,…,s|s|},這里的Si∈I.本文將通過訓(xùn)練用戶交互的前n個序列S,預(yù)測用戶u的下一交互項(xiàng)目.在本部分,將通過嵌入編碼層、卷積神經(jīng)網(wǎng)絡(luò)模塊、自注意力網(wǎng)絡(luò)模塊、全連接層以及預(yù)測層對本文提出的方法進(jìn)行詳細(xì)的介紹.
每個用戶u所交互的項(xiàng)目數(shù)量不一樣是很常見的,所以本文將用戶與項(xiàng)目交互的序列長度全部固定為指定的長度n.對于用戶u交互的序列長度少于長度n的序列,在用戶交互序列的左邊進(jìn)行零填充處理.對于那些超出指定長度n的用戶u歷史行為序列,只保留用戶最近交互過的n個項(xiàng)目.本文采用pairse編碼方法將用戶編碼成用戶嵌入矩陣EU∈R|U|×d,同時將項(xiàng)目編碼成項(xiàng)目嵌入矩陣EI∈R|I|×d.
計(jì)算機(jī)視覺和自然語言處理領(lǐng)域在卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用方面取得了巨大進(jìn)展,故本文為能捕獲到用戶與項(xiàng)目交互的高階序列關(guān)系也采取了CNN.
由于自注意力網(wǎng)絡(luò)模塊需要處理的是帶有時間先后順序關(guān)系的序列輸入矩陣Ec∈Rn×d,而自注意力網(wǎng)絡(luò)不像循環(huán)神經(jīng)網(wǎng)絡(luò)以及卷積神經(jīng)網(wǎng)絡(luò)可以獲取到之前交互過項(xiàng)目的位置信息,故而需要自注意力網(wǎng)絡(luò)模塊在序列輸入矩陣再加上位置編碼矩陣P∈Rn×d.最終的自注意力網(wǎng)絡(luò)輸入矩陣如下所示:
(1)
文獻(xiàn)[20]中的縮放點(diǎn)積注意力(scaled dot-product attention)公式定義如下:
(2)
Fh=SA(Fc×WQ,F(xiàn)c×WK,F(xiàn)c×WV)
(3)
這里WQ,WK,WV∈Rd×d的映射矩陣.由于多頭注意力具有用不同位置表示子空間信息的優(yōu)勢,所以其比縮放點(diǎn)積注意力更為靈活,實(shí)現(xiàn)效果更好.故本文自注意力網(wǎng)絡(luò)模塊應(yīng)用了多頭注意力,多頭注意力定義如下所示:
(4)
(5)
Mh=LayerNorm(Mh+Fc)
(6)
OTf=ReLU((MhW1+b1)W2+b2)
(7)
OTf=LayerNorm(Mh+OTf)
(8)
其中W*,b*為模型的參數(shù).為了簡便起見,本文定義自注意力網(wǎng)絡(luò)塊如下所示:
OTf=SAB(Fc)
(9)
在經(jīng)過第1個自注意力網(wǎng)絡(luò)塊之后,OTf把用戶u之前交互過的所有特征信息匯聚起來.在基于Fc的另一個自注意力網(wǎng)絡(luò)塊之后對于學(xué)習(xí)復(fù)雜的序列變換會更有幫助,具體定義如下:
(10)
當(dāng)p=0時,OTf=Fc.
全連接層為了可以同時捕獲用戶交互序列中的項(xiàng)目特征以及品牌信息、用戶交互行為等上下文信息特征,將卷積神經(jīng)網(wǎng)絡(luò)模塊的輸出和注意力網(wǎng)絡(luò)模塊的輸出拼接起來.
(11)
其中W∈R3d×d,b∈Rd.我們將用戶嵌入Pu與Ocf拼接起來的目的是獲取用戶u長期偏好,然后映射到|I|個節(jié)點(diǎn)的輸出層.
(12)
其中W′∈R|I|×2d,b′∈R|I|分別為輸出層的權(quán)重矩陣和偏置項(xiàng).將輸出層的y(u,t)表示用戶u在時間戳t與項(xiàng)目i交互的概率.
本文采取了二值交叉熵?fù)p失函數(shù)作為目標(biāo)函數(shù):
(13)
本文模型在訓(xùn)練過程中使用的操作系統(tǒng)為Ubuntu 18.04,CPU為Intel(R) Xeon(R) Gold 5120 CPU @2.2GHz,GPU為Tesla V100,開發(fā)語言為Python3.7.9,深度學(xué)習(xí)框架為Pytorch1.7.0.本文模型是由4層卷積神經(jīng)網(wǎng)絡(luò)與1層自注意力機(jī)制網(wǎng)絡(luò)組成,其訓(xùn)練序列長度可取5、7、9、11等.一般來說序列長度取值較大時包含的信息相應(yīng)也會較多,故該參數(shù)一開始增大會促進(jìn)模型性能,但是逐漸會趨于穩(wěn)定.模型其他超參數(shù)具體設(shè)置如表1所示.
表1 超參數(shù)設(shè)置情況Table 1 Situation of setting hyperparameter
本文使用Tmall和Movielens-1m作為實(shí)驗(yàn)的數(shù)據(jù)集,這兩個數(shù)據(jù)集是推薦系統(tǒng)領(lǐng)域常用的公開數(shù)據(jù)集.Tmall是用戶在天貓商城特定時間內(nèi)的行為數(shù)據(jù)集,該數(shù)據(jù)集囊括了21960個用戶的記錄.這個數(shù)據(jù)集在眾多電商中最具代表性的,使得本文提出的研究算法可以很好地與應(yīng)用場景對接起來.另外Movielens-1m數(shù)據(jù)集也是推薦系統(tǒng)中經(jīng)常用到的數(shù)據(jù)集,它主要是提供了6000多個用戶對3000多部電影評分的記錄,以及電影種類的信息.本文對以上數(shù)據(jù)集特性進(jìn)行了總結(jié),具體如表2所示.
表2 數(shù)據(jù)集特性Table 2 Characteristic of dataset
參考Yan與Zhang等人研究工作的做法,本文將對以上兩個數(shù)據(jù)集進(jìn)行以下的處理.首先對于Tmall數(shù)據(jù)集,本文對數(shù)據(jù)集中那些被少于15個用戶交互的商品進(jìn)行了移除操作,即數(shù)據(jù)集只保留至少被15個以上用戶交互過的商品.同時對于數(shù)據(jù)集中那些交互商品數(shù)量少于30個的用戶也會被移除掉.本文在處理Movielens-1m數(shù)據(jù)集時只保留那些觀看5部電影以上的用戶以及被不少于5個用戶觀看過的電影.本文進(jìn)行這些數(shù)據(jù)預(yù)處理是為了盡可能地使得本文提出的算法不被推薦系統(tǒng)中常見的冷啟動問題所影響.在以上處理完成之后,本文將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集、測試集.訓(xùn)練集以及驗(yàn)證集將由數(shù)據(jù)集中前80%的用戶與商品或者用戶與電影的交互行為組成,而測試集將由剩下的20%用戶交互行為構(gòu)成.其中訓(xùn)練集以及驗(yàn)證集用于訓(xùn)練本文提出的算法模型和找出本文算法模型最合適的模型超參數(shù).測試集的功能則是用于檢驗(yàn)提出模型的性能.
本文通過推薦系統(tǒng)當(dāng)下比較流行的幾個性能指標(biāo)來測試模型性能.這些指標(biāo)是MAP、Prec@K、Recall@K、Hit@K、NDCG@K.目前主流算法K值一般是取1,5,10,由于數(shù)據(jù)集特性的關(guān)系,本文取了K為5作為主要比較依據(jù).
本文提出的模型將會跟Tang等人提出的Caser模型進(jìn)行比較、Kang等人提出的CosRec模型等進(jìn)行比較.
Caser:此基準(zhǔn)利用了卷積操作來捕獲高階的序列依賴關(guān)系,在一定程度上解決了傳統(tǒng)的低階馬爾科夫鏈模型算法存在的問題.該算法將用戶與項(xiàng)目交互矩陣視作“圖像”,從而通過垂直卷積與水平卷積獲取交互序列變換模式.
CosRec:在Caser基準(zhǔn)模型的基礎(chǔ)上引入了pairwise編碼方法,使得模型可以捕獲用戶與項(xiàng)目交互序列中聯(lián)合模式.該算法不同于Caser模型,它將用戶與項(xiàng)目交互的序列打成三維張量,更有利于后續(xù)使用靈活的卷積操作.
本文模型與待比較基準(zhǔn)模型的實(shí)驗(yàn)結(jié)果已由表3所記錄.通過表3的數(shù)據(jù)可以清晰地發(fā)現(xiàn)在Movielens-1m數(shù)據(jù)集上CosRec模型在評價指標(biāo)Prec@5,Recall@5,F(xiàn)1@5以及MAP上均比Caser模型好.而我們提出的模型則是在Movielens-1m所有上述評價指標(biāo)均取得了最好的性能效果.本文模型在Prec@5提升了3.5%,Recall@5提高了7.8%,F(xiàn)1@5提高了7.1%,MAP提高了6.5%.在Tmall數(shù)據(jù)集上的數(shù)據(jù)顯示CosRec模型同樣在各個評價指標(biāo)上比Caser模型有所提升,但是在模型性能表現(xiàn)方面仍然是本文模型最好.本文模型與CosRec模型相比在Prec@5提升了2.8%,Recall@5提升了3.3%,F(xiàn)1@5提高了3.1%,MAP提升了3.2%.
表3 本文模型和基準(zhǔn)模型的實(shí)驗(yàn)結(jié)果.其中每一列中的值越大代表模型性能結(jié)果越好,其中黑體為該列最大值Table 3 Experimental results of our model and benchmark.The larger value in each column is,the better the performance of the model is,and bold is the maximum value of the column
表4記錄了本文模型在Tmall數(shù)據(jù)集取用戶行為上下文信息、項(xiàng)目相關(guān)上下文信息以及時間上下文信息時的推薦性能,表4中的數(shù)據(jù)粗體加黑是最大值,數(shù)據(jù)越大表明本文模型在建模對應(yīng)上下文信息時的性能最好.表4的數(shù)據(jù)表明在上下文信息為brand_id時,本文提出的模型性能提升最小.而當(dāng)上下文信息取merchant_id時,本文提出模型的推薦性能得到最大的提升.在這些數(shù)據(jù)當(dāng)中,其次較好的推薦性能是當(dāng)上下文信息取action_type時的,這其實(shí)與現(xiàn)實(shí)生活中的事實(shí)是相符合的.因?yàn)橛脩粼谄綍r的購物過程中,相對于衣服品牌而言,用戶會更偏好于收藏商家店鋪.再就是用戶在購物的時候,往往會產(chǎn)生不同行為類型,而這些行為類型可以很好的反應(yīng)用戶的偏好.例如用戶點(diǎn)擊商品、把商品加入購物車、點(diǎn)了收藏物品、購買物品完全表示了用戶不同偏好程度.
表4 Tmall數(shù)據(jù)集下本文模型取不同上下文信息時的性能比較Table 4 Performance comparison of our model with different context information in Tmall dataset
由表5的數(shù)據(jù)可以得知,本文方法在Movielens-1m數(shù)據(jù)集上采用Sigm激活函數(shù)幾乎取得了最好的推薦性能.但是Relu激活函數(shù)的推薦性能與Sigm激活函數(shù)的性能相差無幾.這與Relu激活函數(shù)在計(jì)算量比較大、網(wǎng)絡(luò)深度比較深的特性是相符合的.由于Tmall數(shù)據(jù)集的數(shù)據(jù)比較大,所以本文綜合分析之后,決定還是取Relu激活函數(shù)作為本文提出模型的激活函數(shù).
表5 Movielens-1m數(shù)據(jù)集中不同激活函數(shù)下的模型性能比較
本文還在Tmall和Movielens-1m兩個數(shù)據(jù)集做了不同嵌入維度大小對模型性能影響的對比實(shí)驗(yàn),具體結(jié)果如圖2和圖3所示.
圖2 本文方法在Movielens-1m數(shù)據(jù)集下不同模型維度大小的影響Fig.2 Influence of different dimension sizes on our method in Movielens-1m dataset
圖3 在Tmall數(shù)據(jù)集下不同模型維度大小對本文方法的影響Fig.3 Influence of different dimension sizes on our method in Tmall dataset
根據(jù)圖2的曲線數(shù)據(jù)特性,我們可以發(fā)現(xiàn)模型在Movielens-1m數(shù)據(jù)集上的推薦性能中的MAP一開始是隨著嵌入維度Dimensions增大而提升的,但是當(dāng)嵌入維度大于50之后,模型的性能提升速度就逐步変緩,趨于穩(wěn)定.這說明在嵌入維度增大一定情況之后,模型就已經(jīng)得到充分的訓(xùn)練了.
從圖2在Movielens-1m數(shù)據(jù)集的實(shí)驗(yàn)數(shù)據(jù)可知,模型維度大小為50起時取得的推薦性能較好,故在Tmall數(shù)據(jù)集上的實(shí)驗(yàn)就直接從維度為50時開始.從圖3能發(fā)現(xiàn)在Tmall數(shù)據(jù)集上一開始隨著嵌入維度Dimensions增大,模型的推薦性能也是逐步提升,但是當(dāng)Dimensions超過90之后,性能有點(diǎn)下降,接著再略微提升一點(diǎn).這說明訓(xùn)練過擬合對于模型性能的提升有限,后面模型性能會逐漸趨于平穩(wěn).
本文提出了融合項(xiàng)目與用戶上下文信息的混合神經(jīng)網(wǎng)絡(luò)推薦模型,該模型采用卷積神經(jīng)網(wǎng)絡(luò)模塊提取用戶與項(xiàng)目交互的序列特征,同時通過自注意力機(jī)制建模用戶序列中的上下文信息特征.在與現(xiàn)實(shí)生活密切相關(guān)的兩個數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),證明了我們提出的模型方法比基準(zhǔn)模型更進(jìn)一步促進(jìn)了推薦性能的提升,取得了最好的推薦性能.
在后續(xù)工作,我們將進(jìn)一步對項(xiàng)目與用戶上下文信息組合起來對序列推薦的影響和用戶的長期偏好問題進(jìn)行研究.