姚華勇,葉東毅,陳昭炯
(福州大學(xué) 計算機與大數(shù)據(jù)學(xué)院,福州 350108)
隨著互聯(lián)網(wǎng)快速發(fā)展,網(wǎng)上購物成為了當今主流的一種購物方式,但海量的商品種類和款式帶來了信息爆炸和信息過載的問題,用戶難以在紛繁多樣的商品中作出選擇,推薦系統(tǒng)[1]應(yīng)運而生。推薦系統(tǒng)致力于為用戶提供個性化推薦,提升網(wǎng)購效率,實現(xiàn)用戶與商家雙贏。隨著技術(shù)更迭,推薦系統(tǒng)經(jīng)歷了從靜態(tài)推薦系統(tǒng)到與用戶交互的動態(tài)對話推薦系統(tǒng)的發(fā)展過程。
靜態(tài)推薦系統(tǒng)通過收集和分析歷史數(shù)據(jù),挖掘用戶與用戶、用戶與商品間的內(nèi)在關(guān)聯(lián),實現(xiàn)個性化推薦,例如協(xié)同過濾[2]推薦方法、基于內(nèi)容的推薦方法[3]。靜態(tài)推薦系統(tǒng)主要存在兩方面局限:1)在缺少新用戶行為數(shù)據(jù)的情況下,系統(tǒng)將面臨冷啟動這一問題。例如,電影推薦系統(tǒng)剛構(gòu)建完成時,由于系統(tǒng)中沒有任何的用戶信息,系統(tǒng)難以為每位新用戶推薦他們喜歡的影片,而對于新上映的電影,系統(tǒng)也難以將其準確地推薦給需要的用戶。2)用戶選購商品時,最終的選擇會因商品展示的順序和方式、所處環(huán)境以及周圍事物發(fā)生改變[4],靜態(tài)推薦系統(tǒng)無法及時對變化的用戶需求作出響應(yīng),導(dǎo)致推薦效果不理想。為克服靜態(tài)推薦系統(tǒng)的不足,學(xué)者提出通過與用戶交互以捕獲用戶變化的對話推薦系統(tǒng)。
對話推薦系統(tǒng)[5-8]是支持用戶與系統(tǒng)進行多輪對話并推薦相關(guān)目標(商品、歌曲、酒店、餐廳等)的系統(tǒng),挖掘用戶實時偏好是其關(guān)鍵,也是難點。目前,多數(shù)對話推薦系統(tǒng)在與用戶對話過程中引入商品屬性信息(商品的顏色、款式、材質(zhì)等)以挖掘用戶實時偏好,并以限制用戶應(yīng)答自由度的方式(如使用多值應(yīng)答策略)對用戶進行商品屬性的詢問。這種詢問方式相較于將注意力更多集中在自然文本生成的對話推薦系統(tǒng)[9-11],獲取用戶信息的效率更高,能夠更全面地挖掘用戶實時偏好。例如,Christakopoulou 等[10]基于貪心思想,在每輪對話后都進行商品推薦,直到用戶接受商品,與傳統(tǒng)方法相比,該方法提升了推薦的成功率,但是頻繁的推薦降低了用戶的交互體驗感。Dhingra 等[12]基于最大熵思想,將對話輪數(shù)固定為round,在前round-1 輪選取熵最大的屬性作為詢問屬性,并在第round 輪推薦商品。該方法對商品屬性的利用進行了思考,但固定了對話輪數(shù),缺乏靈活性。在之后的研究中,Sun 等[13]針對挖掘用戶偏好這一問題,提出對話推薦模型(Coversational Recommendation Model,CRM),使用決策網(wǎng)絡(luò)生成每輪詢問的問題,與最大熵算法相比,CRM 在已獲得足夠多的信息后主動為用戶推薦,提高了靈活性。Lei 等[14]基于CRM 提出EAR(Estimation-Action-Reflection)系統(tǒng)。EAR 將詢問的商品屬性看作多分類任務(wù)的標簽,以{用戶,歷史偏好屬性}元組作為預(yù)訓(xùn)練數(shù)據(jù)訓(xùn)練決策網(wǎng)絡(luò),提高用戶歷史偏好屬性被選擇的概率,在預(yù)訓(xùn)練完成后,系統(tǒng)根據(jù)與用戶在線交互獲取的獎勵信息,基于策略梯度(policy gradient)優(yōu)化商品屬性的權(quán)重。該方法在推薦成功率以及推薦效率(平均推薦成功所需的對話輪數(shù)更少)這兩方面性能均有所提高,但存在同一商品屬性反復(fù)詢問等問題。
針對上述方法存在的不足,本文就如何利用用戶反饋信息使決策網(wǎng)絡(luò)準確挖掘用戶偏好以提升推薦準確率展開研究。一方面,為了解決何時推薦、何時詢問這一問題并縮短對話輪數(shù),引入強化學(xué)習(xí)中適用于對話推薦場景等擁有多種狀態(tài)(用戶狀態(tài)、對話狀態(tài)等)以及離散系統(tǒng)動作的DQN(Deep Q-Network)[15-16]算法,通過用戶與系統(tǒng)交互中的反饋信息(獎勵信號)學(xué)習(xí)最優(yōu)動作-價值函數(shù),幫助系統(tǒng)作出恰當?shù)倪x擇;另一方面,為了較為準確地挖掘用戶實時偏好信息,與以往工作不同,本文提出多粒度反饋模型,同時分析用戶對商品以及商品屬性的反饋信息,并根據(jù)多粒度反饋信息推理用戶購買商品的原因。實驗結(jié)果表明本文算法通過用戶的多粒度反饋信息能夠較為準確地挖掘用戶的偏好,在縮短對話輪數(shù)的同時大幅提升推薦成功率。
本文算法的主要流程如圖1 所示。首先根據(jù)用戶歷史交互信息生成用戶、商品和商品屬性的初始特征;然后計算觀測狀態(tài)向量并將其作為決策模型的輸入,若當前決策模型的決策為推薦商品,則計算用戶-商品評分生成推薦商品,推薦成功系統(tǒng)自動退出,推薦失敗則收集用戶的反饋信息;若當前決策模型的決策為詢問屬性,則計算用戶-屬性親和度生成詢問的屬性,用戶接受屬性則繼續(xù)推薦,用戶拒絕屬性則收集用戶的反饋信息;最后根據(jù)用戶的多粒度反饋信息更新用戶、商品以及商品屬性特征,為下一輪對話做準備。
圖1 本文算法流程Fig.1 Flowchart of the proposed algorithm
以往工作將何時推薦/詢問以及詢問什么這兩類問題進行糅雜,將決策模型看作以商品屬性作為輸出的多分類任務(wù),直接在決策模型中輸出詢問的屬性以表示當前詢問操作,在商品屬性數(shù)量為千級甚至萬級的情況下,模型表現(xiàn)不佳。為了更好地解決這一問題,本文在決策網(wǎng)絡(luò)中引入無模型(model-free)的DQN 算法,將決策的輸出動作簡化為推薦動作和詢問動作,以解決何時推薦、何時詢問這一問題。
在多輪對話場景下,設(shè)智能體(系統(tǒng))與環(huán)境(用戶)在每輪交互中通過環(huán)境獲得觀測狀態(tài)向量s并選擇最優(yōu)動作以獲取最大獎勵,如文獻[14],本文在決策網(wǎng)絡(luò)中設(shè)定了suser、sitems、sconver和sattribute共4 種狀態(tài)向量。suser為用戶狀態(tài)向量,根據(jù)用戶歷史交互記錄訓(xùn)練生成,用于刻畫用戶在對話中的狀態(tài);sitems為商品狀態(tài)向量,表示系統(tǒng)當前可選的候選商品數(shù);sconver為對話狀態(tài)向量,記錄系統(tǒng)與用戶交互的過程,詢問屬性成功用1 表示,詢問屬性失敗用-1 表示,推薦成功用2 表示,推薦失敗用-2 表示,超出最大對話論數(shù)用0 表示;sattribute為商品屬性選擇狀態(tài)向量,系統(tǒng)根據(jù)用戶對商品屬性的反饋信息生成屬性選擇狀態(tài)向量,使系統(tǒng)明確當前商品屬性的選擇狀況以及用戶對不同屬性的偏好程度,幫助系統(tǒng)作出恰當?shù)臎Q策。本文將以上狀態(tài)組合拼接,以找到最適合的狀態(tài)組合作為決策網(wǎng)絡(luò)的最終輸入(觀測狀態(tài)向量),在2.4 節(jié)展示單個狀態(tài)以及狀態(tài)組合的效果。
DQN 作為一種基于價值(value-based)的強化學(xué)習(xí)方法,期望智能體在與環(huán)境的互動中所累積的獎勵最大化。本文針對多輪對話推薦場景對智能體獲得的獎懲rt進行設(shè)定(表1),設(shè)未來每一步獎勵的折扣因子為γ,截至T時刻,智能體所獲得的總獎勵為:
表1 決策網(wǎng)絡(luò)中的獎勵設(shè)定Tab.1 Reward setting of decision-making network
本文在決策模型中(圖2)以用戶組合狀態(tài)向量作為輸入,動作的價值(action value)作為輸出,使用兩層的全連接神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Network,F(xiàn)CN)學(xué)習(xí)最優(yōu)動作-價值函數(shù)。決策網(wǎng)絡(luò)的輸出單元為推薦動作和詢問動作。最優(yōu)動作-價值函數(shù)Q*(s,a)表示在t時刻下,觀測到狀態(tài)s,采取動作a,在所有可能的策略π下所能獲得的最大期望回報,根據(jù)貝爾曼方程轉(zhuǎn)化為如下形式:
圖2 決策模型結(jié)構(gòu)Fig.2 Structure of decision model
其中:Q*是Q 網(wǎng)絡(luò)近似的最優(yōu)動作價值函數(shù),也是決策網(wǎng)絡(luò)的核心;θ為Q 網(wǎng)絡(luò)隱藏層中的權(quán)值和偏置;r為當前獲得的觀測狀態(tài)為s且采取動作a時所獲得的獎勵;ε表示所有狀態(tài)的集合;s′表示下一觀測狀態(tài)。
DQN 屬于無模型的強化學(xué)習(xí)方法,需要對數(shù)據(jù)進行采樣。本文使用時序差分(Temporal Difference,TD)對模型采樣,在每一時間步(每一次交互)更新模型,相較于蒙特卡洛方法(需要完整的對話過程)更適合于對話推薦場景。模型的損失函數(shù)如下:
并通過隨機梯度下降(Stochastic Gradient Descent,SGD)方法優(yōu)化模型。
為動態(tài)地挖掘用戶隱藏的偏好信息,更好地了解用戶需求,同時解決推薦什么、詢問什么這一問題,本文提出多粒度反饋模型,模型利用“商品”和“商品屬性”粒度的用戶反饋信息在每次交互后動態(tài)地更新用戶、商品和商品屬性特征,在利用商品反饋信息分辨用戶心儀商品的同時,進一步分析用戶對更細粒度的商品屬性的反饋信息,分析用戶購買商品的內(nèi)在原因。
其中:u,c,ai分別為用戶、商品和商品屬性i的特征向量表示;uTc表示用戶對商品的喜愛程度,將用戶已接受的商品屬性與目標商品作內(nèi)積運算,表示用戶偏好屬性集與商品的契合程度,兩項之和表示在考慮用戶實時偏好的情況下用戶對商品的綜合評分。
用戶-屬性親和度表示在已知用戶實時偏好屬性集Au的情況下,用戶對其他商品屬性的親近程度。例如某用戶的偏好屬性集中有“周杰倫”,那么該用戶對“音樂”這一屬性的親近程度也應(yīng)該較高。用戶-屬性親和度表示如下:
其中:uTa表示用戶對商品屬性的評分,將用戶已接受的商品屬性集與目標屬性作內(nèi)積運算,表示用戶已接受商品集合中每個商品屬性與a向量所對應(yīng)商品屬性的親近程度,兩者之和表示在考慮用戶實時偏好的情況下,對a向量所對應(yīng)屬性的評分。
本文使用貝葉斯個性化排序(Bayesian Personalized Ranking,BPR)[17]優(yōu)化反饋模型。為了有效區(qū)分用戶拒絕的商品與待推薦商品,期望用戶對拒絕商品的評分盡可能低,對待推薦商品的評分盡可能高,將商品損失Litem定義為:
同樣地,為了有效區(qū)分用戶拒絕商品屬性與待詢問商品屬性,期望用戶對于拒絕商品屬性的親和度盡可能低,對于待詢問商品屬性親和度盡可能高,屬性損失Lattribute定義為:
本文使用梯度下降法求解優(yōu)化函數(shù),最小化L以區(qū)分用戶拒絕的商品集和用戶拒絕商品屬性集。在每次交互后,用戶的特征表示根據(jù)兩種粒度的反饋信息在動態(tài)地變化,即系統(tǒng)對用戶有了更進一步的了解,因此在下一輪推薦或詢問時,能夠選擇更加符合用戶偏好的商品和商品屬性,即以迭代的方式動態(tài)學(xué)習(xí)用戶的購買偏好。
本文算法流程如下。
輸入UI表示用戶交互記錄集,以成對形式表示,例如(bob,cake);Q表示初始化動作-價值網(wǎng)絡(luò);D表示初始化經(jīng)驗回放存儲器(Replay buffer);M表示最大迭代次數(shù);N表示最大對話輪數(shù);thr∈(0,1):閾值;randomNum∈(0,1)表示隨機值;r表示獎勵;
輸出 更新后的動作-價值網(wǎng)絡(luò)Q。
特別要說明的是,決策模型(1.2 節(jié))根據(jù)收集的多粒度反饋信息獲得相應(yīng)的獎勵,同時多粒度反饋模型(1.3 節(jié))根據(jù)收集的多粒度反饋信息挖掘用戶的實時偏好,即決策模型和多粒度反饋模型在得到用戶反饋信息后根據(jù)對應(yīng)的損失函數(shù)同時進行參數(shù)的更新。
在本文算法中,決策模塊解決何時推薦、何時詢問這一問題,多粒度反饋模型根據(jù)商品評分(式(4))和用戶-屬性親和度(式(5))解決詢問什么商品屬性、推薦什么商品的問題,并根據(jù)用戶的多粒度反饋信息(接受/拒絕商品屬性、拒絕商品)對用戶特征等在線更新。當用戶接受系統(tǒng)推薦的商品時,根據(jù)用戶在對話中的反饋信息以推理用戶購買該商品的原因。例如,用戶在音樂對話推薦場景下接受了屬性“周杰倫”和“流行音樂”,拒絕了屬性“搖滾”和“鄉(xiāng)村”,最后接受了歌曲“稻香”。由整個對話過程,系統(tǒng)推測用戶并不喜歡“搖滾”和“鄉(xiāng)村”類型的音樂,而是因為喜歡“周杰倫”并且愛聽“流行音樂”才接受了歌曲“稻香”。
本文使用2 個真實世界數(shù)據(jù)集對提出的算法進行驗證。Last.fm 是關(guān)于用戶聽歌序列的數(shù)據(jù)集,數(shù)據(jù)集中包含每個用戶的ID、最受他們歡迎的藝術(shù)家的列表、音樂類型以及播放次數(shù)。Yelp 是美國著名商戶點評網(wǎng)站,其數(shù)據(jù)集包含了餐館、購物、酒店等多領(lǐng)域的數(shù)據(jù)。為了降低稀疏性,本文刪除了交互次數(shù)少于10 的記錄,經(jīng)過清洗的數(shù)據(jù)信息如表2 所示。Yelp 數(shù)據(jù)集中的屬性數(shù)目(590 個)較多,對其進行二級分類(例如父屬性“衣服”的子屬性有:“長袖”“T 恤”“襯衫”等)。系統(tǒng)在交互過程中詢問父屬性,并羅列子屬性供用戶選擇。系統(tǒng)采用多值問答策略收集用戶的商品屬性反饋。在Last.fm 數(shù)據(jù)集中屬性數(shù)為33,系統(tǒng)在交互過程中只詢問單個屬性,用戶進行二值應(yīng)答(喜歡/拒絕該屬性)。
表2 數(shù)據(jù)集介紹Tab.2 Introduction of datasets
本節(jié)介紹模型相關(guān)超參數(shù)等的設(shè)定。本文算法利用Pytorch 深度學(xué)習(xí)框架實現(xiàn),在顯存為12 GB 的NVIDIA GPU上進行模型訓(xùn)練。決策模型使用了n個輸入、m個輸出的雙隱層全連接網(wǎng)絡(luò)學(xué)習(xí)動作價值函數(shù),n為觀測狀態(tài)向量的維度,m為決策網(wǎng)絡(luò)的動作總數(shù)(詢問屬性或推薦商品),網(wǎng)絡(luò)結(jié)構(gòu)中隱藏層單元為64,折扣因子(discount factor)為0.995,使用Adam(Adaptive moment estimation)優(yōu)化器[18]優(yōu)化模型,批大小設(shè)置為128。系統(tǒng)動作獲得的獎懲如表1 所示。在多粒度反饋模型中,商品損失優(yōu)化的學(xué)習(xí)率λitem設(shè)置為0.01,屬性損失優(yōu)化的學(xué)習(xí)率λattribute設(shè)置為0.001,歸一化項的權(quán)重衰減系數(shù)統(tǒng)一設(shè)置為0.005。
本文選擇以下算法作為基線:
絕對貪心(Absolute Greedy,AG)算法[10]:該算法根據(jù)貪心原則,在每輪對話中選擇評分最高的k個商品進行推薦。
最大熵(Max Entropy,ME)算法[12]:該算法根據(jù)最大熵理論,基于一定規(guī)則進行商品推薦和屬性詢問,其中詢問部分選擇熵最大的商品屬性。
CRM[13]:該算法引入深度強化學(xué)習(xí)網(wǎng)絡(luò)幫助系統(tǒng)作出恰當?shù)臎Q策動作,進行多次詢問操作,一次推薦操作。
EAR[14]:EAR 設(shè)計“估計-動作-反射”的三階段框架以解決對話推薦問題。
SCPR(Simple Conversational Path Reasoning)[19]:該算法根據(jù)歷史交互記錄構(gòu)建圖,在決策網(wǎng)絡(luò)作出決策后,根據(jù)圖中當前用戶節(jié)點所關(guān)聯(lián)的節(jié)點,進行推薦和詢問操作。
本文分別選擇5 輪、10 輪以及15 輪作為最長對話輪數(shù)進行測試。定義指示函數(shù)I(ai)(式(9)),ai為樣本i推薦成功時的對話總輪數(shù)。算法的評價指標為:SR@k(Success Rate)表示在k輪內(nèi),系統(tǒng)在測試集上的推薦成功率;AT@k(Average Turn)表示k輪數(shù)內(nèi)推薦成功的平均輪次,具體計算方式見式(10)~(11)。
其中:successcount為測試集中推薦成功的總數(shù);count為測試集樣本總數(shù)。本文算法期望在盡可能少的輪數(shù)內(nèi)為用戶成功推薦商品,平均輪數(shù)反映了算法在推薦過程中推薦的精準程度,推薦成功所經(jīng)過的輪數(shù)越短,系統(tǒng)對用戶的刻畫越準確。
由表3 可知,本文算法在Yelp 數(shù)據(jù)集上的表現(xiàn)優(yōu)于Last.fm 數(shù)據(jù)集。隨著最大對話輪數(shù)的增加,Last.fm 數(shù)據(jù)集上本文算法的推薦成功率SR 與Yelp 數(shù)據(jù)集相比,差距不斷減小,由5 輪中的48.9 個百分點降低至15 輪的28.5 個百分點;而推薦成功的平均輪數(shù)AT 正好相反,由5 輪相差1.412提高至15 輪相差8.086。造成這種現(xiàn)象的原因有兩個:1)由于對話輪數(shù)的增加,系統(tǒng)能夠獲取更多與用戶相關(guān)的信息和偏好,提升推薦成功率,縮小了兩個數(shù)據(jù)集之間推薦成功率的差距;2)Yelp 數(shù)據(jù)集上用戶與商品的交互次數(shù)和屬性數(shù)量都遠大于Last.fm 數(shù)據(jù)集(見表2),與Last.fm 數(shù)據(jù)集相比,在每輪對話中能夠詢問多個屬性,獲得更多的用戶信息,因此推薦成功所需的平均輪數(shù)更少。
表3 不同算法的比較結(jié)果Tab.3 Comparison results of different algorithms
絕對貪心算法、最大熵算法和CRM 這三類算法并未考慮用戶的反饋信息,因此難以捕獲用戶的偏好,在兩個數(shù)據(jù)集上的表現(xiàn)較差;EAR 考慮到了商品粒度的反饋信息,但是忽略了用戶對商品屬性粒度的反饋信息;SCPR 根據(jù)用戶歷史記錄構(gòu)建靜態(tài)圖,捕獲用戶、商品和商品屬性三者的關(guān)系,在決策時根據(jù)當前用戶節(jié)點所連接的鄰居節(jié)點選擇推薦商品和詢問屬性,在對話輪數(shù)較長時相較于其他對比算法有一定提升。本文算法考慮多粒度的用戶反饋信息,相較于其他算法能夠更加清晰地把握用戶購買商品的原因,從實驗結(jié)果來看,與不考慮反饋信息或只考慮單粒度反饋信息的算法相比,本文算法有一定的優(yōu)勢。
與對話路徑推理(SCPR)算法相比,在Last.fm 數(shù)據(jù)集上,算法在SR@5、SR@10 和SR@15 指標上分別提升了142.7%、70%和86.4%,在AT@5、AT@10 和AT@15 指標上分別縮短了0.428 輪、0.824 輪和0.314 輪;在Yelp 真實數(shù)據(jù)集上,算法在SR@5 和SR@10 指標上分別提升了3.2% 和2.5%,在AT@5、AT@10 和AT@15 指標上縮短了0.201 輪、0.578 輪和0.51 輪。針對對話輪數(shù)較少時成功率有一定提升的現(xiàn)象,可能是本文算法考慮了多粒度的用戶反饋信息,不僅考慮用戶對于商品的反饋信息,而且考慮更加細致的用戶對于商品屬性的反饋信息。這使本文算法在前5 輪中,能夠捕獲到更加精確的用戶實時偏好,并且詢問的屬性更加符合用戶需求,從而在較少對話輪次下能夠超越其他算法。本文算法的推薦效果在多數(shù)情況下,相較于其他算法取得了一定提升,原因是在每一輪交互后,模型根據(jù)用戶的多粒度反饋信息對用戶特征進行在線更新,以迭代的方式不斷學(xué)習(xí)用戶的購買偏好,在區(qū)分用戶心儀商品的同時進一步分析用戶購買商品的原因;同時,文本算法分析利用用戶的多粒度反饋信息,提升決策的準確性,縮短對話輪次。
為了研究不同狀態(tài)向量對決策網(wǎng)絡(luò)的影響,將單個狀態(tài)、多個狀態(tài)的組合作為決策網(wǎng)絡(luò)的觀測狀態(tài)向量(輸入),研究不同狀態(tài)在5 輪、10 輪和15 輪作為最大對話輪數(shù)時對系統(tǒng)的影響。由表4知,在Last.fm 數(shù)據(jù)集中,sitems+sconver作為輸入向量得到的實驗效果最佳;sattribute和sconver兩種狀態(tài)單獨作為輸入向量也取得了較為優(yōu)異的實驗結(jié)果;三種與四種狀態(tài)組合的輸入向量在實驗結(jié)果上不及sattribute和sconver單獨作為輸入向量。在Yelp 數(shù)據(jù)集上狀態(tài)的組合數(shù)和推薦成功率SR 在整體上呈現(xiàn)正比關(guān)系,由表2可知在Yelp數(shù)據(jù)集上,商品屬性數(shù)為590,與Last.fm 數(shù)據(jù)集相比增加了16.9 倍,商品數(shù)量為70 311,與Last.fm 數(shù)據(jù)集相比增加了8.5 倍,在如此龐大的數(shù)據(jù)集上進行推薦,需要考慮的環(huán)境也更為復(fù)雜。實驗結(jié)果表明,將suser、sattribute、sconver和sitems一同作為輸入時,推薦準確率SR 和平均推薦輪次AT 指標均優(yōu)于其他狀態(tài)向量作為輸入的情況。單獨的suser作為決策網(wǎng)絡(luò)的輸入,在兩個數(shù)據(jù)集上模型均無法擬合,這是由于用戶與用戶之間存在著差異,僅將suser作為輸入向量而不給予決策網(wǎng)絡(luò)關(guān)于對話的其他信息,決策網(wǎng)絡(luò)無法作出恰當?shù)呐袛啵ɡ?,系統(tǒng)根據(jù)用戶特征了解到用戶A與用戶B之間存在著差異,但并不了解兩者在何處存在差異,因此需要引入其他狀態(tài)幫助系統(tǒng)進行決策)。
表4 決策網(wǎng)絡(luò)中不同狀態(tài)組合作為輸入的系統(tǒng)表現(xiàn)Tab.4 System performance of taking different state combinations as inputs in decision network
如表5 所示,商品反饋在兩個數(shù)據(jù)集上的表現(xiàn)均優(yōu)于屬性反饋,商品反饋與屬性反饋的SR、AT 指標的差距隨著最大對話輪數(shù)的增加逐漸變大。在Yelp 數(shù)據(jù)集上,由5 輪中SR 和AT 相差1.6 個百分點和0.309 輪增加至15 輪相差9.4個百分點和0.469 輪;在Last.fm 數(shù)據(jù)集上,SR 和AT 由5 輪中相差0.6 個百分點和0.126 輪增加至15 輪相差18.3 個百分點和0.662 輪。從直觀上看,商品反饋直接反映用戶的潛在偏好,而描述商品的更細粒度的商品屬性反饋通過商品與用戶建立關(guān)聯(lián),并未直接與用戶聯(lián)系,潛在地反映用戶喜好。因此隨著對話輪數(shù)的增加,商品反饋相較于屬性反饋,實驗表現(xiàn)更為優(yōu)異。多粒度反饋模型與商品反饋模型相比,在Last.fm 數(shù)據(jù)集上,模型在SR@5、SR@10 和SR@15 指標上分別提升了29.5%、7.2%和9.7%,在AT@5、AT@10 和AT@15指標上分別縮短了0.249 輪、0.27 輪和0.633 輪;在Yelp 真實數(shù)據(jù)集上,模型在SR@5、SR@10 和SR@15 指標上分別提升了28.4%、13%和3.3%,在AT@5、AT@10 和AT@15 指標上縮短了0.26 輪、0.615 輪和1.2 輪。與屬性反饋模型相比,在Last.fm 數(shù)據(jù)集上,模型在SR@5、SR@10 和SR@15 指標上分別提升了36.2%、18.5% 和55.5%,在AT@5、AT@10 和AT@15 指標上分別縮短了0.375 輪、0.783 輪和1.295 輪;在Yelp 真實數(shù)據(jù)集上,模型在SR@5、SR@10 和SR@15 指標上分別提升了32.4%、24%和14.9%,在AT@5、AT@10 和AT@15 指標上縮短了0.569 輪、1.512 輪 和1.669 輪。實驗結(jié)果表明商品反饋和屬性反饋疊加的多粒度反饋模型在提升準確率的同時縮短了對話輪數(shù)。
表5 多粒度反饋模型的有效性Tab.5 Effectiveness of multi-granularity feedback model
為了研究決策模型在系統(tǒng)中的影響,使用隨機策略代替決策模型中的Q 網(wǎng)絡(luò),即在決策時,系統(tǒng)隨機作出推薦決策和詢問決策。由表6 所示,使用隨機策略替代Q 網(wǎng)絡(luò)之后,系統(tǒng)在每輪無法作出較好的決策以捕獲用戶的購買偏好,在兩個數(shù)據(jù)集上推薦成功率大幅下降,推薦成功所需的平均對話輪數(shù)也更長,說明了本文決策模型中Q 網(wǎng)絡(luò)的有效性。
表6 消融實驗中決策模型的有效性Tab.6 Effectiveness of decision-making models in ablation study
本文探討了如何較為準確地挖掘用戶偏好以提升推薦準確率以及縮短對話輪數(shù)提升推薦效率的問題,提出利用多粒度的用戶反饋信息以更準確地學(xué)習(xí)用戶的購買偏好。引入適用于對話推薦場景的DQN 算法充分利用多粒度的反饋信息實現(xiàn)決策網(wǎng)絡(luò),提高決策速度,一定程度上解決了以往的工作挖掘用戶興趣不準確的問題,在提高推薦成功率的同時縮短了對話輪次,并通過實驗驗證了算法的有效性。
未來,本研究考慮利用用戶的評論、點贊、位置和社交等其他信息,同時嘗試更加有效的網(wǎng)絡(luò)代替決策網(wǎng)絡(luò)中的多層感知機模型,以提升推薦準確率和速度;此外,動作空間過大是強化學(xué)習(xí)研究中不可避免的一大難點。在今后的工作中,本研究將嘗試將屬性和商品作為系統(tǒng)動作選擇,并引入分層強化學(xué)習(xí)對該問題進行探索和研究。