蔣仕藝
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065)
信息化時(shí)代,大量信息充斥于網(wǎng)絡(luò),推薦算法的目的在于幫助用戶從海量的數(shù)據(jù)中,挑選出用戶感興趣的目標(biāo)數(shù)據(jù),大量網(wǎng)站都已經(jīng)開始應(yīng)用了相應(yīng)的推薦算法幫助推薦自己的產(chǎn)品或者服務(wù),并取得了良好的效果[1]。傳統(tǒng)的推薦算法,更偏向于以靜態(tài)的方式對用戶-物品行為進(jìn)行建模,得到了用戶的長期的一般偏好,而現(xiàn)實(shí)生活中,用戶的偏好會(huì)有很多是短時(shí)、非持續(xù)的。序列推薦算法將用戶與物品的交互視為了動(dòng)態(tài)的、持續(xù)性的序列,它是具有一定順序性的,其能有效捕獲用戶的短期偏好,顯著提高推薦效果。
傳統(tǒng)推薦算法,主要包括了基于內(nèi)容的推薦算法、協(xié)同過濾算法和混合推薦算法等。基于內(nèi)容的推薦算法一般依賴于自然語言處理的相關(guān)知識,通過計(jì)算得到物品的向量特征表示,進(jìn)而得到用戶的偏好,進(jìn)行推薦相似的物品,該算法推薦效果的好壞主要是取決于對物品特征向量的建模效果。協(xié)同過濾(Collaboration Filtering)算法因其現(xiàn)實(shí)工程實(shí)現(xiàn)較為簡單,同時(shí)也可以提供不錯(cuò)的推薦效果,所以協(xié)同過濾算法成為了推薦算法中應(yīng)用范圍最廣的算法。但是它也存在著一些問題影響推薦效果,例如數(shù)據(jù)太少的“冷啟動(dòng)”問題,不能表達(dá)瞬時(shí)偏好等?;旌贤扑]算法是為了提高推薦效果,融合了多種推薦技術(shù)的算法,當(dāng)前大多數(shù)推薦算法主要是融合了深度神經(jīng)網(wǎng)絡(luò)和協(xié)同過濾,主要能提升推薦效果,還可以一定程度解決協(xié)同過濾算法的弊端(數(shù)據(jù)稀疏、個(gè)性化不足等)。
序列推薦算法由于其針對行為序列進(jìn)行建模,在可以不過多依據(jù)用戶長期偏好的情況下,更加偏向于用戶當(dāng)前瞬時(shí)的、短暫的偏好,從而得到較好的推薦效果。例如,用戶過去喜歡國外手機(jī)品牌,但是隨著目前國內(nèi)手機(jī)品牌的日益崛起,用戶開始將更多注意力關(guān)注于國內(nèi)手機(jī)品牌了,大量瀏覽關(guān)注國產(chǎn)品牌手機(jī)。傳統(tǒng)的推薦算法,難以獲取用戶興趣的快速變化,而序列推薦能通過用戶與物品的交互捕獲用戶的動(dòng)態(tài)偏好。
目前,序列推薦算法大體分為兩大類。一類為基于傳統(tǒng)推薦算法的序列推薦,更多的采用了較為經(jīng)典傳統(tǒng)的協(xié)同過濾和馬爾科夫鏈等算法。另一類為融入深度神經(jīng)網(wǎng)絡(luò)的序列推薦,在初期,主要應(yīng)用了循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)、長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)等,最近隨著圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks,GNN)在圖像、自然語言處理等領(lǐng)域的應(yīng)用并取得快速發(fā)展,研究人員也開始將圖神經(jīng)網(wǎng)絡(luò)用于交互序列建模,并取得了優(yōu)異的表現(xiàn)。
序列推薦作為推薦算法的一個(gè)分支,在初期,研究人員更多的是直接將成熟的、經(jīng)典的傳統(tǒng)推薦算法應(yīng)用于序列推薦中。協(xié)同過濾作為推薦算法中使用最廣泛的算法,潛在因子表示模型和嵌入表示是其中的典型代表。潛在因子表示其首先通過分解學(xué)習(xí)得到用戶和物品的潛在表示,然后利用得到的表示信息進(jìn)行預(yù)測。嵌入表示將學(xué)習(xí)得到的潛在表示輸入,利用余弦或皮爾遜相似度來計(jì)算用戶與物品的相似度作為預(yù)測。馬爾科夫鏈由于其本身定義為假設(shè)某一時(shí)刻狀態(tài)轉(zhuǎn)移的概率只依賴于它的前一時(shí)刻的狀態(tài),也很自然地應(yīng)用到了序列推薦當(dāng)中。
接下來對兩類傳統(tǒng)推薦模型與方法進(jìn)行相應(yīng)介紹。
Hidasi 等人[2]提出一種通用的分解框架,以偏好模型作為輸入,計(jì)算輸入維數(shù)的潛在特征矩陣,一個(gè)維度為用戶,另一個(gè)維度為物品,其他行為等操作可以影響用戶的偏好,該框架能讓不同的線性框架在任意的上下文感知的推薦任務(wù)中進(jìn)行實(shí)驗(yàn),為序列推薦算法提供了一個(gè)新的思路。He 等人[3]提出了可擴(kuò)展的張量分解方法,采用一個(gè)模型來模擬用戶、物品和交互的三種關(guān)系,物品作為一個(gè)點(diǎn)嵌入到“轉(zhuǎn)移空間”內(nèi),每個(gè)用戶作為空間內(nèi)的一個(gè)轉(zhuǎn)移向量,用戶從一項(xiàng)到另一項(xiàng)的轉(zhuǎn)換由特定于用戶的轉(zhuǎn)換操作捕獲,用戶的待選推薦完全由用戶的過去交互的物品和用戶轉(zhuǎn)移向量得到,最終得到了用戶與待選物品之間的潛在表示,直接利用了歐氏距離來表示的物品預(yù)測。該類模型雖然較為簡單,但是推薦效果不錯(cuò)。
協(xié)同過濾在推薦算法中也存在一些不足,數(shù)據(jù)過分稀疏、新用戶等問題都會(huì)影響推薦效果,同時(shí)由于現(xiàn)實(shí)用戶交互序列中,存在時(shí)間和空間的關(guān)系,這種關(guān)系也不能很好通過協(xié)同過濾進(jìn)行表達(dá)出來,進(jìn)而影響了推薦效果。
基于馬爾科夫鏈的序列推薦模型將用戶與物品的交互序列直接進(jìn)行建模,得到序列模型,通過利用馬爾科夫鏈的特點(diǎn),用以預(yù)測下一次交互的物品。Rendle等人[4]成功把馬爾科夫鏈應(yīng)用到了短序列的序列推薦模型中,它能在短序列中捕獲到物品的轉(zhuǎn)換,即使在數(shù)據(jù)一定稀疏的情況下也能表現(xiàn)良好。Feng 等人[5]先將每個(gè)興趣點(diǎn)(POI)通過距離嵌入映射到一個(gè)潛在空間中,然后利用馬爾科夫鏈模型預(yù)測POI 的變化,POI 之間的距離作為衡量兩者序列關(guān)系的依據(jù),最后依據(jù)排序進(jìn)行推薦。該模型依據(jù)基于馬爾科夫鏈的理論依據(jù),認(rèn)為短時(shí)間內(nèi)的兩個(gè)POI 的訪問,對后者POI 的訪問會(huì)受上一個(gè)POI 訪問的影響。
馬爾科夫鏈用于序列推薦也存在著明顯的不足,首先就是其只能在短序列當(dāng)中取得明顯的作用,當(dāng)序列長度太長時(shí),推薦效果顯著下降。其次,它更多的是獲取單個(gè)物品與單個(gè)物品之間的聯(lián)系,而忽略了多個(gè)物品之間相互作用,而多個(gè)物品之間相互影響正是現(xiàn)實(shí)序列的重要特征。
近年來,隨著硬件技術(shù)的發(fā)展,深度神經(jīng)網(wǎng)絡(luò)逐漸從理論走向了實(shí)際,并且逐步應(yīng)用到了推薦算法當(dāng)中。主要應(yīng)用到的深度神經(jīng)網(wǎng)絡(luò)模型包括了循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)和圖神經(jīng)網(wǎng)絡(luò)(GNN)等。
接下來對三類神經(jīng)網(wǎng)絡(luò)模型與方法進(jìn)行相應(yīng)介紹。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)初期在圖像、音頻和自然語言處理等領(lǐng)域取得了較大成功,RNN 由于其網(wǎng)絡(luò)結(jié)構(gòu)的特點(diǎn),通過門(gate)這一結(jié)構(gòu),可以有選擇性的讓信息在循環(huán)神經(jīng)網(wǎng)絡(luò)中進(jìn)行流通,并衍生了許多變體模型。
B. Hidasi 等人[6]創(chuàng)新性的將RNN 帶入到推薦算法,把一個(gè)會(huì)話點(diǎn)擊了一系列物品的交互當(dāng)成了一個(gè)序列,將該序列輸入到模型當(dāng)中,預(yù)測下一個(gè)點(diǎn)擊的物品。該模型使用了RNN 融入進(jìn)序列推薦,解決了在缺少用戶歷史長期記錄的情況下,僅僅使用交互序列,推薦效果不佳的問題。作為RNN 的變體,Wu 等人[7]采用了長短期記憶網(wǎng)絡(luò)(LSTM)構(gòu)建模型,用來適應(yīng)用戶與電影的動(dòng)態(tài)性,而達(dá)到更精準(zhǔn)的視頻推薦。每當(dāng)用戶對電影進(jìn)行一次評分之后,利用LSTM 模型更新用戶表示,相對應(yīng)的電影表示的也進(jìn)行更新,推薦模型通過二者的表示預(yù)測用戶對某電影的評分。針對單層RNN模型不能有效捕獲用戶長期偏好的問題,Quadrana 等人[8]提出了層級循環(huán)神經(jīng)網(wǎng)絡(luò)模型(HRNN)。針對了不同的用戶群體采取了不同策略,如果用戶有歷史記錄,則根據(jù)用戶歷史記錄得到一般偏好,并傳遞給下一個(gè)序列,如果用戶沒有歷史記錄,則單純對用戶序列行為進(jìn)行建模。相較于單層的RNN 模型,該模型的優(yōu)勢在于,可以融入用戶的一般偏好,再結(jié)合序列信息反映的短期偏好,共同提高推薦效率。Wu 等人[9]提出了用戶過去的行為和現(xiàn)在的行為對用戶偏好的影響會(huì)隨著時(shí)間的變化而變化,利用了上下文時(shí)間注意力機(jī)制(Con?textualized Temporal Attention Mechanism)去學(xué)習(xí)用戶過去行為的影響權(quán)重,既包含行為本身的信息,還附帶了時(shí)間、空間信息,最后融合雙向循環(huán)網(wǎng)絡(luò)(BiRNN)一起輸出。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)同樣是率先在計(jì)算機(jī)視覺、自然語言處理等領(lǐng)域取得重要突破,受此啟發(fā),研究人員也開始探究CNN 在序列推薦算法領(lǐng)域的應(yīng)用。
Tang 等人[10]提出了Caser 模型,把在時(shí)間和空間上距離最近的一些物品交互序列當(dāng)做一個(gè)“圖像”矩陣,該矩陣的行是作為物品交互順序的表示,然后使用不同的卷積濾波器學(xué)習(xí)序列模式作為圖像的局部特征,該模型不僅可以表示用戶序列偏好,還可以表示出用戶的一般偏好。但是Caser 模型在面對長序列時(shí),由于CNN 的結(jié)構(gòu)限制,會(huì)丟失一些重要的、重復(fù)的信息,序列越長,表現(xiàn)出來的問題就越明顯。Yuan 等人[11]針對CNN 在長序列中表現(xiàn)不佳的情況,在Caser 模型基礎(chǔ)上,提出了NextItNet 模型,該模型的核心是采取擴(kuò)張的CNN,區(qū)別于標(biāo)準(zhǔn)的CNN 中,接受域?qū)挾鹊氖蔷€性增加,而擴(kuò)張的CNN 接受域?qū)挾炔扇〉氖侵笖?shù)級增長,利用的信息更加寬廣,從而達(dá)到了在使用相同核和相同層次的情況下,較之傳統(tǒng)的CNN 模型,能高效處理長序列的豐富信息。
傳統(tǒng)的深度學(xué)習(xí)方法被大量應(yīng)用在提取歐氏空間數(shù)據(jù)的特征,然而實(shí)際生活中大量的數(shù)據(jù)存在場景都不是簡單的歐氏距離能生成表達(dá)的。圖(Graph)作為一個(gè)較為復(fù)雜的數(shù)據(jù)結(jié)構(gòu),在描述物品與物品之間或者物品與用戶之間的交互較為貼合現(xiàn)實(shí)世界,也正是因?yàn)閳D的復(fù)雜性使得圖神經(jīng)網(wǎng)絡(luò)在序列推薦的應(yīng)用上存在相應(yīng)的困難。
Wu 等人[12]第一次將圖神經(jīng)網(wǎng)絡(luò)(GNN)應(yīng)用于序列推薦,提出了SR-GNN 模型,模型把將每個(gè)會(huì)話序列當(dāng)做一個(gè)有向圖,針對重復(fù)的邊和節(jié)點(diǎn),其中采取了邊權(quán)重均一化,然后利用GNN 得到節(jié)點(diǎn)潛在向量,通過門控制,得到最好的節(jié)點(diǎn)向量表示,最后通過對局部和全局向量的拼接,得到了結(jié)合了長期短期偏好相結(jié)合的序列向量表示,推薦效果得到明顯提高。Xu 等人[13]利用圖神經(jīng)網(wǎng)絡(luò)和自注意力網(wǎng)絡(luò)的互補(bǔ)性,提出了GC-SAN 模型,利用了多層自注意力網(wǎng)絡(luò)得到長距離之間的全局依賴關(guān)系,模型尋求在相鄰項(xiàng)中建立一個(gè)一個(gè)復(fù)雜的上下文表示關(guān)系,從而得到了比SR-GNN模型更加好的推薦效果。
圖神經(jīng)網(wǎng)絡(luò)在序列推薦領(lǐng)域尚處在起步階段,但是已經(jīng)取得了不錯(cuò)的效果,具備很強(qiáng)的發(fā)展?jié)摿Α?/p>
如今推薦算法已經(jīng)逐漸成熟,在各個(gè)領(lǐng)域都得到了應(yīng)用,從最初的電商網(wǎng)站、視頻網(wǎng)站到如今的各種手機(jī)應(yīng)用軟件,都能看到它的影子。序列推薦,作為推薦算法的子領(lǐng)域,在過去幾年也取得了長足發(fā)展。序列推薦不僅可以針對已知用戶進(jìn)行融合用戶特征的個(gè)性化推薦,更可以針對未登錄的匿名訪問者的瀏覽記錄進(jìn)行推薦。圖神經(jīng)網(wǎng)絡(luò)在序列推薦中的應(yīng)用,為序列推薦發(fā)展開辟了新的發(fā)展方向,值得更多的研究人員在圖神經(jīng)網(wǎng)絡(luò)上進(jìn)行探索。本文通過介紹了兩大類序列推薦算法的模型與方法,希望能給相關(guān)研究人員對在列推薦算法領(lǐng)域提供相應(yīng)的幫助。