陳卓,姜偉豪,杜軍威
(青島科技大學(xué)信息科學(xué)技術(shù)學(xué)院,山東青島 266061)
隨著科學(xué)技術(shù)的發(fā)展,信息過(guò)載的問(wèn)題也越來(lái)越嚴(yán)重,推薦系統(tǒng)的成功應(yīng)用可以有效地緩解這一難題.然而,用戶興趣總是隨著時(shí)間的推移而產(chǎn)生變化,因此,序列推薦系統(tǒng)(Sequential Recommender Systems,SRS)[1]應(yīng)運(yùn)而生.序列推薦系統(tǒng)將用戶-項(xiàng)目交互視為一個(gè)動(dòng)態(tài)序列,捕捉用戶當(dāng)前和最近的偏好,以獲得更準(zhǔn)確的推薦,該系統(tǒng)在購(gòu)物以及影音網(wǎng)站等都有著很好的應(yīng)用.
不同于基于內(nèi)容的協(xié)同過(guò)濾[2]以及基于矩陣分解[3]的傳統(tǒng)推薦系統(tǒng),序列推薦系統(tǒng)根據(jù)模型的復(fù)雜程度可以分為兩類,包括傳統(tǒng)的序列模型和神經(jīng)網(wǎng)絡(luò)模型.傳統(tǒng)的序列模型例如基于馬爾科夫鏈的模型對(duì)序列中的用戶-項(xiàng)目交互進(jìn)行建模,并計(jì)算相互之間的轉(zhuǎn)移概率,該方法只能捕獲短期依賴并且忽略用戶的總體興趣.神經(jīng)網(wǎng)絡(luò)模型例如基于循環(huán)神經(jīng)網(wǎng)絡(luò)的模型通過(guò)給定的用戶-項(xiàng)目交互序列來(lái)預(yù)測(cè)下一交互,但該方法假設(shè)任何相鄰交互都是有關(guān)系的并忽略多個(gè)項(xiàng)目的共同作用.
大多數(shù)的序列推薦系統(tǒng)只專注于當(dāng)前收益,對(duì)于即時(shí)回報(bào)較小但有較大未來(lái)收益項(xiàng)目的識(shí)別度不高.比如用戶在觀看了有關(guān)游戲和天氣的短視頻后,可能不會(huì)再關(guān)注今天的天氣;但是看了喜歡的游戲之后,更傾向于觀看更多與游戲相關(guān)的視頻.深度強(qiáng)化學(xué)習(xí)可以統(tǒng)一優(yōu)化即時(shí)收益和長(zhǎng)期收益[4],將用戶的狀態(tài)進(jìn)行動(dòng)態(tài)建模,并學(xué)習(xí)到最優(yōu)推薦策略,以提高推薦準(zhǔn)確率.現(xiàn)有的深度強(qiáng)化學(xué)習(xí)狀態(tài)的表示是將用戶之前交互的項(xiàng)目按照一定的順序進(jìn)行建模,無(wú)法區(qū)分用戶交互序列中的不同行為模式,因而無(wú)法較為準(zhǔn)確地預(yù)測(cè)用戶的當(dāng)前興趣偏好.深度強(qiáng)化學(xué)習(xí)做預(yù)測(cè)時(shí),可選擇的動(dòng)作空間較大且數(shù)據(jù)較為稀疏,導(dǎo)致算法收斂困難.本文使用深度強(qiáng)化學(xué)習(xí)中的深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法,該算法不再計(jì)算每個(gè)項(xiàng)目的概率而是基于確定的策略,這更有利于處理連續(xù)動(dòng)作,并且提高了算法的收斂速度.
本文提出了一種將用戶策略記憶與DDPG 算法結(jié)合的方式來(lái)解決以上問(wèn)題.本文的貢獻(xiàn)可以總結(jié)為以下幾點(diǎn):
1)使用記憶網(wǎng)絡(luò)存儲(chǔ)用戶歷史交互序列,并訓(xùn)練一個(gè)策略網(wǎng)絡(luò),通過(guò)用戶和其歷史交互對(duì)用戶當(dāng)前行為模式進(jìn)行劃分.引入注意力機(jī)制,根據(jù)策略網(wǎng)絡(luò)的輸出對(duì)記憶網(wǎng)絡(luò)使用不同的注意力表示方法并生成用戶當(dāng)前的記憶向量表示.
2)提出結(jié)合策略記憶的深度強(qiáng)化學(xué)習(xí)推薦算法(Deep Reinforcement Recommendation with Policy Memory,DRRM).將用戶表示、用戶當(dāng)前偏好以及用戶記憶作為狀態(tài)輸入,利用DDPG 算法預(yù)測(cè)用戶喜好,在交互中不斷更新推薦策略,該算法同時(shí)考慮了推薦項(xiàng)目對(duì)用戶的當(dāng)前收益及其對(duì)用戶的長(zhǎng)期影響.使用探索策略提高推薦多樣性.
3)通過(guò)在兩個(gè)公共數(shù)據(jù)集上進(jìn)行的實(shí)驗(yàn),驗(yàn)證了所提出算法的有效性,其效果明顯強(qiáng)于基線算法.
序列推薦系統(tǒng)是近年來(lái)的研究熱點(diǎn),通過(guò)對(duì)用戶的行為序列進(jìn)行建模,考慮用戶興趣的依賴性,為其推薦下一時(shí)刻所感興趣的項(xiàng)目.傳統(tǒng)的序列推薦算法有:Feng 等人[5]提出了基于距離嵌入的個(gè)性化排序算法(Personalized Ranking Metric Embedding,PRME),將用戶序列建模為馬爾可夫鏈,并嵌入歐氏空間,基于距離計(jì)算項(xiàng)目相互之間的轉(zhuǎn)移概率.Liu等人[6]提出了基于上下文感知的序列推薦算法(Context-Aware Recurrent Neural Networks,CARNN),該算法使用特定輸入矩陣和轉(zhuǎn)移矩陣進(jìn)行推薦,但該算法不利于捕獲交互序列中高度相關(guān)的項(xiàng)目信息.Wang 等人[7]提出的基于注意力機(jī)制的事務(wù)嵌入推薦算法(Attention-Based Transaction Embedding Model,ATEM)通過(guò)注意力機(jī)制來(lái)觀察和識(shí)別與下一個(gè)項(xiàng)目相關(guān)的上下文信息.Kang 等人[8]提出的基于自注意力的序列推薦算法(Self-Attentive Sequential Recommendation,SASRec)將自注意力機(jī)制應(yīng)用于序列推薦系統(tǒng),用于捕獲序列的長(zhǎng)期語(yǔ)義,并在訓(xùn)練速度上有一定的提升.
上述算法進(jìn)行序列推薦時(shí),總是假定相鄰兩交互是相關(guān)的,而對(duì)于具有靈活順序的長(zhǎng)序列的識(shí)別能力不強(qiáng).
由于需要長(zhǎng)期記憶來(lái)存儲(chǔ)問(wèn)答知識(shí)或聊天的語(yǔ)境信息,記憶網(wǎng)絡(luò)(Memory Networks,MN)[9]由Weston 首次提出,以這種有效的方式來(lái)簡(jiǎn)單地讀寫此類信息,該模型最初被應(yīng)用于智能問(wèn)答領(lǐng)域.Chen等人[10]提出了一種基于用戶記憶網(wǎng)絡(luò)的推薦算法(Recommender system with User Memory networks,RUM),該算法首次將記憶網(wǎng)絡(luò)應(yīng)用于推薦系統(tǒng),通過(guò)對(duì)用戶交互項(xiàng)目的讀取、寫入等操作更好地利用用戶的歷史記錄;但該算法并沒(méi)有對(duì)用戶興趣進(jìn)行區(qū)分.Ebesu 等人[11]提出了一種將用戶協(xié)同過(guò)濾與記憶網(wǎng)絡(luò)相結(jié)合的推薦系統(tǒng)(Collaborative Memory Networks,CMN),分別利用潛在因素的全局結(jié)構(gòu)以及鄰域的局部結(jié)構(gòu)進(jìn)行推薦.Ouyang 等人[12]提出了一種基于記憶增強(qiáng)的深度神經(jīng)網(wǎng)絡(luò)推薦算法(Memory Augmented Deep Neural Networks,MADNN),該算法為每一個(gè)用戶都創(chuàng)建喜歡和不喜歡兩個(gè)外部記憶向量,以此來(lái)對(duì)用戶點(diǎn)擊率進(jìn)行預(yù)測(cè).
上述基于記憶網(wǎng)絡(luò)的推薦算法僅能夠識(shí)別記憶向量對(duì)當(dāng)前交互的作用,無(wú)法識(shí)別未來(lái)收益較大的交互項(xiàng)目,并且沒(méi)有利用更深層的神經(jīng)網(wǎng)絡(luò)模型對(duì)用戶偏好進(jìn)行預(yù)測(cè).
近幾年來(lái),隨著強(qiáng)化學(xué)習(xí)的發(fā)展,與推薦系統(tǒng)的結(jié)合也越來(lái)越多.深度強(qiáng)化學(xué)習(xí)的目標(biāo)是智能體在與環(huán)境的不斷交互中學(xué)習(xí)到最佳策略,因此,有利于序列推薦的動(dòng)態(tài)建模.Wang等人[13]提出了基于遞歸神經(jīng)網(wǎng)絡(luò)的監(jiān)督強(qiáng)化學(xué)習(xí)算法(Supervised Reinforcement Learning with Recurrent Neural Network,SRL-RNN),該算法使用演員-評(píng)論家框架處理多種藥物、疾病以及個(gè)體之間的關(guān)系,以進(jìn)行個(gè)性化藥品推薦.Zhao 等人[14]提出了一種基于多智能體強(qiáng)化學(xué)習(xí)的DeepChain算法,該算法使用多個(gè)智能體協(xié)同優(yōu)化,捕捉多場(chǎng)景中用戶行為順序相關(guān)性,以獲得整體的最大回報(bào).Zheng 等人[15]將深度強(qiáng)化學(xué)習(xí)中的深度Q 網(wǎng)絡(luò)(Deep Q Learning,DQN)與推薦系統(tǒng)相結(jié)合,提出了基于深度強(qiáng)化學(xué)習(xí)的新聞推薦框架(Deep Reinforcement Learning Framework for News Recommendation,DRN),該框架同時(shí)使用Dueling Bandit 梯度下降方法來(lái)進(jìn)行有效的探索.Liu 等人[16]利用DDPG 算法提出了用于解決電影等推薦的深度強(qiáng)化學(xué)習(xí)推薦算法(Deep Reinforcement Learning based Recommendation,DRR).
上述基于深度強(qiáng)化學(xué)習(xí)的推薦算法僅使用單一的方式對(duì)用戶當(dāng)前狀態(tài)進(jìn)行建模,對(duì)用戶興趣的劃分存在一定偏差,且無(wú)法對(duì)用戶歷史喜好的不同權(quán)重進(jìn)行建模.
本文將深度強(qiáng)化學(xué)習(xí)應(yīng)用于序列推薦,推薦代理(Agent)根據(jù)時(shí)間順序?qū)τ脩艉晚?xiàng)目進(jìn)行交互,以獲得最大化的累計(jì)回報(bào).將此過(guò)程建模為一個(gè)馬爾可夫決策過(guò)程,其中包括狀態(tài)、動(dòng)作、獎(jiǎng)勵(lì)、衰減因子等四元組,具體定義如下:
狀態(tài)S:由用戶及其之前交互項(xiàng)目的集合組合而成,交互過(guò)的項(xiàng)目按照時(shí)間順序依次排列,并將其輸入演員-評(píng)論家網(wǎng)絡(luò)中進(jìn)行預(yù)測(cè).
動(dòng)作A:采用基于策略的DDPG 算法,每次交互時(shí)根據(jù)策略網(wǎng)絡(luò)生成一個(gè)確定的動(dòng)作A,該動(dòng)作表示用戶當(dāng)前的喜好,再與項(xiàng)目集進(jìn)行內(nèi)積得到為用戶推薦的項(xiàng)目.
即時(shí)獎(jiǎng)勵(lì)R:推薦代理將一個(gè)項(xiàng)目推薦給用戶,根據(jù)用戶是否在當(dāng)前時(shí)刻與該項(xiàng)目進(jìn)行過(guò)交互,并給予一定的獎(jiǎng)賞或懲罰.
衰減因子γ:γ∈[0,1],是衡量短期收益與累計(jì)收益的標(biāo)準(zhǔn),當(dāng)γ越接近于零,代表算法越重視推薦的短期回報(bào),反之則更加重視累計(jì)回報(bào).
DRRM 模型框架如圖1 所示,該模型分為3部分.
圖1 DRRM模型框架圖Fig.1 DRRM model framework diagram
第1 部分為圖中下半部,即用戶記憶網(wǎng)絡(luò)部分,該部分引入注意力機(jī)制用來(lái)區(qū)分用戶歷史交互項(xiàng)目的不同權(quán)重關(guān)系,從而學(xué)習(xí)用戶的興趣變化;根據(jù)不同的行為模式生成不同的用戶記憶向量,并將用戶的歷史記錄存入外部的記憶網(wǎng)絡(luò)中,為狀態(tài)的更新提供依據(jù).第2 部分為策略網(wǎng)絡(luò)部分,該部分對(duì)用戶當(dāng)前行為模式進(jìn)行劃分.本文使用基于策略梯度算法的策略網(wǎng)絡(luò)對(duì)其進(jìn)行劃分(詳見(jiàn)2.2.2 節(jié)),從而使記憶網(wǎng)絡(luò)選擇不同的注意力計(jì)算方式,得到用戶記憶向量,并結(jié)合用戶向量生成當(dāng)前狀態(tài)S.第3 部分為DDPG 網(wǎng)絡(luò)部分,該部分用戶預(yù)測(cè)動(dòng)作A.該網(wǎng)絡(luò)由演員和評(píng)論家兩個(gè)網(wǎng)絡(luò)組成,演員網(wǎng)絡(luò)通過(guò)輸入的狀態(tài)S,來(lái)輸出用戶當(dāng)前的喜好;評(píng)論家網(wǎng)絡(luò)通過(guò)該部分輸出來(lái)更新演員網(wǎng)絡(luò).該算法在與用戶的交互中不斷更新,以達(dá)到最優(yōu)策略的輸出.
2.2.1 記憶網(wǎng)絡(luò)模塊
本文將用戶的歷史交互信息存儲(chǔ)在一個(gè)外部的組件——記憶網(wǎng)絡(luò)中,記憶網(wǎng)絡(luò)的具體構(gòu)建如下:
令U={u1,u2,…,un-1,un},T={t1,t2,…,tm-1,tm}.分別表示用戶和項(xiàng)目的集合,而n和m分別表示數(shù)據(jù)集中用戶以及項(xiàng)目的個(gè)數(shù).令S={s11,s12,…,sij}且S∈Rn×m,表示用戶和項(xiàng)目的交互矩陣,其中sij表示用戶ui對(duì)項(xiàng)目tj的評(píng)分,矩陣中不同得分表示用戶對(duì)該項(xiàng)目的喜好程度,若用戶沒(méi)有對(duì)該項(xiàng)目進(jìn)行過(guò)評(píng)分,則該評(píng)分為0.對(duì)于每個(gè)用戶u 都有該用戶自己評(píng)過(guò)分的項(xiàng)目集合Tu=其中k為該用戶所有評(píng)分項(xiàng)目的個(gè)數(shù),該集合按用戶對(duì)項(xiàng)目評(píng)分的時(shí)間序列依次排列.
在每個(gè)時(shí)間節(jié)點(diǎn)t時(shí)刻都將每個(gè)用戶u 在此時(shí)刻之前的歷史交互存入其對(duì)應(yīng)的記憶網(wǎng)絡(luò)中,即為根據(jù)本文3.5節(jié)實(shí)驗(yàn)研究表明,記憶網(wǎng)絡(luò)中每個(gè)項(xiàng)目對(duì)于用戶下一次行為的影響并不相同.因此,本文將用戶行為分為短期偏好、長(zhǎng)期偏好和全局偏好.
1)當(dāng)用戶行為受上一次影響即為短期偏好時(shí),對(duì)用戶交互集合中的所有項(xiàng)目與最近一次交互計(jì)算注意力權(quán)重,權(quán)重的計(jì)算如式(1)所示.
式中:n、j∈[1,t-2];wn為最近一次交互的項(xiàng)目向量與記憶網(wǎng)絡(luò)中每個(gè)向量的乘積,輸出為一個(gè)一維的數(shù)值;exp()表示以e 為底的指數(shù)函數(shù);zn為第n個(gè)項(xiàng)目向量在此記憶網(wǎng)絡(luò)中的權(quán)重值.在得到權(quán)重值之后,計(jì)算當(dāng)前狀態(tài)下的權(quán)重向量.經(jīng)過(guò)注意力機(jī)制的權(quán)重向量的計(jì)算如式(2)所示.
式中:At為所求的前t-2 個(gè)項(xiàng)目的注意力向量,以此來(lái)表示該用戶的記憶向量.
2)當(dāng)用戶行為受之前某一行為影響即為長(zhǎng)期偏好時(shí),首先使用式(1)得出與最近一次行為注意力權(quán)重最高的項(xiàng)目;再使用和用戶的歷史交互向量計(jì)算注意力權(quán)重,再通過(guò)式(2)計(jì)算用戶記憶向量.
3)當(dāng)用戶行為與歷史交互無(wú)直接關(guān)系即為全局偏好時(shí),對(duì)使用用戶向量與該用戶的歷史交互向量進(jìn)行注意力權(quán)重的計(jì)算,并計(jì)算用戶的記憶向量.
對(duì)于用戶記憶網(wǎng)絡(luò)的寫入操作,本文采用先入先出的策略進(jìn)行更新.將每個(gè)用戶的記憶網(wǎng)絡(luò)設(shè)置為固定的長(zhǎng)度,先將每個(gè)用戶的前兩次交互放入網(wǎng)絡(luò)中,從第3 次交互開(kāi)始訓(xùn)練.若用戶的記憶數(shù)小于記憶網(wǎng)絡(luò)可存放的記憶個(gè)數(shù),則直接將最近一次交互寫入記憶網(wǎng)絡(luò),否則將最開(kāi)始的用戶交互記憶刪除并寫入最近交互.
2.2.2 基于策略梯度的策略網(wǎng)絡(luò)
本文將訓(xùn)練一個(gè)策略網(wǎng)絡(luò)來(lái)對(duì)用戶當(dāng)前行為的3種模式進(jìn)行劃分,記憶網(wǎng)絡(luò)將根據(jù)該網(wǎng)絡(luò)的輸出結(jié)果選擇如2.2.1 節(jié)所示的不同的注意力計(jì)算方式,生成用戶記憶向量.
該策略網(wǎng)絡(luò)基于策略梯度(Policy Gradient)算法,通過(guò)用戶向量和用戶歷史交互向量的平均值作為輸入,計(jì)算得到用戶3 種行為模式的概率πθ(at|st),并輸出該交互的行為模式.在經(jīng)過(guò)記憶網(wǎng)絡(luò)以及DDPG 網(wǎng)絡(luò)預(yù)測(cè)出的結(jié)果得到獎(jiǎng)勵(lì)值R(at),通過(guò)該獎(jiǎng)勵(lì)值計(jì)算策略網(wǎng)絡(luò)的損失,該損失函數(shù)如式(3)所示.
在得到損失函數(shù)后,使用梯度下降來(lái)優(yōu)化損失,更新網(wǎng)絡(luò)參數(shù).
2.2.3 基于DDPG算法的訓(xùn)練框架
用戶當(dāng)前狀態(tài)的表示模型由用戶表示、用戶記憶網(wǎng)絡(luò)以及用戶當(dāng)前偏好3 部分組成,以此來(lái)表示用戶與項(xiàng)目交互的序列關(guān)系.用戶u 在t時(shí)刻的偏好即當(dāng)前狀態(tài)的表示如式(4)所示.
式中:Concat()為拼接函數(shù);u代表用戶的向量表示;At代表用戶的記憶向量表示代表用戶的當(dāng)前偏好表示,若為短期偏好則使用用戶最近一次交互,若為長(zhǎng)期偏好則使用權(quán)重最高的交互向量,若為全局偏好則使用歷史交互的平均值.
使用DDPG 算法對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練,DDPG 算法是演員-評(píng)論家網(wǎng)絡(luò)的一種,它輸出的是一個(gè)確定的動(dòng)作,結(jié)合DQN 以及策略梯度算法的優(yōu)勢(shì),加速網(wǎng)絡(luò)的收斂,可以更好地解決連續(xù)動(dòng)作空間上的求解問(wèn)題.該算法由兩個(gè)網(wǎng)絡(luò)組成,即演員網(wǎng)絡(luò)和評(píng)論家網(wǎng)絡(luò).同時(shí),為了提高網(wǎng)絡(luò)的穩(wěn)定性和收斂性,設(shè)置兩個(gè)更新較慢的目標(biāo)網(wǎng)絡(luò)來(lái)提高兩個(gè)預(yù)測(cè)網(wǎng)絡(luò)的更新效率.兩個(gè)預(yù)測(cè)網(wǎng)絡(luò)的功能及其更新過(guò)程如下所述:
演員網(wǎng)絡(luò)將輸入的用戶當(dāng)前狀態(tài)St經(jīng)過(guò)幾層神經(jīng)網(wǎng)絡(luò)后輸出一個(gè)確定的用戶喜好向量at.為了增加推薦的多樣性,防止算法得到局部最優(yōu)解,在訓(xùn)練過(guò)程中,使用高斯噪聲進(jìn)行探索,探索過(guò)程計(jì)算如式(5)所示.
式中:μ為數(shù)學(xué)期望;σ2為方差;β為探索時(shí)的衰減系數(shù).使用經(jīng)過(guò)探索得到的喜好向量跟項(xiàng)目集合T相乘,將得到的值經(jīng)過(guò)sigmoid 函數(shù)變換為每個(gè)項(xiàng)目的得分Gi,并將此得分進(jìn)行排序?yàn)橛脩敉扑]前n個(gè)項(xiàng)目.具體計(jì)算如式(6)所示.
每輪預(yù)測(cè)都將向經(jīng)驗(yàn)回放池傳入B={St,A,R,St+1}四元組,其中St+1為下一時(shí)刻的狀態(tài).演員網(wǎng)絡(luò)更新的損失函數(shù)梯度如式(7)所示.
式中:θa為演員網(wǎng)絡(luò)中的參數(shù);N為經(jīng)驗(yàn)回放池中的batch大??;Q(s,a,θa)為評(píng)論家網(wǎng)絡(luò)的輸出.
評(píng)論家網(wǎng)絡(luò)用來(lái)評(píng)估演員網(wǎng)絡(luò).通過(guò)從經(jīng)驗(yàn)回放池中獲得一個(gè)batch 的數(shù)據(jù),利用現(xiàn)實(shí)Q值和估計(jì)Q值的均方差來(lái)更新其網(wǎng)絡(luò)參數(shù).更新的損失函數(shù)如式(8)所示.
式中:Q(si,ai,θc)為估計(jì)的Q值網(wǎng)絡(luò)得到的值.yi的計(jì)算如式(9)所示.
式中:γ為衰減因子,用于權(quán)衡即時(shí)收益與未來(lái)總收益之間的關(guān)系;Q′(si+1,ai+1,θc′)為使用現(xiàn)實(shí)Q網(wǎng)絡(luò)對(duì)下一步交互所計(jì)算的值;ri為當(dāng)前狀態(tài)的獎(jiǎng)勵(lì)值.獎(jiǎng)勵(lì)值R的計(jì)算如式(10)所示.
若推薦的項(xiàng)目集合中存在用戶當(dāng)前的喜好項(xiàng)目則獎(jiǎng)勵(lì)值為1;若推薦的項(xiàng)目集合中沒(méi)有當(dāng)前喜好,但出現(xiàn)在用戶的交互序列中則獎(jiǎng)勵(lì)值為1∕2;其他情況獎(jiǎng)勵(lì)值為-1.以此來(lái)區(qū)分不同動(dòng)作所獲得的回報(bào).
本文使用Amazon Instant Video 以及Amazon Automotive(http:∕∕jmcauley.ucsd.edu∕data∕amazon∕)兩 個(gè)公開(kāi)的數(shù)據(jù)集來(lái)進(jìn)行實(shí)驗(yàn)分析.為保證序列的長(zhǎng)度,將交互個(gè)數(shù)小于10 個(gè)項(xiàng)目的用戶刪除,經(jīng)過(guò)預(yù)處理后的可用數(shù)據(jù)量如表1 所示.兩個(gè)數(shù)據(jù)集都具有時(shí)間戳信息,因此,可對(duì)用戶序列按時(shí)間進(jìn)行排序并進(jìn)行序列推薦.使用每個(gè)用戶前80%的數(shù)據(jù)進(jìn)行訓(xùn)練,后20%進(jìn)行測(cè)試,以證明本文所提出觀點(diǎn)的有效性.
表1 數(shù)據(jù)集統(tǒng)計(jì)表Tab.1 Statistics of data sets
本文所使用的評(píng)價(jià)指標(biāo)[10]由精準(zhǔn)度(Precision)、召回率(Recall)、F1值(F1-score)以及HR 值(Hit-ratio)組成,從多個(gè)方面評(píng)估模型的好壞.
本實(shí)驗(yàn)采用的軟硬件環(huán)境如表2 所示,本算法所使用的Python版本為3.7.3,并基于Tensorflow 深度學(xué)習(xí)框架實(shí)現(xiàn)本算法的深度強(qiáng)化學(xué)習(xí).
表2 實(shí)驗(yàn)環(huán)境表Tab.2 Experimental environment table
DRRM 模型所使用的超參數(shù)有學(xué)習(xí)率、batch_size以及衰減因子.
為了研究超參數(shù)對(duì)模型性能的影響,首先對(duì)DDPG 網(wǎng)絡(luò)使用不同學(xué)習(xí)率、batch_size進(jìn)行實(shí)驗(yàn).學(xué)習(xí)率和batch_size 是兩個(gè)最重要的模型超參數(shù),合適的學(xué)習(xí)率和batch_size,不僅可以加速模型收斂,防止陷入局部最優(yōu),還可以提高模型的性能.在Amazon Instant Video 數(shù)據(jù)集上進(jìn)行參數(shù)設(shè)置,不同學(xué)習(xí)率、batch_size的對(duì)比實(shí)驗(yàn)如表3所示.
表3 學(xué)習(xí)率、batch_size對(duì)比實(shí)驗(yàn)表Tab.3 Learning rate,batch_size of comparative experiments
從表3可以看出,當(dāng)學(xué)習(xí)率為0.001且batch_size為8 時(shí),所得到的Precision 以及F1-score 指標(biāo)最高,模型達(dá)到最佳性能.
衰減因子是深度強(qiáng)化學(xué)習(xí)中最重要的參數(shù)之一,是衡量當(dāng)前收益與未來(lái)總收益的標(biāo)準(zhǔn),通過(guò)設(shè)置不同的大小來(lái)表明當(dāng)前動(dòng)作對(duì)未來(lái)的影響.當(dāng)學(xué)習(xí)率和batch_size分別為0.001和8時(shí),進(jìn)行衰減因子的設(shè)定對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖2所示.
圖2 不同衰減因子的指標(biāo)對(duì)比Fig.2 Comparison of indicators of different attenuation factors
為了證明所提出的DRRM 算法的有效性,本文從傳統(tǒng)的序列推薦模型、基于神經(jīng)網(wǎng)絡(luò)的模型、基于強(qiáng)化學(xué)習(xí)的模型以及記憶網(wǎng)絡(luò)模型4 個(gè)方面,使用以下5種具有代表性的基線算法進(jìn)行對(duì)比實(shí)驗(yàn).
貝葉斯個(gè)性化排序算法[17](Bayesian Personalized Ranking,BPR):該算法基于貝葉斯的個(gè)性化Top-N 推薦方法,提出了一個(gè)通用的準(zhǔn)則BPR-Opt來(lái)優(yōu)化推薦排序.
個(gè)性化馬爾科夫鏈算法[18](Factorizing Personalized Markov Chains,F(xiàn)PMC):該算法將矩陣分解和馬爾科夫鏈模型相結(jié)合來(lái)學(xué)習(xí)用戶對(duì)應(yīng)的轉(zhuǎn)移矩陣,并引入BPR算法來(lái)處理數(shù)據(jù)進(jìn)行序列推薦.
動(dòng)態(tài)遞歸推薦算法[19](Dynamic Recurrent Basket Model,DREAM):該算法的主要思想為基于遞歸神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)用戶的動(dòng)態(tài)興趣表示,并捕捉用戶的全局序列特征.
深度強(qiáng)化學(xué)習(xí)推薦算法[16](Recommendation Based on Deep Reinforcement Learning,DRR):該算法基于顯式用戶-項(xiàng)目交互的深度強(qiáng)化學(xué)習(xí)推薦系統(tǒng),僅使用用戶和項(xiàng)目的交互向量作為輸入項(xiàng),并使用DDPG算法進(jìn)行預(yù)測(cè).
用戶記憶網(wǎng)絡(luò)推薦算法[10](Recommender with User Memory Networks,RUM):該模型的主要思想是在序列推薦算法中引入用戶記憶網(wǎng)絡(luò),存放用戶的歷史交互并進(jìn)行Top-N推薦.
Amazon Instant Video 和Amazon Automotive 數(shù)據(jù)集模型性能比較如表4 所示.相較于最優(yōu)基線算法,DRRM 算法的精準(zhǔn)度在Amazon Instant Video 數(shù)據(jù)集上有8.89%的提升,在Amazon Automotive 數(shù)據(jù)集上略有下降;召回率在2 個(gè)數(shù)據(jù)集上分別有8.87%和11.20%的提升;F1值在2 個(gè)數(shù)據(jù)集上分別有18.10%和7.23%的提升;HR 在2 個(gè)數(shù)據(jù)集上分別有8.89%和1.07%的提升.由此證明了本文所提算法的有效性.
表4 Amazon Instant Video和Amazon Automotive數(shù)據(jù)集模型性能比較Tab.4 Performance comparison of Amazon Instant Video and Amazon Automotive dataset models %
為了研究本文所提出的策略網(wǎng)絡(luò)以及基于優(yōu)先記憶模型在用戶記憶網(wǎng)絡(luò)和DRRM 模型中的作用,在Amazon Instant Video 數(shù)據(jù)集上進(jìn)行多組消融實(shí)驗(yàn),并使用精準(zhǔn)度以及召回率指標(biāo)進(jìn)行對(duì)比.
具體實(shí)驗(yàn)設(shè)置如下:①將用于生成用戶行為模式的策略網(wǎng)絡(luò)去除,僅使用用戶最近交互對(duì)用戶的記憶向量表示進(jìn)行計(jì)算的DRRM_s 模型;②將策略網(wǎng)絡(luò)去除,僅使用與用戶最近交互項(xiàng)目權(quán)重最高的記憶項(xiàng)目對(duì)用戶的記憶向量進(jìn)行計(jì)算的DRRM_l 模型;③將策略網(wǎng)絡(luò)去除,僅使用用戶向量計(jì)算注意力權(quán)重并生成用戶記憶向量表示的DRRM_h 模型.實(shí)驗(yàn)對(duì)比圖如圖3所示.
圖3 消融實(shí)驗(yàn)對(duì)比圖Fig.3 Comparison diagram of ablation experiment
由圖3可知,沒(méi)有加入策略網(wǎng)絡(luò)的3種單一記憶向量表示方法的精準(zhǔn)度與召回率均低于DRRM 算法,從而說(shuō)明用戶策略網(wǎng)絡(luò)對(duì)用戶當(dāng)前行為模式的預(yù)測(cè)起著重要的作用.
為了證明所提出的3 種用戶行為模式,即短期偏好、長(zhǎng)期偏好以及全局偏好的可解釋性,使用Amazon Instant Video 數(shù)據(jù)集的實(shí)例進(jìn)行實(shí)驗(yàn)驗(yàn)證.如圖4~圖6 所示,實(shí)驗(yàn)使用的記憶網(wǎng)絡(luò)內(nèi)存長(zhǎng)度為5,x軸和y軸均表示用戶的交互序列,每一個(gè)小格代表對(duì)應(yīng)兩個(gè)向量之間的相關(guān)度,顏色越深則說(shuō)明兩向量越相關(guān),對(duì)角線元素均為1.
由圖4 可知,在用戶的第6~9 次交互時(shí),策略網(wǎng)絡(luò)預(yù)測(cè)為短期偏好,最近一次交互對(duì)當(dāng)前交互的影響最大,對(duì)應(yīng)的顏色也越深.對(duì)應(yīng)于Amazon Instant Video 數(shù)據(jù)集中的實(shí)例是該用戶在看了一集某電視劇后又接連觀看了后面的3集.
由圖5可知,在用戶的第8~11次交互時(shí),策略網(wǎng)絡(luò)預(yù)測(cè)為長(zhǎng)期偏好.用戶的第6 次交互對(duì)其影響最大,對(duì)應(yīng)顏色也越深,即為用戶的長(zhǎng)期偏好.對(duì)應(yīng)于Amazon Instant Video 數(shù)據(jù)集中的實(shí)例是該用戶當(dāng)看了一部之前沒(méi)看過(guò)的喜劇類型電影(第6 次交互)后,又連續(xù)看了幾部該類型(第8~11 次交互)但互相關(guān)聯(lián)不大的電影.
圖5 長(zhǎng)期偏好圖Fig.5 Long-term preference diagram
由圖6 可知,在用戶的第6~9 次交互時(shí),策略網(wǎng)絡(luò)預(yù)測(cè)為全局偏好.其之前的幾次交互權(quán)重值相差不大且顏色近似,說(shuō)明此次交互為用戶的全局偏好.對(duì)應(yīng)于Amazon Instant Video 數(shù)據(jù)集中的實(shí)例是該用戶當(dāng)看了一部驚悚類型(第6 次交互)的電影之后,又看了喜劇、愛(ài)情、傳記類型的電影.
圖6 全局偏好圖Fig.6 Global preference diagram
本文研究了結(jié)合用戶策略記憶和深度強(qiáng)化學(xué)習(xí)的序列推薦算法,提出一個(gè)新的DRRM 模型框架.該算法通過(guò)策略網(wǎng)絡(luò)對(duì)用戶與項(xiàng)目交互的行為模式進(jìn)行更加細(xì)致的劃分,以解決用戶-項(xiàng)目交互序列并不總是順序相關(guān)甚至存在噪聲的問(wèn)題.通過(guò)對(duì)衰減因子的設(shè)定,證明深度強(qiáng)化學(xué)習(xí)對(duì)DRRM 的影響;在消融實(shí)驗(yàn)中,驗(yàn)證了用戶策略網(wǎng)絡(luò)以及注意力機(jī)制在記憶網(wǎng)絡(luò)中的重要性.通過(guò)在兩個(gè)數(shù)據(jù)集上對(duì)比先進(jìn)序列推薦模型的大量實(shí)驗(yàn),證明了本文所提算法的有效性.
本文只是對(duì)數(shù)據(jù)集中的用戶和項(xiàng)目進(jìn)行矩陣分解得到相應(yīng)的向量,此外還有許多可以利用的信息比如用戶的身份信息、社交信息等,來(lái)更新用戶、項(xiàng)目表示,以提高模型的可解釋性.