岳新玉,劉悅,余志華
(1.中國(guó)科學(xué)院網(wǎng)絡(luò)數(shù)據(jù)科學(xué)與技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100190;2.中國(guó)科學(xué)院計(jì)算技術(shù)研究所,北京 100190;3.中國(guó)科學(xué)院大學(xué),北京 100190)
隨著互聯(lián)網(wǎng)時(shí)代的到來(lái),人們所面臨的信息呈爆炸式增長(zhǎng)。面對(duì)互聯(lián)網(wǎng)上海量的信息,傳統(tǒng)的信息處理方式受到了極大的挑戰(zhàn),因此推薦系統(tǒng)受到了越來(lái)越多的關(guān)注。推薦技術(shù)從最初的基于內(nèi)容的推薦方式,到后來(lái)的基于鄰近的協(xié)同過(guò)濾的推薦方式,再到現(xiàn)在基于模型的協(xié)同過(guò)濾技術(shù)以及基于深度學(xué)習(xí)的推薦系統(tǒng),推薦技術(shù)一直在快速地發(fā)展。而在信息的使用上,由最初利用用戶行為信息,到現(xiàn)在的結(jié)合上下文信息(Context-Aware)的推薦技術(shù),推薦系統(tǒng)使用的信息也越來(lái)越豐富。除此之外、冷啟動(dòng)、推薦多樣性、新穎性、用戶體驗(yàn)等眾多方向均開(kāi)始被人們所探索。因此在工業(yè)場(chǎng)景實(shí)際要求的推動(dòng)下,推薦的場(chǎng)景變得越來(lái)越復(fù)雜,對(duì)于推薦技術(shù)的要求也越來(lái)越高。傳統(tǒng)的推薦問(wèn)題把用戶的興趣當(dāng)作靜態(tài)不變的方式已經(jīng)不再適合當(dāng)下的場(chǎng)景,越來(lái)越多的場(chǎng)景需要更實(shí)時(shí)的推薦模型。
近年來(lái)隨著深度學(xué)習(xí)技術(shù)的發(fā)展,基于會(huì)話的推薦算法受到了越來(lái)越廣泛的關(guān)注,也取得了一定的進(jìn)展。但是大多數(shù)工作都主要關(guān)注如何更好地建模用戶點(diǎn)擊序列,而推薦場(chǎng)景中的一些特殊性則沒(méi)有受到足夠的關(guān)注。一些工作主要是參考深度學(xué)習(xí)在語(yǔ)言模型上的應(yīng)用,利用網(wǎng)絡(luò)去學(xué)習(xí)包含商品序列信息的商品的表達(dá)。例如利用類似Word2Vec的淺層模型來(lái)建模點(diǎn)擊序列,再例如采用編碼解碼結(jié)構(gòu),通過(guò)循環(huán)神經(jīng)網(wǎng)絡(luò)去對(duì)整個(gè)點(diǎn)擊序列進(jìn)行編碼。但是相比于語(yǔ)言模型或其他序列問(wèn)題,推薦問(wèn)題具有一定的特殊性。比如推薦場(chǎng)景中,物品的信息更為豐富,既可以獲得更粗粒度的信息,例如類別信息,也可以獲得更細(xì)粒度的信息,比如文本的字單位,同時(shí),推薦場(chǎng)景中還可以獲得豐富的上下文信息,例如商品的更多的屬性等等。當(dāng)然,推薦場(chǎng)景也面臨著很多特定的問(wèn)題,例如冷啟動(dòng)問(wèn)題和長(zhǎng)尾問(wèn)題就是推薦場(chǎng)景中最顯著的問(wèn)題之一。這兩種情況下,物品都會(huì)體現(xiàn)出欠曝光的現(xiàn)象,從而使得模型對(duì)這部分商品學(xué)習(xí)的不是很充分。而在一些特殊的問(wèn)題場(chǎng)景中,這一問(wèn)題顯得更為嚴(yán)重,例如新聞推薦場(chǎng)景或視頻推薦場(chǎng)景中,每天都會(huì)有大量的新物品產(chǎn)生,這使得大量的新物品可能無(wú)法得到充分的展現(xiàn)從而學(xué)習(xí)的不是很充分。當(dāng)用戶的點(diǎn)擊序列包含這部分商品時(shí),一方面會(huì)使得這部分商品影響整個(gè)序列的學(xué)習(xí),另一方面使得序列無(wú)法充分地捕捉到這些商品所帶來(lái)的信息。在很多推薦算法的實(shí)驗(yàn)當(dāng)中,通過(guò)參考語(yǔ)言模型過(guò)濾低頻詞的方式,過(guò)濾掉一些展現(xiàn)低于一些閾值的冷門物品,但這就使得模型對(duì)于這部分商品的模型更為嚴(yán)重,從而加劇冷啟動(dòng)和長(zhǎng)尾問(wèn)題。
本文通過(guò)提出一種多粒度循環(huán)神經(jīng)網(wǎng)絡(luò)模型來(lái)解決上述問(wèn)題,通過(guò)引入物品類別信息可以更好地提升模型的泛化性,另外本文還引入了注意力機(jī)制可以更好地捕捉用戶的注意力信息,減少噪聲數(shù)據(jù)的影響。
與傳統(tǒng)的推薦系統(tǒng)相比,基于會(huì)話的推薦系統(tǒng)主要關(guān)注如何利用用戶當(dāng)次會(huì)話內(nèi)的點(diǎn)擊序列信息提升推薦系統(tǒng)的效果。一方面能夠快速地捕捉到用戶短期興趣從而推薦的商品更具有實(shí)時(shí)性,另外一方面該方法可以有效地解決用戶長(zhǎng)期信息缺失或者用戶冷啟動(dòng)問(wèn)題。目前而言,基于會(huì)話的推薦系統(tǒng)主要可以分為基于傳統(tǒng)推薦模型方法[1-2]、基于序列的推薦的方法以及基于深度學(xué)習(xí)的方法三大類。第一類為基于Item-to-Item協(xié)同過(guò)濾的方法,該方法是應(yīng)用在會(huì)話推薦場(chǎng)景中的最主要的方法之一,其不僅能夠快速有效地召回物品完成推薦,同時(shí)由于其不需要利用用戶信息,所以在很多缺失用戶信息的場(chǎng)景中仍能發(fā)揮重要作用,也是早期工業(yè)界最常用的方法之一。例如Linden等人提出的用于亞馬遜商品推薦系統(tǒng)的算法就是基于此[1]。在這一方法中,越頻繁出現(xiàn)在同一個(gè)會(huì)話點(diǎn)擊序列內(nèi)的商品被認(rèn)為相似性越高,并以此提前計(jì)算一個(gè)Item-to-Item相似矩陣,存儲(chǔ)任意兩個(gè)商品間的相似性。利用這一相似矩陣,找到用戶最近點(diǎn)擊的商品的最相似或Top-K相似的商品完成推薦。Sarwar等人分析了不同計(jì)算商品相似性的方法所帶來(lái)的影響。在計(jì)算商品相似性的過(guò)程中,最基本的想法是先將對(duì)兩個(gè)商品共同打分的用戶取出來(lái),再利用相似性計(jì)算方法在共同打分的用戶基礎(chǔ)上,去計(jì)算商品的相似性。第二類為基于序列的方法[3-6],在序列推薦問(wèn)題中,多數(shù)方法利用馬爾科夫鏈來(lái)建模用戶的點(diǎn)擊行為序列來(lái)完成用戶的推薦。例如Zimdars等人利用馬爾科夫鏈建模用戶的點(diǎn)擊序列,并基于此提出一種包含物品點(diǎn)擊的序信息的實(shí)例表達(dá)方法[3]。利用這種表達(dá)方式代替原有的基于詞袋的表達(dá)方式直接應(yīng)用在傳統(tǒng)的非時(shí)序推薦模型中,可以有效地提升推薦效果。Chen等人提出了LME(Latent Markov Embedding)模型,其首先利用一階馬爾科夫來(lái)建模歌曲間的轉(zhuǎn)移概率矩陣,并提出將歌曲映射到隱空間中進(jìn)行表示,要求兩個(gè)歌曲在隱空間中的歐拉距離和兩者對(duì)應(yīng)的轉(zhuǎn)移概率成正比[4]。其還在表達(dá)中加入了對(duì)表達(dá)的正則化限制,最后利用最大似然估計(jì)求解得到所有歌曲的表達(dá)。Shani等人利用馬爾科夫決策過(guò)程去建模序列推薦問(wèn)題[5]。馬爾科夫決策過(guò)程可以定義為一個(gè)四元組,S表示狀態(tài)集合,A表示動(dòng)作集合,Rwd表示收益函數(shù),對(duì)每一個(gè)狀態(tài)動(dòng)作組合進(jìn)行收益得分計(jì)算,tr表示狀態(tài)轉(zhuǎn)移函數(shù),表示狀態(tài)間的轉(zhuǎn)移概率大小。其中動(dòng)作等價(jià)于推薦商品,而我們簡(jiǎn)化這一馬爾科夫決策過(guò)程時(shí),其等價(jià)于一階馬爾科夫鏈,并且可以簡(jiǎn)單地通過(guò)計(jì)算一階轉(zhuǎn)移概率的大小來(lái)選擇推薦的物品。以上一些基于馬爾科夫鏈的方法存在著不可忽視的問(wèn)題,由于推薦場(chǎng)景下商品集往往都極大,并且存在冷啟動(dòng)、長(zhǎng)尾效應(yīng)等問(wèn)題。所以即使是一階MDP方法,其狀態(tài)空間也無(wú)法完全計(jì)算,轉(zhuǎn)移概率難以準(zhǔn)確估計(jì),這也導(dǎo)致了這一類方法在實(shí)際應(yīng)用中效果有限。第三類為基于深度學(xué)習(xí)的方法[7-12],最早將循環(huán)神經(jīng)網(wǎng)絡(luò)應(yīng)用在這一場(chǎng)景的是Hidasi等人[8-9]。這一方法將每個(gè)會(huì)話的點(diǎn)擊序列作為輸入,經(jīng)過(guò)Embedding層以后,傳入循環(huán)神經(jīng)網(wǎng)絡(luò)層,最后接多層全連接層,并用Softmax層作為輸出層,將推薦問(wèn)題當(dāng)作多分類問(wèn)題來(lái)處理,來(lái)預(yù)測(cè)下一個(gè)可能被點(diǎn)擊的商品。在循環(huán)神經(jīng)網(wǎng)絡(luò)的改進(jìn)結(jié)構(gòu)的使用上,作者對(duì)長(zhǎng)短期記憶模型(LSTM)[13]和門控循環(huán)單元(GRU)[14]結(jié)構(gòu)進(jìn)行了實(shí)驗(yàn)對(duì)比,并最終采用門控循環(huán)單元結(jié)構(gòu)代替?zhèn)鹘y(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
Li等人提出了NARM(Neural Altentive Recurrent Model)模型[10],其認(rèn)為在以前的基于會(huì)話的推薦方法的工作中,大多數(shù)只關(guān)注了對(duì)于用戶會(huì)話點(diǎn)擊序列的建模,但是并沒(méi)有關(guān)注用戶在點(diǎn)擊序列中真實(shí)的興趣。比如在用戶的點(diǎn)擊序列中,用戶可能有一些誤點(diǎn),或臨時(shí)的興趣點(diǎn),但是在傳統(tǒng)的利用循環(huán)神經(jīng)網(wǎng)絡(luò)建模的方法中,大多數(shù)將整個(gè)序列等同對(duì)待,或者主要依靠用戶最近的點(diǎn)擊商品。因此其利用注意力機(jī)制在保證模型學(xué)習(xí)用戶點(diǎn)擊序列信息的同時(shí)能夠捕獲用戶的真實(shí)興趣信息來(lái)解決這一問(wèn)題。
由于大多數(shù)工作都沒(méi)有考慮用戶信息,所以Donkers等人[11]提出了三種擴(kuò)展門控循環(huán)單元的改進(jìn)結(jié)構(gòu),將用戶信息也輸入到GRU結(jié)構(gòu)當(dāng)中,從而使得模型變?yōu)閭€(gè)性化時(shí)序模型。類似的Zhu等人對(duì)長(zhǎng)短期記憶模型結(jié)構(gòu)進(jìn)行了修改,其通過(guò)引入時(shí)間間隔因素來(lái)提升模型的推薦效果。
除了基于循環(huán)神經(jīng)網(wǎng)絡(luò)的方法之外,Tang等人提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的Top-K序列推薦方法[12]。其認(rèn)為大多數(shù)基于循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的方法只能建?;虿蹲絾吸c(diǎn)(Point-Level)對(duì)于后續(xù)行為的影響這種情況,卻無(wú)法建模多個(gè)點(diǎn)擊的共同作用效果。因此作者將用戶的點(diǎn)擊序列當(dāng)作圖片的形式去處理,利用卷積神經(jīng)網(wǎng)絡(luò)提取局部的一些模式來(lái)解決這一問(wèn)題。
基于會(huì)話的推薦問(wèn)題主要是在給定用戶當(dāng)前會(huì)話的點(diǎn)擊序列的條件下,預(yù)測(cè)用戶下一次可能點(diǎn)擊的商品,在大多數(shù)實(shí)際場(chǎng)景中,通常能夠獲得更多的商品信息,比如類別信息就是其中之一,例如音樂(lè)的音樂(lè)類別,商品的商品類別等等。因此形式化定義該問(wèn)題為,令[x1,x2,…,xn]表示用戶點(diǎn)擊序列,其xi中表示第i個(gè)點(diǎn)擊商品的商品ID,令ci表示點(diǎn)擊序列中商品xi所對(duì)應(yīng)的類別,則可以得到表示用戶點(diǎn)擊的類別序列[c1,c2,…,cn]。在給定用戶點(diǎn)擊序列x的情況下,通過(guò)模型預(yù)測(cè)得到結(jié)果y=[y1,y2,…,ym],其中m表示總商品集大小,yi表示對(duì)第i個(gè)商品得分。通常而言采取Top-K的推薦方式,選取打分最高的K個(gè)商品進(jìn)行展示。
在推薦問(wèn)題中,往往存在著大量的欠曝光商品,例如冷啟動(dòng)物品和長(zhǎng)尾商品。當(dāng)這部分商品出現(xiàn)在用戶的點(diǎn)擊序列中時(shí),一方面會(huì)由于這部分商品學(xué)習(xí)的不充分將影響模型對(duì)于整個(gè)會(huì)話的表示,但當(dāng)忽略這部分商品時(shí)比如過(guò)濾掉這類商品會(huì)使得模型無(wú)法捕捉到這部分商品帶來(lái)的影響,更加加重欠曝光商品的問(wèn)題。結(jié)合推薦問(wèn)題場(chǎng)景中,商品的類別信息,本文利用更粗粒度的信息對(duì)商品進(jìn)行補(bǔ)充表示,從而使得緩解這一問(wèn)題。
Fig.1 Schematic Diagram of Multi-Rate RNN Recommendation Model圖1 多粒度循環(huán)神經(jīng)網(wǎng)絡(luò)推薦模型示意圖
具體網(wǎng)絡(luò)的設(shè)計(jì)如圖1多粒度循環(huán)神經(jīng)網(wǎng)絡(luò)推薦模型示意圖所示,首先將用戶點(diǎn)擊物品的對(duì)應(yīng)的類別序列,經(jīng)過(guò)Embedding層后,傳給類別卷積網(wǎng)絡(luò)中,得到輸出序列。另外對(duì)于用戶的會(huì)話點(diǎn)擊序列,經(jīng)過(guò)Embedding層后,和類別的輸出變量拼合組成商品的新的表示序列。拼合方式的設(shè)計(jì)主要嘗試了兩種方式。第一種采用直接將兩個(gè)向量拼接起來(lái)的最常用的方式,如下式所示。
第二種是參考Donkers等人的工作[11],利用一個(gè)簡(jiǎn)單的類似注意力模型的方式,通過(guò)計(jì)算兩個(gè)向量間的關(guān)系來(lái)控制兩者的組合方式,即
然后將新的物品的表示序列給到第二層循環(huán)神經(jīng)網(wǎng)絡(luò)中進(jìn)行學(xué)習(xí),并將最后一個(gè)節(jié)點(diǎn)的輸出作為當(dāng)前會(huì)話的點(diǎn)擊序列的編碼表示。解碼部分采用多層全連接網(wǎng)絡(luò),并通過(guò)Softmax層得到最終的預(yù)測(cè)結(jié)果。
在1.2中提出的多粒度循環(huán)神經(jīng)網(wǎng)絡(luò)中建模用戶的會(huì)話點(diǎn)擊序列時(shí),并沒(méi)有對(duì)用戶的注意力加以區(qū)分,例如在新聞推薦的場(chǎng)景中,用戶實(shí)際可能同時(shí)閱讀多個(gè)話題的新聞(如科技和軍事)。這樣在用戶閱讀一個(gè)科技新聞時(shí),用戶歷史的點(diǎn)擊序列中科技內(nèi)容的點(diǎn)擊起到較為重要的作用,因此模型需要更好地去捕捉用戶實(shí)際的注意力信息來(lái)精確用戶的興趣表達(dá)。另外,對(duì)于一些展現(xiàn)不充分的商品,當(dāng)表達(dá)學(xué)習(xí)不充分時(shí),會(huì)對(duì)整個(gè)會(huì)話的表達(dá)產(chǎn)生一定的影響。因此在多粒度循環(huán)神經(jīng)網(wǎng)絡(luò)模型的基礎(chǔ)上,本文引入了注意力機(jī)制,用來(lái)捕捉用戶的注意力信息。
Fig.2 Schematic Diagram of Multi-Rate Attentive RNN Recommendation Model圖2 多粒度注意力循環(huán)神經(jīng)網(wǎng)絡(luò)推薦模型示意圖
其中權(quán)重系數(shù)計(jì)算如下式所示。
這里我們采用的是加性的注意力機(jī)制,主要起到了將兩個(gè)隱向量映射到同一維度的空間的作用。
本文在YOOCHOOSE和DIGINETICA這兩個(gè)公開(kāi)數(shù)據(jù)集上進(jìn)行多種推薦方法的實(shí)驗(yàn)以及一些參數(shù)實(shí)驗(yàn)和結(jié)構(gòu)實(shí)驗(yàn)。
YOOCHOOSE數(shù)據(jù)集[注]http:∥2015.recsyschallenge.com/challenge.html是在Recsys CHALLENGE 2015上發(fā)布的一個(gè)公開(kāi)數(shù)據(jù)集,具體是英國(guó)的在線零售商提供的用戶在2014年的行為記錄,包括點(diǎn)擊、購(gòu)買等。數(shù)據(jù)集主要用于序列推薦任務(wù),其中包含了9 249 729商品的共33 003 994條用戶點(diǎn)擊記錄。每條記錄包含了SessionID,商品ID,商品類別以及時(shí)間戳。由于部分基線算法的復(fù)雜度較高,本文僅使用了10%的數(shù)據(jù)用于實(shí)驗(yàn)驗(yàn)證模型的有效性。
DIGINETICA數(shù)據(jù)集[注]http:∥www.dtic.upf.edu/~ocelma/MusicRecommendationDataset/是在CIKM Cup 2016上發(fā)布的一個(gè)公開(kāi)數(shù)據(jù)集,是DIGINETICA和其合作伙伴提供的包括用戶搜索、點(diǎn)擊、購(gòu)買等在內(nèi)的一些用戶在線行為日志。本文僅使用了交易數(shù)據(jù)用于實(shí)驗(yàn),其中包含了2016/01/01-2016/06/01的80萬(wàn)條用戶的點(diǎn)擊記錄。
為了更好地驗(yàn)證模型的效果,本文均參考Hidasi等人的做法過(guò)濾了長(zhǎng)度小于5的會(huì)話,并且對(duì)數(shù)據(jù)集按時(shí)間序排序,并按照9∶1的劃分方式,取前90%的數(shù)據(jù)作為訓(xùn)練集,后10%的數(shù)據(jù)作為驗(yàn)證集,數(shù)據(jù)集的具體統(tǒng)計(jì)情況如表1數(shù)據(jù)集所示。
表1 數(shù)據(jù)集
本文將MRARR模型和Pop、ItemKNN、BPR-MF以及GRU4REC共四種方法進(jìn)行對(duì)比實(shí)驗(yàn)。
POP:將整個(gè)數(shù)據(jù)集中最熱門的商品進(jìn)行推薦。盡管方法十分簡(jiǎn)單,但在某些場(chǎng)景中仍然十分有效,通常在一些推薦方法的研究工作中被選作最基本的基線方法。
ItemKNN:該方法通過(guò)召回和會(huì)話最相似的物品進(jìn)行推薦。物品間的相似性可以由各個(gè)物品基于會(huì)話的表示向量間的Cosine值來(lái)定義。例如兩個(gè)物品共同出現(xiàn)在同一會(huì)話的次數(shù)除以兩個(gè)物品各自出現(xiàn)在會(huì)話中次數(shù)的積。同時(shí)在計(jì)算的時(shí)候,還使用正則項(xiàng)來(lái)防止稀有商品間的相似度虛高的情況。這一方法是工業(yè)界最常用的方法之一,也是一個(gè)較為有力的基線,具體可以參考Linden[1]或Davidson等人[15]的工作。
BPR-MF:該方法是目前最常用的矩陣算法之一,其主要通過(guò)隨機(jī)梯度下降去優(yōu)化pairwise的排序損失函數(shù)。矩陣分解的方法并不能直接應(yīng)用到基于會(huì)話的場(chǎng)景中,因?yàn)榫仃嚪纸鉄o(wú)法為新的會(huì)話進(jìn)行刻畫。本文參考Hidasi等人的工作,對(duì)新會(huì)話中的物品的向量求平均值作為新會(huì)話的向量表示,這可以看作待計(jì)算物品和會(huì)話中的所有商品的相似性的平均值來(lái)反應(yīng)待計(jì)算物品和會(huì)話之間的相似性。
GRU4REC[8]:該方法利用深度學(xué)習(xí)的方法對(duì)基于會(huì)話的推薦場(chǎng)景進(jìn)行建模,利用循環(huán)神經(jīng)網(wǎng)絡(luò)建模用戶的點(diǎn)擊序列。該方法在原有的基于序列推薦算法的基礎(chǔ)上,獲得了大幅度的提升,是目前基于會(huì)話的推薦算法中,最強(qiáng)有力的基線算法。
推薦場(chǎng)景中,大多數(shù)場(chǎng)景能夠推薦的數(shù)量都受到一定因素的限制。所以目前大多數(shù)推薦問(wèn)題都是Top-K推薦問(wèn)題。因此我們采用以下兩個(gè)評(píng)價(jià)指標(biāo)對(duì)算法進(jìn)行評(píng)價(jià),這兩個(gè)指標(biāo)也是目前在基于Session的推薦場(chǎng)景中,最常用的評(píng)價(jià)指標(biāo)之一。
Recall@20:召回率是推薦算法中最基本的評(píng)價(jià)指標(biāo)之一,這一指標(biāo)通常和線上的一些實(shí)際指標(biāo)如點(diǎn)擊率成正比,故也是常用的離線評(píng)價(jià)指標(biāo)之一。Recall@20主要衡量的是前20個(gè)商品中是否召回用戶感興趣的商品,但這一指標(biāo)并沒(méi)有考慮到真實(shí)點(diǎn)擊商品的位置因素。
MRR@20:Mean Reciprocal Rnak在召回率的基礎(chǔ)上,進(jìn)一步加入了召回商品的位置的影響。商品召回位置越靠前,該值越大,反之越小。MRR@20表示當(dāng)商品并沒(méi)有在前20個(gè)商品中召回時(shí),該值為0。在一些位置因素對(duì)用戶體驗(yàn)影響較大的場(chǎng)景,該指標(biāo)起到重要的作用。
本文模型中的所有參數(shù)均采用線搜索的方式進(jìn)行選取,最終采用的參數(shù)設(shè)定如下。模型采用Adam優(yōu)化方法對(duì)模型參數(shù)進(jìn)行求解,初始學(xué)習(xí)率為0.001,衰減系數(shù)為0.97,訓(xùn)練的Batch大小為1 000,迭代輪數(shù)為15輪。另外,模型的循環(huán)神經(jīng)網(wǎng)絡(luò)層采用了Dropout的方式防止過(guò)擬合,具體Dropout率為0.5。類別向量的Embedding維度采用了25維,商品Embedding向量的維度為100維。另外用于類別的循環(huán)神經(jīng)網(wǎng)絡(luò)和用于商品層的循環(huán)神經(jīng)網(wǎng)絡(luò)均設(shè)置隱層節(jié)點(diǎn)個(gè)數(shù)為100。選取模型處理的最長(zhǎng)商品點(diǎn)擊序列長(zhǎng)度為30,超過(guò)30個(gè)的序列將丟掉前面部分的點(diǎn)擊,另外解碼部分直接采用Softmax層,并未加入更多的全連接層。本文用的loss為cross-entropy loss,并沒(méi)有采用排序損失函數(shù)TOP1和BPR,如果換成排序損失函數(shù),可能效果會(huì)有所提升。
2.5.1 基線對(duì)比實(shí)驗(yàn)
GRU4REC是目前效果最好的算法之一,相比于GRU4REC,本文提出的MRARR方法主要在其原有的基礎(chǔ)上,增加了粗粒度信息的建模,并將結(jié)果和原有的商品粒度信息相結(jié)合,這使得相比于GRU4REEC方法,MRARR模型具有更好的泛化性和魯棒性。如表2所示,相對(duì)于GRU4REC算法,本文提出的MRARR算法有較為明顯的提升,在YOOCHOOSE數(shù)據(jù)集上,Recall@20指標(biāo)提升了5.3%,MRR@20指標(biāo)提升了9.8%,在DIGINETICA數(shù)據(jù)集上也分別有14%和15%的提升,由此可見(jiàn)引入更粗粒度的如商品類別信息,可以有效地提升模型效果和泛化性。當(dāng)商品的長(zhǎng)尾商品和冷啟動(dòng)商品更多的時(shí)候,MRARR方法將具有更為明顯的優(yōu)勢(shì)。另外可以看到基于會(huì)話的推薦模型如Item-KNN、GRU4REC以及MRARR模型均效果明顯好于靜態(tài)的推薦模型如POP、BPR-MF。一方面是因?yàn)閿?shù)據(jù)集本身就是側(cè)重于用戶短期興趣的數(shù)據(jù),另外也說(shuō)明用戶短期興趣在推薦場(chǎng)景中有較大的影響。
表2 基線對(duì)比實(shí)驗(yàn)結(jié)果
另一方面本文的方法并沒(méi)有太多對(duì)模型優(yōu)化的一些技巧,比如Batch Normalization、預(yù)訓(xùn)練、排序損失函數(shù),利用Bi-Linear解碼代替Softmax等,如果在MRRR的基礎(chǔ)上引入這些方法將有可能帶來(lái)進(jìn)一步提升,但由于本文主要側(cè)重于粗粒度信息帶來(lái)的收益,所以并沒(méi)有在這些方面進(jìn)行太多的實(shí)驗(yàn)。
在模型中還嘗試使用雙向的GRU代替單向的GRU,結(jié)果略微提升,并沒(méi)有帶來(lái)特別顯著的效果;使用多層Stacking GRU來(lái)提取多種序列不同時(shí)間粒度關(guān)系結(jié)果也并沒(méi)有明顯的提升。在解碼結(jié)構(gòu)中引入多層全連接層并沒(méi)有在測(cè)試集中帶來(lái)明顯收益,驗(yàn)證集有所提升,但可能更復(fù)雜的結(jié)構(gòu)一定程度導(dǎo)致了模型過(guò)擬合。
2.5.2 結(jié)構(gòu)對(duì)比實(shí)驗(yàn)
本文首先對(duì)如何拼接商品向量和利用粗粒度信息學(xué)到的向量進(jìn)行了實(shí)驗(yàn),一種方式是直接對(duì)兩個(gè)向量進(jìn)行拼接。另外一種是參考Donkers等人的工作中,利用門控網(wǎng)絡(luò)的思想,利用粗粒度信息作為控制信號(hào)決定商品向量和粗粒度信息向量如何拼接,具體實(shí)驗(yàn)結(jié)果如表3所示。采用門控網(wǎng)絡(luò)類似的結(jié)構(gòu)有一定的提升,在YOOCHOOSE數(shù)據(jù)集上Recall@20指標(biāo)能夠帶來(lái)1.8%的提升,MRR@20也有2.7%的提升,在DIGINETICA數(shù)據(jù)集上,Recall@20和MRR@20分別有7%和11%的提升,由此可見(jiàn)門控網(wǎng)絡(luò)可以有效捕捉兩種信息各自的重要性信息。
表3 向量拼接方式實(shí)驗(yàn)結(jié)果
另外本文還對(duì)如何提取用戶的表達(dá)做了實(shí)驗(yàn)對(duì)比。其中包括是否加注意力機(jī)制,取最后一個(gè)、取平均等等,實(shí)驗(yàn)結(jié)果如表4所示。實(shí)驗(yàn)表明,注意力機(jī)制的引入可以有效地提升模型的效果。YOOCHOOSE數(shù)據(jù)集上,Recall@20提升3.6%,MRR@20提升5.8%。DIGINETICA數(shù)據(jù)集上,Recall@20和MRR@20分別提升3.3%和12%。通過(guò)結(jié)果表明GRU4REC中,利用循環(huán)神經(jīng)網(wǎng)絡(luò)最后的隱節(jié)點(diǎn)作為整個(gè)序列的輸出有一定的局限性,用戶的注意力可能不完全是按照時(shí)間信息決定的,引入注意力機(jī)制可以有效地捕捉用戶的注意力,但是通過(guò)對(duì)比其他方式不難發(fā)現(xiàn)用戶尾部的點(diǎn)擊對(duì)于用戶的下一次點(diǎn)擊影響較大,可以更好地反應(yīng)用戶的短期興趣。
表4 會(huì)話編碼方式實(shí)驗(yàn)結(jié)果
本文提出了一種基于會(huì)話的多粒度注意力循環(huán)神經(jīng)網(wǎng)絡(luò)推薦模型。在實(shí)際的推薦場(chǎng)景中,往往通常會(huì)遇到商品的冷啟動(dòng)問(wèn)題和長(zhǎng)尾問(wèn)題,這部分商品由于缺乏足夠展示在模型的學(xué)習(xí)中往往表達(dá)不夠充分。因此當(dāng)序列中出現(xiàn)這樣的商品時(shí)往往會(huì)導(dǎo)致兩種情況,一是由于商品的表達(dá)學(xué)習(xí)不夠充分從而影響對(duì)整個(gè)序列的建模,這相當(dāng)于引入了部分噪聲,從而影響表達(dá)的準(zhǔn)確性。另外一方面是由于商品的表達(dá)學(xué)習(xí)不充分,導(dǎo)致無(wú)法很好地捕捉這部分商品所帶來(lái)的信息,因此模型會(huì)更加的趨熱,使得冷啟動(dòng)商品或長(zhǎng)尾商品的展現(xiàn)更加困難?;诖藛?wèn)題,本文通過(guò)引入商品的更粗粒度的信息如類別信息來(lái)解決這一問(wèn)題。商品的類別信息對(duì)于商品有聚合作用,因此可以更好地提升模型的泛化能力。本文利用多粒度循環(huán)神經(jīng)網(wǎng)絡(luò)模型,先通過(guò)一層循環(huán)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)商品的類別表達(dá),再通過(guò)將類別表達(dá)和商品的Embedding做拼合傳入下一層循環(huán)神經(jīng)網(wǎng)絡(luò),對(duì)商品的整個(gè)序列進(jìn)行建模。還通過(guò)Tensorflow實(shí)現(xiàn)了這一模型,并在YOOCHOOSE數(shù)據(jù)集上驗(yàn)證了模型的有效性,相比于目前效果最好的GRU4REC模型,MRARR模型在YOOCHOSS數(shù)據(jù)集上,Recall@20指標(biāo)獲得了5.3%的提升,而MRR@20指標(biāo)獲得了9.8%的提升。