張宇奇,黃曉雯,?;w
1. 北京交通大學(xué)計算機(jī)與信息技術(shù)學(xué)院,北京 100044;
2. 交通數(shù)據(jù)分析與挖掘北京市重點(diǎn)實(shí)驗室,北京 100044
隨著網(wǎng)絡(luò)的快速發(fā)展,信息過載問題越來越嚴(yán)重,人們難以及時有效地從海量數(shù)據(jù)中找到感興趣的物品和信息。為了緩解信息過載問題,推薦系統(tǒng)應(yīng)運(yùn)而生。傳統(tǒng)的推薦系統(tǒng)往往采用單步推薦的方式,導(dǎo)致推薦系統(tǒng)無法在推薦過程中動態(tài)學(xué)習(xí)用戶的偏好。為了解決該問題,交互式推薦系統(tǒng)[1]被提出,并在近幾年吸引了越來越多研究人員的關(guān)注。交互式推薦系統(tǒng)采用多步推薦的方式,在一次會話內(nèi)進(jìn)行多次推薦,并依據(jù)用戶的反饋動態(tài)調(diào)整自身的推薦策略,從而為用戶提供更準(zhǔn)確的推薦結(jié)果。
由于深度強(qiáng)化學(xué)習(xí)在決策時關(guān)注動作的長期獎勵,在動態(tài)環(huán)境中體現(xiàn)了較強(qiáng)的決策能力,因此,研究人員開始使用深度強(qiáng)化學(xué)習(xí)模型建模交互式推薦系統(tǒng)。Mahmood T等人[2]構(gòu)建的基于modelb a s e d強(qiáng)化學(xué)習(xí)的交互式推薦系統(tǒng)和近些年提出的基于深度Q網(wǎng)絡(luò)(deep Q network,DQN)的交互式推薦系統(tǒng)[3]都取得了不錯的效果?;谏疃葟?qiáng)化學(xué)習(xí)的交互推薦系統(tǒng)能在推薦過程中靈活地調(diào)整推薦策略,提升推薦系統(tǒng)的準(zhǔn)確率,并使用戶長期獲得良好的推薦體驗。
盡管將深度強(qiáng)化學(xué)習(xí)技術(shù)應(yīng)用到交互式推薦系統(tǒng)中取得了不錯的進(jìn)展,但基于深度強(qiáng)化學(xué)習(xí)的交互式推薦系統(tǒng)在實(shí)際應(yīng)用中仍然面臨巨大的挑戰(zhàn)。深度強(qiáng)化學(xué)習(xí)的引入要求交互式推薦系統(tǒng)在與在線用戶交互的過程中進(jìn)行學(xué)習(xí),從而避免離線學(xué)習(xí)的估計偏差問題。然而,在實(shí)際場景中,用戶的反饋是非常稀疏的,而深度強(qiáng)化模型需要從零開始學(xué)習(xí)和試錯的特性使得基于深度強(qiáng)化學(xué)習(xí)的交互式推薦系統(tǒng)需要大量的數(shù)據(jù)訓(xùn)練才可學(xué)習(xí)到最優(yōu)策略,這一特性會影響用戶的體驗和推薦系統(tǒng)的收益。為了解決上述問題,研究人員在利用強(qiáng)化學(xué)習(xí)建模交互式推薦系統(tǒng)的同時,嘗試引入知識圖譜[4-5]。知識圖譜將具有相同屬性的物品節(jié)點(diǎn)通過邊進(jìn)行連接,使得用戶對一個物品的反饋可以通過知識圖譜中的邊間接傳播到其他物品。如圖1所示,用戶喜歡《盜夢空間》,其原因可能是他喜歡導(dǎo)演諾蘭,那么他可能也會喜歡諾蘭的其他電影,而在知識圖譜中諾蘭的其他電影與《盜夢空間》之間由于“諾蘭”這一節(jié)點(diǎn)的存在而相互連接。因此,通過知識圖譜,用戶喜歡《盜夢空間》這條記錄可以揭露出用戶對其他相關(guān)電影(如《致命魔術(shù)》)的喜好。這使得對一個物品的反饋可以傳播到其他在圖譜中與該物品相連的物品,通過挖掘圖譜中符合用戶喜好的物品,知識圖譜可以有效地緩解反饋稀疏的問題。
圖1 知識圖譜解決反饋稀疏問題示例
然而,知識圖譜雖然可以緩解強(qiáng)化推薦系統(tǒng)的反饋稀疏問題,但是仍無法解決在推薦初期需要從零學(xué)習(xí)導(dǎo)致的用戶體驗差的問題。對此,一個簡單的解決思路是直接利用離線的歷史數(shù)據(jù)訓(xùn)練推薦系統(tǒng),再將其進(jìn)行在線訓(xùn)練。這一思路存在的問題是離線訓(xùn)練的推薦效果與線上推薦效果存在偏差,導(dǎo)致最終的推薦效果無法達(dá)到全局最優(yōu)。但離線收集的交互數(shù)據(jù)仍然具有一定的價值,依然可以用于指導(dǎo)交互式推薦系統(tǒng)進(jìn)行訓(xùn)練。此外,強(qiáng)化推薦還面臨動作空間大的問題,這嚴(yán)重影響推薦系統(tǒng)的效率和準(zhǔn)確率。利用離線數(shù)據(jù)可為交互式推薦系統(tǒng)提供合適的候選集,減少動作空間,進(jìn)而有效緩解上述問題。綜上所述,離線數(shù)據(jù)可以為決策初始化一個合適的方向并制定合適的候選集,從而保證強(qiáng)化推薦系統(tǒng)的啟動效果,最終獲得一個優(yōu)秀的策略。
基于以上思路,本文提出一種知識增強(qiáng)策略引導(dǎo)的交互式強(qiáng)化推薦系統(tǒng),嘗試將包含用戶交互行為的知識圖譜和深度強(qiáng)化學(xué)習(xí)算法結(jié)合,以解決上述問題。具體來說,本文基于深度策略網(wǎng)絡(luò)提出了一種改進(jìn)的知識增強(qiáng)策略引導(dǎo)的交互式強(qiáng)化推薦模型KGP-DQN(knowledge graphbased policy-guided DQN)。KGP-DQN包含3個模塊:一是行為知識圖譜表示模塊,該模塊構(gòu)建行為知識圖譜,利用圖卷積網(wǎng)絡(luò)(graph convolutional network,GCN)和循環(huán)神經(jīng)網(wǎng)絡(luò)對用戶狀態(tài)進(jìn)行表示;二是策略初始化模塊,該模塊利用圖卷積網(wǎng)絡(luò)擬合用戶的歷史行為,為強(qiáng)化推薦生成初始化價值;三是候選集篩選模塊,該模塊利用物品的圖表示進(jìn)行動態(tài)聚類,生成候選集,縮小動作空間。
首先,KGP-DQN為了緩解反饋的稀疏性,將用戶反饋和知識圖譜結(jié)合,構(gòu)建行為知識圖譜,使用戶的偏好在知識圖譜中的相關(guān)項之間傳遞,使一個交互記錄可以影響多個與之相連的物品,從而有效解決反饋稀疏性問題。其次,KGP-DQN通過行為知識圖譜獲得用戶和物品的表示,并利用相關(guān)表示離線訓(xùn)練策略初始化網(wǎng)絡(luò),之后將策略初始化網(wǎng)絡(luò)與強(qiáng)化推薦網(wǎng)絡(luò)結(jié)合,使得推薦系統(tǒng)在在線訓(xùn)練時不需要從零學(xué)習(xí),從而使整個強(qiáng)化推薦系統(tǒng)在在線訓(xùn)練的初期也能有良好的表現(xiàn)。最后,本文構(gòu)建了候選集篩選模塊來處理動作空間大的問題,根據(jù)初始化網(wǎng)絡(luò)得到的物品表示對物品進(jìn)行動態(tài)聚類,并在每一次推薦時依據(jù)初始化網(wǎng)絡(luò)的結(jié)果對候選集進(jìn)行篩選,使強(qiáng)化推薦Q網(wǎng)絡(luò)可以更好地對結(jié)構(gòu)表示相近的物品進(jìn)行辨別,從而更好地提升推薦性能。
本文的貢獻(xiàn)總結(jié)如下。
● 構(gòu)建行為知識圖譜,考慮圖信息傳播后物品之間的相關(guān)項,結(jié)合圖卷積網(wǎng)絡(luò)和門控循環(huán)單元(gated recurrent unit,GRU)學(xué)習(xí)物品與用戶的先驗表示,解決反饋稀疏的問題。
● 構(gòu)建策略初始化模塊對推薦系統(tǒng)的強(qiáng)化訓(xùn)練進(jìn)行初始化,降低從零學(xué)習(xí)在前期對用戶體驗的影響。
● 構(gòu)建候選集篩選模塊,根據(jù)物品的圖表示進(jìn)行動態(tài)聚類,生成推薦的候選集,有效地解決強(qiáng)化推薦中動作空間大的問題。
● 在3個真實(shí)數(shù)據(jù)集上設(shè)計了多組實(shí)驗,實(shí)驗結(jié)果表明,KGP-D QN可以在進(jìn)行較少的交互輪次后達(dá)到很好的推薦性能,并且在訓(xùn)練初期也能有不錯的表現(xiàn)。
協(xié)同過濾算法[6]利用用戶之間、物品之間的相似性來推薦物品;因子分解機(jī)算法[7]考慮通過特征之間的高階組合來學(xué)習(xí)推薦策略,這些方法雖然取得了一定的成功,但是它們忽視了用戶歷史物品之間的時序關(guān)系?;贕RU的推薦方法[8]對用戶的歷史交互物品的序列關(guān)系進(jìn)行建模并取得了不錯的成就,深度興趣網(wǎng)絡(luò)(deep interest network,DIN)[9]在序列建模的基礎(chǔ)上加入了注意力機(jī)制,從而進(jìn)一步提升了推薦效果。然而,上述方法都是單步式的推薦,它們的優(yōu)化目標(biāo)均為最大化及時反饋,沒有考慮用戶的長期體驗,為了進(jìn)一步優(yōu)化用戶的長期體驗,研究人員將深度強(qiáng)化學(xué)習(xí)引入推薦系統(tǒng)。
Mahmood T等人[2]利用策略迭代的方法尋找最優(yōu)策略。近幾年,人們越來越多地使用基于模型的強(qiáng)化學(xué)習(xí)算法解決推薦問題。基于模型的強(qiáng)化推薦算法可以分為3類:基于策略梯度的推薦算法、基于DQN的推薦算法和基于深度確定性策略梯度(deep deterministic policy gradient,DDPG)的推薦算法?;诓呗蕴荻鹊耐扑]算法直接對整個物品空間學(xué)習(xí)一個分布,并根據(jù)這個分布采用動作,從而完成推薦[10]?;贒QN的推薦算法為每一個物品計算一個Q值,之后選擇Q值最大的物品作為最后的推薦物品。近幾年,越來越多的研究人員喜歡基于DQN的強(qiáng)化推薦算法。Zheng G J等人[11]將DQN算法和DBGD(dueling bandit gradient descent)結(jié)合,用來解決新聞推薦的問題。Zou L X等人[12]在建模用戶行為時將用戶行為分為意圖行為(點(diǎn)擊、購買)和長期行為(停留時長、重新訪問),再利用DQN算法解決推薦問題。Zhao X Y等人[3]將推薦中的負(fù)反饋也考慮進(jìn)用戶狀態(tài)標(biāo)志中,之后再利用DQN解決推薦問題?;贒DPG的推薦算法[13]將物品用一個連續(xù)向量表示。其中,動作家直接輸出物品的向量表示,評論家則對這個物品進(jìn)行打分。然而上述推薦方法忽視了用戶之間、物品之間的相關(guān)性,并且推薦系統(tǒng)的反饋稀疏問題導(dǎo)致推薦策略效果不理想。為了充分考慮用戶之間、物品之間的關(guān)聯(lián),在一定程度上解決反饋稀疏的問題,研究人員將知識圖譜引入強(qiáng)化推薦系統(tǒng)。
基于知識圖譜的強(qiáng)化推薦算法可以分為兩類:基于知識圖譜推理的算法和基于知識圖譜表示的算法?;谥R圖譜推理的強(qiáng)化推薦算法通過在知識圖譜上根據(jù)用戶的歷史行為進(jìn)行圖上推理,為用戶推薦最可能喜歡的物品。Xian Y K等人[14]提出策略引導(dǎo)路徑推理(policyguided path reasoning,PGPR)方法,利用知識圖譜進(jìn)行明確的推理,從而進(jìn)行推薦?;谥R圖譜表示的強(qiáng)化推薦算法通過圖卷積網(wǎng)絡(luò)等技術(shù),對知識圖譜上的物品節(jié)點(diǎn)進(jìn)行表示,并利用這個表示進(jìn)行推薦。Zhou S J 等人[4]提出KGQN(knowledge graph enhanced Q-learning framework for interactive recommendation)方法,利用圖卷積網(wǎng)絡(luò)學(xué)習(xí)知識圖譜中的物品表示,進(jìn)而對用戶進(jìn)行表示,然后利用這些表示進(jìn)行推薦。Wang P F 等人[5]提出KERL(knowledgeguided reinforcement learning)框架,該框架在深度強(qiáng)化推薦中利用知識圖譜增強(qiáng)狀態(tài)表示,從而達(dá)到更好的推薦效果。
雖然現(xiàn)有的基于知識圖譜的強(qiáng)化推薦算法在一定程度上解決了強(qiáng)化推薦中的反饋稀疏問題,但是,它們?nèi)悦媾R動作空間大、從零學(xué)習(xí)影響用戶體驗等問題。為了解決這些問題,Dulac-Arnold G等人[13]提 出利用k近鄰(k-n e a r e s t neighbor,KNN)算法解決動作空間大的問題。Zhou S J 等人[4]提出在利用圖網(wǎng)絡(luò)解決反饋稀疏問題的同時,采用二跳節(jié)點(diǎn)來約束候選集,并在推薦初期采取基于流行度的策略進(jìn)行推薦。但是,目前的強(qiáng)化推薦算法沒有有效地利用用戶的歷史交互信息,仍無法在推薦前期為用戶提供符合用戶個性化偏好的策略,會嚴(yán)重影響用戶體驗。本文通過將知識圖譜與用戶歷史行為結(jié)合,構(gòu)建行為知識圖譜表示模塊、策略初始化模塊、候選集篩選模塊,從而解決現(xiàn)有強(qiáng)化推薦系統(tǒng)反饋稀疏、從零學(xué)習(xí)影響用戶體驗以及動作空間大的問題。
在交互式推薦系統(tǒng)中,推薦系統(tǒng)根據(jù)用戶的歷史行為為用戶推薦可能喜歡的物品,用戶接收推薦后做出反饋(購買、點(diǎn)擊等行為),這個交互過程會一直持續(xù)到用戶離開推薦系統(tǒng)。
傳統(tǒng)的推薦算法在處理交互式推薦時只關(guān)注優(yōu)化及時獎勵,這導(dǎo)致在交互式推薦場景下不利于用戶的長期體驗。本文將交互式推薦系統(tǒng)建模為馬爾可夫決策過程,利用與深度強(qiáng)化學(xué)習(xí)相關(guān)的算法解決上述問題。如圖2所示,在強(qiáng)化交互式推薦場景下,對應(yīng)的各個組件如下。
圖2 強(qiáng)化推薦框架
● 環(huán)境:所有用戶和物品的信息。
● 智能體:推薦系統(tǒng)。
● 狀態(tài):訪問推薦系統(tǒng)的用戶的特征以及該用戶訪問過的物品的特征。
● 獎勵:用戶的反饋,如點(diǎn)擊次數(shù)、瀏覽時間、回歸時間等。
● 動作:推薦物品。
● 目標(biāo):最大化累積獎勵。
本文將按照上述設(shè)定建模交互式推薦系統(tǒng),并提出KGP-DQN模型來解決強(qiáng)化交互式推薦中存在的反饋稀疏、從零學(xué)習(xí)影響用戶體驗、動作空間大的問題。
下面將詳細(xì)介紹本文提出的KGPDQN模型。
KGP-DQN模型整體流程如圖3所示,當(dāng)用戶訪問推薦系統(tǒng)時,將用戶的離線數(shù)據(jù)用圖譜的形式進(jìn)行表示,并將該行為圖譜與知識圖譜結(jié)合生成行為知識圖譜,利用圖卷積網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)生成用戶的序列表示和物品的節(jié)點(diǎn)表示。根據(jù)物品的節(jié)點(diǎn)表示對整個物品空間進(jìn)行動態(tài)聚類,從而生成候選集。根據(jù)用戶的序列表示對候選集中的物品進(jìn)行聚類,從而生成初始策略。針對候選集中的物品,根據(jù)初始策略生成最終的推薦方案。
圖3 KGP-DQN模型整體流程
KGP-DQN模型示意圖如圖4所示。KGP-DQN模型包含3個關(guān)鍵模塊:一是行為知識圖譜表示模塊,該模塊利用行為知識圖譜對用戶的狀態(tài)進(jìn)行表示,以解決反饋稀疏問題;二是策略初始化模塊,該模塊生成初始化策略用于引導(dǎo)強(qiáng)化網(wǎng)絡(luò)訓(xùn)練,以解決從零學(xué)習(xí)影響用戶體驗的問題;三是候選集篩選模塊,該模塊生成物品數(shù)量較小的候選集,以解決動作空間大的問題。
圖4 KGP-DQN模型示意圖
為了便于闡述和理解KGP-DQN模型,本文使用一些符號來進(jìn)行簡化,相關(guān)符號及其說明見表1。
表1 符號及其描述
為了解決強(qiáng)化推薦系統(tǒng)中的反饋稀疏問題,KGP-DQN構(gòu)建了行為知識圖譜表示模塊。首先,該模塊將用戶歷史行為與知識圖譜G=(E,R)結(jié)合,將用戶構(gòu)建成節(jié)點(diǎn)并加入圖譜中,之后將用戶交互歷史中的物品節(jié)點(diǎn)與用戶節(jié)點(diǎn)相連,從而得到邊類型為用戶-物品-屬性的、包含行為信息的知識圖譜。
本文將該包含行為信息的知識圖譜命名為行為知識圖譜G′ = (E′,R′),并利用該圖譜學(xué)習(xí)用戶和物品的表示。在交互式推薦系統(tǒng)中,用戶的交互行為代表了用戶的偏好,因此該模塊利用用戶的歷史交互行為得到用戶的表示。對于每一個候選物品,先獲取其向量表示it∈Rd,其中d表示向量表示的維度。之后,利用圖卷積網(wǎng)絡(luò)對圖譜中的節(jié)點(diǎn)信息進(jìn)行傳播,從而獲得更好的物品表示。
行為知識圖譜表示模塊利用多層圖卷積網(wǎng)絡(luò)學(xué)習(xí)圖中的節(jié)點(diǎn)表示,每一層的計算步驟如下。
對于每一個節(jié)點(diǎn),行為知識圖譜表示模塊計算其鄰居表示:
其中,N(h)表示節(jié)點(diǎn)的鄰居。之后,行為知識圖譜表示模塊利用鄰居表示對節(jié)點(diǎn)本身的表示進(jìn)行更新:
其中,Wk和Bk是可學(xué)習(xí)的網(wǎng)絡(luò)參數(shù),σ是激活函數(shù),為節(jié)點(diǎn)h第k次傳播后的表示。這里選擇ReLU函數(shù),計算式為ReLU=max(0,x)。通過多層的圖卷積網(wǎng)絡(luò)計算后,行為知識圖譜表示模塊得到知識圖譜上物品的節(jié)點(diǎn)表示it和用戶的節(jié)點(diǎn)表示tu。用戶歷史信息代表了用戶偏好且歷史信息是一個序列化的信息,因此行為知識圖譜表示模塊通過循環(huán)神經(jīng)網(wǎng)絡(luò)利用用戶的近期歷史信息對用戶進(jìn)行表示。行為知識圖譜表示模塊引入GRU神經(jīng)網(wǎng)絡(luò)來建模用戶的表示。每個GRU的細(xì)胞單元更新如下:其中,zt和tr分別表示更新門和重置門的輸出向量,W和U表示網(wǎng)絡(luò)的權(quán)重矩陣,b表示網(wǎng)絡(luò)的偏置矩陣,σ表示激活函數(shù),?表示點(diǎn)乘操作。隱藏層表示th的更新采用線性結(jié)合方式,將前一次計算得到的th和本次更新的新隱藏層候選ht1-結(jié)合。隱藏層表示th被看作t時刻用戶的向量表示,這種表示是一種帶有序列特征的表示。之后,隱藏層表示向量th會被輸入強(qiáng)化Q網(wǎng)絡(luò)中。為了簡化表達(dá)式,該部分的所有網(wǎng)絡(luò)參數(shù)被表示成sθ,包括卷積神經(jīng)網(wǎng)絡(luò)部分和GRU部分。
在圖4中,行為知識圖譜表示模塊將用戶歷史交互物品的節(jié)點(diǎn)表示ti輸入GRU,得到GRU的隱藏層表示th并將其作為用戶的序列表示;其中,關(guān)于這部分的網(wǎng)絡(luò)參數(shù)sθ如何進(jìn)行訓(xùn)練的問題,會在第3.4節(jié)進(jìn)行介紹。通過行為知識圖譜表示模塊,KGPDQN得到的物品表示是包含知識圖譜鄰居信息的,從而有效緩解了反饋稀疏的問題。
為了解決從零開始訓(xùn)練導(dǎo)致的前期對用戶體驗帶來嚴(yán)重影響的問題,本文構(gòu)建了策略初始化模塊。該模塊利用用戶的歷史交互數(shù)據(jù),生成初始化策略,為推薦系統(tǒng)提供先驗策略,從而指導(dǎo)推薦系統(tǒng)進(jìn)行訓(xùn)練,并保證推薦系統(tǒng)在推薦初期也會有不錯的效果。策略初始化模塊利用行為知識圖譜,通過對用戶的歷史行為進(jìn)行學(xué)習(xí),得到可以代表用戶對候選物品的喜歡程度的物品初始價值,并依據(jù)這個初始價值對強(qiáng)化推薦提供指導(dǎo)。策略初始化模塊利用圖卷積網(wǎng)絡(luò)對行為知識圖譜上的用戶和物品節(jié)點(diǎn)進(jìn)行表示,圖卷積網(wǎng)絡(luò)具有節(jié)點(diǎn)傳播的特點(diǎn),因此該表示可以體現(xiàn)出用戶對物品及其相關(guān)屬性的偏好,并且該表示包含了一定的結(jié)構(gòu)信息。得到該表示后,策略初始化模塊搭建全連接網(wǎng)絡(luò),根據(jù)用戶的歷史行為學(xué)習(xí)用戶對物品的興趣:
其中,W表示全連接網(wǎng)絡(luò)的權(quán)重矩陣,b表示神經(jīng)網(wǎng)絡(luò)的偏置矩陣,L表示全連接層得到的隱層表示,concat(i,u)表示將用戶表示和物品表示以拼接的方式結(jié)合,V表示最終得到的物品初始價值。為了便于進(jìn)一步說明,將興趣表示為Vu,i=P(u,i)。
在圖4中,策略初始化模塊將行為知識圖譜表示模塊構(gòu)建的行為知識圖譜作為輸入,通過圖卷積網(wǎng)絡(luò)學(xué)習(xí)用戶的表示,不同于行為知識圖譜表示模塊得到的用戶序列表示,該表示被認(rèn)為包含更多結(jié)構(gòu)特征。之后,該模塊根據(jù)用戶的節(jié)點(diǎn)表示i和物品的節(jié)點(diǎn)u得到用戶對某一物品的興趣價值Vu,i,并根據(jù)該興趣價值為推薦系統(tǒng)初始化策略。策略初始化模塊與強(qiáng)化推薦系統(tǒng)的結(jié)合方式以及策略初始化模塊進(jìn)一步的訓(xùn)練方式將在第3.4節(jié)介紹。通過策略初始化模塊,KGP-DQN得到了候選物品的初始化價值,該價值在推薦前期作為推薦的指導(dǎo),從而緩解強(qiáng)化推薦從零學(xué)習(xí)導(dǎo)致的用戶體驗降低問題。
為了解決動作空間大的問題,本文構(gòu)建了候選集篩選模塊。該模塊選擇使用在策略初始化模塊得到的物品的節(jié)點(diǎn)表示i進(jìn)行動態(tài)聚類,即在整個推薦流程中每推薦τ次,對整個物品空間進(jìn)行一次重新聚類,本次聚類的初始化類中心為τ-1次聚類的聚類中心。采用動態(tài)聚類的原因是在推薦過程中,物品在圖譜中的表示會隨著用戶交互行為的增加而變化,定時的重新聚類可以保證候選集篩選模塊適應(yīng)這些變化,更好地根據(jù)物品本身的特征以及用戶對物品的行為來生成最優(yōu)的候選集。
該模塊選擇k-means聚類作為候選集篩選模塊中的聚類方式,具體流程如算法1所示。完成聚類后,將類中心的表示以及用戶的節(jié)點(diǎn)表示輸入策略初始化模塊中,得到用戶對每一個簇的興趣價值,選擇興趣價值最高的簇作為用戶的基本候選集。同時,從該簇之外的其他簇中隨機(jī)采樣一定數(shù)量的物品,并將其加入基本候選集中得到最終的候選集。本文認(rèn)為通過候選集篩選模塊得到的候選集中包含的物品是用戶最感興趣的一批物品,同時,由于這批物品的表示比較相似,模型在該候選集中學(xué)習(xí)的時候,也可以學(xué)習(xí)到物品之間的一些更具有代表性的特征,從而進(jìn)一步提升推薦的效果。本文將候選集篩選模塊表示為I=I′(G′,u)。
算法1:候選集篩選
輸入:物品的表示e
輸出:候選集It
隨機(jī)化n個聚類中心
重復(fù)以下步驟直到收斂:
對于每一個物品,計算它屬于的類
對于每一個類,計算類中心
在圖4中,候選集篩選模塊利用策略初始化模塊生成的物品表示進(jìn)行動態(tài)聚類,將類中心的表示與用戶序列表示輸入策略初始化模塊中,得到初始興趣價值并以此選擇候選集。最后,每推薦τ次,候選集篩選模塊就會對整個物品空間進(jìn)行重新聚類,以得到新的候選集。通過候選集篩選模塊,KGP-DQN將整個候選集空間分割成n個子候選集,其中每個子候選集中的物品數(shù)量遠(yuǎn)小于整個候選集中的物品數(shù)量,從而有效解決了強(qiáng)化推薦動作空間大的問題。
獲得用戶表示、候選集以及用戶的初始興趣后,本文構(gòu)建了強(qiáng)化推薦模塊。該模塊設(shè)計了一個Q網(wǎng)絡(luò)來結(jié)合這些信息以及訓(xùn)練前文提到的模塊,從而更好地提升推薦系統(tǒng)的性能。該模塊使用double-DQN[15]訓(xùn)練整個推薦系統(tǒng)。
該模塊通過試錯的方式訓(xùn)練模型的參數(shù)。在交互式推薦系統(tǒng)的過程中,推薦系統(tǒng)在接收到用戶的表示后,將策略初始化輸出的初始價值與Q網(wǎng)絡(luò)輸出的Q值結(jié)合,得到最終的價值Q′:
其中,α為策略初始化模塊和強(qiáng)化推薦模塊的結(jié)合參數(shù)。然后通過ε貪心算法推薦物品(以概率ε隨機(jī)推薦,以(1-ε)的概率按照最大的Q′價值推薦候選集中的物品)。完成推薦后,推薦系統(tǒng)獲得用戶的反饋,并將該反饋?zhàn)鳛楠剟?。之后,這次推薦會以經(jīng)驗的方式存儲在記憶庫中。每次更新時,Q網(wǎng)絡(luò)會從記憶庫中采樣一部分經(jīng)驗,使用均方誤差損失函數(shù)對Q網(wǎng)絡(luò)進(jìn)行更新,同時也會對策略初始化表示進(jìn)行更新。
其中,θq、θp分別表示Q網(wǎng)絡(luò)和策略初始化網(wǎng)絡(luò)的參數(shù),yt是根據(jù)最優(yōu)Q值計算出的目標(biāo)值。
其中,γ表示強(qiáng)化學(xué)習(xí)中獎勵的折扣因子。
為了解決傳統(tǒng)DQN過估計的問題,該模塊在使用評價Q網(wǎng)絡(luò)的同時使用了一個目標(biāo)Q網(wǎng)絡(luò)。評價Q網(wǎng)絡(luò)進(jìn)行正常的反向傳播并在每個訓(xùn)練步更新自己的參數(shù);目標(biāo)Q網(wǎng)絡(luò)是評價Q網(wǎng)絡(luò)的一個復(fù)制,每隔一定的訓(xùn)練步長會根據(jù)評價Q網(wǎng)絡(luò)的參數(shù)進(jìn)行更新。
在圖4中,強(qiáng)化Q網(wǎng)絡(luò)推薦模塊將行為知識圖譜表示模塊得到的用戶序列表示和物品表示作為輸入,利用策略初始化模塊對候選集篩選模塊得到的候選集中的每個物品計算初始價值,再將初始價值與Q網(wǎng)絡(luò)的輸出結(jié)合,從而得到最終的價值。
KGP-DQN的整體訓(xùn)練流程如算法2所示。本文提出的KGP-DQN主要關(guān)注如何利用知識提高交互式推薦系統(tǒng)的采樣效率,并在推薦前期為用戶提供一個較好的策略。KGP-DQN模型中的強(qiáng)化學(xué)習(xí)算法可以被其他強(qiáng)化學(xué)習(xí)算法代替。
算法2:訓(xùn)練KGP-DQN
輸入:D、α、τ、ε
輸出:θq、θp、θs
重復(fù)以下步驟直到收斂:
對于一個用戶u,推薦T次
根據(jù)用戶交互歷史ot,得到用戶
序列表示st
● 根據(jù)行為圖譜,得到ut、it
● 得到候選集I=I′(G′,u)
得到初始價值Vu,i=P(ut,it;θp)
得到Q價值Q=Q(s t,it;θq)
得到最終價值Q′ =αQ+(1-α)V
根據(jù)Q′按照ε貪心策略進(jìn)行推薦
● 獲得用戶的反饋rt
如果rt>0,將i加入用戶交互歷史
將(it,ot,rt,ot+1,It)存入D中
從D中隨機(jī)采樣一部分?jǐn)?shù)據(jù)
根 據(jù)ot、ot+1得到用戶表示st、st+1
● 得到y(tǒng)t
通過SGD方法更新θq、θp、θs
● 更新θq′
本文使用3個真實(shí)數(shù)據(jù)集來測試KGPDQN模型是否有效。
● MovieLens-1m數(shù)據(jù)集:包含986 495條數(shù)據(jù),這些數(shù)據(jù)的評分從1到5。本文根據(jù)數(shù)據(jù)中的電影從TMDB網(wǎng)站進(jìn)行爬蟲,爬取電影的類型、導(dǎo)演、職員等15種屬性,從而得到電影的知識圖譜。對于MovieLens-1m數(shù)據(jù)集,本文將評分高于3.5分的數(shù)據(jù)作為正樣本,標(biāo)簽為1;將評分低于3.5分的數(shù)據(jù)作為負(fù)樣本,標(biāo)簽為0。
● Last.fm數(shù)據(jù)集:包含76 693條數(shù)據(jù),這些數(shù)據(jù)沒有評分信息。本文利用數(shù)據(jù)集中的物品屬性信息構(gòu)建知識圖譜,共有33個屬性。對于Last.fm數(shù)據(jù)集,本文將所有存在交互行為的樣本作為正樣本,標(biāo)簽為1;將隨機(jī)采樣無交互行為的樣本作為負(fù)樣本,標(biāo)簽為0。
● Yelp數(shù)據(jù)集:包含1 368 606條交互數(shù)據(jù),這些數(shù)據(jù)沒有評分信息。本文利用數(shù)據(jù)集中的物品屬性信息構(gòu)建知識圖譜,共有590個屬性。對于Yelp數(shù)據(jù)集,本文將所有存在交互行為的樣本作為正樣本,標(biāo)簽為1;將隨機(jī)采樣無交互行為的樣本作為負(fù)樣本,標(biāo)簽為0。
數(shù)據(jù)集統(tǒng)計信息見表2。
表2 數(shù)據(jù)集統(tǒng)計
由于交互式推薦問題的交互性,筆者希望推薦系統(tǒng)可以進(jìn)行在線學(xué)習(xí),因此構(gòu)建了一個模擬器用來模擬在線環(huán)境。
本文利用矩陣分解[16]算法訓(xùn)練用戶和物品的表示。對于MovieLens-1m數(shù)據(jù)集,本文將評分歸一化到[-1,1]區(qū)間內(nèi),然后將這個評分作為推薦系統(tǒng)的獎勵;對于Last.fm和Yelp數(shù)據(jù)集,本文將正樣本評分置為1、負(fù)樣本評分置為-1進(jìn)行訓(xùn)練,然后將這個評分作為推薦系統(tǒng)的獎勵。最后,環(huán)境模擬器的輸出為[-1,1]區(qū)間的一個評分。
對于每一個數(shù)據(jù)集,本文將每個用戶的行為取前80%的數(shù)據(jù)作為訓(xùn)練集,后20%作為測試集。
由于交互式推薦的目標(biāo)是最大化獎勵,本文直接將獎勵作為一個評價指標(biāo)。獎勵可以表示用戶對推薦結(jié)果的滿意度。
其中,T為一次會話內(nèi)的推薦次數(shù),為強(qiáng)化學(xué)習(xí)中獎勵的折扣因子,為當(dāng)前狀態(tài)下推薦it的即時獎勵,#users為用戶的數(shù)量。
同時,本文也將準(zhǔn)確率和召回率作為評價指標(biāo)。
準(zhǔn)確率為:
召回率為:
其中,#preferences表示用戶交互數(shù)據(jù)中所有環(huán)境反饋為正向的物品總數(shù)。T取值35,后文中的準(zhǔn)確率為Precision@35,召回率為Recall@35。
對于推薦物品,如果用戶的評分大于一定閾值,則θhit=1;反之,θhit=0。對于MovieLens-1m數(shù)據(jù)集、Last.fm數(shù)據(jù)集和Yelp數(shù)據(jù)集,本文將這個閾值設(shè)置為0。
本文將KGP-DQN模型與4種代表性算法進(jìn)行對比,其中協(xié)同過濾是非常有代表性的傳統(tǒng)推薦算法,GRU4REC(gated recurrent unit for recommendations)是經(jīng)典的序列推薦算法,DQNR(deep Q-net recommendations)是非常有代表性的基于強(qiáng)化學(xué)習(xí)的推薦算法,KGQN是非常有代表性的將知識圖譜和強(qiáng)化學(xué)習(xí)結(jié)合的推薦算法。
● 協(xié)同過濾[6]算法是一種經(jīng)典的基于用戶相似度的推薦算法。在交互式推薦場景中,本文利用用戶交互過的物品進(jìn)行用戶相似度對比,選擇相似度最高用戶的評分最高物品作為被推薦的物品。
● GRU4REC[8]是一種經(jīng)典的基于循環(huán)神經(jīng)網(wǎng)絡(luò)的推薦算法,常被用于解決序列推薦問題。該算法利用用戶的交互歷史,考慮歷史中的順序關(guān)系,通過GRU神經(jīng)網(wǎng)絡(luò)預(yù)測用戶可能喜歡的下一個物品。
● DQNR[11]是一種基于DQN的推薦算法。它利用神經(jīng)網(wǎng)絡(luò)構(gòu)建Q函數(shù),在給定狀態(tài)下通過該函數(shù)預(yù)測每個物品的價值。最后選擇價值最高的物品作為推薦結(jié)果。
● KGQN[4]是一種將知識圖譜與DQN推薦結(jié)合的算法。該算法利用知識圖譜解決交互式推薦系統(tǒng)中的反饋稀疏問題。它利用知識圖譜學(xué)習(xí)物品的表示,通過GRU進(jìn)一步學(xué)習(xí)用戶序列特征,最后設(shè)計Q值函數(shù),從而推薦Q值最高的物品。
● KGP-DQN模型是本文提出的知識增強(qiáng)策略引導(dǎo)的交互式強(qiáng)化推薦模型。
在KGP-DQN中,本文將GCN的層數(shù)設(shè)置為2,所有模型輸出的表示維度都設(shè)置為64。將GCN之后的全連接網(wǎng)絡(luò)設(shè)置為兩層,采用ReLU激活函數(shù)。將初始化策略與強(qiáng)化策略結(jié)合的參數(shù)α設(shè)置為0.5,動態(tài)聚類的類別數(shù)n設(shè)為15,本文將在第4.9節(jié)對這兩個參數(shù)的選擇進(jìn)行具體的說明。其他參數(shù)采取隨機(jī)初始化的方法。所有參數(shù)在訓(xùn)練時都采用Adam優(yōu)化器。本文使用PyTorch實(shí)現(xiàn)模型,并在一塊NVIDIA GTX 1080Ti GPU上訓(xùn)練網(wǎng)絡(luò)。
所有模型的性能對比結(jié)果見表3。本文得出了如下結(jié)論。
表3 所有模型的性能對比
● 對比方法具有明顯提升。這證明了利用歷史交互數(shù)據(jù)為強(qiáng)化推薦進(jìn)行學(xué)習(xí)指導(dǎo)的有效性。
● DQNR、KGQN、KGP-DQN等強(qiáng)化方法相對其他方法在獎勵上有明顯提高,表明強(qiáng)化推薦方法更能提升用戶的體驗。KGP-DQN獲得的獎勵最高,表明本文方法對提升用戶體驗具有明顯的效果。
● 與協(xié)同過濾算法和GRU4REC算法相比,KGP-DQN模型在獎勵上有顯著提高,這說明采用深度強(qiáng)化學(xué)習(xí)建模交互式推薦系統(tǒng)對提升用戶體驗具有顯著效果。
● 與DQNR算法相比,KGP-DQN模型在獎勵和準(zhǔn)確率上都獲得了提升,這說明將知識圖譜引入強(qiáng)化推薦系統(tǒng)能有效提升推薦系統(tǒng)的性能。
● 與KGQN算法相比,KGP-DQN模型在獎勵和準(zhǔn)確率上都獲得了提升,這說明在引入知識圖譜的基礎(chǔ)上充分利用用戶的歷史數(shù)據(jù)可以顯著提升推薦系統(tǒng)的性能。
● 對比MovieLens-1m和Last.fm數(shù)據(jù)集,在MovieLens-1m數(shù)據(jù)集下,KGPD Q N模型的性能提升較高,這是因為MovieLens-1m數(shù)據(jù)集的交互矩陣更稠密,使得策略初始化模塊可以更好地根據(jù)歷史信息學(xué)習(xí)用戶的偏好。
本文的一個出發(fā)點(diǎn)是解決強(qiáng)化推薦從零開始學(xué)習(xí)帶來的用戶體驗降低問題,并提升強(qiáng)化推薦的采樣效率。KGP-DQN模型、DQNR、KGQN算法在MovieLens-1m數(shù)據(jù)集、Last.fm數(shù)據(jù)集和Yelp數(shù)據(jù)集上的獎勵隨迭代次數(shù)的變化曲線如圖5所示,其中橫軸表示訓(xùn)練的步數(shù),縱軸表示當(dāng)前訓(xùn)練步下模型得到的獎勵值。從圖5可以看出:知識圖譜的引入有助于提升模型訓(xùn)練的速度。由于加入了策略初始化模塊,KGP-DQN模型在強(qiáng)化訓(xùn)練初期獎勵值較高,且會在較短的訓(xùn)練步長下達(dá)到最優(yōu)。
圖5 模型效率對比
本節(jié)分析了模型的不同模塊對模型總體性能的影響。在KGP-DQN模型中,本文提出了3個重要的模塊:行為知識圖譜表示模塊、策略初始化模塊、候選集篩選模塊。消融實(shí)驗結(jié)果見表4,其中,KGPDQN-kg表示去掉行為知識圖譜表示模塊,KGP-DQN-pg表示去掉行為策略初始化模塊,KGP-DQN-cs表示去掉候選集篩選模塊。(-%)表示各方法相對KGPDQN的性能下降率。
由表4可以得出以下結(jié)論。
表4 消融實(shí)驗結(jié)果
● 行為知識圖譜表示模塊對整體結(jié)果影響較大。這是因為該模塊引入了行為知識圖譜并利用GCN和GRU神經(jīng)網(wǎng)絡(luò)對用戶表示進(jìn)行建模。GCN考慮了物品之間的結(jié)構(gòu)關(guān)系,將用戶對物品的反饋傳播到相鄰的物品上,有效解決了反饋稀疏問題;GCN則充分考慮了物品之間的序列關(guān)系,二者結(jié)合得到了更好的狀態(tài)表示。
● 策略初始化模塊對整體性能也有重要的影響。這是因為該模塊一方面為推薦系統(tǒng)的學(xué)習(xí)提供先驗方向,解決了強(qiáng)化推薦從零學(xué)習(xí)的問題,并指導(dǎo)推薦系統(tǒng)更好地學(xué)習(xí);另一方面利用了用戶的結(jié)構(gòu)信息,使得推薦系統(tǒng)可以更全面地對用戶特征進(jìn)行建模。
● 候選集篩選模塊對推薦性能的提升也有一定的幫助。通過縮小候選集解決動作空間大的問題,一方面使候選物品中的噪聲有所減少,從而幫助模型更好地學(xué)習(xí);另一方面,對相似樣本進(jìn)行區(qū)分,更有利于模型學(xué)習(xí)。
本節(jié)分析KGP-DQN模型的不同超參數(shù)對模型的影響,包括將初始化策略與強(qiáng)化策略結(jié)合的參數(shù)α對推薦準(zhǔn)確率的影響,以及候選集篩選模塊中的動態(tài)聚類類別數(shù)n對推薦準(zhǔn)確率的影響。最終的結(jié)果如圖6和圖7所示。
從圖6和圖7可以看出,對于結(jié)合參數(shù)α,當(dāng)α=0.5時,效果最好;對于動態(tài)聚類類別數(shù)n,當(dāng)n=15時,效果最好。因此,本文選擇α=0.5和n=15作為KGP-DQN模型的超參數(shù),并對這兩個超參數(shù)的影響進(jìn)行進(jìn)一步分析。
圖6 結(jié)合參數(shù)的影響
圖7 聚類類別數(shù)的影響
● 對動態(tài)聚類類別數(shù)的影響:類別少時,候選集中噪聲較多,不利于模型進(jìn)行學(xué)習(xí);類別多時,候選集中無法包含用戶的喜好物品的概率更大。
● 對結(jié)合參數(shù)的影響:當(dāng)參數(shù)更偏向強(qiáng)化輸出Q值時,策略初始化模塊無法為強(qiáng)化推薦網(wǎng)絡(luò)提供較強(qiáng)的初始化策略,導(dǎo)致性能受到影響;當(dāng)參數(shù)更偏向策略初始化模塊輸出的價值時,由于缺少強(qiáng)化推薦網(wǎng)絡(luò)可以建模長期獎勵的優(yōu)點(diǎn),模型的性能會受到影響。
本節(jié)分析KGP-DQN模型每推薦τ次更新聚類結(jié)果對模型的影響。下面分別從定量和定性的角度進(jìn)行分析。
本實(shí)驗利用DBI(Davies-Bouldin)指數(shù)[17]評價動態(tài)聚類效果。由表5可以看出,隨著推薦過程的進(jìn)行,候選集篩選模塊動態(tài)聚類的效果會逐步提升。
表5 動態(tài)聚類的DBI指數(shù)
聚類后的類別分布可視化情況如圖8所示。從圖8可以看出,隨著訓(xùn)練的進(jìn)行,原來分布邊界不明確的類別的分布邊界會變得更明確,如MovieLens-1m中的紅色類、Last.fm的橙色類以及Yelp中的紫色類。
圖8 聚類結(jié)果變化
本文提出一種知識增強(qiáng)策略引導(dǎo)的交互式強(qiáng)化推薦模型KGP-DQN。該模型構(gòu)建行為圖譜表示模塊,該模塊構(gòu)建行為知識圖譜,利用GCN和GRU對用戶表示建模,從而解決稀疏反饋的問題;構(gòu)建策略初始化模塊,該模塊利用行為知識圖譜上的節(jié)點(diǎn)表示,從用戶行為歷史中學(xué)習(xí)初始化價值,從而解決從零學(xué)習(xí)影響用戶體驗的問題;構(gòu)建候選集篩選模塊,該模塊利用物品的節(jié)點(diǎn)表示進(jìn)行動態(tài)聚類以生成物品數(shù)量較少的候選集,從而解決動作空間大的問題。實(shí)驗結(jié)果驗證了本文提出的模型的有效性,即KGPDQN在提升訓(xùn)練速度的同時也保證了推薦準(zhǔn)確率。相比現(xiàn)有工作在推薦前期采取基于流行度的推薦方法,本文提出的KGP-DQN模型在推薦前期仍可以個性化地為用戶進(jìn)行推薦,從而提升用戶的體驗。在后續(xù)的工作中,本文考慮利用遷移強(qiáng)化學(xué)習(xí)中的策略重使用等方法結(jié)合策略初始化模塊和Q網(wǎng)絡(luò)推薦模塊,并嘗試使用更先進(jìn)的聚類方法構(gòu)建候選集篩選模塊。