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