劉志中,李林霞,孟令強(qiáng)
(煙臺大學(xué)計(jì)算機(jī)與控制工程學(xué)院,煙臺,264005)
隨著基于位置的社交網(wǎng)絡(luò)(Location‐Based Social Network,LBSN)的快速發(fā)展,一些基于位置服務(wù)的社交軟件(如Foursquare,Gowalla,Yelp)得到了廣泛應(yīng)用[1-5].借助這些軟件,用戶可以通過簽到來向好友分享自身位置,大量的用戶簽到信息也為探索用戶行為規(guī)律并為用戶推薦其感興趣的POI(Point of Interest)提供了重要的數(shù)據(jù)支持.近年來,POI 推薦作為推薦領(lǐng)域中的一種新興技術(shù)受到越來越多的關(guān)注[6-8],國內(nèi)外學(xué)者針對POI 推薦開展了大量研究,并提出了一系列有效的POI 推薦方法,主要包括基于傳統(tǒng)推薦模型的POI 推薦方法[6-10]、基于深度學(xué)習(xí)的POI推薦方法[11-16]以及基于圖神經(jīng)網(wǎng)絡(luò)的POI 推薦方法[17-19].
基于傳統(tǒng)推薦模型的POI 推薦通常采用協(xié)同過濾[20]或矩陣分解[9]來獲取用戶的POI 偏好,再依據(jù)用戶的偏好完成POI 推薦.該類方法首先將用戶、POI 以及上下文信息映射到一個(gè)公共的隱式空間,通過內(nèi)積操作來計(jì)算預(yù)測評分,再根據(jù)預(yù)測評分來確定推薦結(jié)果.已有的基于傳統(tǒng)推薦模型的POI 推薦方法雖然取得了一定的研究成果,卻只能挖掘用戶和POI 的淺層特征信息,難以充分提取用戶和POI 的深層交互信息,影響了推薦效果.
隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,多種深度學(xué)習(xí)模型被應(yīng)用于POI 推薦[6,11-16],提升了POI 的推薦效果.Huang et al[11]對用戶歷史簽到數(shù)據(jù)進(jìn)行建模學(xué)習(xí),提出一種基于循環(huán)神經(jīng)網(wǎng)絡(luò)的POI 推薦模型.Xu et al[6]利用卷積神經(jīng)網(wǎng)絡(luò)對用戶的時(shí)空簽到序列進(jìn)行建模,可以更好地提取用戶的個(gè)人偏好、簽到順序和社會信息特征.Zhu et al[21]將用戶的偏好分為長期偏好和短期偏好,結(jié)合POI推薦問題的特點(diǎn)對RNN(Recurrent Neural Net‐work)進(jìn)行改進(jìn),提出基于Time‐LSTM 模型的POI 推薦方法.然而,基于深度學(xué)習(xí)的POI 推薦方法通常僅對POI 訪問數(shù)據(jù)進(jìn)行時(shí)序性信息挖掘,忽略了數(shù)據(jù)中交互信息的學(xué)習(xí),影響了POI 的推薦效果.
事實(shí)上,用戶的POI 訪問數(shù)據(jù)中存在的大量的圖結(jié)構(gòu)數(shù)據(jù)(如用戶的社交關(guān)系圖、用戶與POI的交互圖、POI 之間的轉(zhuǎn)移圖),可以表達(dá)時(shí)序數(shù)據(jù)不能表達(dá)的信息.圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks,GNN)基于圖的拓?fù)浣Y(jié)構(gòu)對圖節(jié)點(diǎn)進(jìn)行特征提取,能夠?qū)W習(xí)更豐富的信息,因此,一些學(xué)者基于GNN 開展了POI 推薦研究.Lim et al[17]提出一個(gè)時(shí)空偏好用戶維度圖注意力網(wǎng)絡(luò),利用個(gè)性化用戶偏好并在全局時(shí)空偏好鄰域中探索新的POI,同時(shí)允許用戶有選擇地向其他用戶學(xué)習(xí).Chang et al[22]提出一種基于GNN 的POI 推薦模型,使用經(jīng)過訓(xùn)練的傳入和傳出影響的地理潛在表示來估計(jì)用戶偏好.雖然已有的POI 推薦研究取得了一定的研究成果[17-18,23],但仍然存在以下不足:
(1)已有的POI 推薦方法在學(xué)習(xí)用戶對POI的交互偏好時(shí)僅考慮了用戶對POI 的正向偏好,沒有考慮用戶對POI 的負(fù)向偏好,影響了POI 推薦的準(zhǔn)確度.
(2)用戶的POI 轉(zhuǎn)移數(shù)據(jù)中隱藏著用戶對POI 的轉(zhuǎn)移偏好以及POI 之間的轉(zhuǎn)移模式等重要信息,然而已有的POI 推薦方法沒有對用戶的POI 轉(zhuǎn)移數(shù)據(jù)進(jìn)行建模和學(xué)習(xí),影響了最終的推薦效果.
本文提出一種基于混合圖神經(jīng)網(wǎng)絡(luò)的個(gè)性化POI 推薦方法(An Approach for Personalized POI Recommendation Based on Hybrid Graph Neural Networks,HGNNPR).首先,構(gòu)建用戶社交網(wǎng)絡(luò)圖,并基于圖注意力網(wǎng)絡(luò)學(xué)習(xí)含有用戶社交關(guān)系的用戶特征;其次,構(gòu)建表達(dá)用戶POI 正負(fù)交互偏好的標(biāo)號交互二部圖,采用標(biāo)號二部圖神經(jīng)網(wǎng)絡(luò)(Signed Bipartite Graph Neural Networks,SBGNN)學(xué)習(xí)含有用戶POI 正負(fù)交互偏好的用戶特征以及POI 特征;構(gòu)建POI 有向轉(zhuǎn)移圖,采用會話圖神經(jīng)網(wǎng)絡(luò)(Session‐Based Recommendation with GNN,SRGNN)學(xué)習(xí)含有用戶POI 轉(zhuǎn)移偏好的POI 特征;將帶有社交關(guān)系的用戶特征與帶有POI 正負(fù)交互偏好的用戶特征進(jìn)行融合,得到最終的用戶特征表示,將含有用戶POI 正負(fù)交互偏好的POI特征與含有用戶POI 轉(zhuǎn)移偏好的POI 特征進(jìn)行融合,得到最終的POI 特征表示;將最終的用戶特征表示與POI 特征表示做乘積操作,通過Sigmoid函數(shù)得到用戶對于POI 的預(yù)測評分,選取TOP‐K個(gè)POI 推薦給用戶.
本文的主要貢獻(xiàn):
(1)為了充分挖掘用戶對POI 的交互偏好,構(gòu)建反映用戶對POI 正負(fù)交互偏好的POI 標(biāo)號交互二部圖,并采用SBGNN 學(xué)習(xí)含有用戶POI 正負(fù)交互偏好的用戶特征與POI 特征.
(2)為了充分挖掘POI 轉(zhuǎn)移數(shù)據(jù)中隱藏的信息,首先根據(jù)用戶對POI 的歷史訪問數(shù)據(jù)構(gòu)建POI 有向轉(zhuǎn)移圖,再采用SRGNN 學(xué)習(xí)含有用戶POI 轉(zhuǎn)移偏好的POI 特征.
(3)為了充分利用圖數(shù)據(jù)結(jié)構(gòu)對信息表達(dá)的優(yōu)勢,提出一種基于混合圖神經(jīng)網(wǎng)絡(luò)的個(gè)性化POI 推薦方法HGNNPR,基于公共數(shù)據(jù)集展開對比分析實(shí)驗(yàn),驗(yàn)證了該方法的有效性與先進(jìn)性.
基于LBSN 的POI 推薦是當(dāng)前推薦領(lǐng)域的研究熱點(diǎn),根據(jù)使用技術(shù)的不同,已有的POI 推薦研究可分為基于傳統(tǒng)推薦模型的、基于深度學(xué)習(xí)的和基于GNN 的POI 推薦研究.
1.1 基于傳統(tǒng)推薦模型的POI 推薦研究研究初期,研究人員將協(xié)同過濾和矩陣分解應(yīng)用于POI 推薦,取得了一定的研究成果.Yuan et al[20]將基于用戶的協(xié)同過濾方法與時(shí)間地理信息相結(jié)合,對不同用戶的簽到行為中的時(shí)間及空間信息進(jìn)行建模學(xué)習(xí),提出一種融合時(shí)空影響的POI 推薦方法.Liu et al[9]考慮地理位置對POI 推薦的影響,認(rèn)為用戶更傾向于訪問鄰近地區(qū)的POI,提出一種帶權(quán)重的矩陣分解方法進(jìn)行POI 推薦.Gao et al[24]考慮時(shí)間對POI 推薦的影響,提出基于時(shí)間序列增強(qiáng)的矩陣分解模型,用于POI 推薦.
鑒于社交關(guān)系對POI 推薦的影響,Wang et al[25]將社交網(wǎng)絡(luò)引入POI 推薦,并基于協(xié)同過濾方法進(jìn)行POI 推薦.Ying et al[15]考慮用戶對POI偏好的排序以及地理位置信息對POI 推薦的影響,提出基于排名矩陣分解的POI 推薦方法.針對數(shù)據(jù)稀疏性問題,Li et al[10]采用排序的方法對用戶的簽到數(shù)據(jù)進(jìn)行建模學(xué)習(xí),充分利用用戶簽到的負(fù)樣本數(shù)據(jù),在一定程度上緩解了數(shù)據(jù)稀疏性問題.基于傳統(tǒng)推薦模型的POI 推薦方法通常將用戶、POI 以及上下文信息映射到一個(gè)公共的隱式空間,再通過內(nèi)積來計(jì)算最后的預(yù)測得分.這些方法取得了一定的研究成果,但只能挖掘用戶和POI 的淺層特征信息,難以提取用戶和POI深層的交互信息,影響了推薦效果.
1.2 基于深度學(xué)習(xí)的POI 推薦研究隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展及其在多個(gè)領(lǐng)域的廣泛應(yīng)用,一些研究人員將深度學(xué)習(xí)模型應(yīng)用于POI 推薦.Liu et al[12]考慮時(shí)間和空間上下文信息對用戶POI 訪問偏好的影響,提出一種基于時(shí)空循環(huán)神經(jīng)網(wǎng)絡(luò)的POI 推薦模型.Wang et al[13]利用RNN 和CNN(Convolutional Neural Networks)學(xué)習(xí)用戶和POI 的特征信息,預(yù)測用戶對POI 的偏好.Yang et al[14]基于神經(jīng)網(wǎng)絡(luò)提出一個(gè)半監(jiān)督學(xué)習(xí)模型框架,結(jié)合用戶和POI 的上下文信息來學(xué)習(xí)用戶和POI 的嵌入向量,可以有效緩解用戶與POI 交互信息的稀疏性問題.
鑒于CNN 在提取高層次特征方面有獨(dú)特優(yōu)勢,Xu et al[6]利用CNN 對用戶的簽到序列進(jìn)行建模,更好地提取用戶偏好、簽到順序和社交信息.Ying et al[15]提出序列層次注意網(wǎng)絡(luò)模型,結(jié)合用戶的長、短期偏好為用戶推薦下一個(gè)可能訪問的POI.Yin et al[16]提出一個(gè)基于注意力機(jī)制的深度學(xué)習(xí)POI 推薦框架,從用戶的POI 簽到記錄中篩選出用戶真正感興趣的POI 和日常簽到的POI.Huang et al[11]將時(shí)空信息和注意力機(jī)制融入POI推薦模型,進(jìn)一步提升了POI 推薦的準(zhǔn)確度.
1.3 基于圖神經(jīng)網(wǎng)絡(luò)的POI 推薦研究深度學(xué)習(xí)模型的應(yīng)用使POI 推薦效果得到較好提升,但其僅適用于對時(shí)序性的POI 訪問數(shù)據(jù)進(jìn)行建模學(xué)習(xí),不能有效地處理圖結(jié)構(gòu)數(shù)據(jù).GNN 是一種新型的神經(jīng)網(wǎng)絡(luò)模型,可以基于圖的拓?fù)浣Y(jié)構(gòu)提取圖節(jié)點(diǎn)的特征信息,有利于進(jìn)一步提升推薦效果.Wu et al[1]為了充分利用POI 的特征信息,使用圖卷積網(wǎng)絡(luò)(Graph Neural Network,GCN)[15]對每個(gè)臨近POI 的地理位置進(jìn)行建模,通過集成臨近POI 的特征信息來學(xué)習(xí)地理位置對用戶偏好的影響.Zhong et al[2]提出一種基于多頭注意力機(jī)制的混合圖卷積網(wǎng)絡(luò)POI 推薦模型,利用GCN 來表示POI 之間的高階連通性,該模型不僅包含空間約束,還緩解了POI 簽到數(shù)據(jù)的稀疏性問題.
Lim et al[17]提出一種用于社交推薦的圖神經(jīng)網(wǎng)絡(luò)模型,對用戶的社交網(wǎng)絡(luò)進(jìn)行更深層的建模學(xué)習(xí).Tang et al[19]提出一個(gè)區(qū)域感知的POI 推薦模型,首先構(gòu)建語義空間圖,然后利用GNN 對語義空間圖中POI 之間的關(guān)聯(lián)關(guān)系進(jìn)行建模學(xué)習(xí),提取POI 區(qū)域特征和用戶偏好來獲取推薦結(jié)果.Zhang et al[18]提出一個(gè)基于GNN 的通用POI 推薦框架,該框架具有強(qiáng)大的數(shù)據(jù)建模能力,能從節(jié)點(diǎn)信息和圖自身的拓?fù)浣Y(jié)構(gòu)提取節(jié)點(diǎn)的特征表示,進(jìn)一步提升POI 推薦的效果.
設(shè)U={u1,u2,…,um}表示用戶集合,P={p1,p2,…,pn}表示POI 集合,其中m為用戶數(shù)量,n為POI 數(shù)量.
定義1 用戶(User)令U={u1,u2,…,um}表示用戶集合,其中,m表示用戶數(shù)量.U中每位用戶都使用一個(gè)唯一的用戶ID 進(jìn)行區(qū)分.
定義2 興趣點(diǎn)(POI)一個(gè)興趣點(diǎn)p被定義為由緯度和經(jīng)度坐標(biāo)唯一確定的地理空間位置,例如餐館或博物館等.使用興趣點(diǎn)ID、緯度和經(jīng)度的集合lid,latlid,lonlid來表示一個(gè)興趣點(diǎn).令P={p1,p2,…,pn}表示POI 集合,n表示POI 的數(shù)量.
定義3 簽到(Check?in)用戶的簽到記錄是用戶u、興趣點(diǎn)p和時(shí)間t組成的集合u,p,t,表示用戶u∈U在時(shí)間t時(shí)訪問了POI,p∈P.
定義4 簽到集合S={s1,s2,…,sm}表示用戶POI 簽到集合,其中si={p1,…,pk},k∈[ 0,n]表示用戶ui的POI 簽到序列.
POI 推薦問題:給定U,P,S三個(gè)數(shù)據(jù)集,根據(jù)用戶對POI 的偏好、用戶之間的社交關(guān)系以及用戶的POI 轉(zhuǎn)移信息,為用戶推薦其可能感興趣的Top‐K 個(gè)POI 列表.
鑒于圖數(shù)據(jù)結(jié)構(gòu)在信息表達(dá)方面的強(qiáng)大優(yōu)勢,為了充分挖掘用戶與POI 交互中的有用信息,提升POI 推薦效果,本文提出一種基于混合圖神經(jīng)網(wǎng)絡(luò)的個(gè)性化POI 推薦方法HGNNPR,模型結(jié)構(gòu)和計(jì)算過程如圖1 所示.下面詳細(xì)介紹每個(gè)模塊的具體計(jì)算過程.
圖1 HGNNPR 的模型結(jié)構(gòu)Fig.1 The structure of HGNNPR
圖2 用戶社交網(wǎng)絡(luò)的模型結(jié)構(gòu)Fig.2 The model structure of user social network
3.1 基于社交網(wǎng)絡(luò)的用戶特征學(xué)習(xí)在POI 推薦中,用戶的社交關(guān)系中隱藏著用戶的社交偏好信息,對于緩解數(shù)據(jù)稀疏性并提升POI 的推薦效果有重要的作用.為此,首先基于用戶的社交關(guān)系構(gòu)建用戶社交網(wǎng)絡(luò)圖,再使用圖注意力神經(jīng)網(wǎng)絡(luò)對用戶的社交網(wǎng)絡(luò)進(jìn)行建模學(xué)習(xí),提取含有用戶社交關(guān)系的用戶特征.
3.1.2 基于GAT 的用戶特征學(xué)習(xí)進(jìn)行用戶社交特征學(xué)習(xí)時(shí)將用戶的特征向量集H和鄰接矩陣A作為GAT[26]的輸入數(shù)據(jù),通過消息傳遞、聚合及更新機(jī)制聚合鄰居節(jié)點(diǎn)的信息來完成社交網(wǎng)絡(luò)圖中節(jié)點(diǎn)特征的提取.具體計(jì)算過程如下.
設(shè)ui(ui∈U)為圖Gs中的一個(gè)節(jié)點(diǎn),其鄰居節(jié)點(diǎn)集合為Ni,設(shè)uj(uj∈Ni)為ui的一個(gè)鄰居節(jié)點(diǎn),uj與ui的相關(guān)度設(shè)為eij,如式(1)所示:
其中,||表示拼接操作,∈R2F′表示可訓(xùn)練的參數(shù)向量,LeakyReLU 為激活函數(shù).為了更好地分配權(quán)重,GAT 將節(jié)點(diǎn)ui與其所有鄰居節(jié)點(diǎn)的相關(guān)度使用Softmax 進(jìn)行歸一化處理,如式(3)所示:
其中,αij表示節(jié)點(diǎn)uj到ui的權(quán)重系數(shù),Ni表示節(jié)點(diǎn)ui的鄰居節(jié)點(diǎn)集合.權(quán)重系數(shù)αij的完整計(jì)算如式(4)所示:
獲得圖Gs中節(jié)點(diǎn)之間的權(quán)重系數(shù)后,GAT通過加權(quán)求和來更新節(jié)點(diǎn)ui的特征.具體操作如式(5)所示:
其中,αij為節(jié)點(diǎn)uj到ui的權(quán)重系數(shù),σ為非線性激活函數(shù).
為了讓GAT 的學(xué)習(xí)過程更加穩(wěn)定,本文在GAT 中設(shè)立了K組相互獨(dú)立的注意力機(jī)制,并將K組注意力機(jī)制的輸出結(jié)果拼接在一起作為最終結(jié)果.具體的操作如式(6)所示:
3.2 用戶與POI 的交互偏好學(xué)習(xí)在POI 推薦中,用戶與POI 的交互數(shù)據(jù)可以構(gòu)成一個(gè)交互二部圖.已有的研究工作在構(gòu)建二部圖時(shí),通常以用戶與POI 的連接表示用戶對POI 的正向偏好,卻沒有考慮用戶與POI 無連接時(shí)隱含的用戶對POI 的負(fù)向偏好信息.受Huang et al[27]的啟發(fā),本文基于用戶與POI 的歷史交互數(shù)據(jù),構(gòu)建了表示用戶對POI 正向、負(fù)向偏好信息的標(biāo)號交互二部圖.用戶和POI 之間的連接邊包括正、負(fù)兩種類型,其中正向連接邊表示用戶訪問過某一個(gè)POI,負(fù)向連接邊表示用戶沒有訪問過某一個(gè)POI.然后,采用標(biāo)號二部圖神經(jīng)網(wǎng)絡(luò)(SBGNN)[27]提取含有用戶POI 交互偏好的用戶特征與POI 特征.下面詳細(xì)介紹標(biāo)號交互二部圖的構(gòu)建以及基于SBGNN 的特征學(xué)習(xí)過程.
3.2.1 構(gòu)建設(shè)U={u1,u2,…,um}為用戶集合,P={p1,p2,…,pn}為POI 集合,用戶訪問POI 的數(shù)據(jù)集為I=ui,pj,i∈[ 0,m],j∈[ 0,n].
用戶與POI 的標(biāo)號交互二部圖的構(gòu)建過程如下:對于用戶ui和POIpj,若用戶ui訪問過pj,在ui和pj之間建立一條正連接邊,否則,ui和pj之間建立一條負(fù)連接邊;對于用戶集,當(dāng)ui和um對pj有相同標(biāo)號的邊時(shí),在ui和um之間建立一條正連接邊,否則,在ui和um之間建立一條負(fù)連接邊;對于POI 數(shù)據(jù)集,當(dāng)用戶ui對pf和pk有相同標(biāo)號的連接邊時(shí),在pf和pk之間建立一條正連接邊,否則,在pf和pk之間建立一條負(fù)連接邊.
依據(jù)上述操作構(gòu)建用戶與POI 之間的標(biāo)號交互二部圖(圖3),記為GI=(U,P,ε),其中,U和P分別表示用戶集合和POI 集合,ε表示圖GI中邊的集合,ε+表示正連接邊,ε-表示負(fù)連接邊,ε=ε++ε-且ε+∩ε-=?.
圖3 用戶?POI 標(biāo)號交互二部圖Fig.3 User?POI label interaction bipartite diagram
3.2.2 基于SBGNN 的用戶與POI 交互偏好學(xué)習(xí)SBGNN[27]基于兩種類型的連接邊對應(yīng)的鄰居集合,通過消息傳遞、聚合以及更新機(jī)制完成對圖中節(jié)點(diǎn)特征的提取.下面詳細(xì)介紹基于SBGNN的用戶特征與POI 特征的學(xué)習(xí)過程.
(1)消息傳遞:設(shè)Set1=U∪P為不同類型的節(jié)點(diǎn)集合,Set2是相同類型的節(jié)點(diǎn)集合(如用戶集合或POI 集合).SBGNN由l層圖神經(jīng)網(wǎng)絡(luò)堆疊而成,其對標(biāo)號二部圖的建模學(xué)習(xí)在圖神經(jīng)網(wǎng)絡(luò)層上完成.SBGNN 模型的第l層中,令→+u,→-u表示從鄰居節(jié)點(diǎn)pj到ui的消息,消息傳遞過程如式(7)所示:
(2)消息聚合:在得到鄰居節(jié)點(diǎn)消息之后執(zhí)行消息聚合操作,SBGNN 使用圖注意力函數(shù)聚合來自鄰居節(jié)點(diǎn)的信息.首先,計(jì)算兩個(gè)節(jié)點(diǎn)之間的權(quán)重系數(shù),該系數(shù)反映兩個(gè)節(jié)點(diǎn)的相關(guān)度,其計(jì)算如式(10)所示:
其中,Ni表示節(jié)點(diǎn)i的鄰居節(jié)點(diǎn)集合.
其中,W1,W2表示權(quán)重矩陣,b1,b2表示可學(xué)習(xí)的偏置參數(shù),σ為激活函數(shù),x為用戶或POI 的特征表示,dropout 的使用可以有效防止模型出現(xiàn)過擬合.
SBGNN 的輸出序列為:
3.3 基于SRGNN 的POI 轉(zhuǎn)移偏好學(xué)習(xí)用戶與POI 的歷史簽到數(shù)據(jù)中隱藏著用戶的POI 轉(zhuǎn)移偏好,然而,已有的POI 推薦方法缺少對用戶的POI 轉(zhuǎn)移信息進(jìn)行建模學(xué)習(xí),影響推薦效果.為了獲取用戶的POI 轉(zhuǎn)移偏好,本文首先基于用戶與POI 的歷史簽到數(shù)據(jù)構(gòu)建POI 有向轉(zhuǎn)移圖(如圖4 所示),再使用SRGNN[28]對POI 有向轉(zhuǎn)移圖進(jìn)行建模學(xué)習(xí),提取含有用戶POI 轉(zhuǎn)移偏好的POI 特征表示.
圖4 POI 有向轉(zhuǎn)移圖和鄰接矩陣Fig.4 POI directed transition graph and adjacency matrix
3.3.2 基于SRGNN 的POI 轉(zhuǎn)移偏好學(xué)習(xí)構(gòu)建POI 有向轉(zhuǎn)移圖后,將POI 特征向量集合Q和鄰接矩陣Ai作為SRGNN 的輸入數(shù)據(jù).SRGNN通過門控機(jī)制更新POI 節(jié)點(diǎn)的特征向量表示,完成POI 節(jié)點(diǎn)的特征提取.對于POI 簽到序列si,首先基于鄰接矩陣Ai聚合鄰居節(jié)點(diǎn)的特征信息,如式(14)所示:
分別計(jì)算會話機(jī)制中更新門和重置門的數(shù)值,如式(15)和式(16)所示:
3.4 POI 推薦對獲取的兩組用戶特征表示,通過求和操作進(jìn)行特征融合,得到用戶最終的特征表示,記為,如式(19)所示:
最后,將預(yù)測評分降序排序,并選取Top‐K個(gè)POI 推薦給用戶.
3.5 模型的訓(xùn)練學(xué)習(xí)和時(shí)間復(fù)雜度HGNNPR模型包含GAT,SBGNN 和SRGNN 三個(gè)子模型,其訓(xùn)練策略是將三個(gè)子模型分開單獨(dú)訓(xùn)練,子模型訓(xùn)練結(jié)束后,基于子模型輸出的結(jié)果獲取個(gè)性化推薦結(jié)果.由于三個(gè)子模型的運(yùn)行機(jī)制不同,為了讓HGNNPR 模型的整體推薦性能最優(yōu),需要對三個(gè)子模型的相關(guān)參數(shù)單獨(dú)進(jìn)行設(shè)置.為此,本文在經(jīng)驗(yàn)固定取值的基礎(chǔ)上進(jìn)行大量實(shí)驗(yàn),最終對每個(gè)子模型使用的參數(shù)以及損失函數(shù)都作出針對性的設(shè)置.由于三個(gè)子模型擁有三組不同的模型參數(shù),難以通過單一的控制變量法開展某一參數(shù)對HGNNPR 模型推薦性能影響的相關(guān)實(shí)驗(yàn).三個(gè)子模型的相關(guān)參數(shù)如表1 所示.
表1 子模型參數(shù)列表Table 1 The list of sub model parameter
模型訓(xùn)練時(shí),HGNNPR 模型首先采用隨機(jī)初始化的方法獲取用戶以及POI 的特征表示;然后,對GAT,SBGNN 以及SRGNN 三個(gè)子模型分別進(jìn)行訓(xùn)練優(yōu)化,獲取用戶和POI 的特征表示;最后,基于訓(xùn)練得到的用戶以及POI 的特征表示來計(jì)算用戶對POI 的預(yù)測評分.三個(gè)子模型中,GAT 和SBGNN 均采用節(jié)點(diǎn)的連接邊預(yù)測作為驅(qū)動任務(wù),使用BCELoss 作為損失函數(shù)來驅(qū)動模型的訓(xùn)練學(xué)習(xí);SRGNN 采用會話推薦作為驅(qū)動任務(wù),使用CrossEntropyLoss 作為損失函數(shù),通過預(yù)測簽到序列的最后一個(gè)POI 來驅(qū)動SRGNN 的訓(xùn)練學(xué)習(xí).HGNNPR 模型整體的時(shí)間復(fù)雜度由兩部分組成,即模型訓(xùn)練的時(shí)間復(fù)雜度和模型預(yù)測的時(shí)間復(fù)雜度.由于HGNNPR 模型的訓(xùn)練過程是離線執(zhí)行的,因此不考慮其復(fù)雜度與計(jì)算開銷.HGNNPR 模型預(yù)測的時(shí)間復(fù)雜度是O(M×N),其中M是用戶數(shù)量,N是POI 數(shù)量.
3.6 算法描述
4.1 實(shí)驗(yàn)設(shè)置為了驗(yàn)證本文HGNNPR 的有效性,選擇三個(gè)公用的POI 推薦數(shù)據(jù)集(Yelp,Gowalla,F(xiàn)oursquare)進(jìn)行實(shí)驗(yàn).對于Gowalla 數(shù)據(jù)集,過濾掉POI 簽到記錄少于20 的用戶和被訪問次數(shù)少于20 的POI[29];對于Foursquare 和Yelp數(shù)據(jù)集,過濾掉簽到記錄少于10 的用戶和被訪問次數(shù)少于10 的POI.每個(gè)數(shù)據(jù)集,隨機(jī)選擇80%的簽到數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,并將剩余20%的簽到數(shù)據(jù)作為測試數(shù)據(jù)集.表2 給出了預(yù)處理之后的三個(gè)數(shù)據(jù)集的詳細(xì)信息.
表2 Foursquare,Gowalla 和Yelp 的數(shù)據(jù)統(tǒng)計(jì)Table 2 Data statistics of Foursquare,Gowalla and Yelp
實(shí)驗(yàn)的硬件環(huán)境:操作系統(tǒng)為Windows 10 專業(yè)版64 bit,CPU 為12thGen Inte(lR)Core(TM)i9‐12900K 3.19 GHz,GPU 為NVIDIA GeForce RTX 3090,RAM 為32 GB.開發(fā)平臺為Pycharm(Community Edition),基于Python 3.8 與Pytorch深度學(xué)習(xí)框架來實(shí)現(xiàn)本文的推薦方法,使用隨機(jī)初始化策略來初始化模型的相關(guān)參數(shù).為了防止模型的過擬合,在模型的訓(xùn)練過程中采用drop‐out[30]技術(shù).使用Adam[31]優(yōu)化器對模型進(jìn)行優(yōu)化.
為了驗(yàn)證本文方法的優(yōu)越性,挑選七種代表性POI 推薦方法作對比.使用準(zhǔn)確率(Precision,P@k)、召回率(Recall,R@k)及平均精度(MAP,M@k)作為模型性能的評價(jià)指標(biāo),如式(22)~(24)所示:
其中,PC表示預(yù)測正確的興趣點(diǎn)數(shù)量,RP表示推薦興趣點(diǎn)的數(shù)量,RIP表示實(shí)際訪問的興趣點(diǎn)數(shù)量,ACS表示所有平均精度值之和,PN表示興趣點(diǎn)的數(shù)量.
4.2 對比模型七種最新的個(gè)性化POI 推薦模型如下.
NPGR[32]:NPGR 構(gòu)建了一張異構(gòu)LBSN 圖譜,包含用戶、興趣點(diǎn)的類別以及簽到時(shí)間窗口,使用Node2vec 來提取節(jié)點(diǎn)特征表示,并將用戶的簽到頻率、興趣點(diǎn)的地理位置以及興趣點(diǎn)的熱度等因素納入興趣點(diǎn)推薦的考慮范圍.
MBR[33]:是一個(gè)多元二部圖神經(jīng)網(wǎng)絡(luò)興趣點(diǎn)推薦模型,通過在圖模型上執(zhí)行聚類操作有效降低了傳統(tǒng)二部圖模型的計(jì)算開銷.為了提升模型的性能,MBR 深入分析了用戶的社交網(wǎng)絡(luò)、興趣點(diǎn)的地理位置以及用戶的簽到時(shí)間對用戶簽到行為的影響.
STGN[34]:STGN 模型將會話機(jī)制應(yīng)用到時(shí)空因素的建模學(xué)習(xí)中,會話機(jī)制是處理序列化數(shù)據(jù)的極高效工具之一,使用會話機(jī)制對用戶的簽到數(shù)據(jù)進(jìn)行建模學(xué)習(xí)有效提升了推薦的準(zhǔn)確度.
FG‐CF[35]:FG‐CF 將協(xié)同過濾和圖卷積網(wǎng)絡(luò)進(jìn)行結(jié)合,有效緩解了興趣點(diǎn)推薦中用戶簽到數(shù)據(jù)稀疏的問題,同時(shí),在用戶興趣點(diǎn)二部圖中加入用戶的社交信息,能更準(zhǔn)確地刻畫用戶特征.
PACE[14]:是一種基于用戶偏好和上下文嵌入的深度神經(jīng)網(wǎng)絡(luò)模型.它是一個(gè)通用的半監(jiān)督學(xué)習(xí)框架,聯(lián)合建模社會影響和用戶簽到行為來以預(yù)測用戶對POI 的偏好.
NGCF[36]:表示神經(jīng)圖協(xié)同過濾,是基于圖卷積網(wǎng)絡(luò)的POI 推薦模型.NGCF 只關(guān)注對用戶‐POI交互數(shù)據(jù)的建模學(xué)習(xí).
HGMAP[2]:是一個(gè)結(jié)合了圖神經(jīng)網(wǎng)絡(luò)和多頭注意力機(jī)制的個(gè)性化POI 推薦模型,重點(diǎn)研究用戶的社交關(guān)系以及POI 的地理距離對用戶簽到行為的影響.其模型結(jié)構(gòu)與本文的HGNNPR 相似,是重點(diǎn)對比的模型.
4.3 性能比較在三個(gè)公開數(shù)據(jù)集(Gowalla,F(xiàn)oursquare,Yelp)上對HGNNPR 進(jìn)行訓(xùn)練和優(yōu)化.對于數(shù)據(jù)集中的每個(gè)用戶,計(jì)算該用戶對數(shù)據(jù)集中所有POI 的預(yù)測評分,對預(yù)測評分降序排序,按照推薦個(gè)數(shù)k=5,k=10,k=20 獲取三組預(yù)測結(jié)果,與對應(yīng)的測試數(shù)據(jù)集進(jìn)行對比,計(jì)算準(zhǔn)確率和召回率.將得到的評價(jià)指標(biāo)與選用的對比模型進(jìn)行比較,實(shí)驗(yàn)結(jié)果如表3~5 所示,表中黑體字表示每一列的最優(yōu)結(jié)果.對比模型的實(shí)驗(yàn)結(jié)果來自對應(yīng)的文獻(xiàn),HGNNPR 的實(shí)驗(yàn)結(jié)果來自模型代碼的運(yùn)行結(jié)果.由于對比模型的實(shí)驗(yàn)不是都在Foursquare,Gowalla 和Yelp 三個(gè)數(shù)據(jù)集上開展的,所以表3~5 中三個(gè)數(shù)據(jù)集上的對比模型的數(shù)量不完全一致.
表3 HGNNPR 模型和對比模型在Foursquare 數(shù)據(jù)集上的對比實(shí)驗(yàn)結(jié)果Table 3 Experimental results of HGNNPR and other models on Foursquare dataset
在Foursquare 數(shù)據(jù)集上,選取NGCF,HG‐MAP,NPGR,PACE 和STGN 作為對比模型,實(shí)驗(yàn)結(jié)果如表3 所示.由表可得,和對比模型相比,HGNNPR的P@k平均提升15.27%,k=5和k=10時(shí)R@k平均提升3.54%,k=20 時(shí)HGNNPR的性能不如HGMAP.綜合表3 的實(shí)驗(yàn)結(jié)果可以得出,HGNNPR 的推薦性能整體優(yōu)于對比模型.HGMAP 將圖神經(jīng)網(wǎng)絡(luò)和注意力機(jī)制相結(jié)合,重點(diǎn)對用戶的社交關(guān)系和POI 的地理位置展開研究,其推薦性能與本文提出的HGNNPR 較為接近,在R@20 時(shí)優(yōu)于HGNNPR 模型,因此,使用圖神經(jīng)網(wǎng)絡(luò)并同時(shí)考慮用戶的社交關(guān)系有利于提升POI 推薦效果.NPGR 雖然將用戶的簽到時(shí)間、POI 的種類、POI 的流行度以及POI 的地理位置作為情景信息融入推薦模型,卻沒有對這些情景因素的影響權(quán)重作出區(qū)分,使準(zhǔn)確率和召回率的提升受到了限制.
在Gowalla 數(shù)據(jù)集上,選取NGCF,HGMAP,F(xiàn)G‐CF,MBR,PACE 和STGN 作為對比模型,實(shí)驗(yàn)結(jié)果如表4 所示.由表可得,和對比模型相比,HGNNPR的P@k平均提升40.273%,R@k平均提升11.91%,其推薦性能全面優(yōu)于對比模型.MBR 深入分析用戶的社交網(wǎng)絡(luò)、POI 的地理位置及用戶的簽到時(shí)間對用戶簽到行為的影響,將這三種因素融入POI 的推薦,但沒有考慮用戶的POI 轉(zhuǎn)移及用戶對POI 的交互偏好,影響了最終的推薦效果.PACE 通過對用戶社會影響和簽到行為的建模學(xué)習(xí)來預(yù)測用戶對POI 的偏好,但沒有考慮用戶對POI 的交互偏好.STGN 缺少對用戶POI 交互偏好的建模學(xué)習(xí),也沒有將用戶的社交網(wǎng)絡(luò)考慮在內(nèi),影響了最終的推薦效果.
表4 HGNNPR 模型和對比模型在Gowalla 數(shù)據(jù)集上的對比實(shí)驗(yàn)結(jié)果Table 4 Experimental results of HGNNPR and other models on Gowalla dataset
個(gè)性化POI 推薦的研究領(lǐng)域中,Yelp 數(shù)據(jù)集的使用頻率低于Foursquare 和Gowalla,為了評估HGNNPR 在Yelp 數(shù)據(jù)集上的推薦性能,選取NGCF,HGMAP 和FG‐CF 作為對比模型,實(shí)驗(yàn)結(jié)果如表5 所示.由表可得,HGNNPR的P@k平均提升4.31%,R@5 提升6.84%,其推薦性能全面優(yōu)于對比模型.FG‐CF 沒有對用戶的社交網(wǎng)絡(luò)好友的影響力作出區(qū)分,使其推薦性能受到一定限制,證明只考慮用戶的社交信息對于提升POI的推薦效果是不夠的.NGCF 只對用戶‐POI進(jìn)行建模學(xué)習(xí),沒有對用戶的社交信息以及POI 轉(zhuǎn)移信息進(jìn)行學(xué)習(xí),使其推薦性能弱于HGNNPR.綜上,本文HGNNPR 模型的整體推薦性能優(yōu)于對比模型,證明其結(jié)構(gòu)設(shè)計(jì)是合理有效的.對于個(gè)性化POI 推薦問題,HGNNPR 模型能夠取得較好的推薦效果.
表5 HGNNPR 模型和對比模型在Yelp 數(shù)據(jù)集上的對比實(shí)驗(yàn)結(jié)果Table 5 Experimental results of HGNNPR and other models on Yelp dataset
4.4 消融實(shí)驗(yàn)為了驗(yàn)證HGNNPR 模型結(jié)構(gòu)的有效性,同時(shí)驗(yàn)證用戶的社交偏好、POI 交互偏好以及POI 轉(zhuǎn)移偏好對其推薦性能的影響,設(shè)計(jì)HGNNPR‐P,HGNNPR‐S 和HGNNPR‐T 三組消融模型開展實(shí)驗(yàn).HGNNPR‐P 僅考慮用戶與POI 的標(biāo)號交互二部圖,不考慮用戶的社交關(guān)系圖和POI 的有向轉(zhuǎn)移圖,目的是驗(yàn)證用戶的POI交互偏好對模型性能的影響;HGNNPR‐S 考慮用戶社交關(guān)系圖和用戶與POI 的標(biāo)號交互二部圖,不考慮POI 之間的有向轉(zhuǎn)移圖,目的是驗(yàn)證用戶的POI 轉(zhuǎn)移偏好對模型性能的影響;HGNNPR‐T考慮用戶與POI 的標(biāo)號交互二部圖和POI 之間的有向轉(zhuǎn)移圖,不考慮用戶的社交關(guān)系圖,目的是驗(yàn)證用戶的社交偏好對模型性能的影響.使用MAP 作為推薦性能的評價(jià)指標(biāo),對HGNNPR 與三組消融模型在三個(gè)數(shù)據(jù)集上的推薦效果進(jìn)行對比,實(shí)驗(yàn)結(jié)果如圖5 所示.
由圖可見:(1)HGNNPR 在三個(gè)數(shù)據(jù)集上的MAP 始終大于其他三種消融模型,證明用戶的社交偏好、POI 的交互偏好以及POI 的轉(zhuǎn)移偏好對于個(gè)性化POI 推薦的最終推薦效果都是至關(guān)重要的;(2)三種偏好信息的融合有助于提升個(gè)性化POI 推薦的效果.這是因?yàn)樵跒閭€(gè)體用戶推薦POI時(shí),模型最終的推薦效果會受諸多因素的影響,不能只從單個(gè)方面來對用戶的偏好預(yù)測進(jìn)行建模.所以,個(gè)性化POI 推薦應(yīng)充分利用各種已有的信息,并在已有信息的基礎(chǔ)上嘗試挖掘更多有價(jià)值的信息來進(jìn)一步提升模型的推薦性能.這也是解決個(gè)性化POI 推薦中冷啟動和數(shù)據(jù)稀疏問題的一個(gè)有效方法.
綜上,HGNNPR‐P,HGNNPR‐S 和HGN‐NPR‐T 三組消融模型在三個(gè)數(shù)據(jù)集上的MAP 都低于HGNNPR,證明HGNNPR 的結(jié)構(gòu)設(shè)計(jì)是合理有效的;同時(shí)也進(jìn)一步表明,在進(jìn)行個(gè)性化POI推薦時(shí),綜合考慮用戶的社交偏好、POI 交互偏好以及POI 轉(zhuǎn)移偏好能進(jìn)一步增強(qiáng)模型的推薦性能.
4.5 穩(wěn)定性分析為了評估HGNNPR 模型的穩(wěn)定性,基于其在表3~5 中的推薦結(jié)果,計(jì)算推薦結(jié)果對應(yīng)的標(biāo)準(zhǔn)差,結(jié)果如表6 所示.
表6 HGNNPR 模型在三個(gè)數(shù)據(jù)集上推薦效果的標(biāo)準(zhǔn)差Table 6 Standard deviation of recommended effect of HGNNPR model on three datasets
由表可見,HGNNPR 在Foursquare 上的標(biāo)準(zhǔn)差最大,Gowalla 次之,在Yelp 上的標(biāo)準(zhǔn)差最小.說明HGNNPR 模型在Yelp 上的性能波動幅度最小,模型最穩(wěn)定;在Gowalla 上的性能波動幅度次之,在Foursquare 上的性能波動幅度最大,模型最不穩(wěn)定.結(jié)合三個(gè)數(shù)據(jù)集的數(shù)據(jù)情況(表2)可知,三個(gè)數(shù)據(jù)集中,F(xiàn)oursquare 的用戶數(shù)量、POI 數(shù)量以及用戶簽到數(shù)量都是最少的,而Yelp 的數(shù)據(jù)量是最豐富的,說明數(shù)據(jù)量過少引起的數(shù)據(jù)稀疏問題是導(dǎo)致HGNNPR 模型在三個(gè)數(shù)據(jù)集上標(biāo)準(zhǔn)差分布不一致的主要原因.
針對當(dāng)前POI 推薦研究對用戶POI 的交互偏好以及POI 轉(zhuǎn)移偏好學(xué)習(xí)的不足,本文提出一種基于混合圖神經(jīng)網(wǎng)絡(luò)的個(gè)性化POI 推薦方法HGNNPR.首先構(gòu)建用戶社交網(wǎng)絡(luò)圖、用戶與POI 的標(biāo)號交互二部圖以及POI 轉(zhuǎn)移有向圖,再分別采用圖注意力神經(jīng)網(wǎng)絡(luò)(GAT)、標(biāo)號二部圖神經(jīng)網(wǎng)絡(luò)(SBGNN) 以及會話圖神經(jīng)網(wǎng)絡(luò)(SRGNN)對構(gòu)建的圖數(shù)據(jù)進(jìn)行建模學(xué)習(xí),獲取更加豐富的用戶特征與POI 特征.在三個(gè)公開的POI 推薦數(shù)據(jù)集上進(jìn)行了充分的實(shí)驗(yàn),通過與當(dāng)前最新的POI 推薦模型的性能比較,驗(yàn)證了HGNNPR 模型的有效性與先進(jìn)性.
目前,HGNNPR 模型對POI 推薦的情景信息考慮不足.事實(shí)上,用戶的簽到行為常常受到距離、時(shí)間、交通、天氣等關(guān)鍵情景信息的影響,而HGNNPR 在進(jìn)行個(gè)性化POI 推薦時(shí)缺少對情景信息的考慮.后續(xù)將深入研究把不同的情景構(gòu)建到用戶與POI 的交互圖中,研究并實(shí)現(xiàn)精確的情景感知的POI 推薦.