肖楠
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065)
近年來(lái),隨著云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)等技術(shù)的迅猛發(fā)展,互聯(lián)網(wǎng)空間的數(shù)據(jù)規(guī)模也迎來(lái)了爆炸式的增長(zhǎng)[1]。海量的數(shù)據(jù)中蘊(yùn)含著巨大的價(jià)值和潛力,與此同時(shí),人們也將面臨海量數(shù)據(jù)所帶來(lái)的信息過(guò)載問(wèn)題。如何快速地從紛繁復(fù)雜的數(shù)據(jù)中獲取有價(jià)值的信息成為了當(dāng)前大數(shù)據(jù)發(fā)展的關(guān)鍵難題。推薦系統(tǒng)通過(guò)推薦算法從海量數(shù)據(jù)中挖掘出用戶感興趣的項(xiàng)目并做出相關(guān)推薦,已經(jīng)成為解決“信息過(guò)載”問(wèn)題的有效方法。目前,推薦系統(tǒng)在很多領(lǐng)域已經(jīng)得到了成功應(yīng)用,包括電子商務(wù)(如Amazon、eBay、Netflix、阿里巴巴等)、信息檢索(如iGoogle、MyYahoo、百度等)、社交網(wǎng)絡(luò)(如Facebook、Twitter、騰訊等)、位置服務(wù)(如Foursquare、Yelp、大眾點(diǎn)評(píng)等)、新聞推送(如Google News、GroupLens、今日頭條等)等各個(gè)領(lǐng)域[2]。
傳統(tǒng)的推薦算法主要包括協(xié)同過(guò)濾算法、基于內(nèi)容的推薦算法和混合推薦算法。其中協(xié)同過(guò)濾算法也是目前應(yīng)用最廣泛的推薦算法,但是他仍面臨著嚴(yán)重的數(shù)據(jù)稀疏和冷啟動(dòng)問(wèn)題?;趦?nèi)容的推薦算法是根據(jù)已經(jīng)和用戶產(chǎn)生過(guò)交互的項(xiàng)目來(lái)尋找其他與該項(xiàng)目具有類似屬性的項(xiàng)目然后進(jìn)行推薦。因此這種方式需要有效的特征提取?;旌贤扑]算法指將多種推薦技術(shù)進(jìn)行混合相互彌補(bǔ)缺點(diǎn),從而獲得更好的推薦效果。最常見的是將協(xié)同過(guò)濾技術(shù)和其他技術(shù)相結(jié)合,以克服冷啟動(dòng)問(wèn)題。
目前,在很多應(yīng)用領(lǐng)域,很多不同類型的用戶與物品的交互信息會(huì)隨著時(shí)間記錄下來(lái)。傳統(tǒng)的推薦算法使用整個(gè)歷史的數(shù)據(jù)進(jìn)行推薦并不能有效的捕捉到用戶短時(shí)期內(nèi)的興趣偏好。例如在在線購(gòu)物場(chǎng)景下的基于會(huì)話的推薦,用戶的點(diǎn)擊偏好可能主要取決于當(dāng)前的購(gòu)物目的,而非用戶全部的歷史購(gòu)物偏好。因此出現(xiàn)了一些根據(jù)這些有序的用戶與物品交互日志做出相關(guān)推薦的算法。目前的研究已經(jīng)在這一領(lǐng)域取得了豐碩的成果。
根據(jù)對(duì)目前已有的基于會(huì)話的推薦算法所展開的研究,本文主要將其劃分為兩大類別。第一種為基于會(huì)話的傳統(tǒng)推薦算法,它包含了基于協(xié)同過(guò)濾的算法和基于馬爾科夫決策過(guò)程的算法;第二種為基于會(huì)話的深度學(xué)習(xí)算法,它包含了由基于循環(huán)神經(jīng)網(wǎng)絡(luò)的算法、基于注意力網(wǎng)絡(luò)的算法和基于圖網(wǎng)絡(luò)的算法。
基于會(huì)話的推薦是推薦系統(tǒng)的一個(gè)子任務(wù),傳統(tǒng)的推薦算法中最常用的方法是協(xié)同過(guò)濾算法。在協(xié)同過(guò)濾的算法領(lǐng)域中,鄰域模型[4]和潛因子模型[5]是協(xié)同過(guò)濾的兩個(gè)主要方法。其中鄰域模型的重點(diǎn)是計(jì)算用戶或物品之間的相似性。潛因子模型的重點(diǎn)是通過(guò)分解用戶和物品構(gòu)成的評(píng)分矩陣或交互矩陣,將物品和用戶在相同的潛在空間進(jìn)行表示,最后得到用戶對(duì)物品的預(yù)期值。鄰域模型和潛因子模型處理的是數(shù)據(jù)中結(jié)構(gòu)不同的層次,所以他們都不是最優(yōu)的[3]。由于缺少用戶資料,潛因子模型很難被應(yīng)用于基于會(huì)話的推薦中。鄰域方法通過(guò)計(jì)算物品(或用戶)之間的相似性進(jìn)行推薦,因此它可以基于會(huì)話中物品的共現(xiàn)進(jìn)行推薦。目前鄰域方法已被廣泛使用于會(huì)話推薦系統(tǒng)中。
在基于會(huì)話的推薦中,推薦系統(tǒng)都是以順序的方式工作的:它們向用戶推薦物品,然后用戶可以接受其中的一項(xiàng)推薦。在下一階段,將根據(jù)上一個(gè)交互的物品計(jì)算出推薦物品的新列表并展示給用戶。因此推薦過(guò)程的順序性也被定義為順序優(yōu)化過(guò)程。所以一種眾所周知的順序決策的隨機(jī)模型——馬爾可夫決策過(guò)程(MDP)也被應(yīng)用于基于會(huì)話的推薦當(dāng)中。
下面我們對(duì)幾種常用的模型和方法進(jìn)行介紹。
在基于用戶的協(xié)同過(guò)濾中,系統(tǒng)需要計(jì)算用戶間的相似度,以達(dá)到給相似用戶進(jìn)行推薦的目的。但是由于頻繁訪問(wèn)網(wǎng)站的用戶會(huì)有大量的歷史數(shù)據(jù),這將會(huì)導(dǎo)致在線推薦算法中會(huì)出現(xiàn)在線計(jì)算性能不足的問(wèn)題。同時(shí),如果忽略掉一些歷史數(shù)據(jù),這確實(shí)能彌補(bǔ)在線性能不足的問(wèn)題但將會(huì)使推薦結(jié)果變差。因此Badrul Sarwar 等人[6]提出了基于物品的協(xié)同過(guò)濾算法用于解決在線計(jì)算的性能和推薦的質(zhì)量不能兼顧這一問(wèn)題。因?yàn)槲锲分g的關(guān)系是相對(duì)靜態(tài)的,因此該算法通過(guò)計(jì)算物品間相似度而不是用戶間的相似度來(lái)避免在線計(jì)算的性能問(wèn)題,從而達(dá)到相似的推薦的效果。來(lái)自Amazon.com 的Greg Linden 等人[7]針對(duì)同一問(wèn)題提出了一種類似的方法,并實(shí)際應(yīng)用在Amazon.com 的網(wǎng)站中,以解決在線計(jì)算的性能和推薦的質(zhì)量不能兼顧這一問(wèn)題。
盡管潛因子模型由于缺少用戶資料不能單獨(dú)用于會(huì)話推薦中,但是它仍具備鄰域模型所不擁有的建模能力。鄰域模型根據(jù)用戶評(píng)分過(guò)的物品計(jì)算和這些物品最相似的物品,這對(duì)于整個(gè)物品集合而言是一個(gè)局部最優(yōu)的問(wèn)題,它沒有考慮到全局的所有物品。潛因子模型可以對(duì)物品進(jìn)行整體表示,但是它在檢測(cè)少量關(guān)聯(lián)度更強(qiáng)的物品間的強(qiáng)關(guān)聯(lián)性方面表現(xiàn)欠佳,而這恰好是鄰域模型所具備的優(yōu)勢(shì)。因此Yehuda Koren 等人[4]提出了一種組合模型,該模型利用鄰域模型和潛因子模型的優(yōu)勢(shì)來(lái)提高預(yù)測(cè)精度。對(duì)于鄰域模型中的物品相似度計(jì)算,該模型不同于基于物品的協(xié)同過(guò)濾算法中通過(guò)數(shù)據(jù)統(tǒng)計(jì)進(jìn)行計(jì)算而是通過(guò)學(xué)習(xí)得到物品相似度,而是提出一種更加準(zhǔn)確的鄰域模型。同時(shí)該模型將隱式數(shù)據(jù)加入模型中,通過(guò)擴(kuò)展模型,將潛因子模型和鄰域模型進(jìn)行合并,同時(shí)利用用戶的顯式和隱式反饋,以得到更有效的推薦結(jié)果。
不同于協(xié)同過(guò)濾模型根據(jù)相似用戶或物品進(jìn)行推薦,MDP 作為一種順序決策的隨機(jī)過(guò)程,它模擬在會(huì)話場(chǎng)景中推薦系統(tǒng)的推薦流程,即根據(jù)用戶上一次點(diǎn)擊的物品,生成推薦列表。通過(guò)一個(gè)四元組<S,A,Rwd,tr>對(duì)MDP 的流程進(jìn)行定義,其中S 是一組狀態(tài),A 是一組動(dòng)作,Rwd是一種為每個(gè)狀態(tài)/動(dòng)作分配真實(shí)值的獎(jiǎng)勵(lì)函數(shù)對(duì),而tr是狀態(tài)轉(zhuǎn)換函數(shù),它提供給定每個(gè)動(dòng)作的狀態(tài)在每對(duì)狀態(tài)之間轉(zhuǎn)換的概率。在MDP 中,決策的目標(biāo)是使其獎(jiǎng)勵(lì)最大化。由Guy Shani 等人[8]提出的基于MDP 的推薦系統(tǒng)很好地將MDP 與推薦系統(tǒng)相結(jié)合,并在實(shí)際應(yīng)用場(chǎng)景中取得了不錯(cuò)的結(jié)果。文章中提出了一種基于MDP 的新穎的推薦模型,該模型是一種等效的馬爾科夫鏈,其中狀態(tài)對(duì)應(yīng)交互序列。之后由Wanrong Gu 等人[9]提出了一種MDP 和潛因子模型的融合模型,該模型通過(guò)潛因子模型和MDP 不僅捕捉到用戶的長(zhǎng)期偏好,還捕捉到物品交互的順序?qū)ν扑]結(jié)果所帶來(lái)的影響,因此在實(shí)驗(yàn)中也取得了更好的結(jié)果。
近年來(lái)隨著硬件的發(fā)展,深度學(xué)習(xí)計(jì)算能力不足的瓶頸得以打破,越來(lái)越多的科研人員將深度學(xué)習(xí)技術(shù)應(yīng)用到自己的研究當(dāng)中。不同于傳統(tǒng)的推薦算法,基于深度學(xué)習(xí)的推薦算法通過(guò)深度學(xué)習(xí)模型學(xué)習(xí)到用戶的潛因子表達(dá)和物品的潛因子表達(dá),并基于這種潛因子表達(dá)為用戶進(jìn)行推薦。根據(jù)目前會(huì)話場(chǎng)景下的基于深度學(xué)習(xí)的推薦算法的研究現(xiàn)狀,主要使用的深度學(xué)習(xí)模型有循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)模型、注意力模型、圖模型。
下面我們對(duì)幾種常用的模型和方法進(jìn)行介紹。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)最早被使用在自然語(yǔ)言領(lǐng)域,由于其模型具有記憶能力,RNN 在自然語(yǔ)言領(lǐng)域取得十分顯著的成績(jī)。Balazs Hidasi 等人[10]首次將RNN運(yùn)用于基于會(huì)話的推薦,主要用于解決在基于內(nèi)容的推薦算法和基于物品的協(xié)同過(guò)濾算法中,每個(gè)物品相互獨(dú)立,不能建模會(huì)話中物品的連續(xù)信息的問(wèn)題。該模型完全利用用戶在當(dāng)前會(huì)話中的交互記錄產(chǎn)生推薦,將一個(gè)會(huì)話中發(fā)生的一系列點(diǎn)擊行為當(dāng)作一個(gè)序列,預(yù)測(cè)該會(huì)話下一個(gè)最可能發(fā)生交互的物品。該模型將RNN 和推薦系統(tǒng)進(jìn)行結(jié)合并在會(huì)話場(chǎng)景下取得了不錯(cuò)的成果。
在RNN 模型的基礎(chǔ)上,Massimo Quadrana 等人[11]提出了一種分層的循環(huán)神經(jīng)網(wǎng)絡(luò)來(lái)為用戶提供推薦,該模型可以建模會(huì)話中用戶個(gè)人的偏好變化。該模型主要針對(duì)已登錄用戶和匿名用戶兩種不同場(chǎng)景中的用戶進(jìn)行分別推薦。在已登錄的場(chǎng)景下,用戶的歷史會(huì)話信息反映了用戶的興趣偏好,而當(dāng)前的會(huì)話信息反應(yīng)了用戶目前的動(dòng)機(jī),與單獨(dú)的RNN 模型相比,分層RNN 模型不僅能夠捕捉到用戶當(dāng)前會(huì)話的獨(dú)特的目的,還能夠在已知用戶歷史交互記錄的情況下,融合用戶的歷史興趣偏好,以產(chǎn)生更好的推薦結(jié)果。這是單獨(dú)的RNN 模型所不具備的能力。分層RNN 模型中,一個(gè)用戶的會(huì)話結(jié)束時(shí),較低層RNN 的隱藏狀態(tài)作為輸入傳遞給較高層次的RNN,后者的輸出則作為下一個(gè)較低層RNN 的輸入的隱藏狀態(tài)。通過(guò)這種形式,分層的RNN 模型就可以在已登錄狀態(tài)下將用戶的歷史數(shù)據(jù)融合進(jìn)模型中,從而達(dá)到更好的推薦效果。
近年來(lái)隨著注意力網(wǎng)絡(luò)在圖像領(lǐng)域取得十分顯著的成果,越來(lái)越多的深度學(xué)習(xí)模型使用了注意力網(wǎng)絡(luò)。注意力網(wǎng)絡(luò)早期主要使用在圖像相關(guān)的領(lǐng)域中,它可以使網(wǎng)絡(luò)重點(diǎn)關(guān)注一部分輸入信息。由Qiao Liu等人提出的短期注意力/內(nèi)存模型(STAMP)[12]在基于會(huì)話的推薦中取得了顯著的效果。RNN 雖然能夠捕捉用戶總體的偏好,但是RNN 也許對(duì)于較長(zhǎng)的會(huì)話是不夠有效的,因此該模型將注意力網(wǎng)絡(luò)與RNN 進(jìn)行融合,不僅考慮用戶整體的偏好,也將考慮用戶當(dāng)前的目的,在捕捉用戶會(huì)話中用戶的主要興趣的同時(shí)有效避免了因?yàn)橐馔恻c(diǎn)擊而引起的興趣偏移。相比于Jing Li 等人提出的用戶會(huì)話推薦系統(tǒng)中的神經(jīng)注意力模型(NARM)[13],多數(shù)模型則只考慮當(dāng)前會(huì)話中用戶的短期偏好,即本次會(huì)話的主要目的,而忽略了長(zhǎng)久以來(lái)的歷史數(shù)據(jù)中包含的用戶長(zhǎng)期偏好。該模型通過(guò)對(duì)會(huì)話中物品采用不同的嵌入形式,并結(jié)合RNN 和注意力網(wǎng)絡(luò)分別提取出用戶的長(zhǎng)期偏好和短期偏好并進(jìn)行融合。其中,通過(guò)注意力網(wǎng)絡(luò)為短期偏好和長(zhǎng)期偏好分配不同的權(quán)重,最后得到了更準(zhǔn)確的推薦結(jié)果。
圖是一個(gè)數(shù)學(xué)的概念,它是由頂點(diǎn)和邊構(gòu)成的一種數(shù)學(xué)關(guān)系。這一概念在計(jì)算機(jī)科學(xué)中被用來(lái)表示單元間互相有聯(lián)系的數(shù)據(jù)網(wǎng)絡(luò)。自Relational Inductive Biases, Deep Learning, and Graph Networks 論文發(fā)布以來(lái),圖網(wǎng)絡(luò)相關(guān)的研究被推到一個(gè)新的高點(diǎn)。會(huì)話推薦中用戶多次交互的物品能構(gòu)成圖結(jié)構(gòu),因此Shu Wu等人提出一種圖神經(jīng)網(wǎng)絡(luò)(SR-GNN)[14]用于會(huì)話推薦中。模型將會(huì)話列表建模為圖結(jié)構(gòu)化的數(shù)據(jù),因此在捕捉用戶和物品之間交互信息的同時(shí),能夠保留物品之間的關(guān)系結(jié)構(gòu)SR-GNN 同時(shí)通過(guò)注意力機(jī)制區(qū)分用戶的長(zhǎng)期偏好和短期偏好。因此該模型在實(shí)際場(chǎng)景下取得了很好的效果。
在基于會(huì)話的推薦算法中,研究人員已經(jīng)提出了各種算法來(lái)解決推薦中所面臨的一些問(wèn)題,通過(guò)本次綜述,我們的目標(biāo)是對(duì)這些方法進(jìn)行分類并回顧其研究方法。本文中所列舉出的傳統(tǒng)推薦算法,主要面向已知用戶進(jìn)行會(huì)話推薦,當(dāng)然,這些算法也可以用到更多的場(chǎng)景中去。在本文所列舉出的基于深度學(xué)習(xí)的推薦算法則有更普適的應(yīng)用場(chǎng)景,不僅可以對(duì)已知用戶進(jìn)行推薦,還可以對(duì)匿名用戶進(jìn)行推薦。這也是基于會(huì)話的推薦系統(tǒng)的未來(lái)發(fā)展趨勢(shì)之一。同時(shí)部分模型提出的在會(huì)話中區(qū)分用戶的當(dāng)前興趣和長(zhǎng)期興趣,也被越來(lái)越多的研究者所關(guān)注。如何更有效的捕捉用戶的當(dāng)前興趣和長(zhǎng)期興趣并進(jìn)行融合也是基于會(huì)話的推薦系統(tǒng)所要面臨的問(wèn)題之一。圖網(wǎng)絡(luò)目前已經(jīng)是較新型的會(huì)話表示形式,在會(huì)話場(chǎng)景下它具有其他模型所不擁有的建模能力,未來(lái)是否會(huì)出現(xiàn)更有效的建模結(jié)構(gòu)也是值得研究人員去探索的。本文對(duì)會(huì)話場(chǎng)景下的研究現(xiàn)狀進(jìn)行分類,并介紹和分析了基于會(huì)話的推薦算法的研究現(xiàn)狀和進(jìn)展,并討論了今后的發(fā)展方向,希望能對(duì)相關(guān)領(lǐng)域的研究人員和工程技術(shù)人員提供有益的幫助。