趙串串,游進(jìn)國(guó),2,李曉武
1(昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院,昆明 650500) 2(云南省計(jì)算機(jī)應(yīng)用重點(diǎn)實(shí)驗(yàn)室,昆明 650500)
隨著萬(wàn)維網(wǎng)的發(fā)展,人們的購(gòu)買習(xí)慣逐漸從大街上的實(shí)體店轉(zhuǎn)向互聯(lián)網(wǎng),例如淘寶、京東、亞馬遜等在線購(gòu)物平臺(tái).然而在線購(gòu)物平臺(tái)存在著一個(gè)顯著的問(wèn)題,項(xiàng)目的數(shù)量對(duì)用戶來(lái)說(shuō)可能是巨大的,用戶難以尋找自身感興趣的項(xiàng)目.推薦系統(tǒng)的引入,能有效的解決信息過(guò)載問(wèn)題.
如今,推薦系統(tǒng)在現(xiàn)實(shí)世界的業(yè)務(wù)中發(fā)揮著重要作用,預(yù)測(cè)用戶的下一次交互是實(shí)現(xiàn)個(gè)性化推薦的核心[1].在各種各樣的領(lǐng)域中,存在大量的歷史交互數(shù)據(jù),例如點(diǎn)擊日志,購(gòu)買歷史,瀏覽等,這些數(shù)據(jù)多年來(lái)實(shí)現(xiàn)了許多高效的推薦系統(tǒng).然而,大多數(shù)現(xiàn)有的推薦系統(tǒng)理論都面臨著各種問(wèn)題[2],例如傾向于重復(fù)推薦與用戶可能已經(jīng)購(gòu)買的項(xiàng)目類似的項(xiàng)目[3].實(shí)際上,用戶可能更喜歡新穎且與已有的物品更相關(guān)的物品.
如圖1所示,用戶按照先后順序把 “牛奶,蘋果,香蕉,牛油果”加入購(gòu)物車中,然后又把“面包”也加入了購(gòu)物車.最后,用戶按照“牛奶,蘋果,香蕉,牛油果,面包”順序下單成功.如果是用現(xiàn)有的基于上下文的推薦方法,就會(huì)把前面加入的“牛奶,蘋果,香蕉,牛油果”四個(gè)項(xiàng)目當(dāng)作是上下文,則用戶最后又加入購(gòu)物車的“面包”看作是系統(tǒng)推薦的那個(gè)目標(biāo)項(xiàng)目.如果是這樣的話,系統(tǒng)就會(huì)把用戶最近加入購(gòu)物車的(蘋果,香蕉,牛油果)看的很重要,根據(jù)這三個(gè)項(xiàng)目,很可能推薦給用戶的項(xiàng)目是“蔬菜”類,如“綠色沙拉”.但是,最后的訂單顯示用戶把“面包”作為最后的選擇,因?yàn)檫x擇“面包”可能是取決于用戶加入購(gòu)物車的第一個(gè)項(xiàng)目(牛奶).從這個(gè)情況來(lái)看,一個(gè)好的推薦系統(tǒng)就應(yīng)該對(duì)那些與目標(biāo)項(xiàng)目(面包)更相關(guān)的項(xiàng)目(牛奶)加以重視,而不應(yīng)該過(guò)于關(guān)注最新添加的、不太相關(guān)的項(xiàng)目“蘋果,香蕉,牛油果”.
圖1 序列推薦示例
上述實(shí)例表明,部分之前購(gòu)買的項(xiàng)目中存在對(duì)下一項(xiàng)推薦影響甚微的項(xiàng)目,因此建模歷史項(xiàng)目的不同相關(guān)性是至關(guān)重要的.然而,現(xiàn)有的推薦方法并沒(méi)有做到既考慮項(xiàng)目序列,又考慮每個(gè)項(xiàng)目對(duì)下一個(gè)項(xiàng)目的重要性,并不能充分挖掘項(xiàng)目序列和項(xiàng)目對(duì)于交互的下一個(gè)項(xiàng)目影響的重要性.例如,采用馬爾可夫鏈[4]來(lái)模擬用戶行為序列,它假設(shè)下一個(gè)動(dòng)作僅以前一個(gè)動(dòng)作(或前幾個(gè)動(dòng)作)為條件,并已成功用于表征短程項(xiàng)目轉(zhuǎn)換以進(jìn)行推薦.因此,推薦給用戶的項(xiàng)目列表僅僅只是利用了項(xiàng)目序列,并沒(méi)有發(fā)現(xiàn)項(xiàng)目序列中的項(xiàng)目彼此之間的影響.為了解決上述問(wèn)題,本文基于自注意力機(jī)制提出一種序列感知深度網(wǎng)絡(luò)(SeqaDN),并將自注意力機(jī)制與深度雙向循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)合到項(xiàng)目推薦中.由于自注意力機(jī)制的引入,所提出的模型能夠更多地關(guān)注更相關(guān)的項(xiàng)目,而更少關(guān)注不太相關(guān)的項(xiàng)目.因此,SeqaDN更有效,更健壯,可以預(yù)測(cè)具有較少約束的序列中的下一個(gè)項(xiàng)目.
推薦系統(tǒng)專注于基于歷史反饋對(duì)用戶和項(xiàng)目之間的兼容性建模.用戶反饋可以是顯式的(例如評(píng)分)或隱式的(例如點(diǎn)擊,購(gòu)買,評(píng)論).由于解釋“未觀察到的”(例如,未購(gòu)買的)數(shù)據(jù)的模糊性,對(duì)隱式反饋進(jìn)行建??赡芫哂刑魬?zhàn)性.
文獻(xiàn)[5]考慮到用戶之間都具有相互的影響力且擁有共同評(píng)分的用戶更相似,利用Cloud-model來(lái)計(jì)算用戶在評(píng)分上的相似性,根據(jù)相似性值得到與目標(biāo)用戶相似的N個(gè)最近鄰,然后利用矩陣分解模型進(jìn)行評(píng)分預(yù)測(cè).但是文獻(xiàn)[5]未考慮到用戶之間的影響力不是永久的,其是具有時(shí)效性的,且評(píng)分矩陣也具有稀疏性,降低了推薦效果.基于矩陣分解的方法[6]將從當(dāng)前項(xiàng)目到下一項(xiàng)目的轉(zhuǎn)移概率矩陣分解為潛在因子.然而,由于現(xiàn)實(shí)世界中的冪律分布數(shù)據(jù),矩陣分解很容易受到稀疏性問(wèn)題的困擾.此外,另一項(xiàng)工作是基于項(xiàng)目相似性模型,并沒(méi)有明確地為每個(gè)用戶建模潛在因素(例如FISM[7]).以上方法學(xué)習(xí)項(xiàng)目到項(xiàng)目的相似性矩陣,并通過(guò)測(cè)量用戶之前與之交互的項(xiàng)目的相似性來(lái)估計(jì)用戶對(duì)項(xiàng)目的偏好.
為了對(duì)用戶的個(gè)體和序列信息進(jìn)行聯(lián)合建模,傳統(tǒng)的推薦方法引入了馬爾可夫鏈.文獻(xiàn)[4]結(jié)合因子分解方法模擬用戶一般的偏好,結(jié)合馬爾可夫鏈以挖掘用戶序列模式.基于文獻(xiàn)[4],研究人員使用了不同的方法來(lái)提取這兩種不同的用戶偏好.文獻(xiàn)[8]使用度量嵌入將項(xiàng)目投射到低維歐氏空間中的點(diǎn)上,用于播放列表預(yù)測(cè)和連續(xù)位置推薦.文獻(xiàn)[9]利用詞嵌入從項(xiàng)目-項(xiàng)目的共現(xiàn)中提取信息,提高矩陣分解性能.除了基于馬爾可夫鏈的方法,另一項(xiàng)工作采用循環(huán)神經(jīng)網(wǎng)絡(luò)來(lái)模擬用戶交互的項(xiàng)目序列[10-12].例如,GRU4Rec[9]使用門控循環(huán)單元來(lái)模擬基于會(huì)話的點(diǎn)擊序列推薦.文獻(xiàn)[12]中,馮永等人提出了一種MN-HDRM推薦模型,作者首先是通過(guò)RNN學(xué)習(xí)出了用戶在某一個(gè)短時(shí)期內(nèi)的興趣變化,同時(shí)利用FNN來(lái)學(xué)習(xí)目標(biāo)用戶長(zhǎng)時(shí)期內(nèi)的穩(wěn)定興趣,最后融合兩種網(wǎng)絡(luò)構(gòu)建了一種長(zhǎng)短興趣多神經(jīng)網(wǎng)絡(luò)混合動(dòng)態(tài)推薦模型,并取得了相對(duì)優(yōu)越的性能.
由于不同項(xiàng)目的權(quán)重是固定的,好的推薦方法應(yīng)當(dāng)有效地加權(quán)上下文中的項(xiàng)目,即更多地關(guān)注那些相關(guān)項(xiàng)目.這種注意區(qū)別非常重要,特別是對(duì)于長(zhǎng)期交互,這些交互通常包含許多與下一個(gè)選擇無(wú)關(guān)的項(xiàng)目,現(xiàn)有方法在捕獲高級(jí)用戶-項(xiàng)目交互方面的能力有限.
研究者已經(jīng)證明了注意機(jī)制可以在各種任務(wù)中起到高效的作用,如圖像字幕和機(jī)器翻譯等.Attention機(jī)制的主要思想:根據(jù)序列而輸出的每個(gè)結(jié)果都依賴于模型對(duì)輸入序列中與實(shí)際結(jié)果“相關(guān)”部分的關(guān)注,而且基于注意力的方法通常更易于理解.
注意機(jī)制已經(jīng)被應(yīng)用到了推薦系統(tǒng),例如,Attentional Factorization Machines(AFM)[13]了解了每個(gè)特征交互對(duì)于內(nèi)容感知推薦的重要性.最近,純粹基于注意力的Seq2Seq方法Transfomer[14]在機(jī)器翻譯任務(wù)上實(shí)現(xiàn)了較好的性能和效率,這些任務(wù)以前一直由基于RNN/CNN的方法主導(dǎo).Transformer模型在很大程度上依賴于Self-Attention模塊來(lái)捕獲句子中的復(fù)雜結(jié)構(gòu),并檢索相關(guān)單詞(在源語(yǔ)言中)以生成下一個(gè)單詞(在目標(biāo)語(yǔ)言中).受Transformer的啟發(fā),本文尋求基于Self-Attention方法來(lái)構(gòu)建一種序列感知的下一項(xiàng)推薦模型.
本文提出的一種序列感知深度網(wǎng)絡(luò)(SeqaDN),分別從項(xiàng)目嵌入、序列感知自注意力神經(jīng)網(wǎng)絡(luò)和基于深度雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Dbi-LSTM)的用戶偏好學(xué)習(xí)展開(kāi).
SeqaDN的框架如圖2所示,SeqaDN將用戶實(shí)際交互的下一個(gè)項(xiàng)目和其點(diǎn)擊的項(xiàng)目序列作為輸入.對(duì)于每個(gè)項(xiàng)目,使用Item2vec[15]來(lái)處理并生成項(xiàng)目的嵌入向量.Item2vec是自然語(yǔ)言處理領(lǐng)域中的Word2vec的擴(kuò)展,允許靈活地將項(xiàng)目本身的ID作為輸入并捕獲項(xiàng)目之間的相似性.然后使用自注意力神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)歷史項(xiàng)目對(duì)下一個(gè)項(xiàng)目的不同影響權(quán)重,最后使用深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)用戶的偏好,生成偏好向量.
圖2 SeqaDN框架的圖示
Item2vec是Skip-gram與負(fù)抽樣的重要擴(kuò)展之一,用于為基于項(xiàng)目的協(xié)同過(guò)濾推薦產(chǎn)生項(xiàng)目嵌入.類比于詞向量模型,本文將每個(gè)項(xiàng)目看作是一個(gè)單詞,用戶已經(jīng)交互的項(xiàng)目序列看作是一個(gè)句子,擁有共同上下文的項(xiàng)目嵌入離得更近.
給定所有用戶交互的項(xiàng)目集H=(U1,U2,U3,…,Um),其中Ui表示用戶i交互的項(xiàng)目序列Ui={I1,I2,I3,…,In},項(xiàng)目嵌入的目的是為每個(gè)項(xiàng)目生成低維的項(xiàng)目向量.本文采用Item2vec為項(xiàng)目生成嵌入向量.
給定一個(gè)用戶交互序列集合,Skip-gram的目標(biāo)是最大化以下目標(biāo)函數(shù):
(1)
其中,L是交互序列長(zhǎng)度,p(Ij|Ii)為softmax函數(shù):
(2)
其中,σ(x)是一個(gè)常用的Sigmoid激活函數(shù),N是正樣本中負(fù)樣本的個(gè)數(shù).
在順序推薦系統(tǒng)中,長(zhǎng)期偏好對(duì)應(yīng)于用戶的一般品味.由于用戶的長(zhǎng)期項(xiàng)目集通常隨時(shí)間變化,因此學(xué)習(xí)用戶長(zhǎng)期項(xiàng)目對(duì)下一個(gè)項(xiàng)目的不同影響權(quán)重是有必要的.
注意力定義如下:
(3)
自注意力是注意力機(jī)制的一個(gè)特例,并已成功應(yīng)用于各種任務(wù).其通過(guò)將單個(gè)序列與自身匹配來(lái)細(xì)化表示.與基本注意力不同,自注意力可以不管序列中項(xiàng)目之間的距離如何,也可保持上下文序列信息并捕獲序列中元素之間的關(guān)系.為了滿足上述要求,本文使用自注意機(jī)制來(lái)計(jì)算給定用戶的長(zhǎng)期項(xiàng)目集中每個(gè)項(xiàng)目的重要性.
在本文的上下文中,Q=K=V,且用戶u的歷史交互記錄表示為:
其中,矩陣每一行表示項(xiàng)目嵌入得到的d維項(xiàng)目,矩陣的行數(shù)n表示用戶u的歷史交互記錄長(zhǎng)度,本文中用戶u的查詢,鍵和值在時(shí)間步t處等于U′i.
本文通過(guò)使用共享參數(shù)的非線性變換將查詢和鍵映射到同一空間.
Q′=ReLU(VjMQ)
(4)
K′=ReLU(VjMK)
(5)
(6)
本文保持V等于U′i不變,即:V′=U′i.因此,注意力模塊的最終加權(quán)輸出為:
Au=SuV′
(7)
深度循環(huán)神經(jīng)網(wǎng)絡(luò)在NLP領(lǐng)域內(nèi)性能表現(xiàn)良好,在NLP領(lǐng)域用的是深層門限循環(huán)網(wǎng)絡(luò),由于循環(huán)神經(jīng)網(wǎng)絡(luò)中的LSTM本身就是一種處理序列預(yù)測(cè)問(wèn)題性能表現(xiàn)很好的模型,所以本文利用深度雙向LSTM學(xué)習(xí)用戶的偏好,并做出推薦.
一個(gè)好的推薦系統(tǒng)就要考慮到用戶穩(wěn)定的歷史偏好信息,RNN是一個(gè)可以循環(huán)學(xué)習(xí)的網(wǎng)絡(luò),可以高效的學(xué)習(xí)用戶的偏好.受到文獻(xiàn)[16,17]的啟發(fā),本文采用改進(jìn)的深度雙向LSTM(即Dbi-LSTM),使得模型能夠更好的利用前向和后向的上下文長(zhǎng)期表示,以及深度循環(huán)神經(jīng)網(wǎng)絡(luò)可以更好地抽象表示用戶的特征.
如圖3所示是本文中所提出的偏好學(xué)習(xí)模型,一個(gè)具有兩個(gè)隱藏層的網(wǎng)絡(luò)Dbi-LSTM.該網(wǎng)絡(luò)結(jié)構(gòu)中,前一個(gè)時(shí)間步會(huì)產(chǎn)生一組參數(shù),并把這組參數(shù)傳遞給在其后一個(gè)時(shí)間步(在同一個(gè)Bi-LSTM層中)的中間神經(jīng)元,與此同時(shí),中間神經(jīng)元需要在時(shí)間步接收來(lái)自前一層Bi-LSTM隱藏層的兩組相關(guān)參數(shù);在模型中每一個(gè)隱藏層的輸入序列從兩個(gè)方向開(kāi)始:從左到右、從右到左.
本文使用的Dbi-LSTM結(jié)構(gòu)的關(guān)系式是通過(guò)將文獻(xiàn)[17]中的前向傳播和后向傳播關(guān)系增加了層次的表示,如式(8)、式(9),其中在同一時(shí)間步t時(shí),第i-1層Bi-LSTM的每個(gè)輸出作為第i層每個(gè)中間神經(jīng)元的輸入.在訓(xùn)練模型過(guò)程中的每個(gè)時(shí)間步,通過(guò)連接所有輸入?yún)?shù)在隱藏層傳播過(guò)程中產(chǎn)生的結(jié)果作為最后隱藏層的輸出P(式(10)).
(8)
(9)
(10)
圖3 基于Dbi-LSTM的用戶偏好學(xué)習(xí)模型
Au矩陣中的每一行表示項(xiàng)目的最終嵌入得到的n維向量.
將項(xiàng)目的最終嵌入Au作為該模型的輸入,在模型訓(xùn)練過(guò)程中,本文中使用均方誤差(Mean-Square Error,MSE)對(duì)模型進(jìn)行訓(xùn)練,如式(11)所示,并使用Adagrad優(yōu)化器對(duì)模型進(jìn)行學(xué)習(xí)優(yōu)化,使得模型能夠很好學(xué)習(xí)每個(gè)用戶的偏好,幫助本方法更好地理解和表示用戶的長(zhǎng)時(shí)期穩(wěn)定偏好.
(11)
本實(shí)驗(yàn)環(huán)境:操作系統(tǒng)為Windows 10,編程語(yǔ)言為Python 3.6,深度學(xué)習(xí)框架為TensorFlow1.2.0.
本文使用來(lái)自電影領(lǐng)域MovieLens的兩個(gè)數(shù)據(jù)集,即1M1和HetRec2011-MovieLens-2k2.MovieLens-1M是電影推薦中廣泛使用的基準(zhǔn)數(shù)據(jù)集,它包含MovieLens網(wǎng)站上71567位用戶對(duì)10681部電影的大約100萬(wàn)個(gè)顯式評(píng)分(范圍從1到5),數(shù)據(jù)集中所選擇的用戶都是至少包含對(duì)20部電影進(jìn)行評(píng)分的用戶以及評(píng)分?jǐn)?shù)據(jù)集中包含著用戶交互的時(shí)間戳,數(shù)據(jù)集的稀疏度為4.46%.HetRec 2011是一系列用戶喜好的數(shù)據(jù),其中HetRec2011-MovieLens-2k(ML-HetRec)包含2113位用戶對(duì)10197部電影855598個(gè)顯式評(píng)分,數(shù)據(jù)集的稀疏度為4.01%.
根據(jù)推薦系統(tǒng)領(lǐng)域普通的數(shù)據(jù)劃分方式,將數(shù)據(jù)集化分為訓(xùn)練集和測(cè)試集兩個(gè)部分,隨機(jī)地選取90%的數(shù)據(jù)用作訓(xùn)練集來(lái)完成整個(gè)算法模型的訓(xùn)練,利用剩余10%的數(shù)據(jù)作為測(cè)試集來(lái)衡量模型的實(shí)際性能.在訓(xùn)練模型的時(shí)候,本文將訓(xùn)練集中用戶評(píng)分小于3的項(xiàng)目從交互序列中過(guò)濾,使得模型性能更優(yōu),更加貼切用戶的偏好.
為了驗(yàn)證本方法的有效性,本文選取了三種非序列推薦方法和兩種序列推薦方法進(jìn)行最對(duì)比.
·POP.此方法根據(jù)項(xiàng)目在系統(tǒng)中的受歡迎程度對(duì)項(xiàng)目進(jìn)行排名,并向用戶推薦最受歡迎的項(xiàng)目.
·BPRMF[18].Bayesian Personalized Ranking Matrix Factorization,是一種從隱式反饋中學(xué)習(xí)個(gè)性化排名的經(jīng)典方法.其使用貝葉斯方法中的成對(duì)排序損失,利用隱式反饋優(yōu)化潛在因子模型.
·MC[4].描述了一種序列推薦方法,其將基于相似性的方法與馬爾可夫鏈融合.
·TransRec[19].該模型應(yīng)用了將嵌入轉(zhuǎn)換為序列推薦的思想.它將用戶視為關(guān)系向量,并假設(shè)下一個(gè)項(xiàng)目由用戶最近交互的項(xiàng)目加上用戶關(guān)系向量確定.
·DBi-LSTM[20].該方法是僅僅基于循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行序列推薦的方法,并使用雙向LSTM作為模型,更好地學(xué)習(xí)用戶的長(zhǎng)期偏好.
本文采用了三種評(píng)估指標(biāo),包括Hit@k,MRR@k,Recall@k來(lái)衡量所提出的方法的實(shí)際效用,本文將這兩個(gè)的排名列表截?cái)鄈均為50.
命中率(Hit Rate,Hit)是基于召回的度量,測(cè)量了推薦的準(zhǔn)確性,能直觀地衡量測(cè)試目標(biāo)項(xiàng)目是否存在于列表的前k項(xiàng)中.Hit的定義為:
(12)
其中,GT表示測(cè)試集合中所有項(xiàng)目,NumberofHit@k表示用戶的推薦列表中的項(xiàng)目與所有測(cè)試集中所有項(xiàng)目的交集.
1https://grouplens.org/datasets/movielens/1m/
2http://ir.ii.uam.es/hetrec2011
平均倒數(shù)排名(Mean Reciprocal Rank,MRR),目標(biāo)用戶實(shí)際交互的項(xiàng)目序列的下一個(gè)項(xiàng)目在推薦列表中倒數(shù)排名的平均值,如果高于k,則等級(jí)設(shè)置為零.MRR的定義為:
(13)
其中,|Q|是測(cè)試集中用戶實(shí)際交互的項(xiàng)目個(gè)數(shù),rankx是用戶實(shí)際交互的項(xiàng)目在推薦列表的第x個(gè)位置.
Recall@k:本文中它是主要的評(píng)估指標(biāo),定義為目標(biāo)用戶實(shí)際交互序列的下一個(gè)項(xiàng)目出現(xiàn)在Top-k推薦列表中,即所有測(cè)試案例中Top-k項(xiàng)中具有所需項(xiàng)目的案例的比例.
通過(guò)在真實(shí)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)證明了本文所提出的模型具有一定的實(shí)際意義,本文將本方法與其他方法在兩個(gè)MovieLens數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果進(jìn)行了對(duì)比,實(shí)驗(yàn)結(jié)果如表1所示:
整體的模型性能:表1列出了兩種推薦任務(wù)的不同方法的結(jié)果,可以觀察到:
1)在非序列推薦方法中,BPRMF在兩個(gè)數(shù)據(jù)集上性能表現(xiàn)良好,但在ML-HetRec數(shù)據(jù)集上的性能略差一些,因?yàn)檫@個(gè)數(shù)據(jù)集相對(duì)于ML-1M較為稀疏.總的來(lái)說(shuō),BPRMF整體性能是優(yōu)于POP的,因?yàn)镻OP僅僅是利用了所有用戶對(duì)項(xiàng)目的顯式反饋的流行度進(jìn)行推薦的,而顯式反饋(如評(píng)分)存在較多的噪音數(shù)據(jù),相反隱式反饋更能體現(xiàn)出用戶對(duì)項(xiàng)目的喜好程度,BPRMF則是使用了貝葉斯方法中的成對(duì)排序損失,利用隱式反饋優(yōu)化潛在因子模型來(lái)學(xué)習(xí)用戶的偏好.
2)在序列推薦方法中,經(jīng)典的基于馬爾可夫鏈的模型(MC)在相對(duì)密集和稀疏數(shù)據(jù)上實(shí)現(xiàn)良好的性能.另一方面,TransRec似乎在兩個(gè)數(shù)據(jù)集上與MC相比表現(xiàn)不佳.TransRec的一個(gè)重要假設(shè)是用戶的下一個(gè)項(xiàng)目?jī)H受其最新動(dòng)作的影響.這種假設(shè)可能適用于稀疏數(shù)據(jù),因?yàn)榻换ピ跁r(shí)間上是非常離散的,但是當(dāng)用戶經(jīng)常與系統(tǒng)交互時(shí)可能不成立.TransRec通過(guò)引入用戶特定關(guān)系向量作為中介來(lái)在一定程度上克服了這個(gè)缺點(diǎn).
3)最后,將本文提出的模型SeqaDN與以上對(duì)比方法進(jìn)行比較.很明顯,SeqaDN比這些方法更好,而且同樣使用循環(huán)神經(jīng)網(wǎng)絡(luò)做序列推薦,但是,從表中可以看出:SeqaDN模型的整體性能比模型DBi-LSTM更優(yōu).SeqaDN具有項(xiàng)目序列和RNN的優(yōu)點(diǎn):項(xiàng)目序列可以捕獲序列效應(yīng)和用戶的一般興趣,而RNN則更能夠準(zhǔn)確表示順序依賴性.同時(shí),本文還添加了Self-Attention,其能夠?qū)W習(xí)出每個(gè)項(xiàng)目對(duì)目標(biāo)項(xiàng)目的不同影響權(quán)重,更加符合用戶的興趣偏好.我們的實(shí)驗(yàn)表明這三個(gè)方面對(duì)于改進(jìn)序列推薦很重要.SeqaDN相對(duì)于所有基線的另一個(gè)潛在好處是推薦結(jié)果更加準(zhǔn)確.
表1 在所有數(shù)據(jù)集上的命中率和MRR方面的性能比較
Table 1 Performance comparison of hit rate and MRR across all data sets
數(shù)據(jù)集評(píng)估標(biāo)準(zhǔn)POPBPRMFMCTransRecDBi-LSTMSeqaDNML-1MHit@500.14400.23780.34190.33580.32350.3719MRR@500.02310.03680.06540.05610.06700.0962ML-HetRecHit@500.10650.14620.19230.19120.26150.2654MRR@500.01770.02150.03590.03370.04020.0404
嵌入維度的影響:如圖4所示,顯示了在兩個(gè)數(shù)據(jù)集上的Recall@50,同時(shí)保持其他超參數(shù)不變.從圖4(a)中可以觀察到:1)對(duì)于不同的數(shù)據(jù)集有不同的最佳嵌入維度,不同的推薦結(jié)果,因?yàn)閿?shù)據(jù)集的稀疏度不一樣;2)嵌入維度越大,推薦性能并沒(méi)有提高,反而有所下降,可以看出較大的嵌入維度不一定會(huì)得到更好的模型性能,因?yàn)榍度刖S度過(guò)大會(huì)導(dǎo)致過(guò)擬合現(xiàn)象.從圖4(b)中可以觀察到:在兩個(gè)數(shù)據(jù)集上,SeqaDN的運(yùn)行時(shí)間隨著嵌入維度的增加而增加,這是由于輸入SeqaDN模型的維度越高,需要訓(xùn)練的參數(shù)就越多,計(jì)算量就隨之變大了,參數(shù)更新、模型尋優(yōu)等都將耗費(fèi)時(shí)間越長(zhǎng).
序列長(zhǎng)度L的影響:如圖5(a)所示,顯示了在兩個(gè)數(shù)據(jù)集上序列長(zhǎng)度L的影響.可以觀察到適當(dāng)長(zhǎng)度L對(duì)數(shù)據(jù)集的密度是有所依賴的,在相對(duì)密集的ML-1M數(shù)據(jù)集上,將L設(shè)置為更大的值對(duì)性能是有利的,但是,在相對(duì)較為稀疏的ML-HetRec數(shù)據(jù)集上L應(yīng)該設(shè)置為比ML-1M更小的值是合理的.因?yàn)樵黾覮將會(huì)導(dǎo)致訓(xùn)練樣本減少,模型訓(xùn)練不佳.值得注意的是,Self-Attention能夠處理遠(yuǎn)距離位置直接的依賴關(guān)系,理論上允許在非常冗長(zhǎng)的序列上進(jìn)行學(xué)習(xí).如圖5(b)所示,不管是在哪個(gè)數(shù)據(jù)集上的實(shí)驗(yàn),模型訓(xùn)練時(shí)間與序列長(zhǎng)度成正比,這是由于深度學(xué)習(xí)是一個(gè)參數(shù)優(yōu)化,模型尋優(yōu)的過(guò)程,隨著模型輸入的序列長(zhǎng)度的增加,模型需要訓(xùn)練的數(shù)據(jù)就越多,模型需要優(yōu)化的參數(shù)也隨著變多,時(shí)間也就隨之增加.
通過(guò)實(shí)驗(yàn)分析,SeqaDN模型訓(xùn)練出的推薦列表的點(diǎn)擊率和平均倒數(shù)排名高于基線,驗(yàn)證了在做序列推薦時(shí),序列上下文嵌入和注意力加權(quán)所有上下文項(xiàng)目的重要性.
為了有效地推薦項(xiàng)目序列上下文中用戶可能交互的下一個(gè)項(xiàng)目,本文提出了一種序列感知深度網(wǎng)絡(luò)(SeqaDN),將自注意力機(jī)制與深度雙向循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)合到項(xiàng)目推薦中.SeqaDN是一種基于內(nèi)容的推薦框架.其把用戶已經(jīng)交互的項(xiàng)目序列通過(guò)Item2vec進(jìn)行上下文嵌入學(xué)習(xí),這種上下文嵌入使得擁有共同用戶的項(xiàng)目離得更近,并將自注意力機(jī)制加入到深度雙向循環(huán)神經(jīng)網(wǎng)絡(luò)中區(qū)別學(xué)習(xí)每個(gè)項(xiàng)目對(duì)預(yù)測(cè)項(xiàng)目的不同影響權(quán)重,進(jìn)而學(xué)習(xí)到用戶的歷史偏好向量.對(duì)現(xiàn)實(shí)世界交易數(shù)據(jù)的實(shí)證評(píng)估表明,SeqaDN在解決現(xiàn)有技術(shù)方法的差距方面具有顯著的優(yōu)勢(shì).在下一步工作中,本文將合并用戶和項(xiàng)目方面信息以克服稀疏性問(wèn)題.