夏鴻斌 黃 凱 劉 淵
隨著Internet上數(shù)據(jù)量的迅速增長(zhǎng),在搜索、電子商務(wù)、流媒體網(wǎng)站等許多Web應(yīng)用程序中,推薦系統(tǒng)成為幫助用戶(hù)緩解信息過(guò)載、選擇感興趣信息的工具.其中,基于內(nèi)容的推薦[1]和協(xié)同過(guò)濾推薦[2]是兩種具有代表性的方法.這些推薦系統(tǒng)需要根據(jù)明確的用戶(hù)標(biāo)識(shí)信息進(jìn)行推薦.然而,在許多應(yīng)用場(chǎng)景中,用戶(hù)標(biāo)識(shí)可能是未知的并且無(wú)法使用.
因此,研究者們提出會(huì)話推薦[3],根據(jù)用戶(hù)的行為序列預(yù)測(cè)用戶(hù)下一個(gè)點(diǎn)擊目標(biāo).會(huì)話序列可以是匿名的而不需要依賴(lài)任何用戶(hù)的標(biāo)識(shí)信息.目前,會(huì)話推薦任務(wù)已廣泛應(yīng)用于多個(gè)領(lǐng)域,如網(wǎng)頁(yè)推薦、音樂(lè)推薦、商品推薦等.然而大多數(shù)現(xiàn)有的推薦系統(tǒng)依據(jù)長(zhǎng)會(huì)話建模預(yù)測(cè),從而過(guò)濾短會(huì)話信息.長(zhǎng)短對(duì)話的定義主要依據(jù)一個(gè)會(huì)話序列中包含的項(xiàng)目數(shù)量(本文選擇項(xiàng)目數(shù)小于20的會(huì)話).具體而言,現(xiàn)有研究大部分在數(shù)據(jù)預(yù)處理時(shí)就過(guò)濾短會(huì)話,以期降低預(yù)測(cè)的挑戰(zhàn)性和解決短會(huì)話學(xué)習(xí)不到位造成的干擾問(wèn)題.短對(duì)話只包含稀少的項(xiàng)目,其中包含的信息有限,如果不能有效學(xué)習(xí)其特征,反而會(huì)降低預(yù)測(cè)的準(zhǔn)確性.
但是,忽略短會(huì)話不是一個(gè)很好的選擇.實(shí)際上,在真實(shí)世界中,短會(huì)話所占的比例遠(yuǎn)遠(yuǎn)超過(guò)長(zhǎng)會(huì)話.用戶(hù)通常會(huì)在碎片時(shí)間查看一些他們感興趣的事物,由于時(shí)間很短,造成用戶(hù)的交互行為很少.如果無(wú)法從短暫的行為中有效學(xué)習(xí)用戶(hù)的偏好,可能會(huì)造成預(yù)測(cè)的誤差.所以,在具有短會(huì)話的情況下預(yù)測(cè)用戶(hù)的下一次行為是一個(gè)重要的研究方向.
為了緩解短會(huì)話信息稀疏的問(wèn)題,上下文信息成為重要的參考資料.按是否學(xué)習(xí)會(huì)話的上下文信息,可以將會(huì)話推薦簡(jiǎn)單分為單會(huì)話模型和多會(huì)話模型.基于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)[4]的模型便是經(jīng)典的方法之一.它們建模當(dāng)前會(huì)話所有項(xiàng)目之間的相關(guān)性,對(duì)其中的下一個(gè)項(xiàng)目進(jìn)行推薦.但是在真實(shí)情況下,會(huì)話中的項(xiàng)目之間可能相關(guān)性不強(qiáng)[5],這種嚴(yán)格依賴(lài)順序相關(guān)性的模型存在一定的問(wèn)題.所以,Liu等[6]將注意力機(jī)制引入推薦之中,提出STAMP(Short-Term Attention/Memory Priority Model),為會(huì)話中與下一個(gè)項(xiàng)目預(yù)測(cè)更相關(guān)的項(xiàng)目分配更高的權(quán)重以解耦嚴(yán)格順序假設(shè)要求.但是,由于注意力機(jī)制會(huì)在學(xué)習(xí)過(guò)程中越來(lái)越偏向于多次出現(xiàn)的項(xiàng)目,即流行的項(xiàng)目,因此很可能會(huì)引起用戶(hù)厭煩的心理.Wu等[7]提出SR-GNN(Session-Based Recommendation with Graph Neural Networks),將會(huì)話建模到圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network, GNN)中,學(xué)習(xí)項(xiàng)目之間的復(fù)雜轉(zhuǎn)換,從而獲得更準(zhǔn)確的推薦.Lai等[8]提出MGS(Mirror Graph Enhanced Neural Model for Session-Based Recommendation),集成項(xiàng)目的屬性信息,為每個(gè)會(huì)話項(xiàng)目選擇最具屬性代表性的信息,從而將項(xiàng)目屬性作為會(huì)話的上下文補(bǔ)充信息,用于預(yù)測(cè)推薦.
對(duì)于長(zhǎng)會(huì)話而言,由于會(huì)話中的信息充足,所以能夠取得相對(duì)準(zhǔn)確的結(jié)果.但是對(duì)于短對(duì)話而言,由于信息稀少,單會(huì)話模型很難充分學(xué)習(xí)用戶(hù)的偏好信息,從而造成推薦的誤差.所以,學(xué)者們提出多會(huì)話模型,考慮當(dāng)前會(huì)話的上下文信息,充分學(xué)習(xí)用戶(hù)的偏好.Quadrana等[9]提出HRNN(Hierarchical RNN),Ruocco等[10]提出II-RNN(Inter-Intra RNN),使用會(huì)話級(jí)RNN和項(xiàng)目級(jí)RNN分別編碼當(dāng)前用戶(hù)的歷史會(huì)話和目標(biāo)會(huì)話序列,再組合兩個(gè)RNN的輸出,預(yù)測(cè)用戶(hù)感興趣的下一個(gè)項(xiàng)目.然而,HRNN和II-RNN忽略其他用戶(hù)可能也有與當(dāng)前用戶(hù)相似的會(huì)話信息.為此,榮輝桂等[11]提出基于用戶(hù)相似度的協(xié)同過(guò)濾推薦算法,尋找與當(dāng)前用戶(hù)相似的用戶(hù)作為參考依據(jù).
相比當(dāng)前用戶(hù)的歷史會(huì)話,其他用戶(hù)的會(huì)話數(shù)量繁多,能否有效檢索相似會(huì)話序列是關(guān)鍵問(wèn)題之一.Ludewig等[12]提出SKNN(Session-BasedK-Nearest Neighbor),Garg等[13]提出STAN(Sequence and Time Aware Neighborhood),使用K近鄰(K-Nearest Neighbor, KNN)[14]從整個(gè)數(shù)據(jù)集中找出與當(dāng)前會(huì)話相似的會(huì)話作為上下文信息,用于預(yù)測(cè)下一個(gè)項(xiàng)目推薦.
然而,上述方法使用的相似計(jì)算方法過(guò)于簡(jiǎn)單,很難精確找出真正相似的會(huì)話.Wang等[15]提出CSRM(Collaborative Session-Based Recommendation Machine),Pan等[16]提出ICM-SR(Intent-Guided Collaborative Machine for Session-Based Recommenda-tion),使用自定義的會(huì)話檢索網(wǎng)絡(luò),從其他用戶(hù)中檢索和當(dāng)前會(huì)話相似的會(huì)話.但是在當(dāng)前會(huì)話很短并且上下文信息有限的情況下,引入其他用戶(hù)的協(xié)作信息會(huì)增加找到具有不同用戶(hù)偏好和上下文會(huì)話的風(fēng)險(xiǎn).
上述多會(huì)話模型雖然將上下文會(huì)話作為當(dāng)前短會(huì)話的補(bǔ)充信息,緩解短會(huì)話信息稀疏的問(wèn)題,但其僅僅使用會(huì)話嵌入之間的平均值或最小距離計(jì)算相似度,獲得的會(huì)話相似性可能不準(zhǔn)確.因?yàn)闀?huì)話編碼器很難保存會(huì)話中的所有信息,并且也忽略項(xiàng)目的位置和順序.Song等[17]提出INSERT(Inter-Session Collaborative Recommender Network),使用改進(jìn)的會(huì)話檢索網(wǎng)絡(luò),從相似用戶(hù)的會(huì)話中檢索較優(yōu)的相似會(huì)話.INSERT主要通過(guò)直接測(cè)量?jī)蓚€(gè)會(huì)話的相似性以篩選相似會(huì)話.然而該模型選擇隨機(jī)初始化的上下文會(huì)話信息作為輸入,未能充分考慮會(huì)話本身內(nèi)部的結(jié)構(gòu)信息,性能受到一定限制.另外,INSERT公平看待會(huì)話中的所有項(xiàng)目,但依據(jù)現(xiàn)實(shí)情況,項(xiàng)目之間通常會(huì)存在位置重要性的區(qū)別,因此在提取會(huì)話信息上也存在一定的局限性.
針對(duì)上述問(wèn)題,本文基于上下文信息補(bǔ)充和圖神經(jīng)網(wǎng)絡(luò)的思想,提出多特征融合短會(huì)話推薦模型(Multi-feature Fusion Based Short Session Recommen-dation Model, MFF-SSR),充分學(xué)習(xí)短會(huì)話中的用戶(hù)偏好,有效檢索當(dāng)前會(huì)話的相似會(huì)話信息,并納入下一個(gè)項(xiàng)目推薦中.具體來(lái)說(shuō),首先將用戶(hù)和項(xiàng)目節(jié)點(diǎn)建模到圖神經(jīng)網(wǎng)絡(luò)當(dāng)中,并進(jìn)行鄰域聚合操作.項(xiàng)目聚合節(jié)點(diǎn)作為會(huì)話序列的補(bǔ)充,與門(mén)控網(wǎng)絡(luò)的輸出(序列特征)一起作為相似會(huì)話檢索網(wǎng)絡(luò)的輸入節(jié)點(diǎn).用戶(hù)聚合節(jié)點(diǎn)作為相似度權(quán)重計(jì)算的重要依據(jù).然后,使用目標(biāo)會(huì)話與其它會(huì)話計(jì)算相似度,篩選相似短會(huì)話,并與用戶(hù)相似度權(quán)重相乘,獲得豐富的上下文信息.最后,利用加入位置向量信息的多頭自注意力機(jī)制,提取當(dāng)前會(huì)話和上下文會(huì)話的特征信息,并結(jié)合兩者,獲得最終會(huì)話表示,從而預(yù)測(cè)用戶(hù)的下一次行為.
本文提出多特征融合短會(huì)話推薦模型(MFF-SSR),框架如圖1所示.模型包含3個(gè)部分:特征學(xué)習(xí)層、上下文會(huì)話檢索網(wǎng)絡(luò)和位置感知網(wǎng)絡(luò).
圖1 MFF-SSR框架圖
特征學(xué)習(xí)層包括兩個(gè)部分:節(jié)點(diǎn)特征學(xué)習(xí)層和會(huì)話特征學(xué)習(xí)層,分別關(guān)注會(huì)話內(nèi)部節(jié)點(diǎn)和整個(gè)會(huì)話的特征信息.特征學(xué)習(xí)層的目的是預(yù)處理輸入數(shù)據(jù),再將兩部分學(xué)習(xí)層的輸出融合,作為下一模塊的輸入.
1.1.1節(jié)點(diǎn)特征學(xué)習(xí)層
本文將節(jié)點(diǎn)特征學(xué)習(xí)層和會(huì)話特征學(xué)習(xí)層定義為數(shù)據(jù)預(yù)處理階段,兩層同步訓(xùn)練互不干擾.節(jié)點(diǎn)特征學(xué)習(xí)層根據(jù)用戶(hù)與項(xiàng)目交互信息建立交互矩陣,每行表示一位用戶(hù),每列表示一個(gè)項(xiàng)目(交互為1,未交互為0),即鄰接矩陣.此時(shí)模型需要進(jìn)行信息構(gòu)造,將用戶(hù)和項(xiàng)目根據(jù)ID建立嵌入向量.本文使用ui∈U表示用戶(hù),U表示用戶(hù)集;使用ii∈I表示項(xiàng)目,I表示項(xiàng)目集.另外,使用eu表示用戶(hù)嵌入,使用ei表示項(xiàng)目嵌入.然后根據(jù)用戶(hù)-項(xiàng)目交互矩陣,建立交互圖,若用戶(hù)與項(xiàng)目之間有交互,則存在連邊.
對(duì)于當(dāng)前用戶(hù)節(jié)點(diǎn)或目標(biāo)會(huì)話內(nèi)每個(gè)項(xiàng)目節(jié)點(diǎn),都存在高階鄰域信息.短會(huì)話的內(nèi)部節(jié)點(diǎn)較少,更需要聚合高階鄰域信息以豐富特征.本文依據(jù)鄰域聚合[18]的思想,將相鄰節(jié)點(diǎn)的特征聚合到目標(biāo)節(jié)點(diǎn)當(dāng)中,豐富目標(biāo)節(jié)點(diǎn)的特征,并在后續(xù)作為短會(huì)話的信息補(bǔ)充及相似會(huì)話權(quán)重的重要依據(jù).本文選擇He等[19]提出的LightGCN學(xué)習(xí)鄰域高階特征.LightGCN根據(jù)推薦任務(wù)節(jié)點(diǎn)信息稀疏并且特征維度較低的特點(diǎn),去除特征變換和非線性激活函數(shù),在圖卷積模型[20]中性能優(yōu)秀.
首先,節(jié)點(diǎn)特征學(xué)習(xí)層根據(jù)用戶(hù)和項(xiàng)目鄰接矩陣建立鄰接圖(如圖1所示),根據(jù)連邊從高階鄰域向目標(biāo)節(jié)點(diǎn)聚合.主要通過(guò)迭代和加權(quán)求和的方式求取目標(biāo)用戶(hù)和物品的鄰域聚合特征編碼,抽象公式
迭代公式
通過(guò)高階鄰域聚合,節(jié)點(diǎn)特征學(xué)習(xí)層將節(jié)點(diǎn)信息從高階向低階傳播,獲得每層的嵌入節(jié)點(diǎn)信息ek,本文選擇使用加權(quán)求和的方式獲得最終節(jié)點(diǎn)表示:
其中,K表示鄰接層數(shù)量,ak表示第k層聚合向量的權(quán)重,本文使用簡(jiǎn)單的1/(K+1)表示,已被證明足夠有效[19].
1.1.2會(huì)話特征學(xué)習(xí)層
MFF-SSR使用會(huì)話特征學(xué)習(xí)層學(xué)習(xí)會(huì)話序列本身隱藏的信息,主要利用門(mén)控循環(huán)單元(Gated Recurrent Unit, GRU)[21]學(xué)習(xí)順序信息.當(dāng)前會(huì)話的信息最為重要,它是篩選相似會(huì)話的重要依據(jù).上下文會(huì)話即用戶(hù)的歷史會(huì)話和其他用戶(hù)的會(huì)話則是用來(lái)與當(dāng)前會(huì)話進(jìn)行相似度計(jì)算,篩選相似會(huì)話并作為當(dāng)前會(huì)話的信息補(bǔ)充,從而預(yù)測(cè)下一個(gè)項(xiàng)目.
具體來(lái)說(shuō),首先需要將項(xiàng)目i表示為一維空間的嵌入向量ei,再根據(jù)會(huì)話的項(xiàng)目順序表示為序列S,即{ei1,ei2,…,ein}.當(dāng)前會(huì)話表示為Sc,歷史會(huì)話表示為Sh,鄰居會(huì)話表示為Sn.然后將三種序列輸入GRU中,學(xué)習(xí)順序時(shí)間信息:
ht=GRU(eit,ht-1),
其中,1≤t≤N,N表示每條會(huì)話的長(zhǎng)度,eit表示會(huì)話中第t個(gè)項(xiàng)目的嵌入向量,ht表示當(dāng)前狀態(tài),ht-1表示上一刻的狀態(tài).
為了緩解短會(huì)話信息稀少的問(wèn)題,模型需要從當(dāng)前用戶(hù)的歷史會(huì)話和其他用戶(hù)的會(huì)話中篩選出相似會(huì)話,從而學(xué)習(xí)相似特征,豐富當(dāng)前會(huì)話的信息.
1.2.1相似會(huì)話檢索網(wǎng)絡(luò)
面對(duì)數(shù)量龐大的當(dāng)前用戶(hù)歷史會(huì)話和其他用戶(hù)的會(huì)話信息,如果無(wú)法篩選真正相似的會(huì)話,會(huì)導(dǎo)致用戶(hù)偏好的誤差和造成計(jì)算的高負(fù)擔(dān).所以,為了使模型更加精確和高效,需要從龐雜的會(huì)話中選取與當(dāng)前用戶(hù)最相似的會(huì)話.
當(dāng)前用戶(hù)的歷史會(huì)話集H(uc)數(shù)量稀少并且最符合當(dāng)前用戶(hù)的偏好,模型無(wú)需對(duì)其進(jìn)行先驗(yàn)篩選,直接將其輸入相似會(huì)話檢索網(wǎng)絡(luò)中進(jìn)行計(jì)算.而對(duì)于其他用戶(hù)的會(huì)話集H(un),由于用戶(hù)數(shù)量眾多,每位用戶(hù)又會(huì)產(chǎn)生大量歷史會(huì)話集,如果將所有會(huì)話都納入計(jì)算當(dāng)中,將會(huì)對(duì)模型造成非常高的負(fù)擔(dān),花費(fèi)大量的時(shí)間.
所以模型需要預(yù)先選取一定數(shù)量的相似用戶(hù),再將他們的歷史會(huì)話作為相似檢索網(wǎng)絡(luò)的輸入.這里本文選取10個(gè)與當(dāng)前用戶(hù)最相似的用戶(hù).MFF-SSR選取與當(dāng)前用戶(hù)具有相似偏好的用戶(hù),相似度
不管是當(dāng)前用戶(hù)的歷史會(huì)話集還是其他用戶(hù)的會(huì)話集,當(dāng)引入其它會(huì)話作為補(bǔ)充信息時(shí)都會(huì)在一定程度上造成模型學(xué)習(xí)到錯(cuò)誤偏好的風(fēng)險(xiǎn),尤其是短會(huì)話信息本身所含信息量有限,更容易受到補(bǔ)充信息的影響.所以,如何更有效地找到與當(dāng)前會(huì)話相似的會(huì)話成為至關(guān)重要的問(wèn)題.當(dāng)前研究大多使用基于注意力機(jī)制的向量加權(quán)和或嵌入向量加權(quán)平均,計(jì)算當(dāng)前會(huì)話和其他會(huì)話的相似度,但是這樣會(huì)忽略會(huì)話中每個(gè)項(xiàng)目的位置信息.所以,Song等[17]選擇使用自定義的相似度測(cè)量方法篩選相似會(huì)話,計(jì)算網(wǎng)絡(luò)如圖2所示.
圖2 相似度計(jì)算網(wǎng)絡(luò)
其中
相比于Song等[17]直接使用相似度作為候選會(huì)話的特征信息,本文選擇將候選會(huì)話與其相似度進(jìn)行相乘,得到最終會(huì)話表示:
1.2.2相似會(huì)話權(quán)重網(wǎng)絡(luò)
在為相似會(huì)話檢索網(wǎng)絡(luò)找到與當(dāng)前會(huì)話相似的會(huì)話之后,因?yàn)槊總€(gè)會(huì)話所含項(xiàng)目的種類(lèi)和數(shù)量都不同,也就是說(shuō)每個(gè)會(huì)話與當(dāng)前用戶(hù)的相似度也有差異,此時(shí)并不能統(tǒng)一將它們直接作為補(bǔ)充信息.所以,需要一個(gè)權(quán)重矩陣,用于體現(xiàn)不同會(huì)話與當(dāng)前用戶(hù)的差異性.
最終進(jìn)行加權(quán)和操作,得到當(dāng)前用戶(hù)對(duì)于整個(gè)候選集的偏好權(quán)重矩陣:
1.2.3上下文會(huì)話檢索結(jié)果
相比Song等[17]的工作,此時(shí)并不直接通過(guò)MLP(Multilayer Perceptron)[23]對(duì)候選會(huì)話集進(jìn)行聚合表征.因?yàn)?.1.2節(jié)中會(huì)話特征學(xué)習(xí)層為簡(jiǎn)化模型,僅使用GRU學(xué)習(xí)會(huì)話的前向傳播特征.后續(xù)為了學(xué)習(xí)會(huì)話中更深層次的用戶(hù)偏好信息,仍需要上下文候選會(huì)話集作為輸入.
1.1.2節(jié)中會(huì)話特征學(xué)習(xí)層中的門(mén)控循環(huán)神經(jīng)網(wǎng)絡(luò)在計(jì)算會(huì)話時(shí),只是將前一個(gè)狀態(tài)納入當(dāng)前狀態(tài)計(jì)算當(dāng)中,即前向特征學(xué)習(xí).為了有效體現(xiàn)會(huì)話中每個(gè)項(xiàng)目所在位置的重要性,本文利用位置感知多頭自注意力網(wǎng)絡(luò)學(xué)習(xí)不同節(jié)點(diǎn)之間的位置權(quán)重.注意力網(wǎng)絡(luò)本身無(wú)法捕捉會(huì)話順序,對(duì)于相同項(xiàng)目處于會(huì)話不同位置的情況,注意力網(wǎng)絡(luò)計(jì)算得出的結(jié)果是一樣的.所以為了使注意力網(wǎng)絡(luò)能夠?qū)W習(xí)相對(duì)位置信息,需要在注意力網(wǎng)絡(luò)之前,對(duì)每個(gè)序列嵌入一個(gè)位置向量.Wang等[24]關(guān)注會(huì)話的反向位置信息,使用一個(gè)自定義的反向位置向量學(xué)習(xí)會(huì)話中更深層次的位置信息.相比前向位置信息,當(dāng)前會(huì)話中的項(xiàng)目到預(yù)測(cè)項(xiàng)目的距離包含更有效的信息,也就是說(shuō),越靠近末尾的物品應(yīng)該越重要.
但是,主觀地認(rèn)為末尾的物品更重要是不合理的.每位用戶(hù)在一段時(shí)間內(nèi)的興趣曲線都不一樣.若將單位用戶(hù)的所有交互項(xiàng)目按照時(shí)間線拼接成一整條會(huì)話,假設(shè)相鄰交互項(xiàng)目特征相似用戶(hù)興趣提升,特征不相似興趣下降,可以發(fā)現(xiàn)用戶(hù)的興趣曲線呈上下波動(dòng)趨勢(shì),如圖3所示.如果此時(shí)將整段會(huì)話按照時(shí)間段拆分成無(wú)數(shù)段短會(huì)話,將無(wú)法預(yù)測(cè)每段短會(huì)話處于何種曲線類(lèi)型(上升、下降、波動(dòng)).所以,主觀認(rèn)為每段會(huì)話越靠后的物品更重要是不合理的.用戶(hù)可能在一段會(huì)話的最后剛好誤點(diǎn)擊一個(gè)項(xiàng)目,那么此項(xiàng)目反而會(huì)成為噪點(diǎn)項(xiàng)目,影響模型的預(yù)測(cè).
觀察圖3可以發(fā)現(xiàn),用戶(hù)興趣曲線與正余弦曲線較相似.所以本文利用正余弦函數(shù)的思想建模位置向量,捕捉不同短會(huì)話的興趣偏好.此外,本文使用多頭自注意力網(wǎng)絡(luò)代替普通注意力網(wǎng)絡(luò).相比普通注意力網(wǎng)絡(luò),多頭自注意力網(wǎng)絡(luò)能通過(guò)多重注意力機(jī)制學(xué)習(xí)會(huì)話中更準(zhǔn)確的用戶(hù)興趣偏好.
圖3 用戶(hù)興趣曲線
首先,本文選擇正弦函數(shù)為每個(gè)會(huì)話設(shè)定一個(gè)位置嵌入向量psin,再與會(huì)話向量相加,得到包含位置信息的特征向量:
hTSCP=hTSC⊕psin.
然后將hTSCP輸入多頭自注意力網(wǎng)絡(luò)[25]中,學(xué)習(xí)會(huì)話的用戶(hù)興趣偏好,這里使用符號(hào)τ表示.相比傳統(tǒng)自注意力網(wǎng)絡(luò),多頭自注意力網(wǎng)絡(luò)利用多個(gè)注意力網(wǎng)絡(luò)得出不同結(jié)果再拼接的方式獲得會(huì)話更深層次的特征,公式如下:
其中
αhi=τ(eii,hTSCP),eii∈hTSCP.
對(duì)于輸出結(jié)果,本文分別將當(dāng)前用戶(hù)的當(dāng)前會(huì)話、歷史會(huì)話和其他用戶(hù)的會(huì)話表示為hc、hh和hn.
得出最終會(huì)話表征后,模型需要將它們拼接后計(jì)算,得到最終輸出結(jié)果:
最后本文將預(yù)測(cè)視為多分類(lèi)任務(wù),使用交叉熵?fù)p失函數(shù)訓(xùn)練模型,損失函數(shù)如下所示:
為了驗(yàn)證MFF-SSR的性能,使用如下環(huán)境進(jìn)行實(shí)驗(yàn):PyTorch框架、Windows10 64位操作系統(tǒng)、python3.7、Intel(R) Core(TM) i7-10700F CPU、DDR4 16 GB內(nèi)存、GeForce RTX 2060 6 GB顯卡.
本文選擇在Delicious和Reddit這兩個(gè)真實(shí)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn).Delicious數(shù)據(jù)集包含用戶(hù)在一個(gè)圖書(shū)評(píng)分社交系統(tǒng)中對(duì)圖書(shū)的標(biāo)記行為.Reddit數(shù)據(jù)集包含用戶(hù)對(duì)reddit論壇中帖子的評(píng)論行為.
首先,刪除整個(gè)數(shù)據(jù)集上出現(xiàn)頻率小于10次的用戶(hù)和項(xiàng)目.再將用戶(hù)相鄰交互小于閾值(本文設(shè)定為3 600 s)的交互分配到同個(gè)會(huì)話當(dāng)中.然后,為了專(zhuān)注于短會(huì)話的研究,刪除項(xiàng)目數(shù)量大于20的會(huì)話.最后,按照8∶1∶1的比例將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集.
表1列出實(shí)驗(yàn)數(shù)據(jù)集的信息.由表可以看到,2個(gè)數(shù)據(jù)集的會(huì)話平均長(zhǎng)度分別為5.6和2.6.
表1 數(shù)據(jù)集的基本信息
MFF-SSR使用的超參數(shù)如表2所示.為了保證公平性,本文設(shè)置的超參數(shù)與相關(guān)對(duì)比模型保持一致.
表2 超參數(shù)配置
為了驗(yàn)證MFF-SSR在短會(huì)話推薦領(lǐng)域的優(yōu)越性,選取如下12個(gè)對(duì)比模型,主要分為3類(lèi).
1)單會(huì)話模型.
(1)RNN[5].基于門(mén)控循環(huán)神經(jīng)網(wǎng)絡(luò)的RNN模型,使用GRU提取當(dāng)前會(huì)話中包含的用戶(hù)偏好信息,用于推薦下一個(gè)項(xiàng)目.
(2)STAMP[6].利用注意力機(jī)制同時(shí)關(guān)注用戶(hù)的短期興趣和長(zhǎng)期興趣,從而進(jìn)行聯(lián)合推薦.
(3)SR-GNN[7].基于GNN的單會(huì)話推薦模型,將會(huì)話建模為圖結(jié)構(gòu),并使用GNN獲得物品之間的轉(zhuǎn)移信息,同時(shí)單獨(dú)提取會(huì)話中最后一個(gè)項(xiàng)目,作為補(bǔ)充信息.
(4)MGS[8].利用雙圖學(xué)習(xí)項(xiàng)目表示.一個(gè)是從用戶(hù)交互動(dòng)作序列生成的會(huì)話圖.另一個(gè)是由屬性感知模塊構(gòu)建的鏡像圖,通過(guò)集成項(xiàng)目的屬性信息為每個(gè)會(huì)話項(xiàng)目選擇最具屬性代表性的信息.
2)多會(huì)話模型.
(1)SKNN[12].基于KNN的模型,從整個(gè)會(huì)話數(shù)據(jù)集上檢索與當(dāng)前會(huì)話相似的會(huì)話作為當(dāng)前會(huì)話的補(bǔ)充信息.
(2)STAN[13].改進(jìn)版的SKNN,在檢索相似會(huì)話的同時(shí),考慮會(huì)話中更多的信息,獲得更準(zhǔn)確的推薦.
(3)CSRM[15].多會(huì)話模型,利用兩個(gè)存儲(chǔ)網(wǎng)絡(luò)高效學(xué)習(xí)當(dāng)前會(huì)話信息和相似會(huì)話信息,獲得更精確的推薦.
(4)HRNN[9].建模當(dāng)前用戶(hù)的當(dāng)前會(huì)話和歷史會(huì)話,用于推薦當(dāng)前會(huì)話的下一個(gè)項(xiàng)目.
(5)II-RNN[10].基于RNN的模型,使用第2個(gè)RNN,從最近的會(huì)話中學(xué)習(xí)并預(yù)測(cè)用戶(hù)對(duì)當(dāng)前會(huì)話的興趣,并通知原始RNN以改進(jìn)推薦.
(6)INSERT[17].將用戶(hù)的歷史會(huì)話和其他用戶(hù)的會(huì)話建模為全局模塊,補(bǔ)充作為本地模塊的當(dāng)前會(huì)話的上下文特征信息,獲取在短會(huì)話中更準(zhǔn)確的推薦.
3)傳統(tǒng)順序推薦模型.
(1)SASRec(Self-Attention Based Sequential Model)[26].基于自注意力機(jī)制的序列推薦模型,在每個(gè)時(shí)間步,都從用戶(hù)的行為歷史中找出相關(guān)項(xiàng)目以預(yù)測(cè)下一個(gè)項(xiàng)目.
(2)BERT4Rec(Bidirectional Encoder Represen-tations from Transformer for Sequential Recommen-dation)[27].基于雙向自注意力機(jī)制的序列推薦模型,融合用戶(hù)歷史行為中的每個(gè)項(xiàng)目左右的上下文以預(yù)測(cè)項(xiàng)目.
本文選擇廣泛使用的排名指標(biāo)Recall@K和MRR@K,評(píng)估所有模型的推薦性能.
1)Recall@K.通常驗(yàn)證在正樣本中有多少被預(yù)測(cè)為真,推薦系統(tǒng)中理解為有多少項(xiàng)目被模型正確推薦,公式如下:
其中,u表示用戶(hù),Ru表示模型預(yù)測(cè)的需要被推薦的項(xiàng)目集合,Tu表示真實(shí)測(cè)試集上被推薦的集合.
2)MRR@K.反映推薦的項(xiàng)目是否處在序列的前列,強(qiáng)調(diào)位置關(guān)系,公式如下:
其中,N表示推薦次數(shù),1/pi表示用戶(hù)真實(shí)訪問(wèn)項(xiàng)目在結(jié)果序列中的位置,若該項(xiàng)目不在序列中,此時(shí)pi為無(wú)窮大.
本文在兩個(gè)真實(shí)數(shù)據(jù)集上對(duì)比各模型,結(jié)果如表3所示.在表中,黑體數(shù)字表示最優(yōu)值,斜體數(shù)字表示次優(yōu)值.為了公平起見(jiàn),除MFF-SSR結(jié)果以外,對(duì)比模型結(jié)果均引用自參考文獻(xiàn).
由表3可見(jiàn),相比次優(yōu)模型:在Delicious數(shù)據(jù)集上,MFF-SSR分別在評(píng)分標(biāo)準(zhǔn)Recall@5、Recall@20、MRR@5、MRR@20上提升20.96%、9.71%、27.93%、24.46%;在Reddit數(shù)據(jù)集上,MFF-SSR分別提升16.50%、1.73%、28.09%、26.00%.從結(jié)果可以看到,本文模型性能提升比較明顯.
表3 各模型在2個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
從表3可以看到,基于單會(huì)話的對(duì)比模型(RNN、STAMP、SR-GNN、MGS)表現(xiàn)最差.這是因?yàn)楫?dāng)專(zhuān)注于短會(huì)話推薦時(shí),由于當(dāng)前會(huì)話中包含的信息有限,模型無(wú)法做出更精確的推薦.同時(shí)在這4種模型當(dāng)中,RNN的性能最低,這是因?yàn)闀?huì)話中的項(xiàng)目使用嚴(yán)格的順序假設(shè),而由于短會(huì)話項(xiàng)目稀少,無(wú)法有效學(xué)習(xí)會(huì)話中的順序信息.STAMP在Delicious數(shù)據(jù)集上表現(xiàn)優(yōu)于RNN,但是在Reddit數(shù)據(jù)集上性能最差.這是因?yàn)镾TAMP使用的注意力機(jī)制擅長(zhǎng)于從長(zhǎng)會(huì)話中學(xué)習(xí)有效信息,但是從表1可以看出,由于Reddit數(shù)據(jù)集上平均每條會(huì)話長(zhǎng)度(2.6)遠(yuǎn)小于Delicious數(shù)據(jù)集上平均每條會(huì)話長(zhǎng)度(5.6),所以無(wú)法從Reddit數(shù)據(jù)集上學(xué)習(xí)到足夠的有效信息.得益于GNN在表示學(xué)習(xí)方面的優(yōu)勢(shì),SR-GNN將單個(gè)會(huì)話建模到GNN之中,從而獲取會(huì)話中更多的信息,但其仍然局限于項(xiàng)目嵌入向量,所以效果不佳.MGS關(guān)注項(xiàng)目的屬性信息,通過(guò)集成項(xiàng)目的屬性信息為每個(gè)會(huì)話項(xiàng)目選擇最具屬性代表性的信息.該模型將項(xiàng)目的屬性信息(如標(biāo)簽)作為會(huì)話內(nèi)項(xiàng)目的上下文補(bǔ)充信息,在一定程度上豐富會(huì)話的特征性息,因此在4種單會(huì)話模型中效果最優(yōu),也優(yōu)于一些多會(huì)話模型.由于MGS上下文信息取決于會(huì)話內(nèi)部項(xiàng)目,若內(nèi)部項(xiàng)目數(shù)量過(guò)少,可獲得的項(xiàng)目屬性也相應(yīng)較少,所以其在會(huì)話平均長(zhǎng)度為5.6的Delicious數(shù)據(jù)集上效果好于在會(huì)話平均長(zhǎng)度為2.6的Reddit數(shù)據(jù)集上的效果.
在多會(huì)話模型(SKNN、STAN、CSRM、HRNN、II-RNN、STAGE、INSERT)中,SKNN和STAN結(jié)構(gòu)相似,兩者的主要區(qū)別在于是否考慮到會(huì)話中更多的信息.但是由于兩者都只使用簡(jiǎn)單的方法衡量會(huì)話之間的相似度,因此很難保證檢索的會(huì)話是否真的對(duì)當(dāng)前會(huì)話的下一項(xiàng)推薦有效.CSRM針對(duì)這一點(diǎn)進(jìn)行改進(jìn),通過(guò)存儲(chǔ)網(wǎng)絡(luò)相對(duì)精確地檢索與當(dāng)前會(huì)話相似的會(huì)話,提供更精確的推薦.HRNN和II-RNN的思想比較相似,都是直接使用當(dāng)前用戶(hù)的歷史會(huì)話信息以補(bǔ)充當(dāng)前會(huì)話的特征,不需要考慮相似度問(wèn)題,所以?xún)烧叩男阅軆?yōu)于KNN、STAN和CSRN.但是HRNN和II-RNN假設(shè)用戶(hù)的歷史會(huì)話與當(dāng)前會(huì)話強(qiáng)相關(guān),然而用戶(hù)在不同時(shí)間段內(nèi)可能會(huì)產(chǎn)生不同的偏好興趣,因此兩者的性能并不是最優(yōu).INSERT區(qū)分當(dāng)前用戶(hù)的歷史會(huì)話和其他用戶(hù)的會(huì)話,并將兩者納入考慮之中,通過(guò)自定義的會(huì)話檢索網(wǎng)絡(luò)比較精確地檢索與當(dāng)前會(huì)話真正相似的會(huì)話序列,再將這些會(huì)話作為當(dāng)前短會(huì)話的補(bǔ)充信息.所以,除了Reddit數(shù)據(jù)集上的Recall指標(biāo),INSERT的其它指標(biāo)結(jié)果都優(yōu)于對(duì)比模型.
傳統(tǒng)順序推薦模型(SASRec、BERT4Rec)使用用戶(hù)的項(xiàng)目序列補(bǔ)充當(dāng)前會(huì)話的信息,該項(xiàng)目序列由用戶(hù)的所有會(huì)話按照時(shí)間順序拼接而成.BERT4Rec在Reddit數(shù)據(jù)集上的召回率是所有模型中最高的,適用于詞向量的BERT語(yǔ)言模型[28]運(yùn)用于會(huì)話推薦.BERT4Rec在Reddit數(shù)據(jù)集上表現(xiàn)最優(yōu)的原因是因?yàn)镽eddit數(shù)據(jù)集是一個(gè)論壇評(píng)論數(shù)據(jù)集,用戶(hù)可能對(duì)于同一話題重復(fù)訪問(wèn)并評(píng)論多次,從而造成該話題在用戶(hù)的相互序列中重復(fù)出現(xiàn),使模型能夠較準(zhǔn)確地推薦該主題.除了召回率之外,SASRec和BERT4Rec在2個(gè)數(shù)據(jù)集上的其它指標(biāo)都低于多會(huì)話模型.這可能是在處理數(shù)據(jù)集時(shí)過(guò)濾長(zhǎng)會(huì)話導(dǎo)致用戶(hù)只剩下短會(huì)話信息,從而造成有些用戶(hù)沒(méi)有足夠的歷史會(huì)話以充分學(xué)習(xí)其偏好信息.另外,將用戶(hù)所有歷史會(huì)話拼接到一個(gè)序列中,可能會(huì)破壞會(huì)話的內(nèi)在事務(wù)結(jié)構(gòu)[3].在真實(shí)數(shù)據(jù)集上,用戶(hù)的不同會(huì)話之間有時(shí)會(huì)存在較大的差異性,將它們拼接在一起反而會(huì)干擾推薦模型.
相比之下,MFF-SSR針對(duì)上述問(wèn)題進(jìn)行優(yōu)化,同時(shí)考慮當(dāng)前用戶(hù)的歷史會(huì)話和其他用戶(hù)的會(huì)話作為當(dāng)前會(huì)話的上下文信息,并使用更精確的相似會(huì)話檢索網(wǎng)絡(luò)篩選上下文會(huì)話.為了緩解短會(huì)話自身項(xiàng)目稀少的問(wèn)題,引入圖神經(jīng)網(wǎng)絡(luò),充分學(xué)習(xí)每個(gè)項(xiàng)目的特征.另外,模型也使用位置感知多頭自注意力網(wǎng)絡(luò),補(bǔ)充學(xué)習(xí)每個(gè)會(huì)話項(xiàng)目之間的位置信息.由表3可以看到,MFF-SSR在2個(gè)真實(shí)數(shù)據(jù)集上的指標(biāo)值最高.
由2.5節(jié)可以看到,相比其它對(duì)比模型,MFF-SSR性能具有明顯提升.為了驗(yàn)證MFF-SSR中不同模塊對(duì)于整個(gè)模型的作用以及一些超參數(shù)的設(shè)置對(duì)于本文模型的影響,設(shè)置3組不同的消融實(shí)驗(yàn).
2.6.1模型中不同模塊的影響
為了驗(yàn)證MFF-SSR各個(gè)模塊的有效性,使用依次屏蔽各個(gè)模塊結(jié)果的方式進(jìn)行消融實(shí)驗(yàn),各對(duì)比模型如下所示.
1)Version-1.在該模型中,刪除空間信息學(xué)習(xí)模塊,不再對(duì)用戶(hù)和項(xiàng)目節(jié)點(diǎn)進(jìn)行預(yù)處理的領(lǐng)域聚合操作,即只使用隨機(jī)初始化的用戶(hù)和項(xiàng)目特征向量.
2)Version-2.在該模型中,刪除時(shí)間信息學(xué)習(xí)模塊,不再通過(guò)GRU學(xué)習(xí)會(huì)話中項(xiàng)目之間的順序信息,而是直接將會(huì)話輸入到后續(xù)模塊之中.
3)Version-3.在該模型中,刪除上下文信息學(xué)習(xí)模塊,即模型變成基于單會(huì)話的模型.
4)Version-4.在該模型中,刪除位置感知多頭自注意力網(wǎng)絡(luò),不再學(xué)習(xí)會(huì)話中各項(xiàng)目之間的反響位置信息.
5)Version-5.在該模型中,選擇忽略當(dāng)前用戶(hù)的歷史會(huì)話,只將其他用戶(hù)的會(huì)話作為當(dāng)前會(huì)話的上下文信息.
6)Version-6.在該模塊中,選擇忽略其他用戶(hù)的會(huì)話,只將當(dāng)前用戶(hù)的歷史會(huì)話作為當(dāng)前會(huì)話的上下文信息.
7)Version-7.在該模塊中,只使用隨機(jī)初始化而不是空間信息學(xué)習(xí)模塊預(yù)處理的用戶(hù)特征向量作為相似會(huì)話權(quán)重網(wǎng)絡(luò)的參考依據(jù).
各模型消融實(shí)驗(yàn)結(jié)果如表4所示,表中黑體數(shù)字表示最優(yōu)值.
表4 不同模塊在2個(gè)數(shù)據(jù)集上的消融實(shí)驗(yàn)結(jié)果
由表4可以看出,刪除上下文信息學(xué)習(xí)模塊的模型(Version-3)性能最差,這是因?yàn)閷?duì)于項(xiàng)目稀少的短對(duì)話來(lái)說(shuō),上下文信息是最重要的補(bǔ)充信息.這一點(diǎn)在忽略當(dāng)前用戶(hù)歷史會(huì)話的模型(Version-5)和忽略其他用戶(hù)會(huì)話的模型(Version-6)的結(jié)果中也能體現(xiàn).但是值得注意的是,Version-5和Version-6在兩個(gè)數(shù)據(jù)集上的性能完全相反.在Delicious數(shù)據(jù)集上,其他用戶(hù)的會(huì)話對(duì)于當(dāng)前會(huì)話的重要性大于當(dāng)前用戶(hù)的歷史會(huì)話.這是因?yàn)镈elicious數(shù)據(jù)集上的用戶(hù)各會(huì)話之間的差異性較大,即用戶(hù)不同時(shí)間段的興趣偏好差異較大,所以其他用戶(hù)的會(huì)話的參考意義相對(duì)更高.而在Reddit數(shù)據(jù)集上,當(dāng)前用戶(hù)的歷史會(huì)話對(duì)當(dāng)前會(huì)話的重要性大于其他用戶(hù)的會(huì)話.這是因?yàn)镽eddit數(shù)據(jù)集是一個(gè)社交論壇評(píng)論數(shù)據(jù)集,用戶(hù)對(duì)于感興趣的話題會(huì)重復(fù)評(píng)論,所以用戶(hù)的歷史會(huì)話之間的相關(guān)性較強(qiáng),參考意義也更強(qiáng).這也是SASRec和BERT4Rec能在召回率指標(biāo)上超過(guò)多會(huì)話模型的原因之一.刪除空間信息模塊的模型(Version-1)和刪除用戶(hù)聚合特征向量的模型(Version-7)可以看成一類(lèi),只是相比Version-1,Version-7通過(guò)鄰域聚合操作預(yù)處理項(xiàng)目節(jié)點(diǎn).這兩者的實(shí)驗(yàn)結(jié)果也表明預(yù)處理用戶(hù)和項(xiàng)目節(jié)點(diǎn)的重要性.去除時(shí)間信息學(xué)習(xí)模塊的模型(Version-2)和刪除位置信息學(xué)習(xí)模塊的模型(Version-4)都是刪減一部分針對(duì)單個(gè)會(huì)話的操作,也不能放棄會(huì)話自身的特征學(xué)習(xí).綜上所述,模型的各個(gè)模塊都對(duì)本文模型做出一定的貢獻(xiàn),刪除任何一個(gè)都會(huì)在一定程度上降低MFF-SSR的精確性.
2.6.2圖神經(jīng)網(wǎng)絡(luò)層數(shù)的影響
本文檢測(cè)圖神經(jīng)網(wǎng)絡(luò)鄰域?qū)訑?shù)對(duì)模型的影響,分別測(cè)試采用1層,2層,3層,4層鄰域下模型的性能,結(jié)果如表5所示,表中黑體數(shù)字表示最優(yōu)值.
表5 圖神經(jīng)網(wǎng)絡(luò)層數(shù)對(duì)模型性能的影響
從表5中可以看到,模型在鄰域?qū)訑?shù)為3時(shí)總體效果最優(yōu),這與文獻(xiàn)[19]中的結(jié)果一致.這是因?yàn)猷徲驅(qū)訑?shù)較少會(huì)導(dǎo)致聚合的鄰域節(jié)點(diǎn)不足,不能夠充分學(xué)習(xí)用戶(hù)特征和項(xiàng)目節(jié)點(diǎn)特征.從另一方面講,過(guò)多的鄰域?qū)訑?shù)也會(huì)導(dǎo)致過(guò)擬合問(wèn)題,反而降低模型效果.對(duì)比權(quán)衡之下,鄰域?qū)訑?shù)設(shè)置為3.
2.6.3相似用戶(hù)數(shù)量對(duì)推薦效果的影響
選取合適數(shù)量的相似用戶(hù)也是本文研究的重要問(wèn)題之一.過(guò)多的相似用戶(hù)會(huì)導(dǎo)致過(guò)擬合和增大模型的負(fù)擔(dān),過(guò)少則會(huì)導(dǎo)致模型學(xué)習(xí)到的上下文會(huì)話信息不夠.所以,本文選擇數(shù)量為5、10、15的相似用戶(hù),測(cè)試模型性能,結(jié)果如表6所示.
表6 相似用戶(hù)數(shù)量對(duì)模型性能的影響
從表6可以看到,選擇相似用戶(hù)數(shù)量為10時(shí)效果最優(yōu).這點(diǎn)與文獻(xiàn)[17]中的結(jié)論一致.過(guò)多的相似用戶(hù)并不能有效提升模型性能,反而會(huì)增加模型的訓(xùn)練時(shí)間.這是因?yàn)榍癗位用戶(hù)與當(dāng)前用戶(hù)足夠相似,而超過(guò)閾值的相似用戶(hù)反而可能產(chǎn)生負(fù)面信息.所以,本文選擇與當(dāng)前用戶(hù)相似度排名前10的其他用戶(hù)的會(huì)話作為上下文信息.
為了從短會(huì)話中學(xué)習(xí)更豐富的用戶(hù)偏好和更精確地找到相似上下文會(huì)話,本文提出多特征融合短會(huì)話推薦模型(MFF-SSR),同時(shí)關(guān)注短會(huì)話自身項(xiàng)目隱藏信息和上下文信息.對(duì)于會(huì)話自身信息,模型首先將項(xiàng)目節(jié)點(diǎn)建模到圖神經(jīng)網(wǎng)絡(luò)中,學(xué)習(xí)鄰域特征,然后利用門(mén)控循環(huán)神經(jīng)網(wǎng)絡(luò)和位置感知多頭自注意力網(wǎng)絡(luò)充分發(fā)掘會(huì)話時(shí)序和位置上的隱藏特征.對(duì)于會(huì)話的上下文信息,通過(guò)相似會(huì)話檢索網(wǎng)絡(luò),尋找與當(dāng)前會(huì)話最相似的會(huì)話,緩解短會(huì)話信息稀少的問(wèn)題,并通過(guò)相似會(huì)話權(quán)重網(wǎng)絡(luò),為每個(gè)上下文會(huì)話根據(jù)當(dāng)前用戶(hù)的偏好分配差異性的權(quán)重.最終通過(guò)學(xué)習(xí)的短會(huì)話特征為用戶(hù)推薦下一個(gè)項(xiàng)目.在兩個(gè)真實(shí)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果均體現(xiàn)MFF-SSR的優(yōu)越性.今后將考慮引入更多輔助信息,如用戶(hù)和項(xiàng)目的標(biāo)簽信息,進(jìn)一步強(qiáng)化模型短會(huì)話特征學(xué)習(xí)能力.另外,也將考慮模型在復(fù)雜會(huì)話環(huán)境下的適應(yīng)能力,進(jìn)行更深一步的研究.