汪菁瑤,吳國(guó)棟,范維成,涂立靜,李景霞
(安徽農(nóng)業(yè)大學(xué) 信息與計(jì)算機(jī)學(xué)院,合肥 230036)
在信息過(guò)載的數(shù)字經(jīng)濟(jì)時(shí)代,用戶不得不從海量的信息中尋找自己感興趣的物品,如何快速且精準(zhǔn)地從繁雜的數(shù)據(jù)中獲取有價(jià)值的信息已然成為當(dāng)前社會(huì)所關(guān)注的熱點(diǎn)話題.推薦系統(tǒng)的目的在于幫助用戶從海量的數(shù)據(jù)中,挖掘出用戶感興趣的目標(biāo)數(shù)據(jù).目前,推薦系統(tǒng)在很多領(lǐng)域得到成功應(yīng)用,包括電子商務(wù)(如Amazon、eBay、Netflix、阿里巴巴等)、信息檢索(如iGoogle、MyYahoo、百度等)、社交網(wǎng)絡(luò)(Facebook、Twitter、騰訊等)、位置服務(wù)(如Foursauare、Yelp、大眾點(diǎn)評(píng)等)、新聞推送(如Google News、GroupLens、今日頭條等)等各個(gè)領(lǐng)域,并取得了良好效果[1].
在現(xiàn)實(shí)生活中,用戶從進(jìn)入到離開(kāi)平臺(tái),通常會(huì)先后與多個(gè)物品產(chǎn)生交互,按照交互發(fā)生的先后順序記錄用戶對(duì)每個(gè)物品的行為,這些行為所排列成的序列稱為用戶行為序列,現(xiàn)實(shí)生活中有大量以序列形式存在著的事物[2].傳統(tǒng)的推薦系統(tǒng)主要是基于協(xié)同過(guò)濾算法和基于內(nèi)容的推薦,他們大多根據(jù)用戶和物品之間顯性或隱性的交互來(lái)建模,得到用戶的偏好,傾向于利用用戶的歷史交互來(lái)了解用戶的靜態(tài)偏好.然而,序列中前后不同的交互之間可能存在一定的依賴關(guān)系[3],且用戶的偏好是動(dòng)態(tài)的,其下一個(gè)行為不僅取決于靜態(tài)的長(zhǎng)期偏好,而且在很大程度上還取決于用戶的短期偏好.另一方面,序列是由一組按照時(shí)間排序的隨機(jī)變量組成,反映用戶偏好的變化趨勢(shì),現(xiàn)有研究大多忽略了用戶交互之間的順序性,會(huì)導(dǎo)致對(duì)用戶偏好的建模不準(zhǔn)確.與協(xié)同過(guò)濾和基于內(nèi)容的傳統(tǒng)推薦方法不同,用戶行為序列推薦考慮交互過(guò)程中的時(shí)序信息,利用數(shù)據(jù)之間的關(guān)聯(lián)信息,有效捕獲用戶的偏好,提高推薦效果.近年來(lái),序列推薦在學(xué)術(shù)研究和實(shí)際應(yīng)用中日漸流行起來(lái),每年計(jì)算機(jī)領(lǐng)域的相關(guān)頂級(jí)會(huì)議(如AAAI,WWW,SIGIR,CIKM等)中都能看到與序列推薦的相關(guān)研究,國(guó)內(nèi)外很多公司(如阿里巴巴,YouTube,美團(tuán)等)也對(duì)用戶行為序列推薦系統(tǒng)開(kāi)展了研究[4,5].同樣,序列推薦也應(yīng)用于多種領(lǐng)域,如音樂(lè)推薦[6],電影推薦[7],新聞推薦[8]等等.
用戶偏好往往隨時(shí)間變化而變化,本文對(duì)現(xiàn)有的序列推薦研究進(jìn)行較為全面地歸納,整體框架如圖1所示.將序列推薦分成3種:用戶短期偏好序列推薦、用戶長(zhǎng)期偏好序列推薦和用戶長(zhǎng)短期偏好序列推薦.
圖1 用戶行為序列推薦框架圖
2.1.1 用戶及用戶屬性
用戶是推薦系統(tǒng)研究的對(duì)象,是產(chǎn)生行為以及接受推薦結(jié)果的主體.通常用u表示一個(gè)用戶,用戶集表示為U={u1,u2,…,u|U|},|U|表示用戶的數(shù)量.當(dāng)用戶注冊(cè)登錄時(shí),每個(gè)用戶通常都有一個(gè)唯一的身份信息(Identity Document,ID),且每個(gè)用戶都有一組與其相關(guān)的屬性,如年齡、性別等,這些屬性能夠讓用戶得到更好的推薦.當(dāng)然,在序列推薦中,用戶也可以在匿名狀態(tài)下進(jìn)行操作.
2.1.2 物品及物品屬性
物品在推薦系統(tǒng)中作為被推薦的對(duì)象,是承受行為以及作為推薦結(jié)果的實(shí)體.通常用v表示一個(gè)物品,物品集表示為V={v1,v2,…,v|V|},|V|表示物品的數(shù)量.一般來(lái)說(shuō),不同的物品對(duì)應(yīng)不同的屬性,如對(duì)于音樂(lè)平臺(tái)來(lái)說(shuō),物品對(duì)應(yīng)的風(fēng)格不同的樂(lè)曲,而在一些電商平臺(tái),物品對(duì)應(yīng)的往往是一件商品.
2.1.3 用戶—物品交互及交互屬性
用戶和物品之間的交互是序列中最基本的構(gòu)成,可以將用戶—物品的交互表示為一個(gè)三元組,a表示交互行為類型,可以是瀏覽,點(diǎn)擊,購(gòu)買(mǎi),評(píng)價(jià)等,當(dāng)用戶信息不可用或沒(méi)有時(shí),交互將變成匿名交互,即變成二元組
用戶行為序列推薦是以一組用戶和物品的交互行為作為輸入,通常是有序且?guī)в袝r(shí)間戳的,通過(guò)對(duì)交互序列中復(fù)雜的依賴關(guān)系建模,預(yù)測(cè)用戶后續(xù)可能會(huì)產(chǎn)生的交互,輸出形式一般是排名前n項(xiàng)的物品列表,排名可以通過(guò)概率、絕對(duì)值或者相對(duì)排序來(lái)確定,大多數(shù)情況采用softmax函數(shù)生成輸出.
序列推薦可通過(guò)式(1)所示的公式表示,其中,Su為用戶行為序列,fRec表示用戶行為序列的推薦算法,yu輸出表示推薦給用戶u的物品列表.
yu=fRec(Su)
(1)
用戶行為序列推薦有兩種代表性的任務(wù):下個(gè)物品(Next-item)推薦和下個(gè)籃子(Next-basket)推薦.下個(gè)物品推薦中,只有一個(gè)推薦物品,這個(gè)物品可以是一首歌、一部電影或一個(gè)地點(diǎn);但下個(gè)籃子推薦中則包含多個(gè)物品.
用戶的偏好可以分成兩種,分別是長(zhǎng)期偏好和短期偏好.序列推薦中既存在像傳統(tǒng)推薦算法一樣捕捉到用戶的長(zhǎng)期偏好,同時(shí)也有對(duì)用戶的短期偏好進(jìn)行建模,近年來(lái),隨著深度學(xué)習(xí)技術(shù)的發(fā)展,越來(lái)越多的新技術(shù)應(yīng)用到序列推薦中,能夠同時(shí)考慮到用戶的短期偏好和長(zhǎng)期偏好,提高了推薦的性能.
用戶的長(zhǎng)期偏好通常是不易改變的,代表著用戶的長(zhǎng)期興趣,一般包含在整個(gè)用戶行為序列中,通過(guò)建模用戶對(duì)物品的交互歷史序列,盡可能地考慮用戶行為序列的全局信息,因而能夠捕獲到用戶的長(zhǎng)期偏好[9].用戶的短期偏好是隨時(shí)間不斷變化的,用戶的短期偏好代表的是用戶當(dāng)前興趣,通常由用戶近期的交互行為所反映,通過(guò)建模包含當(dāng)前交互的短序列或者會(huì)話,獲得用戶的短期偏好,這里會(huì)話是指一個(gè)時(shí)間段內(nèi)發(fā)生的一組用戶交互行為.
以線上購(gòu)物場(chǎng)景為例,根據(jù)用戶與物品的歷史交互分析出用戶可能是電子產(chǎn)品愛(ài)好者,因?yàn)樗群筚?gòu)買(mǎi)或點(diǎn)擊了不同的電子產(chǎn)品,如手機(jī)、電腦等,可以推斷該用戶長(zhǎng)期以來(lái)都對(duì)電子產(chǎn)品有著濃厚的興趣,代表著用戶的長(zhǎng)期偏好.而若用戶最近的交互是書(shū)籍,這代表著用戶最近的興趣可能是閱讀,代表著用戶的短期偏好.綜合考慮用戶的長(zhǎng)期和短期偏好,可能會(huì)給用戶推薦電子書(shū)籍閱讀器,更符合該用戶的興趣.因此,結(jié)合兩種類型的用戶偏好為用戶進(jìn)行推薦,可以得到更好的推薦效果.
早期的序列推薦主要是依靠馬爾科夫鏈(Markov Chain,MC),使用馬爾科夫鏈對(duì)序列中的用戶—物品交互數(shù)據(jù)進(jìn)行建模,通過(guò)轉(zhuǎn)移概率預(yù)測(cè)下一次交互.一階馬爾科夫鏈中,觀測(cè)變量v的取值僅依賴于其對(duì)應(yīng)的狀態(tài)變量V,同時(shí),t時(shí)刻的行為僅依賴于t-1時(shí)刻的行為,與此前的t-2個(gè)行為無(wú)關(guān),即在推薦系統(tǒng)中的下一個(gè)交互僅由當(dāng)前交互決定,不依賴于歷史交互.
2005年Shani等人[10]首次將馬爾科夫鏈應(yīng)用在推薦系統(tǒng)當(dāng)中,但是沒(méi)有能充分利用用戶的上下文信息.針對(duì)這個(gè)問(wèn)題,Hosseinzadeh等人[11]將用戶行為建模為隱馬爾可夫鏈(Hidden Markov Model ,HMM)以捕捉用戶偏好的變化,并將用戶的當(dāng)前上下文信息建模為模型中的隱變量.同樣,Le等人[12]也是將用戶行為建模為隱馬爾科夫鏈,不同的是后者考慮了用戶動(dòng)態(tài)偏重排放(Dynamic User-Biased Emissions)等因素,例如不同用戶在購(gòu)買(mǎi)服裝時(shí)都會(huì)考慮到季節(jié),但是在每個(gè)季節(jié)所選擇的服飾品牌是不同的.He等人[13]和Feng等人[14]使用一階馬爾科夫鏈,只考慮最后一次交互行為,而He等人在文獻(xiàn)[15]中采用高階馬爾科夫鏈,考慮了最后幾次的用戶交互行為.雖然在高階馬爾科夫鏈中考慮了更多的歷史交互的依賴關(guān)系,但還是無(wú)法在一個(gè)相對(duì)較長(zhǎng)的序列中捕捉更多的行為之間的依賴關(guān)系,即無(wú)法體現(xiàn)用戶的長(zhǎng)期偏好,除此之外,處理稀疏數(shù)據(jù)表現(xiàn)也不好[16].
近年來(lái),考慮到用戶的偏好是多樣的,Eskandanian等人[17]提出了一個(gè)基于HMM的推薦框架,該框架關(guān)注用戶行為序列中用戶偏好開(kāi)始發(fā)生變化的首次交互位置且考慮用戶偏好的多樣性,使用HMM檢測(cè)用戶偏好變更點(diǎn),并根據(jù)變更點(diǎn)對(duì)用戶行為序列進(jìn)行分割,不同片段代表用戶的不同偏好,通過(guò)矩陣分解將這種檢測(cè)方法集成到推薦模型中.同樣,Shao等人[18]認(rèn)為用戶的歷史行為序列中包含多種偏好,將分解用戶歷史行為序列看成馬爾科夫決策過(guò)程,提出自適應(yīng)分解用戶偏好來(lái)構(gòu)建序列推薦模型.
K近鄰算法(K-Nearest Neighbor ,KNN)[19]簡(jiǎn)單,高效,可解釋性強(qiáng),被廣泛應(yīng)用在序列推薦當(dāng)中[20,21].從原理上看,K近鄰算法首先從序列數(shù)據(jù)中找出與當(dāng)前交互或會(huì)話最相似的K個(gè)交互或會(huì)話.然后,根據(jù)相似度計(jì)算每個(gè)候選交互的得分,表示當(dāng)前交互與歷史交互的相似性,根據(jù)相似性的大小對(duì)用戶進(jìn)行推薦,相似度越高的物品,越有可能推薦給用戶.
Linden等人[22]在2003年提出了一種算法,通過(guò)計(jì)算序列中物品之間的相似度,找到與用戶當(dāng)前購(gòu)買(mǎi)物品最近鄰域中的物品.K近鄰相關(guān)算法會(huì)損失部分可用信息的重要部分,因此文獻(xiàn)[21]融合了基于用戶和基于物品的兩種最近鄰算法的優(yōu)點(diǎn),提出了統(tǒng)一最近鄰協(xié)同過(guò)濾算法(K Unified Nearest Neigh,KUNN).但是該類算法[23]均只考慮序列中的最后一個(gè)交互,也就是只考慮到了用戶的短期偏好.
相比之下,基于會(huì)話的K近鄰?fù)扑]應(yīng)運(yùn)而生,計(jì)算當(dāng)前會(huì)話序列與歷史會(huì)話序列的相似度,得到K個(gè)鄰居會(huì)話序列的集合.與基于物品的K近鄰算法相比,基于會(huì)話的K近鄰算法考慮的是整個(gè)會(huì)話序列,而不僅僅只是一個(gè)當(dāng)前交互,因此可以獲得更多的信息,進(jìn)行更準(zhǔn)確的推薦.基于會(huì)話的KNN推薦也衍生出很多變體,若僅僅只考慮最后一次交互物品的最近鄰域,不考慮物品在序列中的位置和序列中的其他信息,忽視序列的歷史交互,會(huì)影響推薦效果,為了解決這個(gè)問(wèn)題,Garg等人[24]提出了一種序列和時(shí)間感知領(lǐng)域(Sequence and Time Aware Neighborhood,STAN)算法,該算法添加了序列的順序和時(shí)間信息,當(dāng)前一個(gè)會(huì)話中,離當(dāng)前交互越近的交互權(quán)重應(yīng)該越高,其中p(i,s)表示物品i在會(huì)話s中的位置,l(s)為會(huì)話長(zhǎng)度,如公式(2)所示:
(2)
不同會(huì)話中,越早產(chǎn)生的會(huì)話權(quán)重應(yīng)該越低,公式見(jiàn)式(3):
(3)
得到的鄰域會(huì)話n中,i*是同時(shí)存在鄰域會(huì)話和當(dāng)前會(huì)話中的物品,與當(dāng)前會(huì)話距離越近的物品,權(quán)重越高,見(jiàn)式(4):
(4)
此外,現(xiàn)有的循環(huán)神經(jīng)網(wǎng)絡(luò)不能直接捕獲推薦場(chǎng)景中用戶購(gòu)買(mǎi)每件物品的次數(shù),Hu等人[25]提出一種基于物品購(gòu)買(mǎi)頻率的KNN算法,充分利用率物品頻率信息.RAC等人[26]對(duì)簡(jiǎn)單的基于KNN的推薦進(jìn)行擴(kuò)展,添加了語(yǔ)義因子,通過(guò)語(yǔ)義層的屬性更好的適應(yīng)用戶偏好的變化.
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)通常用于處理時(shí)間序列數(shù)據(jù),其中典型的結(jié)構(gòu)由卷積層、池化層和前饋全連接層組成,它適合于捕捉序列中局部信息的依賴關(guān)系.在序列推薦中,基于卷積神經(jīng)網(wǎng)絡(luò)的模型可以很好地捕捉會(huì)話中的局部特征,并且還可以在輸入層加入時(shí)間信息.
Tang等人[27]提出一種卷積序列嵌入推薦模型(Convolutional Sequence Embedding Recommendation Model,Caser),結(jié)構(gòu)如圖2所示,模型由3個(gè)部分組成,分別是嵌入層、卷積層和全連接層,從序列中提取若干個(gè)連續(xù)項(xiàng)作為輸入嵌入到神經(jīng)網(wǎng)絡(luò)中,使用水平卷積層和垂直卷積層捕獲序列的局部特征,再通過(guò)全連接層得到更高級(jí)別的特征.卷積神經(jīng)網(wǎng)絡(luò)對(duì)當(dāng)前序列的特征進(jìn)行提取,模型沒(méi)有直接從左到右單向結(jié)構(gòu)來(lái)處理數(shù)據(jù),而是整個(gè)將作為結(jié)構(gòu)化的信息交給CNN來(lái)進(jìn)行特征提取.
圖2 Caser結(jié)構(gòu)圖
Yuan等人[28]對(duì)Caser模型進(jìn)行了改進(jìn),Caser模型屬于淺層網(wǎng)絡(luò),難以捕獲復(fù)雜的關(guān)系以及對(duì)長(zhǎng)期依賴建模,且在生成下一個(gè)物品時(shí),Caser模型只考慮了最后一個(gè)物品的條件概率分布.針對(duì)該問(wèn)題,Hsu等人[29]提出一種網(wǎng)絡(luò)結(jié)構(gòu)在用戶嵌入層和水平卷積層與Caser模型非常相似,但沒(méi)有加入垂直卷積層.文獻(xiàn)[30]中進(jìn)而設(shè)計(jì)三維卷積神經(jīng)網(wǎng)絡(luò)模型(3 Dimensional Convolutional Neural Network,3D-CNN),用一個(gè)嵌入矩陣來(lái)串聯(lián)物品身份信息、名稱和類別,使用三維卷積神經(jīng)網(wǎng)絡(luò)針對(duì)序列推薦中的用戶—物品交互數(shù)據(jù)以及內(nèi)容特征更好地進(jìn)行建模.2019年,文獻(xiàn)[31]提出一種2D卷積序列推薦(2D Convolutional Networkfor Sequential Recommendation ,CosRec),將序列中的物品編碼成一個(gè)三維張量,使用二維卷積濾波器學(xué)習(xí)序列的局部特征.Yuan等人[32]繼續(xù)進(jìn)一步擴(kuò)展,提出一個(gè)可以捕獲物品高階表示的模型,名為間隙填充推薦(Gap-filling based Recommender,GRec),主要結(jié)構(gòu)是用層疊的空洞卷積(Dilated Convolutional)來(lái)擴(kuò)大表示范圍,并且使用剩余塊結(jié)構(gòu)優(yōu)化深度網(wǎng)絡(luò),GRec模型利用基于間隙填充的編碼器-解碼器框架和掩碼卷積操作,同時(shí)考慮過(guò)去和未來(lái)的數(shù)據(jù),而不存在3D-CNN中的數(shù)據(jù)泄漏問(wèn)題,但是GRec模型中使用的數(shù)據(jù)增強(qiáng)和自回歸訓(xùn)練是訓(xùn)練序列數(shù)據(jù)常用的兩種方法,這兩種方法只考慮過(guò)去的用戶行為,存在局限性.
表1歸納了本文中用戶短期偏好序列推薦中的主要研究,從針對(duì)問(wèn)題和主要優(yōu)點(diǎn)方面進(jìn)行了小結(jié).
表1 用戶短期偏好的序列推薦主要研究
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)是一類用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò),在建模序列依賴關(guān)系方面具有獨(dú)特優(yōu)勢(shì),使得它在序列推薦中占據(jù)了主導(dǎo)地位,大量的關(guān)于序列推薦的建模都是基于循環(huán)神經(jīng)網(wǎng)絡(luò)的.但是RNN需要在很長(zhǎng)的時(shí)間序列的各個(gè)時(shí)刻重復(fù)應(yīng)用相同操作來(lái)構(gòu)建非常深的計(jì)算圖,并且模型參數(shù)共享,在經(jīng)過(guò)很多階段傳播以后會(huì)出現(xiàn)梯度消失或爆炸問(wèn)題,使得推薦時(shí)難以捕獲序列之間的長(zhǎng)期依賴關(guān)系.因而引入了門(mén)控循環(huán)神經(jīng)網(wǎng)絡(luò),包括基于長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)和基于門(mén)控循環(huán)單元(Gated Recurrent Unit,GRU)的網(wǎng)絡(luò),以更好地模擬長(zhǎng)期序列數(shù)據(jù).文獻(xiàn)[33,34]中使用RNN框架從用戶的歷史行為序列中學(xué)習(xí)用戶的長(zhǎng)期興趣.有實(shí)驗(yàn)證明,考慮用戶的長(zhǎng)期興趣對(duì)于個(gè)性化推薦是非常有價(jià)值的,例如,Quadrana等人[35]提出的層次化循環(huán)神經(jīng)網(wǎng)絡(luò)(Hierarchical RNN,HRNN)模型在某些場(chǎng)景下,如用戶明確表示的情況時(shí),比文獻(xiàn)[36]提出的模型效果高出3.5%.
LSTM算法在建模用戶序列數(shù)據(jù)時(shí)有很好的效果[37],GRU算法是LSTM的改進(jìn)算法,它的結(jié)構(gòu)更加簡(jiǎn)單,后來(lái)研究人員多將GRU應(yīng)用在序列推薦中.文獻(xiàn)[36]提出了一種基于GRU的序列推薦模型(GRU For Recommendation,GRU4Rec),是早期提出將RNN運(yùn)用在序列推薦上的模型之一,與其他門(mén)控RNN的主要區(qū)別在于,單個(gè)門(mén)控單元同時(shí)控制遺忘因子和更新?tīng)顟B(tài)單元的決定,用于預(yù)測(cè)會(huì)話中的下一個(gè)用戶動(dòng)作,傳統(tǒng)的推薦方法只能處理較短的序列數(shù)據(jù),而不能處理較長(zhǎng)的用戶歷史序列,很難獲取用戶的長(zhǎng)期偏好,而GRU4Rec模型的在門(mén)控循環(huán)單元的幫助下對(duì)用戶序列進(jìn)行建模,圖3顯示了網(wǎng)絡(luò)的總體框架,其輸入是一組用戶行為序列,將序列中的物品經(jīng)過(guò)獨(dú)熱編碼,輸入嵌入層進(jìn)行降維,然后通過(guò)多個(gè)GRU層和前向傳播層,輸出層通過(guò)softmax等函數(shù)計(jì)算每個(gè)物品的點(diǎn)擊概率.
圖3 GRU4Rec結(jié)構(gòu)圖
在GRU4REC的基礎(chǔ)上,學(xué)者們提出了各種優(yōu)化方案.Hidasi等人[38]考慮了用戶行為序列中的更多信息,諸如圖像、文本,并設(shè)計(jì)了新的基于RNN的網(wǎng)絡(luò)模型,稱為并行循環(huán)神經(jīng)網(wǎng)絡(luò)(Parallel RNN,P-RNN)來(lái)利用這些信息,實(shí)驗(yàn)效果也有了明顯提升.2016年,Tan等人[39]針對(duì)GRU4REC提出了模型改進(jìn)方案,主要體現(xiàn)在序列預(yù)處理的數(shù)據(jù)增強(qiáng),以及嵌入Dropout方法增強(qiáng)訓(xùn)練過(guò)程,減少過(guò)擬合.Hidasi等人又在文獻(xiàn)[40]中對(duì)GRU4REC算法中提到的采樣和損失函數(shù)進(jìn)行優(yōu)化;而B(niǎo)ogina等人[41]將用戶在序列中物品的停留時(shí)間長(zhǎng)短考慮進(jìn)去,停留時(shí)間越長(zhǎng),表示用戶對(duì)該物品越感興趣.Jannach等人[42]提出將KNN算法與GRU4REC模型結(jié)合,以提高推薦的效果.而文獻(xiàn)[35]的貢獻(xiàn)在于提出一種層次化的RNN模型,捕獲會(huì)話內(nèi)和會(huì)話間的依賴關(guān)系,相比之前的工作,可以刻畫(huà)會(huì)話序列中用戶個(gè)人的興趣變化,達(dá)到用戶個(gè)性化的會(huì)話序列推薦.
除了對(duì)GRU4REC模型的優(yōu)化以外,還有基于GRU算法的變體.文獻(xiàn)[43]中提出一種分層時(shí)序卷積網(wǎng)絡(luò)(Hierarchical Temporal Convolutional Networks,HierTCN),從跨會(huì)話數(shù)據(jù)中動(dòng)態(tài)學(xué)習(xí)以預(yù)測(cè)用戶將選擇的下一個(gè)物品,模型有兩個(gè)部分組成:高層模型使用GRU來(lái)捕獲用戶在不同會(huì)話中不斷變化的長(zhǎng)期興趣,而低層模型使用時(shí)間卷積網(wǎng)絡(luò)實(shí)現(xiàn),利用會(huì)話之間的長(zhǎng)期依賴和短期互動(dòng),以預(yù)測(cè)下一次互動(dòng).
就僅基于RNN的序列推薦而言,當(dāng)用戶序列數(shù)據(jù)較少或者沒(méi)有的時(shí)候,每一層只有固定的輸入矩陣和轉(zhuǎn)移矩陣,不能感知序列中上下文信息的變化推薦效果會(huì)變差,針對(duì)這一局限性,可以通過(guò)建模用戶的上下文信息來(lái)解決.Song等人[44]提出一種增強(qiáng)循環(huán)神經(jīng)網(wǎng)絡(luò)(Augmented RNN,ARNN)模型,通過(guò)提取高階的用戶上下文偏好,以增強(qiáng)現(xiàn)有的RNN序列推薦模型.文獻(xiàn)[45]中提出上下文感知循環(huán)神經(jīng)網(wǎng)絡(luò)模型(Context-aware RNN,CA-RNN),建模豐富的上下文信息,引入了上下文感知的輸入矩陣和上下文感知的轉(zhuǎn)移矩陣,使RNN每一層的矩陣參數(shù)隨著輸入上下文和轉(zhuǎn)移上下文的不同而變化.類似的,Twardowski等人[46]認(rèn)為時(shí)間也是一種上下文信息,將時(shí)間信息與物品信息相結(jié)合進(jìn)行推薦.文獻(xiàn)[47]提出預(yù)測(cè)用戶未來(lái)行為軌跡的循環(huán)推薦網(wǎng)絡(luò)(Recurrent Recommender Networks ,RRN),是通過(guò)RNN構(gòu)建自回歸模型來(lái)實(shí)現(xiàn)的,以適應(yīng)用戶的動(dòng)態(tài)性.
Kumar等人[48]提出了循環(huán)注意力深度語(yǔ)義結(jié)構(gòu)模型(Recurrent Attention Deep Semantic Structured Model ,RA-DSSM),利用雙向LSTM有效獲取序列中包含的信息.與RA-DSSM模型類似,文獻(xiàn)[49]提出名為CHAMELEON的模型,其同樣依賴RNN作為模型的基本組成,但是與RA-DSSM不同的是,RA-DSSM中不使用任何關(guān)于用戶或物品的上下文信息,只依賴用戶物品交互存在一定的局限性,限制模型在冷啟動(dòng)場(chǎng)景中推薦的準(zhǔn)確性,CHAMELEON中添加了多種類型的邊信息,包括文本上下文信息,如最近流行度等;還有用戶上下文信息,如時(shí)間、位置等以緩解冷啟動(dòng)問(wèn)題,而且CHAMELEON支持在線學(xué)習(xí),訓(xùn)練過(guò)程中模擬流場(chǎng)景(Streaming Scenario).
而Dai等人[50]首次將時(shí)序點(diǎn)過(guò)程(Temporal Point Process)與RNN相結(jié)合,時(shí)序點(diǎn)過(guò)程有助于保留序列的時(shí)間信息和動(dòng)態(tài)變化,不斷地迭代更新用戶和物品的嵌入表示.2018年,Vass?y等人[51]提出時(shí)序分層循環(huán)神經(jīng)網(wǎng)絡(luò)(Temporal Hierarchical RNN ,THRNN),使用RNN分別對(duì)會(huì)話內(nèi)和會(huì)話間關(guān)系建模,而利用時(shí)序點(diǎn)過(guò)程對(duì)交互時(shí)間預(yù)測(cè).
用戶行為序列推薦中的記憶網(wǎng)絡(luò)(Memory Network)推薦通過(guò)引入外部存儲(chǔ)器捕獲序列中的交互與下一個(gè)交互之間的依賴關(guān)系,利用記憶組件保存場(chǎng)景信息,以實(shí)現(xiàn)長(zhǎng)期記憶的功能.
記憶網(wǎng)絡(luò)比起RNN更適合建模長(zhǎng)期序列,記憶向量的存儲(chǔ)避免了直接存儲(chǔ)長(zhǎng)期行為序列,緩解存儲(chǔ)壓力,且記憶網(wǎng)絡(luò)的讀操作相較于GRU結(jié)合注意力的模型來(lái)說(shuō)減小了計(jì)算壓力.簡(jiǎn)單地將用戶的歷史序列信息嵌入到單個(gè)向量中,可能會(huì)丟失用戶歷史序列與長(zhǎng)期偏好之間的相關(guān)信息.Chen等人[52]提出了一種用于序列推薦的記憶增強(qiáng)神經(jīng)網(wǎng)絡(luò)(Memory-Augmented Neural Network,MANN),結(jié)構(gòu)如圖4所示,該模型通過(guò)外部存儲(chǔ)矩陣(Memory Matrix)存儲(chǔ)用戶歷史行為序列,并進(jìn)行有選擇的讀取用戶歷史交互,生成用戶表征,避免對(duì)所有的歷史序列進(jìn)行操作,根據(jù)用戶歷史行為序列對(duì)于當(dāng)前物品的重要性來(lái)選擇歷史交互物品,即計(jì)算歷史交互物品的權(quán)重,權(quán)重與歷史交互物品嵌入表示相乘以表示用戶嵌入表示.從記憶網(wǎng)絡(luò)中得到的用戶嵌入表示與用戶固有的屬性嵌入表示進(jìn)行合并得到最終的用戶嵌入表示,將用戶嵌入表示和物品嵌入表示輸入預(yù)測(cè)網(wǎng)絡(luò),以預(yù)測(cè)用戶購(gòu)買(mǎi)當(dāng)前物品的概率.
圖4 MANN結(jié)構(gòu)圖
(5)
Wang等人[55]提出了一種基于會(huì)話的協(xié)同推薦機(jī)制(Collaborative Session-based Recommendation Machine,CSRM),CSRM由兩個(gè)并行模塊組成:內(nèi)記憶編碼器和外記憶編碼器,分別建模當(dāng)前會(huì)話序列和鄰域會(huì)話序列,通過(guò)門(mén)控機(jī)制選擇性的組合來(lái)自兩個(gè)編碼器的信息,以獲得最終表示.對(duì)于過(guò)長(zhǎng)序列,在提取用戶長(zhǎng)期偏好時(shí),響應(yīng)時(shí)間長(zhǎng)且復(fù)雜度高,Tan等人[56]設(shè)計(jì)了一種基于記憶的動(dòng)態(tài)注意力網(wǎng)絡(luò)(Dynamic Memory-based Attention Network,DMAN),將長(zhǎng)序列分割成多個(gè)子序列,使用記憶矩陣確定用戶的長(zhǎng)期偏好,對(duì)記憶進(jìn)行更新,拋棄時(shí)間過(guò)久的記憶.
矩陣分解(Matrix Factorization,MF)試圖將用戶物品交互矩陣分解為兩個(gè)低秩矩陣,從矩陣中獲得用戶和物品的隱向量表示,可以捕獲用戶全局興趣.Rendle等人[57]通過(guò)矩陣分解處理隱反饋數(shù)據(jù),并使用貝葉斯個(gè)性化排序來(lái)處理數(shù)據(jù),隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)優(yōu)化目標(biāo)函數(shù).文獻(xiàn)[58]將矩陣分解和馬爾科夫鏈結(jié)合提出分解個(gè)性化馬爾科夫鏈(Factorizing Personalized Markov Chains,F(xiàn)PMC),F(xiàn)PMC是一個(gè)具有代表性的下一籃子推薦算法,對(duì)于一階的馬爾科夫鏈,用戶的交互表示為一個(gè)三維張量,如圖5所示,從中捕獲一個(gè)物品到另一個(gè)物品的轉(zhuǎn)換概率.每個(gè)用戶都對(duì)應(yīng)一個(gè)轉(zhuǎn)移矩陣,來(lái)融合個(gè)性化和序列兩個(gè)方面的信息,得到轉(zhuǎn)移矩陣后,當(dāng)給出上一次的購(gòu)買(mǎi)物品時(shí),可以預(yù)測(cè)下一次購(gòu)買(mǎi)物品的概率.
圖5 三維張量圖
除了上面介紹矩陣分解個(gè)性化馬爾可夫鏈模型,還有很多其他的變體.例如,Liang等人[59]提出把矩陣分解和詞嵌入(Word-embedding)的思想結(jié)合起來(lái),提出了一個(gè)協(xié)因子分解模型(Co-Factorization ,CoFactor),通過(guò)分解用戶—物品交互矩陣和具有共享物品潛在因素的物品-物品共現(xiàn)矩陣以獲取用戶的偏好和轉(zhuǎn)移矩陣.Cheng等人[60]擴(kuò)展了文獻(xiàn)[59]的工作,設(shè)計(jì)了一種稱為FPMC-LR的新的矩陣分解方法,通過(guò)添加約束來(lái)限制用戶在一個(gè)局部區(qū)域的移動(dòng),利用局部區(qū)域的信息,大大降低了計(jì)算成本,而且還丟棄了噪聲信息以提高推薦效果.其他一些類似研究[61,62]利用矩陣分解模型來(lái)了解偏好從一個(gè)地點(diǎn)類別到另一個(gè)地點(diǎn)類別的轉(zhuǎn)變,從而提供地點(diǎn)推薦.
盡管FPMC模型取得了成功,但是隨著數(shù)據(jù)量的增加,數(shù)據(jù)稀疏的問(wèn)題沒(méi)有得到解決,且存在大量的長(zhǎng)尾分布數(shù)據(jù),為緩解這些問(wèn)題,因子物品相似性模型(Factored Item Similarity Models,F(xiàn)ISM)[63]通過(guò)學(xué)習(xí)物品之間的相似矩陣來(lái)進(jìn)行推薦,將兩個(gè)未被同時(shí)購(gòu)買(mǎi)物品通過(guò)第3個(gè)物品關(guān)聯(lián)起來(lái).在FISM模型基礎(chǔ)上,文獻(xiàn)[64]將FISM模型與高階馬爾可夫鏈相融合來(lái)完成序列推薦任務(wù),提出了一種基于物品相似性的因式序列預(yù)測(cè)模型(Factorized Sequential Prediction with Item Similarity ModeLs,F(xiàn)ossil),與傳統(tǒng)的矩陣分解和FPMC模型相比,該方法在稀疏數(shù)據(jù)集上表現(xiàn)得更好,模型的基本表示如公式(6)所示:
(6)
(7)
在實(shí)際的流場(chǎng)景中進(jìn)行推薦存在一定的挑戰(zhàn)性,具有數(shù)據(jù)量大和高速性的特點(diǎn),且用戶行為存在不確定性.2019年,Guo等人[65]設(shè)計(jì)了基于流式會(huì)話的推薦模型(Streaming Session-based Recommendation Machine ,SSRM),SSRM是一種基于矩陣分解的注意力模型,以應(yīng)對(duì)流場(chǎng)景中的挑戰(zhàn),將矩陣分解引入到基于循環(huán)神經(jīng)網(wǎng)絡(luò)的會(huì)話編碼器中,以建模用戶的長(zhǎng)期偏好.
表2歸納了本文中用戶長(zhǎng)期偏好序列推薦中的主要研究,從針對(duì)問(wèn)題和主要優(yōu)點(diǎn)方面進(jìn)行了小結(jié).
表2 用戶長(zhǎng)期偏好的序列推薦主要研究
近年來(lái),隨著圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks,GNN)的快速發(fā)展,圖神經(jīng)網(wǎng)絡(luò)[66]也被應(yīng)用于序列推薦中,利用GNN建模和捕獲用戶—物品交互的復(fù)雜轉(zhuǎn)換關(guān)系.通常,利用有向圖構(gòu)建序列數(shù)據(jù),將圖中的每個(gè)節(jié)點(diǎn)看成一次交互,同時(shí)將每個(gè)序列映射到一條路徑中,然后在圖上學(xué)習(xí)得到用戶和物品的嵌入表示.Wu等人[67]首次將GNN使用在序列推薦中,提出基于會(huì)話的圖神經(jīng)網(wǎng)絡(luò)推薦(Session-based Recommendation with GNN ,SR-GNN),模型整體框架如圖6所示,將會(huì)話序列建模成圖結(jié)構(gòu)數(shù)據(jù),使用GNN提取物品的嵌入向量,在經(jīng)過(guò)注意力層后將長(zhǎng)期偏好和短期偏好組合,預(yù)測(cè)點(diǎn)擊下一個(gè)物品的可能性.
圖6 SR-GNN結(jié)構(gòu)圖
與SR-GNN等模型相比,Wang等人[68]提出一種全局上下文增強(qiáng)的圖神經(jīng)網(wǎng)絡(luò)(Global Context Enhanced Graph Neural Networks,GCE-GNN),分別從當(dāng)前會(huì)話圖和全局圖中學(xué)習(xí)兩個(gè)層次的物品嵌入向量,考慮了全局信息的影響,利用近鄰節(jié)點(diǎn)進(jìn)行圖構(gòu)建,并在具體的建模時(shí)通過(guò)合理的設(shè)計(jì)來(lái)最大化利用相關(guān)物品的信息,降低噪聲物品的影響.與GCE-GNN模型不同,Qiu等人[69]提出全圖神經(jīng)網(wǎng)絡(luò)(Full Graph Neural Network,F(xiàn)GNN)模型為每個(gè)會(huì)話序列構(gòu)建一個(gè)會(huì)話圖,并且提出多重加權(quán)圖注意層網(wǎng)絡(luò)來(lái)計(jì)算會(huì)話序列中物品之間的信息流,獲得物品的嵌入表示.基于圖神經(jīng)網(wǎng)絡(luò)的序列推薦存在信息丟失問(wèn)題,Chen等人[70]提出的一種處理信息丟失(Lossless Edge-order Preserving Aggregation and Shortcut Graph Attention for Session-based Recommendation,LESSR)的模型針對(duì)這一問(wèn)題進(jìn)行了優(yōu)化,首先,從會(huì)話序列到圖的有損編碼以及聚合消息傳遞期間不變的排列,會(huì)忽略有關(guān)會(huì)話轉(zhuǎn)換的一些順序信息;其次,由于層數(shù)的限制,無(wú)法捕捉會(huì)話中的長(zhǎng)期依賴性.為了解決第一個(gè)問(wèn)題,提出了一種無(wú)損編碼方案和基于GRU的邊緣順序保留聚合層,該層專門(mén)設(shè)計(jì)用于處理無(wú)損編碼圖.為了解決第2個(gè)問(wèn)題,提出了一個(gè)捷徑圖關(guān)注層,該層通過(guò)沿捷徑連接傳播信息來(lái)有效地捕獲遠(yuǎn)程依賴關(guān)系.通過(guò)將兩種類型的層組合在一起,能夠緩解信息丟失問(wèn)題并且在3個(gè)公共數(shù)據(jù)集上勝過(guò)最新模型.
Song等人[71]提出一種基于動(dòng)態(tài)圖神經(jīng)網(wǎng)絡(luò)的序列推薦,同時(shí)建模用戶的動(dòng)態(tài)興趣和用戶的社交關(guān)系,將兩者結(jié)合起來(lái),通過(guò)圖注意力網(wǎng)絡(luò)來(lái)捕捉社交關(guān)系對(duì)用戶的動(dòng)態(tài)影響,得到的向量和用戶向量拼接得到最后的用戶向量,最后得到下一個(gè)可能的物品的概率分布進(jìn)行推薦.而動(dòng)態(tài)圖注意神經(jīng)網(wǎng)絡(luò)(Dynamic Graph Attention Networks,DGAN)[72]構(gòu)建了一個(gè)動(dòng)態(tài)注意模塊來(lái)捕獲全局信息,并進(jìn)一步提出了一個(gè)遞歸神經(jīng)模塊來(lái)學(xué)習(xí)局部動(dòng)態(tài)表示,通過(guò)堆疊多個(gè)動(dòng)態(tài)圖注意力模塊,可以更好地利用每個(gè)序列的豐富上下文信息.Kumar等人[73]考慮到靜態(tài)圖的局限性,即無(wú)法建模用戶節(jié)點(diǎn)或物品節(jié)點(diǎn)的變化,提出一種融合用戶-物品動(dòng)態(tài)嵌入表示的模型(JOINT DYNAMIC USER-ITEM EMBEDDING MODEL ,JODIE),JODIE將用戶和物品的表示分為靜態(tài)嵌入和動(dòng)態(tài)嵌入,靜態(tài)嵌入表示用戶和物品的長(zhǎng)期屬性,而動(dòng)態(tài)嵌入表示了用戶隨時(shí)間不斷變化的屬性,根據(jù)用戶的交互序列動(dòng)態(tài)更新嵌入表示,建模用戶和物品的動(dòng)態(tài)屬性.
利用社交信息是提高推薦質(zhì)量的一種重要方法,現(xiàn)有方法忽略了跨用戶交互之間的時(shí)間關(guān)系,基于此Li等人[74]提出社交時(shí)間激勵(lì)網(wǎng)絡(luò)(Social Temporal Excitation Networks ,STEN),引入時(shí)序點(diǎn)過(guò)程,通過(guò)利用時(shí)間信息對(duì)相關(guān)跨用戶交互的影響進(jìn)行建模,構(gòu)建社交異質(zhì)圖從社交關(guān)系結(jié)構(gòu)和交互中提取用戶和物品的節(jié)點(diǎn)表示.Chen等人[75]同樣引入時(shí)序點(diǎn)過(guò)程用于緩解時(shí)間信息丟失問(wèn)題,設(shè)計(jì)了一種動(dòng)態(tài)表示學(xué)習(xí)模型序列推薦(Dynamic Representation Learning model for Sequential Recommendation ,DRL-SRe),將整個(gè)時(shí)間軸分割成等長(zhǎng)的時(shí)間片,對(duì)于每個(gè)時(shí)間片,構(gòu)建用戶-物品交互圖以獲得更好的動(dòng)態(tài)用戶和物品的嵌入表示.
注意力機(jī)制最早起源于Bahdanau等人[76]的研究,并將其應(yīng)用于機(jī)器翻譯任務(wù)中,它可以捕獲語(yǔ)言中的長(zhǎng)期依賴,并提供更流暢的翻譯,強(qiáng)調(diào)輸入的各部分對(duì)輸出的影響程度不一樣,即關(guān)注輸入句子不同部分對(duì)輸出詞的重要性,在序列推薦系統(tǒng)中廣泛使用的注意力機(jī)制已經(jīng)也顯示出巨大的成功.在此基礎(chǔ)上,提出了將普通注意力(Vanilla Attention)作為循環(huán)神經(jīng)網(wǎng)絡(luò)的解碼器,在序列推薦中得到了廣泛的應(yīng)用[77].另一方面,機(jī)器翻譯模型Transformer[78]中的自注意力機(jī)制(Self-attention Mechanism)也被應(yīng)用在序列推薦中,Transformer模型由兩部分組成,分別是多頭自注意力(Multi-head Self-attention)和全鏈接前饋網(wǎng)絡(luò)(Fully Connected Feed-forward Network)部分,與普通注意力機(jī)制相比,自注意力不包括循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),但在推薦中的效果好于普通注意力機(jī)制.
5.2.1 普通注意力機(jī)制序列推薦
Li等人[79]提出的神經(jīng)注意力推薦模型(Neural Attentive Recommendation Machine,NARM),原理是構(gòu)建一個(gè)編碼器-解碼器框架,作者認(rèn)為在之前的序列推薦中沒(méi)有強(qiáng)調(diào)用戶主要目的,所以將RNN與普通注意力結(jié)合,以捕獲序列中的用戶主要目的,NARM模型的框架如圖7所示,其中輸入x=[x1,x2,…,xt-1,xt]為用戶點(diǎn)擊會(huì)話,xi(1≤i≤t)為m個(gè)物品中用戶所點(diǎn)擊物品項(xiàng)的索引,輸出y=[y1,y2,…,ym-1,ym]為用戶可能點(diǎn)擊的下一個(gè)物品項(xiàng)排名列表,yj(1≤j≤m)對(duì)應(yīng)的是物品j的得分,編碼器將輸入的點(diǎn)擊序列x轉(zhuǎn)化成高維隱藏表示h=[h1,h2,…,ht-1,ht],其與t時(shí)刻的注意力信號(hào)αt一起輸入會(huì)話特征生成器中,注意力信號(hào)決定在t時(shí)刻應(yīng)該強(qiáng)調(diào)或者忽略那個(gè)物品,然后構(gòu)建當(dāng)前會(huì)話表示ct,并在t時(shí)刻輸入解碼器,通過(guò)解碼器中的矩陣,并使用激活函數(shù)得到輸出排名.
圖7 NARM結(jié)構(gòu)圖
文獻(xiàn)[80]對(duì)NARM模型進(jìn)行了改進(jìn),調(diào)整了NARM模型的框架,增加了序列的上下文信息等優(yōu)化方法,提高了模型的性能.Liu等人[77]設(shè)計(jì)了短期注意力記憶優(yōu)先(ShortTerm AttentionMemory Priority,STAMP)模型,提出一種新的注意機(jī)制,根據(jù)會(huì)話序列的上下文計(jì)算注意力權(quán)重,同時(shí)捕捉用戶的長(zhǎng)期偏好和短期偏好.STAMP模型中需要分別獲取用戶的長(zhǎng)期偏好和短期偏好,ms為用戶點(diǎn)擊序列的平均值,mt為用戶的最后一次點(diǎn)擊,表示用戶的當(dāng)前興趣,如公式(8)、公式(9)所示.
(8)
mt=xt
(9)
而用戶的長(zhǎng)期偏好是通過(guò)簡(jiǎn)單的前饋神經(jīng)網(wǎng)絡(luò)(Feed-forward Neural Network,F(xiàn)NN)得到的,向FNN中輸入ms和mt,得到每個(gè)物品的注意力,物品xi的注意力系數(shù)αi計(jì)算公式如式(10)所示,進(jìn)而可以計(jì)算出用戶的長(zhǎng)期偏好mα,如公式(11)所示:
αi=W0σ(W1xi+W2mt+W3ms+ba)
(10)
(11)
其中W0為權(quán)重向量,W1,W2,W3為權(quán)重矩陣,ba為偏置向量,σ(·)為sigmoid函數(shù).分別將ma和mt輸入多層感知機(jī)(Multilayer Perceptron,MLP)中進(jìn)行處理,以達(dá)到提取特征的目的,得到的隱表示向量分別為hs,ht.對(duì)于每個(gè)候選物品,計(jì)算得分公式如公式(12)所示:
(12)
Wang等人[81]提出基于注意力的事務(wù)上下文嵌入模型(Attention based Transaction Embedding Model,ATEM)中將注意力機(jī)制整合到淺層的網(wǎng)絡(luò)中,構(gòu)建沒(méi)有嚴(yán)格序列關(guān)系的上下文表示,由于注意力機(jī)制的有效性,該模型能夠關(guān)注更多相關(guān)的物品,而較少關(guān)注不相關(guān)的物品.NARM[79]、STAMP[80]和ATEM[81]將普通的注意機(jī)制與RNN或多層神經(jīng)網(wǎng)絡(luò)結(jié)合起來(lái),目的是在給定的會(huì)話中捕捉用戶的主要目的.
除此之外,Ren等人[82]考慮到重復(fù)消費(fèi)的問(wèn)題,提出了基于重復(fù)消費(fèi)的網(wǎng)絡(luò)模型(Repeat Consumption with Neural Networks,RepeatNet),將重復(fù)探索機(jī)制與注意力機(jī)制融入到RNN中.Yu等人在文獻(xiàn)[83]中提出一種多注意力排序模型,從多個(gè)角度將個(gè)體和聯(lián)合級(jí)別的交互統(tǒng)一到偏好推理模型中,而Ying等人[84]提出了兩層的注意力網(wǎng)絡(luò),第1層是根據(jù)歷史購(gòu)買(mǎi)的物品表示來(lái)學(xué)習(xí)用戶的長(zhǎng)期偏好,第2層通過(guò)耦合用戶的長(zhǎng)期和短期偏好來(lái)輸出最終的用戶表示.Wu等人[85]提出基于會(huì)話的上下文感知注意力網(wǎng)絡(luò)(Session-based Recommendation with Context Aware Attention Network,SR-CAAN),通過(guò)將序列預(yù)測(cè)與會(huì)話外部上下文感知方法相結(jié)合,增強(qiáng)了對(duì)用戶偏好進(jìn)行建模的能力,將外部知識(shí)與知識(shí)圖譜(Knowledge Graph)相結(jié)合,通過(guò)使用注意力機(jī)制來(lái)獲取會(huì)話的外部上下文,每個(gè)會(huì)話都作為會(huì)話外部上下文的組合呈現(xiàn).
5.2.2 自注意力機(jī)制序列推薦
文獻(xiàn)[86]中設(shè)計(jì)了一種基于自注意力的序列推薦模型(Self-Attention based Sequential Model,SASRec),在每個(gè)時(shí)間步自適應(yīng)地為之前的物品賦予權(quán)重.Zhang等人[87]利用自注意力機(jī)制從用戶的歷史交互中推斷出物品與物品之間的關(guān)系,有了自注意力機(jī)制,用戶交互序列中每個(gè)物品的權(quán)重就能更好地代表用戶的興趣,模型最后使用度量學(xué)習(xí)框架進(jìn)行訓(xùn)練,既考慮了短期特征又考慮了長(zhǎng)期特征.
圖8 BERT4Rec結(jié)構(gòu)圖
文獻(xiàn)[90]中提出一種序列深度匹配模型(Sequential Deep Matching,SDM),通過(guò)多頭注意力機(jī)制在用戶近期行為序列中捕獲短期偏好;把用戶長(zhǎng)期行為序列中的所有物品對(duì)應(yīng)的屬性集合劃分為不同的類,如ID集,物品店鋪集,物品品種集,對(duì)于不同的集,都經(jīng)過(guò)一層注意力機(jī)制進(jìn)行建模,例如,每個(gè)用戶對(duì)不同類別的書(shū)籍偏好程度不同,以此捕獲用戶的長(zhǎng)期偏好.Wu等人[91]認(rèn)為很多序列推薦的處理時(shí)間信息上,基于RNN,CNN,Transformer的模型雖然效果不錯(cuò),但是缺少個(gè)性化,為解決這種問(wèn)題,提出了一種個(gè)性化的基于Transformer的序列推薦模型,考慮到用戶嵌入在序列建模中的重要性,并且使用的正則化技術(shù)是SSE(Stochastic Shared Embedding),SSE的主要思想是在SGD過(guò)程中隨機(jī)地用另一個(gè)具有一定概率的嵌入來(lái)代替現(xiàn)在的嵌入,從而達(dá)到正則化嵌入層的效果,提高推薦結(jié)果的準(zhǔn)確率.文獻(xiàn)[92]是阿里巴巴公司和北京大學(xué)聯(lián)合提出的基于自注意力機(jī)制的用戶異構(gòu)行為建??蚣埽涿麨锳TRank(Attention-Based Rank),同時(shí)考慮用戶異構(gòu)行為和時(shí)序,使用自注意力機(jī)制緩解RNN、CNN的局限性,提升推薦效果.Zhang等人[93]提出一種基于特征集深自注意力網(wǎng)絡(luò)(Feature-level Deeper Self Attention Network,F(xiàn)DSA),分別對(duì)物品級(jí)序列和特征級(jí)序列應(yīng)用自注意力塊,對(duì)物品轉(zhuǎn)換模式和特征轉(zhuǎn)換模式分別進(jìn)行建模,將兩個(gè)塊的輸出拼接起來(lái)進(jìn)行預(yù)測(cè)推薦.此外,Huang等人[94]設(shè)計(jì)的上下文自注意力網(wǎng)絡(luò)(Contextual Self-Attention Network ,CSAN)也考慮到用戶異構(gòu)行為,使用自注意力機(jī)制捕獲多種用戶行為.
表3歸納了本文中用戶長(zhǎng)短期偏好序列推薦中的主要研究,從針對(duì)問(wèn)題和主要優(yōu)點(diǎn)方面進(jìn)行了小結(jié).
表3 用戶長(zhǎng)短期偏好的序列推薦主要研究
冷啟動(dòng)問(wèn)題即用戶冷啟動(dòng)、物品冷啟動(dòng)和系統(tǒng)冷啟動(dòng),而數(shù)據(jù)稀疏是缺少可用信息,這兩個(gè)問(wèn)題都是序列推薦長(zhǎng)期要面對(duì)的問(wèn)題,大多數(shù)現(xiàn)有的序列推薦算法[95-97]都忽略了這兩個(gè)問(wèn)題,其有效實(shí)現(xiàn)都依賴于對(duì)序列數(shù)據(jù)相對(duì)嚴(yán)格的要求,例如,丟棄小于最小閾值的序列等.用戶的行為序列是將用戶與物品之間的交互作為一組歷史信息,交互中可用的用戶和物品信息有限,Lv等人[90]利用序列中不同類型的邊信息構(gòu)建算法,如物品ID,品牌和店鋪等,更好地模擬用戶的長(zhǎng)期偏好,這種方法也只能部分緩解這兩個(gè)問(wèn)題.
一般來(lái)說(shuō),序列越長(zhǎng)包含的信息量越多,同時(shí)與交互無(wú)關(guān)的噪聲信息也越多,甚至在捕獲用戶長(zhǎng)期偏好時(shí),可能會(huì)被長(zhǎng)序列中的噪聲所淹沒(méi).如何對(duì)含噪聲的序列進(jìn)行建模,是序列推薦所面臨的主要問(wèn)題之一.目前的研究強(qiáng)調(diào)序列中的每個(gè)物品都與鄰域的物品存在依賴關(guān)系,這種嚴(yán)格的規(guī)定,會(huì)影響推薦的效果,低估了依賴關(guān)系建模時(shí)噪聲信息的影響,在現(xiàn)實(shí)生活中也是不現(xiàn)實(shí)的,因?yàn)橛脩舻男袨槭遣淮_定的.序列中會(huì)包含一些不相關(guān)的物品,這些物品會(huì)導(dǎo)致錯(cuò)誤的依賴關(guān)系.受到注意力機(jī)制的啟發(fā),Ying等人[84]提出兩層注意力網(wǎng)絡(luò),使用注意力為不同的物品不同的權(quán)重,更加強(qiáng)調(diào)相關(guān)物品,減少噪聲物品的影響.另一個(gè)處理含噪聲序列的方法是記憶網(wǎng)絡(luò),外部記憶網(wǎng)絡(luò)有強(qiáng)大的存儲(chǔ)能力,Chen等人[50]提出的記憶增強(qiáng)神經(jīng)網(wǎng)絡(luò),使用一個(gè)內(nèi)存矩陣存儲(chǔ)之前狀態(tài),更好的模擬用戶行為,提高推薦性能.
大多數(shù)基于深度學(xué)習(xí)的序列推薦模型都缺乏可解釋性,它們的決策過(guò)程是一個(gè)超出人類直接理解范疇的高維隱空間.如果缺乏推薦的原因,用戶會(huì)對(duì)推薦結(jié)果產(chǎn)生懷疑,從而使推薦效果變差.另一方面,增強(qiáng)可解釋性可以加強(qiáng)使用者對(duì)模型的理解[98],如不同的超參數(shù)等因素是如何影響模型的輸出,從而增強(qiáng)對(duì)整個(gè)推薦過(guò)程的控制.Peake等人[99]用矩陣分解在模型的輸出上訓(xùn)練關(guān)聯(lián)規(guī)則,以獲得更好的可解釋性.這類通過(guò)設(shè)計(jì)單獨(dú)的方法來(lái)試圖解釋推薦產(chǎn)生的結(jié)果,沒(méi)有直接將可解釋性與邊信息聯(lián)系起來(lái),而用戶與物品的交互中,通常還包含一些輔助信息,如文本評(píng)論、社交關(guān)系等,這些信息都可以加強(qiáng)推薦的可解釋性,但是卻沒(méi)有得到充分的利用.
在以往的研究中,序列推薦大多采用自然語(yǔ)言處理的嵌入方法,通過(guò)嵌入方法以表示物品、用戶或序列的信息,例如,Greenstein等人[100]使用詞嵌入方法GloVe[101]和Word2Vec[102]得到物品嵌入表示.其中存在著一些問(wèn)題,首先,利用物品之間的關(guān)系來(lái)學(xué)習(xí)物品的表示,然而交互物品之間的依賴關(guān)系是不斷發(fā)生變化的,自然語(yǔ)言處理中的單詞及其連接關(guān)系是相對(duì)固定的.其次,嵌入模型的預(yù)訓(xùn)練是相對(duì)復(fù)雜;而且序列推薦中的行為比單詞要復(fù)雜的多,包含更多的信息,簡(jiǎn)單的嵌入方法無(wú)法很好處理復(fù)雜用戶行為序列.最后,對(duì)于通過(guò)嵌入方法學(xué)習(xí)到的用戶表示而言,是通過(guò)相對(duì)靜態(tài)的方式學(xué)習(xí)得到,難以體現(xiàn)出用戶偏好的動(dòng)態(tài)性.在這些情況下,序列推薦需要設(shè)計(jì)更先進(jìn)、更特殊的嵌入方法.
現(xiàn)有模型大都沒(méi)有明確的利用不同用戶之間的協(xié)同信息,也就是說(shuō),大多模型都側(cè)重于編碼每個(gè)用戶自己的交互序列,訓(xùn)練和測(cè)試過(guò)程中對(duì)序列的編碼都在一個(gè)序列內(nèi),忽略了不同用戶序列之間的高階連通性,然而在現(xiàn)實(shí)生活中,用戶的偏好會(huì)受到好友的影響.同時(shí),物品的語(yǔ)義信息也會(huì)隨著一階或者更高階的相關(guān)性變化而變化,用戶的興趣也是動(dòng)態(tài)的,這些模型也忽略了高階協(xié)同信息在不同時(shí)刻的動(dòng)態(tài)影響,推薦效果會(huì)受到影響.
時(shí)間、天氣、地點(diǎn)、季節(jié)、一天中的時(shí)間和地點(diǎn)等上下文因素可能會(huì)對(duì)用戶的最終選擇產(chǎn)生重大影響.上下文信息可以從序列中顯式提取,也可以隱藏在用戶的交互歷史中.識(shí)別上下文是序列推薦中重要的參數(shù)之一,它在更好地幫助理解用戶的需求和興趣,在做出正確的預(yù)測(cè)方面發(fā)揮著重要作用.線上購(gòu)物環(huán)境下,用戶的購(gòu)物目的或者當(dāng)前心情等這些上下文因素是不能直接觀察到的,必須從用戶最近的行為中去分析,并最終基于用戶和整個(gè)社區(qū)的行為模式[103,104].對(duì)于新用戶和匿名用戶,考慮上下文信息尤其重要.總的來(lái)說(shuō),上下文感知用戶行為序列推薦根據(jù)歷史交互數(shù)據(jù)做出上下文適應(yīng)的推薦,了解用戶的興趣和目的.
受圖神經(jīng)網(wǎng)絡(luò)在各種領(lǐng)域里成功應(yīng)用的啟發(fā),研究人員也不斷提出基于圖神經(jīng)網(wǎng)絡(luò)的用戶行為序列推薦[67,69],將用戶和物品關(guān)聯(lián)起來(lái)構(gòu)成一個(gè)圖結(jié)構(gòu),通過(guò)GNN捕獲復(fù)雜的交互關(guān)系,并相應(yīng)生成物品的嵌入向量,這是傳統(tǒng)序列推薦難以做到的.同時(shí),時(shí)間在多方面影響著用戶的興趣偏好[105],用戶偏好會(huì)隨時(shí)間而發(fā)生動(dòng)態(tài)變化,隨著交互物品的變化而變化,且會(huì)受到其他用戶的影響,為克服這些挑戰(zhàn),可以將用戶行為序列和動(dòng)態(tài)協(xié)同信息建模到一個(gè)框架中,通過(guò)動(dòng)態(tài)圖結(jié)構(gòu)將不同的用戶序列連接起來(lái),比起傳統(tǒng)的靜態(tài)圖,動(dòng)態(tài)圖包含更多的時(shí)間和順序信息,利用這些信息探索用戶和物品的交互行為以提取用戶偏好,將序列推薦的下一項(xiàng)預(yù)測(cè)任務(wù)轉(zhuǎn)化為動(dòng)態(tài)圖中用戶節(jié)點(diǎn)與物品節(jié)點(diǎn)之間的鏈接預(yù)測(cè).
通常用戶購(gòu)買(mǎi)的物品來(lái)自多個(gè)領(lǐng)域,而僅僅不是單一領(lǐng)域[106].例如,用戶閱讀了《哈利波特》的書(shū)籍,他可能會(huì)對(duì)《哈利波特》的電影產(chǎn)生興趣,以及用戶可能因此購(gòu)買(mǎi)哈利波特的周邊產(chǎn)品,這些都是屬于不同領(lǐng)域,且這些不同領(lǐng)域之間也存在著密切的聯(lián)系,雖然不同領(lǐng)域物品之間的關(guān)系也要比單一領(lǐng)域要復(fù)雜很多,但是考慮多領(lǐng)域交互可以緩解單鄰域數(shù)據(jù)稀疏的問(wèn)題.跨領(lǐng)域推薦的主要問(wèn)題就是如何利用源領(lǐng)域的數(shù)據(jù)在目標(biāo)領(lǐng)域產(chǎn)生理想的推薦,從序列數(shù)據(jù)中提取出屬于不同領(lǐng)域的特征.然而,單獨(dú)針對(duì)某一領(lǐng)域設(shè)計(jì)推薦模型的研究較少,大多數(shù)的算法都是假設(shè)其模型適用于所有領(lǐng)域,在實(shí)際應(yīng)用中卻暴露出很多不足.未來(lái)的研究可以考慮研究不同領(lǐng)域中序列數(shù)據(jù)的特征,設(shè)計(jì)更好的序列推薦模型.如,Zhuang等人[107]利用用戶來(lái)自不同領(lǐng)域的行為序列數(shù)據(jù),挖掘其特征以提高推薦性能.Ma等人[108]通過(guò)識(shí)別同一賬戶下不同的用戶行為,將用戶在兩個(gè)域上的行為在每個(gè)時(shí)間戳上同步共享,從不同領(lǐng)域獲得相同時(shí)間段的用戶行為數(shù)據(jù),提出同時(shí)生成兩個(gè)域的推薦.但是利用另一個(gè)域的用戶行為信息時(shí)同時(shí)也包含噪聲數(shù)據(jù),因此跨域推薦中依舊存在著很多挑戰(zhàn).
用戶的興趣越來(lái)越趨向于多樣化且易變,若僅僅只預(yù)測(cè)一類物品或一種偏好,用戶的選擇會(huì)受到局限,一些相對(duì)比較小眾的物品就很難被發(fā)現(xiàn).序列中可能存在多個(gè)興趣傾向,基于深度學(xué)習(xí)的方法[109]通過(guò)對(duì)用戶行為序列進(jìn)行計(jì)算,為每個(gè)用戶生成一個(gè)低維度的嵌入表示,但是單一的嵌入表示缺乏表現(xiàn)力,并不能反映用戶在一個(gè)時(shí)間段內(nèi)的多重興趣.可以通過(guò)注意力機(jī)制對(duì)用戶潛在的多重興趣建模,捕獲用戶的多種興趣,注意力機(jī)制還能有選擇地保留和利用那些與下一次交互預(yù)測(cè)真正相關(guān)的交互信息,以達(dá)到減少噪聲的目的,同時(shí)增加了模型的可解釋性.如SDM[90]模型通過(guò)一個(gè)多頭自注意力模塊對(duì)用戶行為序列進(jìn)行編碼,以捕獲多種類型的興趣;Zhou等人[5]提出用注意力機(jī)制使用戶在不同的物品上有不同的表示,以捕捉用戶多樣的興趣,但是這種方式需要重新計(jì)算每個(gè)物品的用戶表示,使得其只能適用于排序階段.Pi等人[110]通過(guò)記憶網(wǎng)絡(luò)從長(zhǎng)序列數(shù)據(jù)中捕獲用戶的多樣興趣,使用記憶網(wǎng)絡(luò)比起注意力機(jī)制更為復(fù)雜,且不易捕獲用戶的長(zhǎng)期興趣.
用戶行為序列在大多數(shù)情況下都是存在時(shí)間上的先后關(guān)系的,且用戶的偏好會(huì)隨時(shí)間的變化而變化,通過(guò)研究用戶行為序列推薦領(lǐng)域內(nèi)的進(jìn)展,本文闡述了序列推薦中的相關(guān)概念,從時(shí)間維度將該領(lǐng)域內(nèi)的主要工作劃分為3個(gè)子領(lǐng)域,分別為長(zhǎng)期偏好序列推薦、短期偏好序列推薦和長(zhǎng)短期偏好序列推薦,深入分析了序列推薦中存在的冷啟動(dòng)問(wèn)題、數(shù)據(jù)稀疏和可解釋性差等問(wèn)題,最后展望了序列推薦未來(lái)的發(fā)展方向以及面臨的挑戰(zhàn),希望能為推進(jìn)該領(lǐng)域的進(jìn)步提供一定的幫助.