肖 述,張 ?,周文榮
(1.湖北大學 計算機與信息工程學院,湖北 武漢 430062; (2.湖北大學 信息化建設與管理處,湖北 武漢 430062)
近年來,作為基于位置社交網絡中重要的服務之一,地點推薦吸引了研究人員在該領域展開了許多研究工作[1,2]。而將張量分解技術應用到地點推薦研究領域是近幾年地點推薦系統研究領域中眾多研究人員關注的焦點問題之一。但是它依然極具挑戰:
(1)傳統張量分解基于點積運算實現推薦結果的預測,無法捕獲用戶-項目間的非線性交互[3],同時傳統張量分解技術假定兩個連續時隙之間是相互獨立,使得無法基于下一個時隙進行預測[4];
(2)傳統隨機均勻采樣的方法獲得的負樣本可能并不屬于模型訓練中的“關鍵”負樣本,無法精確體現用戶的真實偏好,可能會降低推薦的性能和增加訓練的復雜度[5]。
為了解決上述問題,本文提出一種地點推薦算法(hybrid deep tensor factorization-generative adversarial networks,HDTF-GAN)。該算法利用長短期記憶網絡學習用戶簽到的時空序列特征,然后通過使用多層感知機來實現張量分解中的點積運算來建模用戶的簽到行為。同時,本文引入生成對抗網絡(generative adversarial networks,GAN),通過生成器和推薦判別器的對抗訓練,以對抗方式學習的方式優化上述基于用戶時空簽到序列信息生成的用戶偏好,最終得到最佳用戶偏好。
地點推薦算法大多基于歷史簽到序列的空間、時間信息來預測用戶下一個可能簽到的地點。在簽到序列建模中,文獻[6]中介紹了利用個性化的馬爾可夫鏈和局部區域約束建模簽到序列時空信息,而文獻[7]提出的模型基于個性化排名指標嵌入整合了地理影響力和時空影響,以提高推薦效果。為了模擬用戶-項目交互中的其它相關因素影響,Zhao等將矩陣分解分解擴展為利用張量分解技術處理生成的張量數據,提出在成對排序張量因式分解框架之上實現用戶-地點、地點-時間和地點-地點互相交互的細粒度建模,從而提供高效的地點推薦服務[8]。
最近,基于深度神經網絡的方法不僅已成功地應用于地點推薦中的時空序列特征信息建模。Chen等[9]基于長短期記憶網絡(long short-term memory,LSTM)則試圖通過專門設計的門控機制基于時空序列模式來捕獲序列的相關時空特征。Xi等[10]提出利用雙向的全局空間和局部時間信息獲取復雜的用戶-地點-時空序列之間的依賴關系。然后,結合用戶和地點信息輸入到一個多層深度神經網絡中捕捉用戶對于地點的動態偏好。文獻[11]則采用Good-fellow等提出的GAN思想來緩解基于協同過濾算法進行推薦中的數據稀疏性問題實現相關數據增強,取得了不錯的推薦性能提升。
如圖1所示,首先進行基于用戶時空簽到序列模式的地點推薦問題形式化描述,然后將長短期記憶網絡(LSTM)和張量因子分解模型的結合。其中LSTM用來進行時間序列的學習,以此來捕獲其多維交互的相關性。同時本文所提出的與采用傳統張量分解的點積形式來進行評分的預測不同,而是將內在因素(用戶、地點與時空序列)連接到一起并輸入到多層感知機(multi-layer perceptron,MLP)架構中,以此來學習點積無法學習到的不同維度間非線性交互。然后采用GAN網絡來優化學習到用戶潛在偏好,直至學習到最優用戶潛在偏好。

圖1 HDTF-GAN的算法框架

如圖2所示,為了捕獲復雜的時間動態,本文利用LSTM對時間的交互演化進行建模,采用生成的嵌入向量作為輸入。同時,為了捕獲多維交互的非線性關系,本文構建用戶-地點-時空的三維張量,將投影的時空嵌入向量與用戶和地點的嵌入向量一起輸入多層神經結構之中,便能使得本文提出的方法能夠將從時空維度中學習到的復雜依賴關系作為約束合并到張量因子分解過程中。這樣就可以在MLP框架中實現用戶-地點-時空-序列潛在因子的非線性組合建模,從而基于張量分解技術進行更好的預測。最后,得到的潛在向量將被映射到ei,j,o。
首先,為了捕獲時間平滑度,本文假設時間維度的嵌入向量取決于來自先前η個時隙的嵌入向量。本文使用LSTM網絡基于過去時隙的嵌入向量來預測當前時隙中的嵌入向量。因此,LSTM通過生成嵌入向量對不斷演變的時間隱藏因子進行編碼。因此,本文將LSTM更新給定時間t處的輸入xt具有固定大小的維度,每個時間的隱藏狀態ht和ct的表示整合為如下公式
[h1,c1]=LSTM(To-s,c0,h0)
(1)
……
[hs-1,cs-1]=LSTM(To-1,cs-2,hs-2)
(2)

(3)
其中,WT是投影矩陣,bT是投影偏置項,σ(·) 是sigmoid函數。

圖2 基于混合神經網絡的深度張量分解模型
接著,本文構造帶有時間維度的張量e∈RI×J×O, 每個維度為一階張量,其大小分別為I,J和O, 張量e中的條目表示為ei,j,o, 這代表分別由i,j和o索引的不同維度之間的相互作用。ei,j,o表示為第i個用戶在第o個時隙中的基于第j個地點的簽到頻率。因此,張量因子分解模型將張量e分解為3個不同的矩陣U,L,T, 其中dλ表示潛在因子的數量,得到如下
(4)


(5)
……
Zω=?ω(Wω×Zω-1+bω)
(6)
因此,得到如下張量的表示
(7)
其中,ω表示隱藏層的數量。對于Zω層而言, ?ω、Wω和bω分別代表MLP的第ω層的激活函數(例如ReLU函數)、權重矩陣和偏差向量。
因此,目標函數如下
(8)
其中,Γ表示在張量e中觀察到的相互作用的集合。通過最小化觀察到的交互用戶數據Ui和因子分解表示的上述損失函數來進行上述模型的學習,從而達到最優。最終基于因子內積用戶表示為
ul=Ui⊙Zt
(9)
其中,ul是對于基于所有地點的用戶最終偏好。
本節采用兩個模型,推薦生成器和推薦判別器,目的在于通過對抗訓練,推薦生成器和推薦判別器將用戶對于地點的偏好表示調整為有利于最終地點推薦的最佳向量,以便實現更加精準的地點推薦。
2.3.1 推薦生成器與推薦判別器
推薦生成器:由ξ參數化的Rξ(lR|ul) 給用戶ul的推薦列表。推薦生成器Rξ主要盡可能生成接近用戶偏好的真實值,換句話而言,推薦生成器盡可能生成趨近用戶偏好的真實分布。
推薦判別器:由μ參數化的Dμ(ul,lR) 用于區分是否與用戶ul的真實偏好一致。對于給定的用戶ul,Dμ(ul,lR) 的目標是區分在Rξ上的用戶真實偏好。
目標函數:根據文獻[12]提出利用GAN的思想實現優化。因此,推薦生成器基于采樣策略,利用如圖1中特征學習與建模階段得到的用戶偏好表示盡可能生成真實的用戶偏好分布,以便混淆推薦判別器。推薦判別器試圖在真實用戶偏好和由推薦生成器生成的用戶偏好之間進行最佳區分,達到改善生成器生成的用戶偏好的目的。一旦在2者對抗訓練學習過程中,基于極小極大游戲迭代優化達到平衡,則推薦生成器輸出最終最優用戶的偏好表示,推薦判別器無法進一步區分。最終,Rξ(L|ul) 為用戶ul的推薦列表。在形式上,本文在推薦生成器Rξ和推薦判別器Dμ之間交替訓練以下全局目標實現上述目標

(10)
其中,l+為積極的正反饋樣本。并且推薦判別器Dμ(ul,lR) 估計用戶ul簽到lR的概率。本文使用sigmoid函數γ(Dμ(ul,lR)) 作為判別得分。
2.3.2 GAN訓練
推薦判別器訓練:推薦判別器Dμ的是通過如下公式最大化來找到最佳參數μ*, 從而達到最大化區分真實用戶偏好的目的

(11)
其中,lR~Rξ*(lR|ul) 是當前最優用戶偏好,而l+~lul是正反饋的樣本。Dμ(ul,lR) 也可以被認為是Rξ為推薦的地點LR進行精準推薦的概率。由于函數Dμ(·) 是關于參數μ可微分的,上述公式可以通過隨機梯度下降來優化。
推薦生成器訓練:推薦生成器Rξ選擇用戶ul的最終推薦列表R, 實現學習到用戶最優偏好的目的。具體來說,給定式(11),固定當前Dμ, 最小化以下目標從而找到最優參數ξ*實現推薦生成器最終輸出用戶最佳偏好表示的目的與文獻[12]一樣,本文也使用基于策略梯度的強化學習來推導梯度實現最終的優化。

(12)
實驗采用Foursquare數據集[6]和Gowalla數據集[6],見表1。在Foursquare數據集中,本文選擇那些多于10條簽到記錄的用戶和10條簽到記錄的地點。在Gowalla數據集中,本文則選擇那些多于10條簽到記錄的用戶和15條簽到記錄的地點。

表1 Foursquare和Gowalla數據集
本文采用了文獻[6]中提出的準確率、召回率和歸一化折損累積增益作為評估指標。假設R(u′) 為算法給出的推薦列表,A(u′) 為用戶在測試集上的行為列表。那么召回率計算公式如下
(13)
準確率計算公式如下
(14)
其中,Uu表示用戶數量,u′表示一個具體的用戶,N是推薦列表的數量,在實驗中N分別取值5,10,20。
對于目標用戶u, 其推薦列表排在位置vorder的地點的歸一化折損累積增益(nDCG)值計算公式
(15)
其中,Yu表示用戶u的最大DCG的值。其中,reli表示第i個地點與用戶的相關度,reli為1表示相關,否則reli=0。 對于推薦列表的長度vorder, 本文實驗設置vorder=5,10。
首先進行時序建模方法的對比實驗,驗證本文提出的基于深度神經網絡的張量分解方法建模基于時序信息的用戶簽到過程的有效性。然后,將提出的HDTF-GAN算法與幾個基準推薦算法進行比較。最后,本文討論了相關參數對于HDTT-GAN算法的影響,從而驗證了本文提出算法的魯棒性。
首先,選擇5個主流先進的時空序列建模方法進行對比:
Caser:文獻[13]中提出的基于時空序列建模轉換為基于CNN模型進行圖像局部特征學習的一種建模方法。
ST-RNN:文獻[14]中提出的基于RNN模型的最新地點推薦模型,該模型基于RNN模型建模,考慮了有關簽到之間的時間間隔與地理距離的影響。
FPMC+LR:文獻[6]中介紹的基于一階馬爾科夫鏈模型用來建模時空序列,假設用戶的未來簽到地點與最近一次簽到地點之間關系緊密。
Fossil:文獻[15]提出的基于一種高階馬爾科夫鏈模型建模時空序列的模型。
Spatial-HDTF:此方法是基于HDTF-GAN模型去除對抗生成網絡,只包含基于深度神經網絡的部分進行時序建模。
其次,選擇5個主流先進的地點推薦算法進行對比:
GeoTeaser:文獻[16]提出一種基于word2vec框架利用時序的地點嵌入模型來捕獲上下文簽入信息和時間特征。
GE:文獻[17]提出一種基于圖嵌入的建模方法融合用戶的地理影響、簽到時空影響等從而學習用戶對于地點的偏好。
APOI: 文獻[18]提出一種基于生成對抗學習方法的地點推薦算法。
RankGeo:文獻[19]提出的一種基于排名的地理因子分解方法,其方法在進行地點推薦時還額外考慮了地點的時空因素。
TMAC:文獻[20]提出的一種融合注意力機制基于LSTM的編碼器-解碼器框架的地點推薦算法。
最后,進行維度實驗和神經網絡層數分析實驗。
3.4.1 時序建模算法對比分析
基于準確率和召回率評估標準,所有對比算法在兩個數據集上的實驗結果如圖3和圖4所示。從圖3和圖4,得到如下觀察結果:本文提出時序建模算法的性能始終最優在于其建模過程同時吸收了多層感知器和張量分解技術的優勢,對于動態場景中模擬多個維度之間的時間演化交互方面和跨維度隱式數據間非線性關系具有較強的建模能力。此外,Foursquare數據集比Gowalla數據集更為稀疏,而基于這個更加稀疏的數據集而言,Spatial-HDTF與其它方法之間的性能對比的結果是其領先的優勢變得更加明顯,這表明本文提出的Spatial-HDTF在處理稀疏的關系數據方面有著較大的優勢。Fossil優于FPMC+LR,說明馬爾科夫鏈模型在建模時空序列特征方面的有效性。ST-RNN方法的不足之處在于隨著時空序列的長度變長,其訓練負擔急劇增加,無法實現基于長時空序列捕捉用戶偏好。而Caser方法基于CNN模型,而純粹的CNN模型依然存在無法有效建模基于長時空序列建模用戶偏好,容易丟失某些重要序列信息。

圖3 基于Gowalla數據集的性能對比

圖4 基于Foursquare數的性能對比
3.4.2 地點推薦算法對比分析
從圖5到圖6顯示了本文提出的模型與不同主流先進地點推薦模型對比的實驗結果。顯而易見,HDTF-GAN模型最優。可能原因如下:HDTF-GAN始終表現最佳。其原因在于:通過對抗性學習過程獲得了最優用戶偏好,同時采用基于深度神經網絡(長短期記憶網絡+多層感知機)在用戶行為模式學習上具備強大的表征能力。APOI與HDTF-GAN模型有些類似,但是其對于時空序列建模過于簡單,忽視了直接采用RNN模型建模的缺陷。而GE和GeoTeaser本質上分別屬于基于圖嵌入的方法和基于word2vec框架。TMAC模型本質上還是屬于嵌入的方法,同時多層注意力機制的應用起到自適應選擇嵌入的功能。顯然,TMAC、GE和GeoTeaser更容易受到數據稀疏性的影響。RankGeo是基于矩陣分解技術的方法,這也驗證矩陣分解技術在建模潛在特征方面的有效性,但是矩陣分解技術方法無法實現捕捉更加復雜用戶-地點、地點-地點非線性交互關系。
3.4.3 潛在維度影響分析和深度神經網絡層次影響分析
在本文提出的地點推薦算法中,潛在維度和多層感知器的隱藏層次數是影響神經網絡建模能力的重要參數之一。
實驗如圖7所示,本文僅展示基于準確率@5和召回率@5在兩個數據集上的結果,其它評估指標呈現相同趨勢。從圖7上看出:準確率@5和召回率@5隨著維度的增加而發生變化。當潛在維度達到48左右,準確率@5和召回率@5的值分別達到峰值。當超過48時,維度出現了一定程度上的下降。造成這種現象的可能原因是:潛在維度增加,使得深度神經網絡得到了高效率的擴充,從而使得性能得到了提高,但是潛在維度過大,必將導致推薦模型在學習訓練過程中過擬合的發生,從而導致推薦模型性能的下降。因此,本文實驗中,基于圖7所示,本文提出將模型訓練的潛在維度設置為48。

圖5 基于Gowalla數據集HDTF-GAN模型與其它算法的性能對比

圖6 基于Foursquare數據集HDTF-GAN模型與其它算法的性能對比

圖7 HDTF-GAN模型基于兩個數據集潛在維度分析對比
如圖8所示,本文展示了多層感知機的深度對于最終推薦性能的影響。隱藏層數從1依次調整到5。其它參數保持與前面小節中描述的相同的設置。圖8中僅呈現在Gowalla數據集上實驗結果,而在Foursquare數據集上也出現相同趨勢。隨著神經網絡層數從1增加到5,但是最終性能并沒有隨著層數的變化而發生較大起伏變化。造成這個現象的可能的原因:一方面在于層數過多,推薦模型的相關參數更加無法精準學習,也增加了學習訓練時間;另一方面,層數過多也會給推薦模型帶來過擬合的問題,使得推薦模型難以收斂,最終導致推薦性能下降。如圖8所示,鑒于當層數大于4后,HDTF-GAN的推薦性能出現了下降,因此,最佳層數為4。

圖8 HDTF-GAN模型基于Gowalla數據集的層數影響分析
本文提出了一種融合張量分解和深度神經網絡的地點推薦算法。首先,本文通過基于張量分解的深度神經網絡混合模型學習用戶偏好。然后,通過對抗生成網絡進行優化,從而獲得了更加準確用戶偏好。在真實數據集上的實驗結果表明,本文提出基于HDTF-GAN地點算法能夠精準捕獲用戶對于地點的偏好。下一階段,我們打算將注意力機制融入到推薦算法中,擬實現推薦性能的進一步提升。