張松慧,熊漢江
1.武漢軟件工程職業(yè)學(xué)院 計算機學(xué)院,武漢 430205
2.武漢大學(xué) 測繪遙感信息工程國家重點實驗室,武漢 430079
隨著智能移動設(shè)備的飛速發(fā)展和多種定位技術(shù)的出現(xiàn)與融合,人們更容易獲得有關(guān)其位置的信息。這一發(fā)展引發(fā)了基于位置的社交網(wǎng)絡(luò)(LBSN)的出現(xiàn),如Foursquare、Yelp、大眾點評等。與此同時,基于位置社交網(wǎng)絡(luò)的出現(xiàn)也刺激了興趣點(Point-of-Interest,POI)等相關(guān)數(shù)據(jù)的快速積累。Foursquare在2016年宣布,它已經(jīng)在全球范圍內(nèi)收錄了超過1億個興趣點,其中包括關(guān)于這些興趣點的6 億多張照片和8 700 多萬個評論等,而所有這些數(shù)據(jù)都是由5 000 多萬用戶分享的。基于位置的社交網(wǎng)絡(luò)提供如下相關(guān)服務(wù):允許用戶以簽到的方式與其他用戶分享興趣點相關(guān)照片、興趣點的評論等生活經(jīng)歷。上述這些豐富的數(shù)據(jù)對于理解用戶對興趣點的偏好,給用戶推薦個性化的興趣點都提供了良好的機會。與大多數(shù)推薦系統(tǒng)一樣,興趣點推薦對用戶和位置服務(wù)提供商都很重要,因為它不僅可以幫助用戶探索新的或相關(guān)的位置,還可以幫助位置服務(wù)提供商針對特定的興趣點進行精確營銷繼而提高企業(yè)利潤[1]。傳統(tǒng)的興趣點推薦系統(tǒng)將興趣點視為普通項目(例如書籍、電影),可以很方便地使用經(jīng)典協(xié)同過濾(CF)的算法[2]來進行推薦。CF 的主要思想是通過對用戶-項目交互行為進行建模來了解潛在的用戶偏好和項目特征。根據(jù)數(shù)據(jù)的固有特征,推薦模型主要利用顯式(用戶對于項目的明確反饋,例如5星評級)或隱式反饋[3](例如,用戶購買歷史、點擊和瀏覽日志)進行推薦。大多數(shù)傳統(tǒng)的CF 方法都是基于顯式反饋,即用戶給出的項目評級。不同于傳統(tǒng)推薦系統(tǒng),在興趣點推薦系統(tǒng)中,研究人員們更偏好基于隱式反饋(例如,簽到日志等)來預(yù)測用戶對于興趣點的偏好[4]。然而,在基于隱式反饋的推薦場景中,由于只能觀察到正反饋,大多數(shù)研究工作將負(fù)反饋和未知反饋混合在一起作為負(fù)反饋(顯然,將負(fù)反饋和未知反饋分開是十分必要的)[5],因此,基于隱式反饋的個性化興趣點推薦算法更具挑戰(zhàn)性。
為了克服上述挑戰(zhàn),近年來研究人員提出了一些基于隱式反饋的興趣點推薦算法。但是,已有的這些基于隱式反饋的興趣點推薦算法大多存在如下的問題:
(1)由于興趣點推薦可以看作OCCF問題[6]。因此,大多數(shù)傳統(tǒng)興趣點推薦算法簡化了用戶和興趣點之間的隱式交互。換而言之,無論用戶與興趣點簽到多少次,他們都使用二進制來表示用戶是否已簽到興趣點。然而,用戶的簽到頻率反映了用戶對興趣點的偏好程度。用戶在興趣點簽到次數(shù)越多,用戶可能更加偏好此興趣點。顯然,傳統(tǒng)興趣點推薦算法的簡化策略不能幫助推薦算法準(zhǔn)確捕捉用戶對興趣點的偏好[7],這在某種程度上導(dǎo)致了有效信息的丟失。
(2)基于矩陣分解的興趣點推薦算法把簽到頻率數(shù)據(jù)和傳統(tǒng)推薦系統(tǒng)中的評分?jǐn)?shù)據(jù)等同看待,使用高斯分布模型建模用戶的簽到行為。實際上,高斯分布適合建模用戶的評分行為,但是不適合建模用戶的簽到行為。正如文獻[8]所指,泊松分解模型在模擬簽到頻率數(shù)據(jù)方面比傳統(tǒng)的矩陣分解模型更好,也更加符合現(xiàn)實中用戶簽到的實際行為。顯然,綜上所述,高斯分布的使用也會導(dǎo)致有效信息的丟失。
(3)大多數(shù)基于CF 的興趣點推薦模型使用線性交互函數(shù)來模擬用戶潛在特征與興趣點潛在特征之間的交互作用[9-11]。然而,如文獻[12]中所指出的,線性交互函數(shù)的表達(dá)性能過于有限,無法捕捉用戶-項目之間交互的復(fù)雜結(jié)構(gòu)。近年來,深度學(xué)習(xí)通過學(xué)習(xí)一種深層次非線性網(wǎng)絡(luò)結(jié)構(gòu),能夠更加精準(zhǔn)地獲取用戶和項目的深層次特征表示,從而為推薦系統(tǒng)的研究帶來了新的機遇。于是,He等人[12]提出了一個名為NCF的通用框架,它采用多層感知器的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)從交互數(shù)據(jù)中學(xué)習(xí)非線性交互函數(shù),從而有效地捕獲交互之間復(fù)雜作用。然而,NCF受到如下2個限制:(1)NCF中采用的逐點學(xué)習(xí)方法容易受到數(shù)據(jù)稀疏性問題的影響,從而限制了其推薦性能的進一步提高;(2)NCF 也將所有未觀察到用戶-項目間的相互作用標(biāo)記為負(fù)反饋,因此,NCF的負(fù)反饋的數(shù)量較多而正反饋的數(shù)量相對較少,也會造成嚴(yán)重的類不平衡問題[13]。
因此,為了解決以上問題,本文在基于排序的泊松分解模型基礎(chǔ)上融合一種混合神經(jīng)網(wǎng)絡(luò)模型,從而提出了一種個性化興趣點推薦算法,稱為HNNCRPFM。具體而言,HNNCRPFM 算法將基于排序的泊松分解模型與混合神經(jīng)網(wǎng)絡(luò)相結(jié)合提供興趣點推薦服務(wù)。利用一種基于貝葉斯成對排序泊松分解模型建模用戶對于興趣點的簽到,不再將用戶-興趣點簽到頻率矩陣簡化為0/1矩陣,而基于泊松分布模型建模也更加符合用戶實際簽到行為,因此,基于貝葉斯的成對排序標(biāo)準(zhǔn)和泊松分解模型的應(yīng)用避免了有效信息丟失。鑒于神經(jīng)網(wǎng)絡(luò)所提供的強大學(xué)習(xí)能力,提出利用一種混合神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)交互用戶-興趣點之間的潛在特征,從而更加高效地捕捉用戶-興趣點之間的交互作用。最后將上述2 個模型進行融合,得到一個統(tǒng)一的推薦模型來構(gòu)建用戶對興趣點的偏好順序,達(dá)到為每一個用戶定制個性化推薦列表的目的。
本文貢獻如下:
(1)為了捕捉復(fù)雜的相互作用結(jié)構(gòu),本文提出一種基于混合神經(jīng)網(wǎng)絡(luò)的方法來學(xué)習(xí)用戶-興趣點之間復(fù)雜的非線性用戶-興趣點交互關(guān)系,從而發(fā)現(xiàn)更多用戶-興趣點之間隱藏的相關(guān)作用,有效緩解類不平衡問題。
(2)本文采用了一種基于用戶簽到數(shù)據(jù)(隱式反饋數(shù)據(jù))的統(tǒng)一推薦算法框架融合上述混合神經(jīng)網(wǎng)絡(luò)與基于貝葉斯排序的泊松分解模型,從而有效地改善了推薦過程中的數(shù)據(jù)稀疏性問題,同時基于泊松分布的建模相對比基于高斯分布的建模而言,更好地模擬了用戶對于興趣點的簽到行為,避免了有效信息的丟失。
(3)本文基于兩個數(shù)據(jù)集進行了大量實驗。本文的實驗結(jié)果表明,HNNCRPFM 優(yōu)于主流先進的興趣點推薦算法。
本文的工作涉及三個方面的相關(guān)研究工作,即興趣點推薦、神經(jīng)網(wǎng)絡(luò)和排序?qū)W習(xí)。下面本文分三個部分回顧這三個研究領(lǐng)域的最新進展。
傳統(tǒng)的協(xié)同過濾(CF)技術(shù)已被廣泛研究用于POI推薦。Ye 等人基于朋友對于用戶偏好的影響,提出了基于朋友的協(xié)同過濾(FCF)方法用于POI推薦[14]。然后證明時間上下文信息和地理信息對興趣點推薦的推薦結(jié)果有著很深的影響[15-16]。在文獻[17]中,通過考慮POI轉(zhuǎn)換和距離約束的一階馬爾可夫鏈,提出了基于張量的FPMC-LR 模型。Feng 等人[18]將時序信息、個人偏好和地理影響整合到個性化排名度量嵌入模型中,以提高推薦性能。這些工作都是基于傳統(tǒng)的CF模型捕捉用戶和POI之間的交互來構(gòu)建推薦模型。任星怡等人[19]提出了一種用于POI 推薦的上下文感知概率矩陣分解方法。該方法有效整合了文本信息、地理信息、社會信息,分類信息和流行度信息等因素從而提供興趣點服務(wù)。盧露等人[20]則提出一種基于主題模型的興趣點推薦算法,在推薦過程中同時考慮了用戶的偏好分布和興趣點的主題分布,確保當(dāng)用戶面對新的興趣點時,也能獲得較好的推薦結(jié)果。李心茹等人[21]針對興趣點推薦過程中存在的冷啟動問題和數(shù)據(jù)稀疏性問題,提出利用潛在的狄利克雷分配主題模型挖掘用戶的興趣話題,融合簽到數(shù)據(jù)進行相似度度量,解決冷啟動問題。在推薦生成階段提出了一種動態(tài)預(yù)測法,動態(tài)填補缺失的訪問概率,進一步緩解數(shù)據(jù)稀疏性問題。但是在文獻[22]中,Zhao等人提出了一種基于排名的成對張量分解框架,名為STELLAR。STELLAR 結(jié)合了細(xì)粒度的時間背景(即月、工作日/周末和小時)并帶來了顯著的改進。所提出的貝葉斯概率張量因子分解框架,從用戶的隱性反饋中建模用戶對于興趣點的偏好。顯然,具有隱式反饋的推薦系統(tǒng)比具有明確顯式反饋的興趣點推薦系統(tǒng)更實用。因此,最近關(guān)于興趣點推薦的研究方向已經(jīng)轉(zhuǎn)向基于隱式反饋中學(xué)習(xí)用戶的偏好,而不是從顯式反饋推斷用戶的品味。
神經(jīng)網(wǎng)絡(luò)技術(shù)在圖像處理、自然語言理解、語音識別領(lǐng)域取得了巨大成功。許多研究工作都在融合神經(jīng)網(wǎng)絡(luò)與基于CF 的推薦任務(wù),從而更好提高推薦系統(tǒng)的性能。有些研究工作側(cè)重于利用自動編碼器[23-24]或CNN等深度學(xué)習(xí)模型來模擬輔助信息(文本或圖像),以建模潛在用戶或項目特征。典型的方法包括協(xié)同深度學(xué)習(xí)(CDL)[24]和卷積矩陣分解(ConvMF)[25]。前者使用SDAE 來建模文本,而后者則認(rèn)為像SDAE 這樣的詞袋模型存在固有的缺點,轉(zhuǎn)而提出使用CNN來學(xué)習(xí)相關(guān)潛在特征。另外有些研究工作則基于神經(jīng)網(wǎng)絡(luò)直接進行推薦。例如,Gong等人[26]提出了一種基于注意力機制的CNN 推薦系統(tǒng),用于微博中的哈希標(biāo)簽推薦。它將哈希標(biāo)簽推薦視為多類別分類問題。文獻[27]則提出了一種建立在RNN上的非參數(shù)推薦模型。它能夠模擬項目的時間性演變和用戶偏好隨時間的變化。它使用兩個LSTM網(wǎng)絡(luò)作為構(gòu)建塊來模擬動態(tài)用戶狀態(tài)的變化。
個性化推薦系統(tǒng)的大部分研究關(guān)注已轉(zhuǎn)向利用隱式用戶反饋進行推薦。 由于隱式數(shù)據(jù)集提供極其稀疏的單類反饋,因此基于隱式反饋推斷用戶偏好極具挑戰(zhàn)。而本質(zhì)上來說,基于CF 的方法都是基于逐點回歸的理論來預(yù)測用戶的偏好。為了解決這個挑戰(zhàn),現(xiàn)有研究工作大多采用基于成對的方法。
在推薦模型中,最具代表性的基于成對方法的模型是BPR 模型[28]。BPR 的目標(biāo)函數(shù)是最小化隱式用戶反饋引起的項目成對排名損失。本文將BPR模型的擴展分為以下兩個方面進行綜述:(1)多重隱含反饋的BPR。Pan等人[29]通過調(diào)整成對偏好的置信水平來擴展BPR 以適應(yīng)不同的隱式反饋。后來,Qiu 等人[30]研究了輔助反饋與目標(biāo)反饋之間的相關(guān)性,并通過考慮不同隱式反饋的特征提出了一個綜合模型。雖然這對于提高原始BPR模型的性能是有效的,但它們不一定需要異構(gòu)所有的隱式反饋。(2)將BPR模型與神經(jīng)網(wǎng)絡(luò)集成。作為一種混合方法,He等人[31]提出了一種視覺BPR模型,其中CNN 用于提取視覺特征。Ding 等人[32]通過使用CNN 從社交網(wǎng)絡(luò)中提取用戶特征,從而將BPR 與神經(jīng)網(wǎng)絡(luò)結(jié)合起來。
本文提出的HNNCRPFM 算法在如下幾個方面與前人的研究工作[7,33]有很大不同。首先,文獻[7]的工作只是僅僅將BPR模型和泊松分解模型簡單的結(jié)合,通過這種方式,文獻[7]的工作有效緩解了數(shù)據(jù)稀疏性問題。但是,由于BPR模型仍然依賴于簡單的矩陣分解,所以它無法正確捕捉復(fù)雜的潛在用戶-興趣點交互。另外,BPR 模型將所有未知反饋視為負(fù)面反饋,因此文獻[7]仍然無法緩解類不平衡問題。相對比,HNNCRPFM 是一個基于混合神經(jīng)網(wǎng)絡(luò)成對排序的興趣點推薦算法,混合神經(jīng)網(wǎng)絡(luò)具有深層次的非線性網(wǎng)絡(luò)結(jié)構(gòu),具有強大的學(xué)習(xí)數(shù)據(jù)本質(zhì)特征的能力,能夠獲取用戶和興趣點的深層次特征表示。其次,與普遍采用基于多層感知器捕捉非線性交互特征方法[33]不同,本文采用一種混合神經(jīng)網(wǎng)絡(luò)來捕捉深度非線性特征,有效地緩解了類不平衡問題。本文的實驗結(jié)果表明,HNNCRPFM 算法相比現(xiàn)有主流先進興趣點推薦方法而言,展示了更加卓越的性能。
POI 推薦問題是在給定用戶-POI 簽到記錄的情況下給用戶推薦POI。讓U={u1,u2,…,uM}表示一組用戶,其中每個用戶擁有一個位置lj。讓L={l1,l2,…,lM}表示一組POI,其中每個POI擁有一個地理標(biāo)識,這個地理標(biāo)識由<經(jīng)度,緯度>表示。用戶簽到頻率反映了用戶對興趣點的偏好程度。現(xiàn)實中,用戶簽到頻率數(shù)據(jù)是十分稀疏。
正如文獻[34]所指出,泊松分布是更合適作為基于隱式反饋的興趣點推薦建模。如圖1所示,泊松分解模型作為概率模型,假設(shè)用戶簽到興趣點分布服從泊松分布,即期望fij:rij~Poisson(fij),期望矩陣F被分解為用戶潛在因子矩陣UK×M和興趣點潛在因子矩陣LK×N。元素uik∈U和元素ljk∈L假設(shè)服從 Gamma 先驗分布。然后本文得到如下生成過程。
圖1 泊松分解概率圖模型
(1)生成用戶潛在因子:uik~Gamma(αU,βU)。
(2)生成興趣點潛在因子:ljk~Gamma(αL,βL)。
(3)得到rij~Poisson(uikTljk)。
因此,基于期望矩陣F和Gamma 先驗分布應(yīng)用最大后驗(MAP)估計得到如下公式:
其中:
其中,參數(shù)αU,αL和βU,βL為Gamma 分布的形狀參數(shù)和尺度參數(shù),Γ(· )為伽瑪函數(shù)。
基于用戶和興趣點潛在因子的后驗分布,得到如下目標(biāo)函數(shù):
基于隨機梯度下降算法學(xué)習(xí)用戶潛在因子矩陣U和興趣點潛在因子矩陣L,得到如下公式:
如文獻[12]中所指出的,線性函數(shù)的表達(dá)性是有限的,可能不足以捕獲用戶交互的復(fù)雜結(jié)構(gòu),這阻礙了基于排序的泊松分解模型的性能。為了使得泊松分解模型具有更好的捕捉復(fù)雜用戶-興趣點交互結(jié)構(gòu)。本文的動機是通過基于排序的泊松分解模型建模隱式頻率反饋來學(xué)習(xí)用戶偏好和興趣點特征,同時通過一種混合神經(jīng)網(wǎng)絡(luò)對用戶-興趣點交互的復(fù)雜結(jié)構(gòu)進行精準(zhǔn)建模。因此,本文在提出一種基于排序泊松興趣點模型之上融合混合神經(jīng)網(wǎng)絡(luò)的個性化排排序模型,稱為HNNCRPFM。
該模型賦予了基于排序的泊松因子模型具有高水平的非線性捕捉能力。在接下來的部分中,詳細(xì)闡述本文提出的模型。
在本節(jié)中,首先提出了一個基于混合神經(jīng)網(wǎng)絡(luò)的協(xié)同排序模型,如圖2所示。如文獻[12]中所指出的,線性函數(shù)的表達(dá)性是有限的,可能不足以捕獲用戶交互的復(fù)雜結(jié)構(gòu),這阻礙了基于排序的泊松因子模型的性能。因此本文采用非線性函數(shù)——一種新的混合網(wǎng)絡(luò)進行建模。而本文設(shè)計的這種新的混合神經(jīng)網(wǎng)絡(luò)受到廣度和深度學(xué)習(xí)(Wide & Deep Learning)方法思想的啟發(fā)。該方法首次提出是為了給谷歌應(yīng)用商店提供App 推薦[35]。廣度學(xué)習(xí)組件是一個單層感知器,是一個線性模型,具有從歷史數(shù)據(jù)中捕捉直接特征的能力;而深度學(xué)習(xí)組件是MLP,能夠生成一般的表示來捕獲泛化。Guo等人[36]提出了深度分解機(DeepFM)作為廣度和深度學(xué)習(xí)(Wide & Deep Learning)方法思想的典型應(yīng)用。DeepFM 是一個端到端的模型,結(jié)合了因式分解機和MLP。它能夠通過深度神經(jīng)網(wǎng)絡(luò)對高階特征交互進行建模,通過因式分解機對低階特征交互進行建模。因此,設(shè)計思路:首先采用基于神經(jīng)網(wǎng)絡(luò)模型,即一種淺層模型,從而應(yīng)用線性映射來模擬潛在用戶和項目向量的相互作用。同時采用標(biāo)準(zhǔn)MLP來捕獲用戶-項目潛在結(jié)構(gòu)。MLP的多層特性使其能夠?qū)W習(xí)各種級別的用戶項目潛在結(jié)構(gòu),尤其是潛在特征之間的非線性相互作用。而如同本文文獻[12]指出,簡單的連接潛在特征無法準(zhǔn)確捕捉用戶-項目潛在結(jié)構(gòu),于是,在連接的向量上添加了隱藏層。通過將上述兩個模型融合在一起,讓上述兩個模型共享相同的嵌入層,得到了最終本文提出的混合神經(jīng)網(wǎng)絡(luò)。這個混合神經(jīng)網(wǎng)絡(luò)同時具有線性和非線性優(yōu)勢,使得最終的推薦系統(tǒng)提高了推薦的準(zhǔn)確性和多樣性。如圖2 本文的混合神經(jīng)網(wǎng)絡(luò)的協(xié)同排序模型采用如下結(jié)構(gòu)。左邊模塊部分使用神經(jīng)網(wǎng)絡(luò),基于用戶與興趣點潛在向量之間的元素乘積來捕獲相關(guān)特征,右邊模塊部分則利用標(biāo)準(zhǔn)MLP的多層特性來學(xué)習(xí)用戶和興趣點之間的潛在特征。然后,將左右兩個模塊部分進行連接,即讓它們獨立地使用不同的嵌入層,再結(jié)合各自學(xué)習(xí)到的交互函數(shù)的輸出融合在一起。這樣使得應(yīng)用線性映射來模擬潛在用戶和興趣點向量的相互作用,同時應(yīng)用非線性函數(shù)來模擬特征的潛在結(jié)構(gòu)。將它們?nèi)诤显谝黄鹂梢栽黾幽P偷娜萘?,同時防止過度擬合。
圖2 基于混合神經(jīng)網(wǎng)絡(luò)的協(xié)同排序模型體系結(jié)構(gòu)嵌入層
基于混合神經(jīng)網(wǎng)絡(luò)的協(xié)同排序模型的網(wǎng)絡(luò)結(jié)構(gòu)可以分為嵌入層、隱藏層和輸出層三層來描述。
嵌入層是為了把用戶和興趣點都轉(zhuǎn)化到共享的低維潛在特征空間中,獲得每個用戶和每個興趣點的稠密向量表示。形式上就是把從輸入層中得到的(用戶、觀察到的簽到興趣點、未觀察到的興趣點)三元組(u,li,lj),然后轉(zhuǎn)換為三個嵌入向量Uu、Li、Lj。
隱藏層,本文分兩個部分闡述基于混合神經(jīng)網(wǎng)絡(luò)的協(xié)同排序模型的隱藏層,先介紹左邊部分,然后介紹右邊部分。
(1)右邊部分模塊
如圖2,右邊部分的隱藏層是構(gòu)建在嵌入層之上的一組完全連接的網(wǎng)絡(luò)層(如圖2,右邊紅色和藍(lán)色部分所示)。嵌入層中得到的稠密向量串接在一起之后,能夠得到一個代表用戶偏好和興趣點屬性的連接向量,再將這個連接向量輸入隱藏層。隱藏層是使模型具有高度非線性相互作用能力的關(guān)鍵,尤其是最后一層隱藏層的大小,能夠決定模型的能力,稱之為預(yù)測因子。
假設(shè)N表示右邊部分隱藏層的層數(shù),連接向量在隱藏層中一層一層的向前傳播,故可將交互函數(shù)z寫成:
在左邊部分的隱藏層中的具體傳播表示如下:
其中,zc(c=1,2,…,N)表示第c層的映射函數(shù),w和τ分別表示權(quán)重矩陣和偏置向量,δ代表激活函數(shù)。本文選擇使用了ReLu函數(shù)作為隱藏層的激活函數(shù)。在網(wǎng)絡(luò)架構(gòu)方面,本文采用的是與文獻[12]相同的塔式模式?;谶@種結(jié)構(gòu),更高隱藏層能夠為用戶和興趣點學(xué)習(xí)更多的抽象特征。
(2)左邊部分模塊
左邊部分其實是無隱藏層的,建立在嵌入層上面的一層是一個點乘的連接層。假設(shè)這一層的潛在向量是z1,那么將該向量投影到輸出層,得到輸出值xuij,得到如下公式:
其中,⊙是指兩個向量之間相應(yīng)元素之間做乘積。
預(yù)測層是整個基于混合神經(jīng)網(wǎng)絡(luò)的協(xié)同排序模型神經(jīng)網(wǎng)絡(luò)層次的最后一層,它能夠結(jié)合左邊和右邊2個部分的模塊各自學(xué)習(xí)到的交互函數(shù)的輸出,將它們?nèi)诤显谝黄稹nA(yù)測層的輸出結(jié)果就是整個神經(jīng)網(wǎng)絡(luò)的輸出,輸出的預(yù)測值為ruij,表示通過這個模型訓(xùn)練得出的用戶u對興趣點li的偏好勝過對興趣點lj的程度。故整合公式(9)和公式(11),預(yù)測層的輸出值表示如下:
其中,xN-1代表右邊模塊的第N-1 層輸出層。這一層的激活函數(shù)使用sigmoid 函數(shù),因為這樣就可以保證輸出值的范圍在 [0,1] 之間。這兩種左右兩個模塊的學(xué)習(xí)過程是不同的,它們的最優(yōu)嵌入維數(shù)和權(quán)值存在很大的差異。本文通過連接它們的最后一層隱藏層來融合這兩個模型,才使得左邊模塊和右邊模塊的實現(xiàn)獨立嵌入,因此,得到最終的輸出如下公式:
在實際的推薦系統(tǒng)中,用戶和興趣點之間的隱式交互通常以簽到頻率數(shù)據(jù)的形式顯示,這反映了用戶對興趣點的偏好程度。簽到交互次數(shù)越多,則說明用戶越偏好。傳統(tǒng)興趣點推薦模型通常將隱式頻率反饋簡化為二進制反饋,這在某種程度上導(dǎo)致信息丟失。泊松分解模型[34]用泊松似然代替概率矩陣分解中的常用高斯似然,這保證了潛在因子的非負(fù)性。此外,如文獻[34]中所指出的,泊松分解模型適用于對頻率數(shù)據(jù)建模,其顯示與隱式反饋交互類似的屬性。因此,在本文中采用泊松分解模型來建模用戶的簽到交互行為,并從隱式頻率反饋中學(xué)習(xí)潛在的用戶特征和興趣點特征。
如同文獻[7],基于貝葉斯排序的泊松分解興趣點推薦模型結(jié)合了泊松分解模型和貝葉斯個性化排序,采用成對學(xué)習(xí)方法來學(xué)習(xí)用戶對于興趣點之間的偏好排名。具體來說,本文假設(shè)用戶對興趣點的偏好隨著簽到交互次數(shù)的增加而增加。該假設(shè)意味著三個方面:(1)觀察興趣點的偏好排名高于沒有觀察到的興趣點偏好排名;(2)如果觀察到兩個興趣點,則用戶更偏好基于其簽到交互次數(shù)較多的興趣點而不是簽到交互次數(shù)較少的興趣點;(3)對于兩個沒有觀察到的興趣點,本文無法推斷出用戶對它們的偏好順序。設(shè)rui表示用戶u和興趣點li之間的交互次數(shù),ruj表示用戶u和興趣點lj之間的交互次數(shù)。如果rui>0 和ruj= 0,則用戶u更喜歡興趣點li超過興趣點lj;即li?ulj,其中?u表示用戶u和興趣點li和lj之間的偏好關(guān)系。如果rui-ruj≥?和ruj>0,則li?ulj,其中?表示閾值參數(shù)。換句話說,如果rui和ruj之間的差異超過閾值?,本文就假設(shè)用戶對于li的偏好勝過對于興趣點lj的偏好。形式上,訓(xùn)練集DL(即三元組(u,li,lj))定義如下:
給定用戶u和興趣點li?ulj之間的偏好關(guān)系,本文最大化后驗概率Pr(Ω|?u)來學(xué)習(xí)潛在用戶和興趣點特征。Ω表示模型參數(shù);假定所有用戶彼此獨立,并且還假設(shè)特定用戶的一個(用戶,興趣點)對的偏好排名獨立于其他(用戶,興趣點)對的排名。 同時,基于偏好關(guān)系的總體性和反對稱性,得到所有用戶的似然函數(shù),如下:
其中A(x)是指示函數(shù)。假設(shè)Pr(li?ulj|Ω)表示用戶u更喜歡興趣點li超過興趣點lj的概率,則得到如下公式:
其中ρ(· )是邏輯sigmoid函數(shù)。(Ω)是模型參數(shù)的實數(shù)值函數(shù),捕獲用戶u,興趣點li和興趣點lj之間的關(guān)系,定義如下:
因此,假定潛在用戶和興趣點特征向量的服從Gamma先驗分布,根據(jù)公式(1)~(4),得到如下公式:
因此,根據(jù)公式(5),最大化后驗概率的對數(shù),最終得到基于排序的泊松興趣點模型的目標(biāo)函數(shù)如下:
文獻[11]指出預(yù)測分?jǐn)?shù)反映了用戶對興趣點的偏好。 圖3 是HNNCRPFM 模型架構(gòu)。因此,基于公式(13),在獲得基于正反饋(用戶,興趣點)對和負(fù)反饋(用戶,興趣點)對的預(yù)測分?jǐn)?shù)(即,和)實數(shù)值函數(shù),即根據(jù)公式(13)得到:
圖3 HNNCRPFM模型架構(gòu)
本文用泊松分布初始化用戶嵌入矩陣U和興趣點嵌入矩陣L,泊松分布由參數(shù)αk和參數(shù)βk參數(shù)化。在訓(xùn)練階段,根據(jù)訓(xùn)練集DL的構(gòu)造規(guī)則,本文在每次迭代中統(tǒng)一采樣三元組(u,li,lj)并控制每個正例的負(fù)反饋數(shù)量。在對這些采樣的三元組進行混洗后,將一批三元組輸入到本文的神經(jīng)個性化排序模型中。對于優(yōu)化算法,本文采用Adam[37]來更新梯度。
本文提出的推薦算法計算主要消耗涉及兩個部分:基于排序的泊松分布和混合神經(jīng)協(xié)同排序模型。
根據(jù)文獻[8,28],基于排序泊松分解過程中學(xué)習(xí)潛在特征向量的計算耗費在于更新目標(biāo)函數(shù)的時間復(fù)雜度為O(ζ?ι??),其中,ζ,ι分別是正采樣和負(fù)采樣的數(shù)量,?是潛在向量的維度。同時,計算一個元組的得分消耗是O(?)。由于非零觀察項的數(shù)量非常稀少,學(xué)習(xí)潛在因子的計算耗費相對于樣本數(shù)量而言是快速和線性的。因此,每次迭代更新潛在因子的計算耗費為O(ζ?ι??)。
對于混合神經(jīng)網(wǎng)絡(luò)協(xié)同排序模型而言,文獻[33]中基于多層感知器(MLP)作為一種學(xué)習(xí)非線性用戶-項目交互關(guān)系的經(jīng)典神經(jīng)網(wǎng)絡(luò),根據(jù)文獻[12]的分析,所提出基于MLP 網(wǎng)絡(luò)的NRPFM 模型的時間復(fù)雜度為T(n)=n2。而文獻[38]中,提出基于多個疊加的神經(jīng)網(wǎng)絡(luò)的隱式反饋個性化成對排序模型,其時間復(fù)雜度也為T(n)=n2。而在本文所提出的混合神經(jīng)網(wǎng)絡(luò)協(xié)同排序模型中,MLP 只是本文所提出的混合神經(jīng)網(wǎng)絡(luò)協(xié)同排序模型的一部分,在混合神經(jīng)網(wǎng)絡(luò)協(xié)同排序模型訓(xùn)練過程中,為了優(yōu)化模型,需要對所有的數(shù)據(jù)集訓(xùn)練ν次,在每一次訓(xùn)練過程中,都要進入隱藏層進行循環(huán)ξ次。則訓(xùn)練過程中的時間復(fù)雜度為T(n)=ξ×ν=n2。除了上述步驟,本文提出的模型,還需要對用戶未觀察到的興趣點的預(yù)測分?jǐn)?shù)進行逐一比較,這里需要循環(huán)的次數(shù)為每個用戶未觀察到的項目的數(shù)量,最終本文提出的混合神經(jīng)網(wǎng)絡(luò)協(xié)同排序模型的時間復(fù)雜度為T(n)=n3。這也與本文的模型的結(jié)構(gòu)嵌入層、隱藏層和預(yù)測層相符合。
本文使用兩個公開數(shù)據(jù)集Foursquare①http://www.ntu.edu.sg/home/gaocong/datacode.htm和Gowalla①來評估本文提出推薦算法的性能。Foursquare(https://foursquare.com/)和Gowalla(http://gowalla.com/)是兩個受歡迎的基于位置的社交網(wǎng)絡(luò)(LBSN)。在Foursquare和Gowalla中,用戶在興趣點(例如,餐館、旅游景點和商店)的簽到方面呈現(xiàn)他們的偏好。換句話說,用戶通過簽到與興趣點交互,在某種程度上簽到的次數(shù)表示用戶對興趣點的偏好程度。
在Foursquare 數(shù)據(jù)集中,所有簽到都是在2010 年8月至2011年7月在新加坡內(nèi)進行的。Gowalla數(shù)據(jù)集的簽到都是在2009年2月至2010年10月在美國加利福尼亞州和內(nèi)華達(dá)州內(nèi)進行。在這兩個數(shù)據(jù)集中,在少于5個位置簽到已被刪除,一個用戶應(yīng)該至少訪問5個不同的興趣點。Foursquare 數(shù)據(jù)集包含來自2 321 個用戶的5 596個位置的194 108個簽到。Gowalla數(shù)據(jù)集包括來自5 000 個用戶的23 997 個位置的242 172 個簽到。Foursquare和Gowalla數(shù)據(jù)集的稀疏度分別為99.18%和99.86%。顯然,F(xiàn)oursquare 和Gowalla 數(shù)據(jù)集都非常稀疏。在Foursquare 數(shù)據(jù)集中,每個用戶平均簽到45.57個位置。在Gowalla,每個用戶平均簽到了32.13 個位置。Foursquare和Gowalla的具體統(tǒng)計數(shù)據(jù)如表1。
表1 Foursquare和Gowalla數(shù)據(jù)集的統(tǒng)計
本文使用兩個廣泛使用的排序度量來評估不同推薦算法的性能,即precisionu@m和recallu@m,其中m是排名推薦列表的長度。 給定用戶u,準(zhǔn)確度和召回率定義如下:
其中,是用戶的top-k推薦興趣點列表,而是用戶u在測試集中的訪問興趣點列表。整個推薦算法的最終準(zhǔn)確度和召回率分別通過對所有用戶的準(zhǔn)確度和召回值進行平均來計算。對于這兩個指標(biāo),本文設(shè)置m=3、5、10來評估本文實驗中的性能。
為了證明本文所提出模型的有效性,本文與以下幾個主流POI推薦方法進行比較。
(1)用于隱式反饋的傳統(tǒng)推薦算法
WRMF[3]:加權(quán)正則化矩陣分解,通過基于矩陣分解模型將不同的權(quán)值分配為觀察到的和未觀察到的簽到,然后最小化平方誤差損失。
BPRMF[28]:貝葉斯個性化排序,它采用BPR的標(biāo)準(zhǔn)來優(yōu)化了觀察和未觀察POI的偏好排序,采用逐對的方法來處理OCCF問題。
Rank-PFM[7]:一種基于BPR的泊松矩陣分解POI推薦方法。該方法使用泊松分布建模用戶簽到行為,用BPR標(biāo)準(zhǔn)優(yōu)化泊松矩陣分解的損失函數(shù)。
(2)基于神經(jīng)網(wǎng)絡(luò)的推薦算法
NeuMF[12]:NeuMF是利用深度神經(jīng)網(wǎng)絡(luò)基于隱式反饋的推薦算法,它在一個統(tǒng)一的框架中融合了廣義矩陣分解和多層感知器從而學(xué)習(xí)潛在特征,可以同時模擬潛在用戶特征和潛在項目特征之間的線性和非線性相互作用。
NRPFM[33]:用于具有隱式頻率反饋的協(xié)同過濾的神經(jīng)個性化排序模型,其將基于排序的泊松因子模型與MLP集成。
為了進行公平的比較,在本文的實驗中,根據(jù)相關(guān)文獻的參考設(shè)定每種方法的最優(yōu)參數(shù),從而保證每種方法都可以實現(xiàn)最佳性能。同時,采用統(tǒng)一的采樣策略來對用戶興趣點對進行采樣以進行模型訓(xùn)練。隱藏層作為模型中體現(xiàn)高度非線性相互作用能力的關(guān)鍵,尤其是最后一層隱藏層的大小,能夠決定模型的能力。增加隱藏層數(shù)可以降低網(wǎng)絡(luò)誤差,提高最終的精度,但也使神經(jīng)網(wǎng)絡(luò)復(fù)雜化,從而增加了網(wǎng)絡(luò)的訓(xùn)練時間和出現(xiàn)“過擬合”的傾向。需要根據(jù)不同的需求以及場景進行調(diào)整,對于不同模型而言,隱藏層的設(shè)置也不同。因此,結(jié)合文獻[12,33]中對應(yīng)隱藏層的設(shè)置和本文5.6.1小節(jié)的實驗結(jié)果。對于BPR,λθ=0.001,對于WRMF 中,λ=0.001,α=1。對于NeuMF,本文采用具有三個隱藏層的神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),其中每個隱藏層的大小為(32,16,8)。用戶和興趣點的嵌入大小等于第一個隱藏層的大小,即32。梯度下降超參數(shù)學(xué)習(xí)率和正則化參數(shù)分別設(shè)定為0.001 和0.001。對于Rank-PFM:αk=1,βk=0.2,k=1,2,…,10。Foursquare上λg=0.1,Gowalla上λg=0.3。對于NRPFM,本文初始化模型參數(shù),αk=2,βk=0.2。其中,依然將隱藏層的數(shù)量設(shè)置為3,將每個隱藏層的大小設(shè)置為(32,16,8)。同時,本文將每個正實例的負(fù)樣本數(shù)設(shè)置為8,?=2,并采用批量大小為256的Adam作為優(yōu)化器。對于HNNCRPFM,批量大小設(shè)置為256,學(xué)習(xí)率設(shè)置為0.005,也選擇Adam算法來進行優(yōu)化。采用負(fù)采樣率為1 進行實驗,即對每個正實例采樣一個負(fù)實例。在HNNCRPFM模型的右邊模塊部分中,使用四個隱藏層的神經(jīng)網(wǎng)絡(luò),四個隱藏層都使用ReLu 函數(shù)作為激活函數(shù)。在本次實驗中,在右邊模塊部分中隱藏層的結(jié)構(gòu)是(128,64,32,16)。對于本文中的泊松分解模型,本文使用Gamma分布初始化模型參數(shù),αk=2,βk=0.2,F(xiàn)oursquare上λg=0.1,Gowalla上λg=0.3。對于本文模型的優(yōu)化過程中使用Dropout 技術(shù),其中Dropout 概率設(shè)置為0.5。本文提出的模型是在配置Nvidia GeForce GTX 1080 Ti 顯卡的機器上運行PyTorch 實現(xiàn)。實驗中,隨機選擇數(shù)據(jù)集的20%作為測試數(shù)據(jù)集,其余80%的數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù)集。本文進行5次數(shù)據(jù)分割,并在每個數(shù)據(jù)集的測試集上報告平均結(jié)果。類似的數(shù)據(jù)分區(qū)方法已被用于以前的工作[11],以驗證推薦的性能。
從圖4和圖5中,本文得到如下觀察結(jié)論:
首先,所提出的HNNCRPFM 模型在所有指標(biāo)中的在兩個數(shù)據(jù)集上比相關(guān)主流先進的POI 推薦算法表現(xiàn)的明顯更好。具體而言,HNNCRPFM 顯著優(yōu)于傳統(tǒng)的方法WRMF、BPRMF 和Rank-PFM。對比這兩種基于神經(jīng)網(wǎng)絡(luò)的方法(即NeuMF 和NRPFM),HNNCRPFM在Foursquare和Gowalla數(shù)據(jù)集也是性能領(lǐng)先的。這證明了本文提出模型中混合神經(jīng)網(wǎng)絡(luò)的有效性。在捕獲非線性用戶-興趣點交互關(guān)系時,將基于排序神經(jīng)網(wǎng)絡(luò)排序的泊松模型和基于混合神經(jīng)網(wǎng)絡(luò)模型進行整合學(xué)習(xí)用戶對興趣點的偏好的排序模型,能夠有效提高推薦性能。原因如下:(1)混合神經(jīng)網(wǎng)絡(luò)中,左邊模塊應(yīng)用線性網(wǎng)絡(luò)映射來模擬潛在用戶和項目向量的相互作用,右邊模塊應(yīng)用非線性的神經(jīng)網(wǎng)絡(luò)來模擬特征的潛在結(jié)構(gòu),通過將它們?nèi)诤显谝黄?,可以同時獲得在線性和非線性捕捉能力的優(yōu)勢;(2)允許左右2 個模塊學(xué)習(xí)單獨的嵌入,保證最佳嵌入維數(shù)和相關(guān)權(quán)重,然后通過連接它們的最后一個隱藏層來融合這兩個模型,使得最終的預(yù)測能力得到了提高;(3)混合神經(jīng)網(wǎng)絡(luò)的左邊模塊是一個僅具有限制能力的淺層學(xué)習(xí)模型,而右邊模塊是一個存在過度擬合風(fēng)險的深層學(xué)習(xí)模型,將它們?nèi)诤显谝黄鹂梢栽黾幽P偷娜萘?,同時防止過度擬合。
圖4 基于Foursquare數(shù)據(jù)集的性能對比
圖5 基于Gowalla數(shù)據(jù)集的性能對比
其次,BPR 在兩個數(shù)據(jù)集上性能最差,因為BPR 仍然依賴于簡單的矩陣分解,所以它無法正確獲得復(fù)雜的潛在用戶/項目表示。另外,如何區(qū)分負(fù)面反饋和未知數(shù),并沒有太多關(guān)注;BPR 將所有未知因素視為負(fù)面反饋。此外,在本文實驗中,對于BPR模型采用均勻采樣的策略采樣用戶-興趣點對訓(xùn)練模型而不是采用單獨的采樣策略。這樣的結(jié)論在相關(guān)工作[13]中也觀察到了相同的現(xiàn)象。相比而言,WRMF與BPR性能相當(dāng),一個可能的解釋就是WRMF通過給樣本正例和樣本負(fù)例賦值合適的權(quán)重,同時逐點的方式可能恰好擬合該數(shù)據(jù)集中的相關(guān)數(shù)據(jù)分布,但是由于WRMF 無法很好地緩解數(shù)據(jù)稀疏性問題,而使得其性能依然無法大幅超越BPR。Rank-PFM性能優(yōu)于WRMF和BPR,該結(jié)果表明泊松分解模型比矩陣分解模型更適合于用于隱式頻率反饋的建模,同時也更適合建模用戶的簽到行為,同時將BPR標(biāo)準(zhǔn)與泊松矩陣分解相結(jié)合,利用BPR標(biāo)準(zhǔn)來優(yōu)化了泊松矩陣分解的損失函數(shù),利用未觀察到的數(shù)據(jù)來學(xué)習(xí)參數(shù)可以有效減輕數(shù)據(jù)稀疏性問題,最終更加準(zhǔn)確建模用戶隱式反饋信息,取得了不錯的性能。
第三,基于神經(jīng)網(wǎng)絡(luò)的2 種方法NeuMF 和NRPFM明顯優(yōu)于上述3 種傳統(tǒng)方法。這表明非線性提取隱藏的高級特征的對于提升推薦性能的巨大幫助。而NeuMF和NRPFM性能落后于本文所提出的模型,這恰好說明了本文融合了線性的網(wǎng)絡(luò)層和非線性MLP的混合神經(jīng)網(wǎng)絡(luò)具有很高的特征捕捉能力。
總之,實驗結(jié)果表明,所提出的HNNCRPFM 模型可以成功地學(xué)習(xí)用戶對于興趣點的偏好,從而導(dǎo)致POI推薦的具有優(yōu)越的推薦性能。
5.6.1 混合神經(jīng)網(wǎng)絡(luò)層次的影響
在本文提出的方法中,本文使用混合神經(jīng)網(wǎng)絡(luò)從用戶的隱式反饋中學(xué)習(xí)用戶和興趣點特征向量之間的非線性交互。神經(jīng)網(wǎng)絡(luò)的深度是影響神經(jīng)網(wǎng)絡(luò)表達(dá)能力的重要因素。在本節(jié)中,本文進行了一組實驗來研究神經(jīng)網(wǎng)絡(luò)深度對推薦質(zhì)量的影響。本文將最后一個隱藏層的大小固定為8,并將神經(jīng)網(wǎng)絡(luò)的深度從0改為5。例如,如果神經(jīng)網(wǎng)絡(luò)的深度為4,則神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)為8→16→32→64,用戶和興趣點的嵌入大小為64。其他參數(shù)保持與5.4節(jié)中描述的相同的設(shè)置。本文僅在圖6中呈現(xiàn)在Foursquare 數(shù)據(jù)集上實驗結(jié)果,而在Gowalla 數(shù)據(jù)集上的實驗結(jié)果顯示出類似的趨勢。
圖6 基于不同層次的性能對比
HNNCRPFM-n表示具有n隱藏層的HNNCRPFM模型。從圖6 可以看出,雖然HNNCRPFM-2 只有比HNNCRPFM-1 多一個隱藏層,但它的性能好于HNNCRPFM-1。在Foursquare數(shù)據(jù)集上,當(dāng)層數(shù)小于3時,增加隱藏層的數(shù)量會帶來更好的性能;當(dāng)本文使用具有超過3 個以上隱藏層的HNNCRPFM 時,性能不會提高。該結(jié)果表明簡單地連接潛在載體不足以捕獲潛在因子之間的相互作用。另外可能的原因是更深的神經(jīng)網(wǎng)絡(luò)使得HNNCRPFM具有更多可訓(xùn)練的參數(shù),這些參數(shù)在訓(xùn)練數(shù)據(jù)有限的情況下相對難以學(xué)習(xí),導(dǎo)致推薦性能的下降。
5.6.2 參數(shù) αk 和 βk 的影響
在本文提出的方法中,參數(shù)αk和βk用于初始化用戶嵌入矩陣和興趣點嵌入矩陣。固定βk=0.2,通過改變的值αk從1到5,觀察HNNCRPFM模型的性能變化;同時給定αk=2,改變βk值從0.1到0.5,觀察HNNCRPFM模型的性能變化。HNNCRPFM 基于Foursquare 數(shù)據(jù)集,不同αk和βk的結(jié)果分別展示在圖7和圖8。
圖7 αk 的影響
圖8 βk 的影響
可以看到,αk和βk都顯著影響了本文提出的推薦模型的性能。具有固定值2 的αk的情況下,當(dāng)βk約為0.2時,HNNCRPFM表現(xiàn)最佳,進一步減小或增加βk的值導(dǎo)致更差的性能。在將βk的值固定為0.2的情況下,HNNCRPFM 顯示出類似的趨勢;即,當(dāng)αk超過某個閾值時,所有評估指標(biāo)首先開始提升然后開始下降。該觀察結(jié)果表明HNNCRPFM 對用戶嵌入矩陣和興趣點嵌入矩陣的初始化也很敏感,過大或者過小的αk和βk都會影響最終的推薦性能。
在本文中,本文提出了一個基于混合神經(jīng)網(wǎng)絡(luò)與基于排序泊松分解模型結(jié)合的興趣點推薦模型,名為HNNCRPFM。HNNCRPFM 首先通過基于貝葉斯技術(shù)和泊松分解模型結(jié)合構(gòu)建一個基于排序的泊松分解模型來建模用戶對于興趣點的偏好,與此同時,提出了一種基于混合神經(jīng)網(wǎng)絡(luò)的協(xié)同排序算法來進一步擴展上述排序?qū)W習(xí),然后基于統(tǒng)一推薦模型將上述2種算法融合提供推薦服務(wù)。該算法針對隱式反饋數(shù)據(jù),改善了上述基于排序泊松分解模型中的相關(guān)方法,緩解了類不平衡和數(shù)據(jù)稀疏性問題,避免了有效信息的丟失;并且通過結(jié)合點積網(wǎng)絡(luò)層和神經(jīng)網(wǎng)絡(luò)中的多層感知器兩種結(jié)構(gòu)來學(xué)習(xí)用戶與興趣點的交互。兩個真實世界數(shù)據(jù)集的實驗結(jié)果表明,所提出的HNNCRPFM在準(zhǔn)確率和召回率方面優(yōu)于現(xiàn)有的先進主流興趣點推薦模型。作為未來的工作,本文計劃將相關(guān)注意機制引入HNNCRPFM以獲得更好的推薦準(zhǔn)確性。