0
本文作者: 我在思考中 | 2021-12-07 11:32 |
作者 | 謝明輝
推薦系統(tǒng)旨在從用戶的交互歷史識別出用戶的偏好,目前已經(jīng)在工業(yè)界得到廣泛應用。但是傳統(tǒng)靜態(tài)推薦模型難以解決兩個重要的問題。1,用戶到底喜歡什么?2,為什么用戶喜歡一個物品?因為靜態(tài)的推薦模型缺乏用戶的實時反饋和顯式指導。
近年來,對話推薦系統(tǒng)正在逐漸解決這兩個問題。在對話推薦系統(tǒng)中,系統(tǒng)能夠通過自然語言和用戶進行動態(tài)交互,能識別出用戶的精確偏好。雖然對話推薦系統(tǒng)(conversational recommender systems)已經(jīng)得到一些發(fā)展,但是遠沒成熟。(下文CRS指對話推薦系統(tǒng))
該篇文章將首先介紹對話推薦系統(tǒng),然后總結(jié)CRS中5個關鍵挑戰(zhàn):
1,基于問題的用戶偏好識別。
2,多輪對話的策略。
3,對話理解和生成。
4,Exploration-exploitation trade-offs。
5,評估和用戶模擬。文章還對未來有前景的方向進行了展望。
論文鏈接(已收錄于AI open):https://www.aminer.cn/pub/600fe40f91e011256c955f6a
對話推薦系統(tǒng)的定義
A recommendation system that can elicit the dynamic preferences of users and take actions based on their current needs through real-time multi-turn interactions.
一個有關對話推薦系統(tǒng)的簡單舉例如下:
根據(jù)用戶之前的偏好(喜歡周杰倫的歌),系統(tǒng)進行了推薦。當用戶實時反饋后,系統(tǒng)能夠輕松的提供新的推薦結(jié)果,來滿足用戶。
通常,CRS由用戶交互接口、對話策略模塊、推薦引擎三部分組成。用戶接口作為用戶和機器的交互接口,從用戶的對話中提取信息,轉(zhuǎn)化為機器可理解的表示;對話策略模塊是CRS的大腦,負責決定識別用戶偏好、維持多輪對話和帶領話題;推薦引擎負責建模實體間的關系,學習用戶偏好,從物品和它的屬性中提取信息。CRS的5個關鍵挑戰(zhàn)對應了通用框架中的模塊。
5個關鍵挑戰(zhàn)和對應的經(jīng)典方法,如下圖。
基于問題的用戶偏好識別
基于問題的偏好識別是通過向用戶詢問物品或者物品的屬性識別出用戶的偏好。
詢問物品
傳統(tǒng)的推薦系統(tǒng)直接向用戶詢問物品本身,在此基礎上,添加與用戶的自然語言交互接口,成為對話推薦系統(tǒng)。
基于選擇的方法
讓用戶從待選列表中選擇自己喜歡的物品。用戶選擇偏愛的物品之后,系統(tǒng)根據(jù)用戶的選擇更新推薦。盡可能讓候選物品不同。
基于交互推薦的方法
交互推薦主要基于RL;一些研究者將多臂機(MAB)算法應用到CRS;一是因為MAB算法高效,且天然適合對話場景;二是MAB算法能夠探索出用戶可能喜歡但是從來沒有嘗試的物品;但基于MAB的算法通常假設用戶的偏好在交互過程中保持不變。為了建模動態(tài)的偏好和長期效用utility,一些研究者提出了將DQN(Deep Q-network)和DDPG(deep deterministic
通過直接向用戶詢問物品來對用戶喜好進行建模的方式效率低,因為候選集合往往很大。而且在真實的CRS中,用戶在對話輪數(shù)多了之后,就會無法忍受。所以更為實際的方法是詢問用戶喜歡什么屬性。現(xiàn)在的研究熱點集中在基于詢問屬性的方法。
詢問屬性
該方法的基本假設是,如果用戶喜歡一個物品,那么他也喜歡用戶的屬性。
詢問屬性的方法更有效,因為用戶是否喜歡某個屬性能夠很大程度上減少推薦的候選物品數(shù)。該方法的關鍵在于如何選擇一系列屬性對用戶進行詢問,來最小化當前用戶的需求的不確定性。另外,每次都詢問用戶,具有最大不確定程度喜歡的屬性,而不會詢問已經(jīng)喜歡或不喜歡的屬性。
從歷史交互中擬合模式
一個經(jīng)典工作,Christakopoulou等人在2018年提出的question & recommendation模型。每輪系統(tǒng)讓用戶選擇一個或多個不同的話題,如NBA,美食等,然后從這些話題中選擇物品推薦給用戶。模型包含了trigger模塊,來決定是否詢問屬性,或者做推薦。這個算法已經(jīng)在YouTube部署,用來解決用戶冷啟動問題。類似的模型都使用預先設定好的對話末班,因為核心人物是推薦,而非NLG。另外這些模型只是從歷史信息學習用戶偏好,沒有考慮當用戶拒絕推薦結(jié)果后的回應。
傳統(tǒng)的方法通過刪除不滿足的屬性,來縮小候選物品范圍?;谏窠?jīng)網(wǎng)絡向量的方法,將評價編碼為隱向量,用來表示物品可解釋的屬性。Wu等人在2019年提出了一種針對平阿基的可解釋的CF方法。他們使用NFC模型將用戶i對物品j的偏好編碼成隱向量\hat z_{i,j},然后使用\hat z_{i,j}計算出打分\hat r_{i,j}和可解釋的屬性向量\hat s_{i,j}.當用戶不喜歡某個屬性時,系統(tǒng)將對應的屬性向量\hat s_{i,j}對應的維度設置為0。然后更新隱向量。
基于RL的方法
借助deep policy network,系統(tǒng)不僅選擇屬性并且控制什么時候轉(zhuǎn)移話題。
圖限制的候選實體(Graph-constrained Candidates)
圖經(jīng)常用來表示不同實體之間的關系。Lei等人在2020年提出一種在異構(gòu)圖進行交互的路徑推理算法。用戶和物品表示為節(jié)點,關系表示為節(jié)點之間的邊。對話可以轉(zhuǎn)化為圖上的路徑。作者比較不同屬性之間的偏好,選擇最不確定的屬性進行詢問。用戶對某個物品的偏好建模為用戶對屬性偏好的均值。利用圖信息能充分減小搜索空間。其他一些方法使用GNN類似的方法。
多輪對話的技巧
問題驅(qū)動的方法關注“問什么”,而多輪對話主要關注“什么時候問”或者“怎么維持對話”。
何時問、何時推薦
在交互中使用好的策略,對提升用戶體驗很關鍵。Zhang等人在2018年提出SAUR模型。當對用戶需求置信度較高時,trigger會激活推薦模塊。在這里,trigger是在所有候選實體打分上的sigmoid值。但是,這種控制策略過于簡單。Sun等人在2018年提出CRM模型,模型使用belief tracker對用戶輸出進行追蹤,然后輸出表示目前會話狀態(tài)的隱向量。然后將其輸入到deep policy網(wǎng)絡中決定什么時候進行推薦。DPN使用policy gradient方法做決策。
更廣泛的對話技巧
之前的技巧仍缺乏智能。原因之一是,大多數(shù)CRS模型假設用戶總是知道他們想要什么,然后模型學習到用戶的偏好。但用戶有時候都不清楚他們想要什么,所以CRS還需要指引話題,并且影響用戶的心理。一些研究嘗試讓CRS能夠讓話題更具吸引力,讓用戶有參與感。
多話題學習(Multi-topic learning in conversations)
Liu等人在2020年提出了多類型對話的任務。他們提出的模型能夠在不同類型對話切換,如從閑聊式對話切換到推薦式對話。他們提出了multi-goal driven conversation generation (MGCG) 框架,包含了一個goal planning module和a goal-guided responding module。前者將推薦作為主要目標,將話題轉(zhuǎn)移作為短期目標。給定上下文X,和最后一輪的目標g_{t-1},模型轉(zhuǎn)移到目標g_t的概率為P_{CG}(g_t \neq g_{t-1}),若概率值大于0.5,則轉(zhuǎn)移。否則,保持不變。針對特定任務的數(shù)據(jù)集非常重要。Liu等人在2020年發(fā)布了一個多類型交互的數(shù)據(jù)集DuRecDial。zhou等人在2020年發(fā)布了一個話題引導的數(shù)據(jù)集。
特殊能力(Special ability: suggesting, negotiating, and persuading)
除了偏好識別和推薦,還有各種各樣的任務需要CRS具有不同的能力。這些能力都是高級需求。例如,當用戶詢問“Nissan GTR Price”,系統(tǒng)能夠提供一些建議幫助yoghurt完成一個任務,比如"How much does it cost to lease a Nissan GT-R?".這些問題建議可以使用戶帶來各種各樣的未來結(jié)果的沉浸式搜索體驗。Lewis等人在2017年提出一個能和用戶進行談判的系統(tǒng)。他們將問題建模為分配問題:物品需要分配給兩人,每個物品對于每個人的價值不同。兩人進行談判,達成一個分配的協(xié)議。
Dialogue understanding and generation
對話理解
大部分CRS主要關注的是核心的推薦邏輯和多輪對話技巧,它們難以從原始對話中提出用戶意圖,它們需要預處理的結(jié)構(gòu)化的輸入,如打分、YES/NO問題。而實際情況,用戶的回答或提問往往多種多樣。對話理解方法有槽填充(Slot filling),和意圖識別。槽填充(Slot filling)事先設定意圖,使用模型根據(jù)用戶輸入填寫模板的相應空值。意圖識別常用神經(jīng)網(wǎng)絡從用戶的對話中提取情感。
Response generation
CRS生成的回答至少要滿足兩個層次的要求。低層次的要求是生成的回答合適且正確;高層次的要求是生成的回答包含推薦物品有價值的信息。主要分為Retrieval-based Methods和Generation-based Methods
Retrieval-based Methods
基于抽取的方法主要做法是從候選回答中挑選合適的作為回答。問題被建模成用戶問題和候選回答的匹配問題。一種方法是,使用神經(jīng)網(wǎng)絡分別學習用戶問題和候選答案的表示,然后通過一個打分函數(shù),得到兩者的匹配程度;另一種方法是,先融合兩者的表示,然后通過模型學習兩者的深層關系。兩種方法各有利弊,前者實現(xiàn)更高效,更適合線上部署;后者更有效,因為匹配信息被深層次的挖掘。
Generation-based Methods
基礎的生成模型是RNN,能夠輸入問題,逐個單詞生成回答。相較于基于抽取的方法,基于生成的方法有以下挑戰(zhàn):
1,生成的答案可能不是有正確語法的語句。
2,人們?nèi)菀讌^(qū)分出機器生成的語言和人類生成的語言,因為機器缺乏基本的常識、情感等。
3,模型傾向于生成安全回答,也就是一些放之四海皆準的回答,如"OK";4,如何評價生成的回答。對于CRS,生成的回答需要包含推薦物品。
Incorporating recommendation-oriented information
使用端到端框架的CRS的主要缺點是,只有在訓練過程中出現(xiàn)的物品才會被推薦。因此,模型性能被訓練數(shù)據(jù)的質(zhì)量嚴重限制。為此,Chen等人在2019年提出將領域知識圖譜融入到推薦系統(tǒng)中,一方面可以幫助推薦系統(tǒng)從知識圖譜中提取信息,另一方面,可以幫助對話系統(tǒng)生成識別出與物品相關的詞匯,生成更連續(xù)和可解釋的回答。
另外還有些研究者嘗試增加回答的多樣性和可解釋性,比如前面提到的多話題學習模型。
Exploration-exploitation trade-offs
Exploration-Exploitation (E&E) trade-off主要被用于解決CRS的冷啟動問題,通過Exploitation,系統(tǒng)返回最流行的選擇;通過探索,模型嘗試搜集一些未知選項的信息。MAB多臂機算法是E&E一個經(jīng)典算法,主要用來改善模型的推薦效果。
多臂機介紹
多臂機問題來源于賭博。老虎機有K個搖臂,每個搖臂以一定的概率吐出金幣,且概率是未知的 。玩家每次只能從K個搖臂中選擇其中一個,且相鄰兩次選擇或獎勵沒有任何關系。玩家的目的是通過一定的策略使自己的獎勵最大。用戶可以選擇當前具有最大平均獎勵的搖臂,或者冒險嘗試另一個搖臂。
多臂機在CRS的應用
待推薦的物品可以看做MAB中的搖臂,系統(tǒng)可以選擇當前用戶偏好的物品,也可以冒險嘗試用戶未知偏好的物品。傳統(tǒng)MAB方法將物品看做相互獨立的,并且忽略了物品特征信息,如屬性。Li等人提出了第一個使用文本信息的多臂機算法,類似于協(xié)同過濾算法,利用了用戶和物品的特征信息。
多臂機算法能夠在線學習,幾輪交互之后便能更新用戶的偏好,調(diào)整對話策略。
Evaluate CRSs
對CRS的評價分為兩類。第一類是Turn-level的評價,評估每輪的輸出,是一個監(jiān)督預測問題;第二類是Conversation-level的評價,評估多輪對話的技巧,是一個序列決策問題。
數(shù)據(jù)集和工具
常用CRS數(shù)據(jù)集
雖然數(shù)據(jù)集數(shù)量較多,但是仍不足以開發(fā)能夠工業(yè)應用的CRS。除了數(shù)據(jù)集規(guī)模過小,還有就是數(shù)據(jù)集比較有規(guī)則,難以適應真實世界的復雜情況。
常用工具
zhou等人實現(xiàn)了開源工具包,CRSLab。工具包包含了三個子任務:推薦,對話,策略,對應了CRS的三個部分。一些模型通過這三個任務實現(xiàn)。工具包還包含評估模塊,不僅能夠進行自動評估,還能通過交互接口進行人工評估。
Turn-level evaluation
語言生成的評價
兩個常用指標是BLEU和Rougue。BLEU衡量的是生成詞的準確率,即生成的詞有多少出現(xiàn)在了正確答案上。Rougue衡量的是生成詞的召回率,正確答案的詞在生成回答中出現(xiàn)了多少。但是這兩個指標是否能夠有效評價語言生成任務具有爭議,因為這兩個指標只能評價詞匯變化,不能評價語義和語法上的變化。另外,CRS模型的任務不是預測最可能的回答,而是對話的長期有效。所以,其他的一些指標,如多樣性、連續(xù)性,反映了用戶的滿意程度可能更加適合評估CRS。
推薦的評價
推薦系統(tǒng)評價分為基于評分和基于排序的評價?;谠u分的評價中,用戶反饋是評分,如1-5分。常用的評價指標有MSE和RMSE;基于排序的評價中,用戶反饋可以是隱式的點擊,購買等操作。只需預測物品的相對順序即可,在實際情況更常用。常見的基于排序的指標有點擊率、F1分數(shù),MRR、MAP等。
Conversation-level evaluation
不同于Turn-level evaluation,Conversation-level evaluation沒有中間的監(jiān)督信號。因此需要在線用戶或者利用歷史數(shù)據(jù)進行用戶模擬。
在線用戶測試可以直接根據(jù)用戶的真實反饋進行評價。常用的指標有,平均輪數(shù)(AT)和recommendation
success rate (SR@t)。平均輪數(shù)(AT)指系統(tǒng)為了成功完成推薦所需對話輪數(shù),而SR@t是指有多少對話在第t輪完成了推薦。Off-policy evaluation也稱為反事實推理。問題會設計成反事實問題,比如,如果我們用\pi_{\theta}代替\pi_{\beta},會發(fā)生什么?
用戶模擬通常有4個技巧:
1,直接使用用戶的交互歷史。將人類交互數(shù)據(jù)集的一部分作為測試數(shù)據(jù)集。
2,估計用戶在所有物品的偏好。由于數(shù)據(jù)集中包含的物品有限,數(shù)據(jù)集之外的物品往往被視為不喜歡的物品。為此,最好是估計用戶在所有物品的偏好。給定物品和它的信息,模擬用戶在該物品上的偏好。
3,從所有用戶的評價抽取。除了用戶行為之外,許多電商平臺包含很多文本評價數(shù)據(jù),物品的評價會顯式地提及物品的屬性,能夠反映用戶在該物品上的偏好。但是,物品的缺點并不能解釋用戶為何購買該物品,因此只有積極的評價,才會被認為用戶選擇該物品的原因。
4,模擬人類對話的語料;CRS根據(jù)真實的人類對話數(shù)據(jù)作為訓練,學習模擬人類的能力。
聯(lián)合訓練三個子任務
CRS的三個子任務推薦、自然語言處理和生成任務、對話技巧通常被單獨研究。但是這三個子任務共享一些實體和數(shù)據(jù)。比如,用戶的評價包含豐富的語義信息,但是只會給推薦引擎觀點信息。
偏差
推薦系統(tǒng)包含各種偏差,比如 popularity bias,conformity bias等。這些偏差可以在與用戶交互過程中消除,因為CRS可以直接詢問用戶關于流行物品的屬性,而不像傳統(tǒng)推薦系統(tǒng)直接向用戶推薦大家都喜歡的物品。exposure bias會導致用戶只能持續(xù)消費推薦系統(tǒng)曝光的物品。
復雜多輪對話技巧
目前的對輪對話的技巧過于簡單。有些工作是基于手工設計的函數(shù)決定何時詢問,何時推薦。有些基于DL的工作甚至沒有顯式的管理多輪對話的模塊。有些工作是基于強化學習,但是在設計動作、狀態(tài)、獎勵方面還有較大的改進空間。
另外,引入外部知識也可以改進CRS。物品的屬性信息和知識圖譜中豐富的語義信息都可以幫助CRS建模用戶偏好。多模態(tài)數(shù)據(jù)也可以引入到之前基于文本的CRS,提供全新維度的信息。
更好的評估和用戶模擬
CRS的評估需要用戶的實時反饋,但是代價昂貴。絕大多數(shù)CRS模擬用戶,但是并不能完全達到真實用戶的效果。一些可行的方向包括構(gòu)建頻繁的用戶交互,在slate推薦中建模用戶的選擇行為。
雷峰網(wǎng)(公眾號:雷峰網(wǎng))
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。