楊暢 姚越 方霖楓 周仁杰







關鍵詞:推薦系統;對話式推薦;強化學習;圖表示學習
0 引言(Introduction)
隨著互聯網技術的迅猛發展,人們逐漸從信息匱乏的時代走入了信息過載的時代,因此如何應對信息過載問題成為一個迫切需要解決的問題。推薦系統的出現有效地緩解了這一問題。然而,傳統的推薦方法在處理新用戶冷啟動和充分利用用戶反饋問題時仍面臨挑戰。相較之下,對話式推薦系統(Conversational Recommender System, CRS)通過與用戶直接交互收集“顯式反饋”,從而實現更精確的推薦。鑒于對話式推薦系統在電商和社交媒體中具有巨大的應用潛力,其已成為業界和學術界關注的焦點。本文提出一種新方法,可以解決對話推薦中的準確狀態建模和高效策略制定問題。該方法整合了用戶負反饋圖以優化狀態表示,并采用動態獎勵函數更有效地指導策略學習。此外,通過在智能體中加入歷史對話狀態的序列模型編碼,進一步增強了模型的推薦性能。
1 相關工作(Related works)
1.1 傳統推薦系統
傳統的推薦系統通常依賴用戶與項目的交互矩陣,并用機器學習方法挖掘其中的隱含關系。例如,協同過濾通過矩陣分解等手段將用戶與項目之間的交互映射到低維空間,進而提取特征、找尋相似用戶,并推薦用戶喜好的項目[1]。SALAKHUTDINOV等[2]引入深度學習架構,使深度學習在推薦系統領域得到廣泛應用。HIDASI等[3]用循環神經網絡[4](Recurrent NeuralNetwork, RNN)對用戶的交互序列進行建模,預測下一個點擊的項目。HE等[5]則使用生成對抗網絡,分別在生成和判別模型中進行數據捕獲和預測。WANG等[6]融合了協同過濾和圖表示學習,開發了一個神經圖協同過濾框架,通過傳播用戶偏好的項目特征提升推薦結果的準確性。
然而,以上方法各有一定的局限性,尤其體現在解決新用戶冷啟動和充分利用用戶在線反饋問題方面。相較之下,對話推薦系統通過與用戶直接對話并詢問問題以了解用戶需求[7]。這種對話式推薦在多個環境下已受到研究者的廣泛關注。
1.2 基于屬性的對話式推薦系統
近年來,學者們在基于屬性的對話式推薦技術方面有多項探索。最初,CRM(Conversational Recommender Model)[8]提出了單輪對話推薦方法,不論推薦結果是否被接受,對話都將在一輪推薦后結束。該方法用基于長短期記憶網絡[9](LongShort-term Memory,LSTM)的編碼模塊編碼用戶輸入的屬性-值對,并用二路因子分解機[10]預測用戶對每個項目的評分。后續研究將CRM擴展到多輪交互,根據先前反饋優化后續推薦,實現了更精確的推薦。
LEI等[11]提出了一個多輪對話推薦框架,包含評估(Estimation)、動作(Action)和反應(Reflection)三個模塊。評估模塊采用因子分解機和貝葉斯個性化排序算法,動作模塊基于強化學習選取最優策略,反應模塊則根據用戶反饋更新損失函數[12]。CPR(Conversational Path Reasoning)[13]使用圖模型捕捉候選屬性和項目間的關系,通過多輪對話和用戶互動,不斷修剪候選產品和屬性,從而提高推薦性能。DENG等[14]綜合先前研究,將推薦、詢問和決策任務統一在一個強化學習框架中,用基于圖的馬爾可夫決策過程(Markov DecisionProcess, MDP)和圖卷積神經網絡[15](Graph ConvolutionNetwork, GCN)、Transformer[16]學習對話狀態,再用深度Q網絡[17](Deep Q-Network, DQN)進行價值學習。
2 模型構建(Model building)
2.1 融合負反饋的對話狀態建模
本文通過將用戶、商品、商品信息等嵌入基于圖的MDP環境中對用戶當前的對話狀態進行建模。在用戶與智能體交互的過程中,不斷裁剪環境中的結點,每一步交互都將得到表示用戶正反饋和負反饋信息的動態圖。圖卷積神經網絡是一種聚合節點周圍信息的有效模型,能捕獲到節點的高階連通性[18]。因此,本文模型在每一步交互結束后,使用圖卷積神經網絡分別對用戶的正反饋圖和反饋圖進行圖卷積,提取圖中結點的結構特征,得到每個結點的表示向量。通過注意力機制對上一步中的正、負反饋結點的表示向量進行增強,以此將網絡的關注點聚焦于關鍵的結點上。通過一個全連接層將經過聚合的結點表示編碼成最終的對話狀態表示向量。融合負反饋的圖表示學習如圖1所示。
2.1.1 基于圖的MDP環境
本文中將基于圖的MDP環境定義為由狀態空間S、動作空間A、狀態轉移函數T:S×A→S 和獎勵函數R:S×A→?構成的四元組(S,A,T,R)。其中,狀態包含了給定用戶u 的情況下,時刻t 的對話歷史H (t) u = P(t)acc,P(t)rej,V(t)rej 和該時刻下與用戶相關的正反饋圖、負反饋圖G(t) u = G+(t) u ,G-(t) u 。例如,在基于圖的MDP環境下(圖2),用戶u0 的目標項目是i0 且在時刻t已經接受了屬性p1 和p3,拒絕了項目i1 和屬性p4,則對話歷史可以表示為H (t) u0= {p1,p3}, p4 , i1 。
動作空間A= V(t)cand,P(t)cand ,分別代表候選項目和候選屬性。其中,候選項目定義為V(t)cand=VP(t)acc\V(t)rej,VP(t)acc代表所有與P(t)acc 中屬性直接相連的項目。候選屬性定義為P(t)cand=PV(t)cand\P(t)acc ∪P(t)rej ,即候選項目包含的所有屬性減去已經交互過的屬性。
用戶反饋圖表示為由結點和鄰接矩陣構成的二元組G=(N ,A)。對于正反饋圖G+(t) u ,結點集合N +(t)={u}∪P(t)acc∪P(t)cand∪V(t)cand,鄰接矩陣則定義為公式(1),用戶和候選項目之間的邊權重定義如公式(2)所示。
狀態轉移函數T:S×A→S 根據t 時刻的狀態st 和智能體在動作空間A 中選擇的動作at 給出下一個狀態st+1。動作空間中的動作有兩類,分別為詢問屬性p 和推薦項目i。如果用戶在t時刻接受了詢問的屬性pt,則P(t+1)acc =P(t)acc∪pt,否則P(t+1)rej =P(t)rej∪pt;如果用戶拒絕了推薦的項目it,則V(t+1)rej =V(t)rej∪it,否則推薦成功,本輪推薦結束。
2.1.2 動態獎勵函數
獎勵函數R:S×A→?給出在當前狀態st 下執行動作at的獎勵rt。本文采用根據環境變化而變化的動態獎勵函數,首先按照表1根據當前對話的輪次縮放基礎獎勵,然后按照公式(4)根據候選項目空間中的項目數量的縮減比例計算最終的獎勵。
2.1.3 融合負反饋的圖表示學習
由于本文將對話式推薦建模為基于圖的MDP環境下的統一策略學習問題,因此需要將對話和圖的結構信息編碼為狀態向量表示。本文采用Trans-E[19]進行預訓練,確保異構圖中的節點表示具備結構化特征。然后使用GCN對環境中的正、負反饋圖進行圖卷積以捕捉表示當前對話狀態的圖中的高階結構信息。對于第l 層圖卷積,計算方法如公式(5)至公式(7)所示,其中Ni 是第i 個節點ni 的鄰接節點,Wl 和Bl 是訓練的參數。
經過GCN編碼后,可以得到結合了高階結構信息的結點表示,接著,將圖上所有結點的表示向量視作序列,利用Transformer Encoder來進一步增強結點的表示,從而讓網絡更加聚焦在重要的結點上,如公式(8)至公式(9)所示;最后,對編碼的結果做平均聚合,如公式(10)所示。
2.2 基于狀態序列建模的對話策略
對話策略的學習是使用時間差分(Temporal Difference,TD)算法[20]優化DQN進行的,隨著環境給出當前狀態和動作空間,基于DQN的智能體給出動作空間中各個動作的價值,并選出最大價值的動作執行,基于狀態序列建模的對話策略如圖3 所示。
2.2.1 狀態序列建模
記本次對話的狀態向量序列為St= st-k,st-k+1,…,st ,其中每一個狀態向量都攜帶了特定輪次對話的細節信息。本文利用RNN將狀態向量序列進行編碼,以提取每一次對話輪次間的狀態變化特征。這樣的設計旨在捕獲對話動態變化的本質特征,以改善推薦準確性和效率。本文采用門控循環單元[21](Gated Recurrent Unit, GRU)的原因是它對長序列數據有優異的記憶和學習能力,尤其在處理具有復雜時序依賴的任務時的表現更加優異。門控循環單元結構簡單、計算高效且能解決長時序依賴問題,這些優點使它成為此類任務的理想選擇。在實現細節上,狀態向量通過GRU層進行處理,每一個狀態都被更新并與前一個狀態相關聯。公式(12)表示狀態向量序列通過GRU進行編碼后的輸出,記為^st。
2.2.2 價值學習
最優動作價值函數Q* (st,at)為采取最優策略π* 能得到的最大折扣期望匯報,根據Bellman方程,最優動作價值函數定義為公式(13),其中γ 為折扣因子。
本文采用Dueling Q-Network[22]的設定,將價值網絡實現為狀態價值網絡和動作優勢網絡兩個獨立的神經網絡,如公式(14)所示。其中:fθV (st)是狀態價值網絡,θV 是網絡的參數,fθA (st,at)是動作優勢網絡,θA 是網絡的參數,θS 是圖表示學習的參數。
在每輪對話中,智能體都能從基于圖的MDP 環境中得到當前時刻t的狀態的表示向量st=es 和動作空間At,接著通過狀態序列建模將本次對話中的每輪對話狀態向量進行編碼,并得到包含狀態變化特征的狀態表示向量^st。智能體利用動作價值函數Q(st,at)估計動作空間A 中的各個動作的價值,并使用ε-greedy策略從動作空間中選出要執行的動作at。環境則根據智能體選擇的動作給出動作at 的獎勵rt,然后轉移到下一個狀態st+1 并更新動作空間At+1。
記六元組(st,at,rt,st+1,At+1,St-1)為一條經驗,為了提高價值網絡的學習效率,將每次對話得到的經驗存放在重放記憶(Replay Memory)D 中,每次采樣一個小批量用于更新網絡參數。如公式(15)至公式(16)所示,本文通過最小化均方差損失的方式優化價值網絡,其中yt 是TD 誤差。
3 實驗(Experiment)
3.1 數據集
實驗數據集采用LastFM數據集和LastFM*數據集。其中,LastFM數據集是由Last.fm發布的音樂推薦數據集,包含來自1 801位用戶的聽歌記錄。為了便于建模,LEI等[11]將LastFM的原始屬性人工手動合并成33個粗粒度屬性組。同時,LEI等[13]認為手動合并屬性在實際應用中并非最佳實踐,因此他們在LastFM 數據集的基礎上使用原始的屬性重構出LastFM*數據集。LastFM數據集和LastFM*數據集的數據量見表2。
3.2 實現細節
本文將最大對話輪次數T 設為15輪,將推薦列表的大小K 設為10,并將每個數據集分割為7∶1.5∶1.5用于訓練、驗證和測試。本文使用OpenKE[23]中實現的Trans-E算法,在基于訓練集構建的圖上進行節點表示的預訓練。對于實驗中所有的基線方法,本文都使用用戶模擬器[11]進行了10 000輪對話的在線訓練。超參數的設置如下:嵌入大小和圖表示學習的輸出層大小分別設置為64和100;GCN層數Lg ,Transformer層數LT 和GRU的層數Ls 分別設置為2、1和2;選中的候選屬性Kp 和項目Kv 的數量都設置為10;在DQN的訓練過程中,經驗回放緩沖區的大小為50 000,從經驗回放緩沖區中每次采樣的小批量的大小為128;學習率和L2范數正則化系數分別設置為10-4 和10-6,使用Adam 優化器;折扣因子γ 和更新頻率τ 分別設為0.999和0.01。
3.3 實驗結果與分析
3.3.1 對比實驗
為了驗證本文所提出模型的有效性,比較了本文提出的模型與四個基線模型在15輪推薦準確率(SR@15)和平均推薦成功輪數(AT)指標上的性能表現,實驗結果如表3所示。本文分別實現了三個不同版本的推薦模型,如表3中的(a)將用戶負反饋信息分別建模為正反饋圖和負反饋圖;(b)在(a)的基礎上實現了動態獎勵函數;(c)又在(b)的基礎上在智能體中使用GRU對歷史對話狀態序列進行編碼。表3中的結果表明,本文提出的模型(c)在兩個數據集上均取得了最佳結果,相較于次優模型分別在推薦成功率指標上提升了21%和13.7%,在平均推薦輪次數指標上降低了1.56輪和2.35輪。
3.3.2 不同輪次內的推薦成功率
圖4和圖5展示了在LastFM 和LastFM*上,本文模型在每個對話輪次t下的推薦成功率(SR@t)。雖然動態獎勵函數在推薦初期可能降低成功率,但是它能提升模型的長期推薦效果。這是因為,在初期,詢問屬性有助于了解用戶偏好,進而縮小推薦范圍。短期內這可能會降低成功率,但從長遠看,能更精確地滿足用戶需求,提高推薦成功率。模型在不同數據集上使用了不同推薦策略。例如,在屬性豐富的LastFM*上,模型更傾向于早期推薦,而在屬性較少的LastFM 數據集上則較為保守,前幾輪幾乎沒有推薦。引入GRU對歷史對話進行編碼進一步提高了推薦效果,說明歷史對話對于了解用戶需求和偏好很重要,GRU 能有效捕獲這些信息,為模型提供準確的上、下文。
4 結論(Conclusion
本文通過深入探究對話式推薦系統中用戶負反饋及對話歷史信息的有效性,成功構建了一個全新的對話式推薦模型。負反饋圖不僅為系統提供了更全面的用戶偏好畫像,動態獎勵函數也成功地緩解了獎勵稀疏的問題,促使系統能更好地從用戶反饋中學習。此外,序列模型的引入進一步優化了推薦效果,證明了對話歷史信息在揭示用戶深層次需求和偏好中的關鍵作用。在實驗中,該模型被應用于LastFM 和LastFM*兩個數據集,與最優的基線模型相比推薦成功率分別提升21%和13.7%,平均推薦輪次數也分別降低了1.56輪和2.35輪。盡管本文提出的模型考慮了用戶負反饋和對話歷史信息,但如何有效地處理用戶歷史反饋的漂移和變化,并在不斷學習的過程中保持推薦系統的穩定性,是一個值得未來深入研究的方向。