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