杜子文
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065)
隨著科技的進(jìn)步與互聯(lián)網(wǎng)的蓬勃發(fā)展,推薦系統(tǒng)在人們的生活中占據(jù)了重要的地位[7-10]。其中基于強(qiáng)化學(xué)習(xí)的推薦系統(tǒng)由于具有靈活的推薦策略以及考慮了用戶的長期交互體驗(yàn)從而吸引了越來越多的研究者的關(guān)注。例如,用戶在TikTok 上瀏覽視頻,推薦系統(tǒng)根據(jù)用戶的瀏覽記錄來改變推薦視頻的策略,從而推薦出不同的視頻,同時(shí)提高了用戶的瀏覽體驗(yàn),以便盡可能地將用戶留在TikTok 中。
基于強(qiáng)化學(xué)習(xí)的推薦算法的關(guān)鍵就是要捕捉用戶的偏好[1-4]?,F(xiàn)有的基于強(qiáng)化學(xué)習(xí)的推薦算法編碼用戶的近期交互記錄來得到用戶的短期偏好并且將用戶的人口統(tǒng)計(jì)信息作為用戶的長期偏好[10-11],從而將短期偏好和長期偏好進(jìn)行融合得到用戶的動(dòng)態(tài)偏好。這種做法存在以下兩個(gè)問題:
(1)忽略了用戶的長期偏好是在隨著用戶的交互記錄的變化而變化的。
(2)沒有細(xì)粒度的建模用戶的長期偏好,即用戶每個(gè)時(shí)期的偏好對用戶當(dāng)前交互的商品產(chǎn)生的影響是不同的。
因此本文提出一種細(xì)粒度地建模用戶長期偏好并且融合用戶長短期偏好的基于強(qiáng)化學(xué)習(xí)的推薦模型,名稱為LSR。本模型使用分層注意力的方法[5]首先在底層編碼用戶對不同商品的關(guān)注度,融合每個(gè)時(shí)期加權(quán)后的商品嵌入得到用戶的每個(gè)時(shí)期的偏好,然后在高層編碼用戶對不同時(shí)期偏好的關(guān)注度,再融合加權(quán)后的每個(gè)時(shí)期的偏好進(jìn)而得到用戶的長期偏好;同時(shí)使用自注意力的方法融合用戶近期交互的商品得到用戶的短期偏好,最終將短期偏好和長期偏好融合得到用戶的動(dòng)態(tài)偏好,即用戶的狀態(tài),然后采用深度Q 網(wǎng)絡(luò)的方法[6]將推薦的商品與用戶的狀態(tài)融合送入多層感知機(jī),得到累積獎(jiǎng)勵(lì)值。我們的貢獻(xiàn)主要有以下三個(gè):
(1)我們提出了一個(gè)融合用戶長短期偏好的基于強(qiáng)化學(xué)習(xí)的推薦模型,該模型可以細(xì)粒度地建模用戶的長期偏好,從而提高模型的推薦效果。
(2)我們采用分層注意力的方法來區(qū)分用戶對不同商品的關(guān)注度以及對不同時(shí)期偏好的關(guān)注度,細(xì)粒度地建模用戶的長期偏好。
(3)我們在真實(shí)的數(shù)據(jù)集上與baseline 進(jìn)行對比,驗(yàn)證了本模型的有效性。
基于強(qiáng)化學(xué)習(xí)的推薦算法將推薦任務(wù)視為一個(gè)馬爾科夫決策過程,通過try-error 機(jī)制來獲取最優(yōu)的推薦策略。我們可以用一個(gè)五元組來描述馬爾科夫決策過程:
(1)狀態(tài)空間S:狀態(tài)st代表用戶u在t時(shí)刻的偏好。st={Il,Is},其中Il代表了用戶的長期偏好,Il中包含了用戶在當(dāng)前會(huì)話之前的所有會(huì)話中交互的商品。Is代表了用戶的短期偏好,Is中包含了用戶在當(dāng)前會(huì)話中交互的所有商品。兩個(gè)集合中的商品都是按照時(shí)間順序排列的。
(2)動(dòng)作空間A:動(dòng)作at表示推薦系統(tǒng)在t時(shí)刻向用戶u推薦的一個(gè)商品it。
(3)狀態(tài)轉(zhuǎn)移概率P:當(dāng)用戶u交互商品it后,我們就將這個(gè)商品it添加到Is集合中,得到下一個(gè)狀態(tài)st+1。
(4)當(dāng)前獎(jiǎng)勵(lì)值rt:用戶u會(huì)對商品it有不同的反饋,例如點(diǎn)擊、收藏、購買等,用戶通過不同的反饋行為來評(píng)價(jià)這次推薦系統(tǒng)推薦商品it的效果。我們根據(jù)用戶給出的反饋計(jì)算得到當(dāng)前的獎(jiǎng)勵(lì)值rt。
(5)折扣因子γ:折扣因子γ衡量當(dāng)前獎(jiǎng)勵(lì)值rt在累積獎(jiǎng)勵(lì)值Q中占據(jù)的比重。折扣因子γ的取值范圍為[0,1],當(dāng)折扣因子越接近1,表示當(dāng)前獎(jiǎng)勵(lì)值rt在累積獎(jiǎng)勵(lì)值Q中占據(jù)的比重越小;當(dāng)折扣因子越接近0,表示當(dāng)前獎(jiǎng)勵(lì)值rt在累積獎(jiǎng)勵(lì)值Q中占據(jù)的比重越大。其中Q=rt+γrt+1+γ2rt+2+…。
根據(jù)用戶u在t時(shí)刻的交互記錄st,我們的模型LSR 需要向用戶u推薦一個(gè)商品it,這個(gè)商品it可以使得推薦平臺(tái)獲得的累積獎(jiǎng)勵(lì)值Q最大。
在下文中,我們首先對模型進(jìn)行概括描述,然后介紹模型中編碼用戶短期偏好和編碼用戶長期偏好以及深度Q 網(wǎng)絡(luò)的技術(shù)細(xì)節(jié)。
圖1 展示我們的模型的整體結(jié)構(gòu)。為了得到用戶動(dòng)態(tài)的長期偏好,我們將用戶在當(dāng)前會(huì)話之前的所有會(huì)話中交互的商品進(jìn)行融合得到隨著用戶交互歷史記錄改變而發(fā)生變化的長期偏好。為了細(xì)粒度地對用戶的長期偏好建模,我們采用分層注意力的方法編碼用戶對不同商品的關(guān)注度,得到用戶對不同會(huì)話的偏好{pS1,…,pSj,…,pSn},其中pSj是用戶的第Sj會(huì)話的嵌入向量,用戶的長期交互記錄中一共有Sn個(gè)會(huì)話。然后我們編碼用戶對不同會(huì)話的關(guān)注度,從而細(xì)粒度地建模得到了用戶的長期偏好plong。同時(shí),我們?nèi)圆捎米⒁饬Φ姆椒▽τ脩舢?dāng)前會(huì)話中的商品進(jìn)行融合得到用戶的動(dòng)態(tài)的短期偏好pcur。然后將長期偏好plong和短期偏好pcur進(jìn)行融合得到用戶的動(dòng)態(tài)偏好,即用戶的狀態(tài)st。然后我們采用一般的深度Q-learning 方法[6]中的?-greedy策略來選擇推薦系統(tǒng)要執(zhí)行的動(dòng)作at,即推薦系統(tǒng)向用戶推薦的商品it,然后將用戶狀態(tài)st和商品it送入到深度Q-network 神經(jīng)網(wǎng)絡(luò)得到在狀態(tài)st下采取動(dòng)作it所獲得的累積獎(jiǎng)勵(lì)值Q(st,at;θ)。然后將商品it加入到當(dāng)前會(huì)話中得到下個(gè)時(shí)刻的狀態(tài)st+1。
圖1 模型
由于用戶對當(dāng)前會(huì)話中的商品具有不同的關(guān)注度,因此我們采用自注意力的方法[5]對當(dāng)前會(huì)話中的商品{i1,…,it-1}進(jìn)行融合得到用戶的短期偏好pcur。自注意力的方法包含三部分,分別是查詢矩陣qn×d,索引矩陣kn×d和值矩陣vn×d。自注意力的計(jì)算公式如下:
其中,d是商品的嵌入維度大小,n是當(dāng)前會(huì)話中用戶交互商品的個(gè)數(shù)。g是計(jì)算得到的注意力系數(shù),g∈Rn×d。pcur是 用 戶 的 短 期 偏 好 嵌 入 向 量,pcur∈R1×d,average(?)為求平均操作。在本文中查詢矩陣q,索引矩陣k和值矩陣v都是相同的,即都是包含了當(dāng)前會(huì)話中用戶已交互的商品的嵌入,如下:
其中,i1×d是商品的嵌入向量。在本文中,我們將每個(gè)商品作為一個(gè)單詞,每個(gè)會(huì)話作為一個(gè)句子,采用Word2Vec 的方法[12]對商品進(jìn)行預(yù)訓(xùn)練得到低維的稠密的商品嵌入向量i。
考慮到用戶對歷史會(huì)話中的商品的關(guān)注度不同,于是我們?nèi)匀徊捎米宰⒁饬Φ姆绞綄Σ煌瑫?huì)話內(nèi)的商品進(jìn)行融合得到用戶不同會(huì)話的嵌入表達(dá){pS1,…,pSj,…,pSn}。融合用戶對不同會(huì)話中商品的關(guān)注度的計(jì)算公式如下:
其中d是商品i的嵌入維度,l∈R|Sj|×d,pSj是用戶的第Sj會(huì)話的嵌入向量,pSj∈R1×d,由于用戶對不同會(huì)話的關(guān)注度也是不同的,于是我們再次采用注意力的方法建模用戶短期偏好對于不同會(huì)話的關(guān)注度。我們將短期偏好pcur作為查詢向量,將不同會(huì)話的嵌入向量作為索引向量和值向量,計(jì)算得到用戶對于不同會(huì)話的注意力得分α,然后將注意力得分α與每個(gè)會(huì)話的偏好進(jìn)行融合得到用戶的長期偏好plong∈R1×d。計(jì)算公式如下:
在得到用戶的長期偏好plong和短期偏好pshort后,我們將長期偏好和短期偏好進(jìn)行拼接操作得到用戶的動(dòng)態(tài)偏好,也就是用戶的狀態(tài)st∈R1×2d。然后將用戶的狀態(tài)st和推薦系統(tǒng)向用戶推薦的商品it一起送入深度Q-network 神經(jīng)網(wǎng)絡(luò)中,計(jì)算得到在狀態(tài)st下,執(zhí)行動(dòng)作at,所獲得的累積獎(jiǎng)勵(lì)值Q∈R。我們采用一般的DQN 的五層全連接神經(jīng)網(wǎng)絡(luò)來得到累積獎(jiǎng)勵(lì)值Q(st,at;θ),其中θ為網(wǎng)絡(luò)的參數(shù)。
在真實(shí)的推薦系統(tǒng)中,狀態(tài)空間和動(dòng)作空間是巨大的,因此對于每一個(gè)狀態(tài)-動(dòng)作對,估計(jì)其狀態(tài)值函數(shù)Q(s,a)是很困難的。另外很多狀態(tài)-動(dòng)作對并沒有出現(xiàn)過,因此很難去得到這些狀態(tài)-動(dòng)作對所對應(yīng)的狀態(tài)值函數(shù)。因此,我們需要使用近似函數(shù)來估計(jì)狀態(tài)值函數(shù),即Q( )s,a≈Q(s,a;θ)。由于狀態(tài)動(dòng)作值函數(shù)是高度非線性的,于是我們采用深度神經(jīng)網(wǎng)絡(luò)作為近似函數(shù)。在本文中,我們利用貝爾曼方程來訓(xùn)練模型。我們采用隨機(jī)梯度下降的方法最小化下面的損失函數(shù):
其中yt=Est+1[rt+γQ(st+1,at+1;θ)|st,at]。rt是根據(jù)用戶的反饋計(jì)算得到的當(dāng)前獎(jiǎng)勵(lì)值。
本模型采用基本的DQN 的訓(xùn)練過程,我們的訓(xùn)練過程可以分為兩個(gè)部分,分別是樣本存儲(chǔ)階段和采樣訓(xùn)練階段。我們首先介紹樣本存儲(chǔ)階段:在t時(shí)刻,推薦系統(tǒng)觀察用戶的交互記錄st,根據(jù)用戶u 的交互記錄,采用ε-greedy策略,以小概率隨機(jī)選擇一個(gè)商品進(jìn)行推薦或者以一個(gè)大概率推薦對應(yīng)累積獎(jiǎng)勵(lì)值最大的商品。接著用戶給出反饋,例如點(diǎn)擊、收藏、購買等行為。我們將反饋計(jì)算得到獎(jiǎng)勵(lì)值。然后我們將商品添加到用戶的交互記錄中更新用戶的狀態(tài),得到用戶的下一個(gè)時(shí)刻的狀態(tài),并將樣本(st,at,rt,st+1)存儲(chǔ)起來;采樣訓(xùn)練階段:在訓(xùn)練樣本存儲(chǔ)后,我們隨機(jī)選擇batch size 大小的訓(xùn)練樣本,然后采用隨機(jī)梯度下降的方法最小化損失函數(shù)。
我們在兩個(gè)真實(shí)的數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),并驗(yàn)證了兩個(gè)問題:
(1)我們的模型與baseline 相比,推薦效果如何。
(2)我們的模型中細(xì)粒度建模用戶長期偏好的有效性。
我們首先介紹實(shí)驗(yàn)的設(shè)置,然后我們會(huì)根據(jù)實(shí)驗(yàn)結(jié)果回答以上兩個(gè)問題,最后我們研究了模型中關(guān)鍵超參數(shù)的影響。
我們采用了MovieLens(1M)數(shù)據(jù)集和MovieLens(100k)數(shù)據(jù)集。數(shù)據(jù)集的統(tǒng)計(jì)信息如表1。
表1 實(shí)驗(yàn)數(shù)據(jù)集說明
由于我們的模型沒有解決冷啟動(dòng)的問題,因此我們過濾掉了交互商品數(shù)量少于3 個(gè)的用戶。過濾后的每個(gè)數(shù)據(jù)集我們都選取80%的數(shù)據(jù)作為訓(xùn)練集,剩余20%的數(shù)據(jù)作為測試集。我們將每個(gè)商品作為一個(gè)單詞,每個(gè)會(huì)話作為一個(gè)句子,采用Word2Vec 的方法預(yù)訓(xùn)練得到商品的低維稠密的嵌入向量,其中我們按天數(shù)來劃分會(huì)話,每一天都是一個(gè)會(huì)話。折扣因子γ=0.99 。我們將用戶對商品的評(píng)分作為當(dāng)前獎(jiǎng)勵(lì)值rt。
(1)Baselines
①GRU4Rec[13]:該模型使用循環(huán)神經(jīng)網(wǎng)絡(luò)的方法將用戶交互的商品進(jìn)行融合,然后給用戶推薦商品。
②DQN[6]:該模型融合了用戶的短期偏好,并且使用深度神經(jīng)網(wǎng)絡(luò)來近似獲得累積獎(jiǎng)勵(lì)值。
③DEERS[10]:該模型使用GRU 分別對用戶的正反饋信息和負(fù)反饋信息融合得到用戶的短期偏好,利用DQN 的訓(xùn)練方式來進(jìn)行訓(xùn)練。
④LSR-short:該模型是我們LSR 模型的變體。該模型沒有考慮用戶的長期偏好,只采用注意力的方式融合了用戶當(dāng)前會(huì)話交互過的商品。
⑤LSR-long:該模型是我們LSR 模型的變體。該模型沒有細(xì)粒度地建模用戶對不同會(huì)話時(shí)期的偏好,而是將用戶的每個(gè)會(huì)話的偏好以求平均的方式得到用戶的長期偏好。在建模短期偏好時(shí),方法和LSR-short保持一致。
(2)評(píng)價(jià)指標(biāo)
本文采用了兩個(gè)評(píng)價(jià)指標(biāo)來衡量模型的推薦效果,分別是Recall和MRR。Recall評(píng)價(jià)的是所有測試樣例中真實(shí)樣例在top-k 列表中出現(xiàn)次數(shù)的情況的比例。MRR評(píng)價(jià)的是所有測試樣例中真實(shí)樣例在top-k列表中被正確排序的情況的比例。這兩個(gè)評(píng)價(jià)指標(biāo)的計(jì)算公式如下:
其中Rank(ig,n')是商品ig在第n' 個(gè)測試會(huì)話中的排名。
其中Ntest和#hit分別是測試會(huì)話的數(shù)量和測試商品出現(xiàn)在top-k 推薦列表的個(gè)數(shù)。值得注意的是,所有的評(píng)價(jià)指標(biāo)的取值范圍都是[0,1],值越大表示推薦效果越好,值越小表示推薦效果越差。
實(shí)驗(yàn)結(jié)果展示在表2 和表3 中。我們從表中有以下的發(fā)現(xiàn):
(1)我們的模型LSR 在兩個(gè)數(shù)據(jù)集上的表現(xiàn)是最好的。LSR 模型的效果比GRU4Rec 模型的效果好,表明強(qiáng)化學(xué)習(xí)優(yōu)秀的序列決策能力以及融合用戶長期短期偏好可以提高模型的推薦效果。LSR 模型比DQN模型和DEERS 模型的效果好,表明了融合用戶長短期偏好可以提高模型的推薦效果。
(2)DQN 模型的效果比GRU4Rec 模型的效果好,說明了強(qiáng)化學(xué)習(xí)的優(yōu)秀的序列決策能力可以提高模型的推薦效果。
(3)DEERS 模型的效果比DQN 模型的效果好,表明了融合用戶的負(fù)反饋信息得到用戶的短期偏好可以提高模型的推薦效果。
(4)LSR-short 模型效果比DEERS 效果差,因?yàn)長SR-short 模型沒有考慮用戶的長期偏好以及沒有融合用戶的負(fù)反饋信息,因此效果差。但是LSR-short 模型比DQN 模型效果好,因?yàn)長SR-short 模型采用注意力的方法,編碼了用戶對不同商品的關(guān)注度,但是DQN模型是將不同商品平等看待,沒有區(qū)分不同商品對當(dāng)前用戶的貢獻(xiàn)不同。
(5)LSR-long 模型效果比DEERS 效果差,因?yàn)長SR-long 模型沒有細(xì)粒度的建模用戶的長期偏好。從LSR-long 模型的效果比LSR-short 模型的效果好可以看出,建模用戶的長期偏好是可以提高模型的推薦效果的。
(6)LSR 模型的效果比LSR-short 模型的效果好,說明融合用戶長短期偏好可以提高模型推薦效果。LSR 模型比LSR-long 模型效果好,說明細(xì)粒度地建模用戶的長短期偏好可以提高模型的推薦效果。這也驗(yàn)證了我們實(shí)驗(yàn)的兩個(gè)目的。
表2 所有模型在MovieLens(1M)數(shù)據(jù)集上的表現(xiàn)
表3 所有模型在MovieLens(100k)數(shù)據(jù)集上的表現(xiàn)
我們在這個(gè)章節(jié)驗(yàn)證了超參數(shù)商品維度d對模型效果的影響。結(jié)果如圖2 所示。
從圖2 可以看出商品的維度d可以影響到模型的效果。隨著d的增大,模型的效果先提高再下降。當(dāng)d比較小的時(shí)候,網(wǎng)絡(luò)的參數(shù)少,模型會(huì)出現(xiàn)欠擬合的問題,從而導(dǎo)致最后的效果不好;當(dāng)d過大時(shí),網(wǎng)絡(luò)的參數(shù)會(huì)增多,模型會(huì)出現(xiàn)過擬合的問題,因此模型的效果會(huì)降低。從圖2 可以看出,對于MovieLens(1M)數(shù)據(jù)集來說,d=100 時(shí),模型的效果表現(xiàn)最好;對于Movie Lens(100k)數(shù)據(jù)集來說,當(dāng)d=128 時(shí),模型的效果表現(xiàn)最好。
圖2 超參數(shù)分析——d 是商品的嵌入維度
本文提出了一個(gè)融合用戶長短期偏好的基于強(qiáng)化學(xué)習(xí)的推薦模型,該模型細(xì)粒度地建模了用戶的長期偏好,從而提高了模型的推薦效果。本模型編碼了用戶對于不同商品的關(guān)注度以及不同會(huì)話的偏好關(guān)注度。在實(shí)際應(yīng)用中,商品還有很多屬性信息,因此如何編碼用戶對商品不同的屬性的關(guān)注度是本文的未來的關(guān)注點(diǎn)。