陶 丹,姚 伊,吳謹汐,范睿明,鄭晨旺
(北京交通大學 電子信息工程學院,北京 100044)
近年來定位技術、移動智能設備以及移動互聯(lián)網(wǎng)技術發(fā)展迅猛,基于位置的社交網(wǎng)絡(Location-based Social Network,LBSN)也變得更加熱門,如Foursquare、Gowalla、Yelp等.用戶在LBSNs上能夠以“簽到”的方式,更加快速地分享自己的實時位置信息,以及帶有地理標記的文本圖像等內(nèi)容信息.利用LBSNs中大量的用戶歷史簽到數(shù)據(jù)挖掘用戶習慣特點和偏好,并向用戶推薦其可能感興趣的新的地點稱為興趣點(Point of Interest,POI)推薦.興趣點推薦在LBSNs中扮演著重要的角色.
早期的多數(shù)研究關注于如何在協(xié)同過濾模型(Collaborative Filtering,CF)基礎上整合上下文信息.最近研究表明用戶的簽到行為具有序列性,并且這種特性對預測用戶的行為具有重要作用.循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)已經(jīng)被成功的使用在對用戶簽到的序列行為建模.但是現(xiàn)實中用戶的簽到序列中往往還包含著復雜的時空信息屬性,并不是序列中所有的已訪問的地點對預測用戶未來的行為都同等重要.并且絕大多數(shù)興趣點推薦方法都未能很好地處理用戶的興趣是動態(tài)變化的這一重要問題.用戶既存在長期穩(wěn)定的偏好,也存在短期的行為需求[1].近年來,研究學者相繼提出了長短期偏好融合的興趣點推薦模型,例如Sun等人[2]提出了一種利用非局域網(wǎng)絡對長期偏好建模和利用地理擴展RNN對短期偏好建模結(jié)合的模型.該模型通過對用戶長短期偏好的充分學習與融合,實現(xiàn)了推薦性能的大幅提升.
基于此,本文設計了一種混合的興趣點推薦模型(User Preference & Time Sequence based POI Recommendation,UPTS-PRec),該模型能夠有效地捕捉用戶的長期偏好和短期偏好.首先利用長短期記憶網(wǎng)絡(Long Short-Term Memory,LSTM)對用戶的短期序列偏好進行建模,并在LSTM網(wǎng)絡的每一步中傳入時空上下文信息,以捕捉用戶短期行為中復雜的轉(zhuǎn)移特性.基于注意力機制構(gòu)建長期模型,過濾用戶長期行為歷史中的無關的簽到記錄,并且能夠構(gòu)建用戶長期偏好.最后,本文還將用戶短期偏好與長期進行偏好進行融合,獲得用戶更全面和豐富的偏好表示,從而實現(xiàn)更高效精確的興趣點推薦[3].
早期協(xié)同過濾作為推薦系統(tǒng)中應用最為廣泛和高效的方法之一,常被用作興趣點推薦的基本模型.例如Yuan等人[4]將基于用戶的協(xié)同過濾方法與時間地理信息相結(jié)合,分別對分人群簽到行為中的時間及空間影響進行分析,以此提出了一種融合了空間及時間影響的興趣點推薦框架.興趣點推薦技術的發(fā)展過程中,Li等人[5]提出了一種基于排序的地理因子分解方法,該方法通過所有簽到對興趣點排序?qū)W習因子分解并融合不同類型的上下文信息,從而可以緩解數(shù)據(jù)稀疏的問題.基于協(xié)同過濾的模型雖然被廣泛地研究與改進,但仍存在數(shù)據(jù)稀疏的問題,模型的推薦性能仍然不足.隨著詞嵌入模型在自然語言處理領域的提出,推薦系統(tǒng)開始應用嵌入學習這一全新的興趣點推薦方法.例如:Zhao等人[6]提出一個地理時間序列化嵌入模型,該模型利用嵌入學習技術來獲取上下文簽入信息.Liu等人[7]提出了一種新的時空感知表示方法,將時空信息建模為連接用戶和興趣點的關系.基于嵌入學習的方法雖然很好地緩解了數(shù)據(jù)稀疏性問題,但對模型從歷史簽到數(shù)據(jù)中挖掘一些復雜的特殊關系或關系圖的能力有很高的要求,大多數(shù)模型學習的關系過淺,還有較大的提升改進空間[8].
隨著大數(shù)據(jù)應用的快速發(fā)展和機器學習模型技術水平的提升,基于深度學習的推薦算法也漸漸發(fā)展起來.例如利用循環(huán)神經(jīng)網(wǎng)絡、深度神經(jīng)網(wǎng)絡.Zhao等人[9]提出了一種LSTM的變體ST-LSTM,其在LSTM中實現(xiàn)了時間門和距離門來捕獲連續(xù)簽入之間的時空關系,并減少了參數(shù)的數(shù)目,提高了模型學習的效率.Yang等人[10]提出了一種新的神經(jīng)網(wǎng)絡模型,利用RNN對和GRU對移動軌跡中不同等級的序列關系進行建模,從而融合用戶的長期和短期序列偏好能更好地分析和挖掘LBSN數(shù)據(jù).普通RNN在面對較復雜的問題時,存在無法整合序列內(nèi)部固有的復雜的時空信息的缺陷,以及數(shù)據(jù)較少時容易引起過擬合等問題.若只采用RNN對用戶序列歷史建模,具有局限性.本文采用了改進型RNN,避免了傳統(tǒng)RNN梯度爆炸,梯度消失等問題.同時將注意力機制整合到RNN中,學習用戶短期的序列相關性,精確捕捉用戶的短期偏好,使得模型既能夠捕獲序列動態(tài),又能夠充分利用歷史信息.
定義U={u1,u2,…,u|U|}表示用戶集合,L={l1,l2,…,l|L|}表示興趣點集合,其中|U|和|L|分別表示用戶的總數(shù)和興趣點的總數(shù).為了便于說明,本文給出符號說明表格如表1所示.
表1 符號描述Table 1 Symbols description
定義1.興趣點(POI). 一個興趣點l被定義為具有由緯度和經(jīng)度坐標唯一確定的地理空間項目,例如餐館或博物館等.可以用興趣點ID、緯度和經(jīng)度的集合〈lid,latlid,lonlid〉來表示一個興趣點.
定義2.簽到(Check-in). 用戶的簽到記錄由用戶u、興趣點l和時間t這3個元素組成的集合表示,表示用戶u∈U在時間t時訪問了POIl∈L.
問題定義-興趣點推薦. 在給定用戶u的簽到序列Mu和查詢時間t的情況下,預測該用戶在時間t訪問未曾訪問過的興趣點lt∈L的概率.將預測概率的分數(shù)按降序排列,為用戶推薦前N個地點.
本文提出的興趣點推薦模型分為3部分,即用戶的短期偏好模塊、長期偏好模塊以及長短期偏好融合模塊.
在短期偏好模塊中,采用融合時空上下文信息的LSTM來學習用戶簽到行為中復雜的序列轉(zhuǎn)移模式,并通過基于目標地點的注意力機制進一步精確地提取短期偏好.在長期模塊中采用基于用戶注意力機制來構(gòu)建用戶長期偏好,同時該模塊還能捕捉用戶和興趣點之間細粒度的交互關系,讓模型更有關注性和分辨性地學習序列化依賴,過濾不相關的信息.最后將用戶的短期偏好和長期偏好進行融合,實現(xiàn)了兼顧用戶短期的行為需求和長期穩(wěn)定的偏好的興趣點推薦.模型的整體流程圖如圖1所示.
圖1 UPTS-PRec模型整體流程圖Fig. 1 Overall flow chart of UPTS-PRec model
短期偏好反映了用戶在短時間內(nèi)的興趣和需求.對短期偏好建模的目的,是捕捉簽到序列中用戶對興趣點的序列轉(zhuǎn)移偏好.在此模塊中,本文首先使用LSTM對輸入的簽到序列進行建模,然后利用基于目標興趣點的注意力網(wǎng)絡,進一步精確地提取用戶的短期偏好.
ci=[eli;eti;lati;loni]
(1)
xi=ReLU(Wcx·ci+bcx)
(2)
把xi作為LSTM的輸入進行短期序列偏好建模.LSTM是一種最常應用于各種推薦系統(tǒng)的改進型RNN模型[11].它能夠很好對短期和長期的序列的依賴關系進行學習,巧妙地解決了傳統(tǒng)RNN的梯度爆炸或梯度消失的問題.本文采用的LSTM模型表達式如下:
ft=σ(Wfxt+Wvfht-1+bf)
(3)
it=σ(Wixt+Wviht-1+bi)
(4)
(5)
(6)
ot=σ(Woxt+Wvoht-1+bo)
(7)
ht=ot⊙tanh(ct)
(8)
(9)
(10)
(11)
針對于長期偏好建模(如RUM[12]、ST-RNN),現(xiàn)有方法通常直接為每個用戶學習一個靜態(tài)潛在向量qu∈Rd來表示用戶長期的興趣偏好,該向量可反映用戶固有的偏好特征.
然而,用戶的歷史簽到記錄往往會隨著時間變化,而且用戶在長期歷史中往往展現(xiàn)出復雜多樣的興趣.因此,僅僅學習一個靜態(tài)的嵌入向量會在一定程度上限制模型捕捉用戶變化的、復雜的長期偏好的能力.本文選擇對用戶的歷史簽入記錄進行編碼,以獲得另一種偏好表示,稱為用戶記憶嵌入向量,該向量可以根據(jù)用戶不斷更新的簽到記錄動態(tài)重構(gòu).
(12)
本文用特征向量u∈Rd來表示用戶,以u作為查詢向量來訪問用戶的歷史行為序列m,對注意力分布(即權重)進行計算,公式如下:
(13)
其中LN為source長度,即用戶歷史行為序列長度.與短期偏好模型相似,這里注意力計算方式同樣采用縮放點積模型.
盡管通過聚合用戶的長期簽到歷史可以捕捉到用戶的長期偏好的變化屬性,但由于用戶的實際簽到數(shù)量是有限的,這樣的方法仍然不能準確地表示出用戶長期偏好的一般屬性.
(14)
其中bl∈Rd是一偏置矩陣,Wl∈R2d×d是一權重矩陣.
短期模型能夠較好地捕捉用戶在短期內(nèi)的需求,而長期模型能夠捕捉到用戶的長期偏好.為了使本算法能夠兼具短期模型和長期模型的優(yōu)點,擁有更高的推薦精確度和排序精確度,本文將短期模型和長期模型進行融合.
為獲得更為全面的用戶偏好,將用戶的短期偏好和長期偏好進行融合,表達式如下:
(15)
其中WP為權重矩陣,⊕為運算連接符,bp為偏置向量,而pu表示為用戶最終的偏好.
已知興趣點推薦的要求與用戶、時間、地點相關,本文將其表示為q=.本文考慮用戶偏好與興趣點的時間屬性,構(gòu)建整體預測得分表達式如下:
(16)
考慮到可將興趣點推薦視為二分類問題,本文采用二分交叉熵作為損失函數(shù),將目標函數(shù)設置為正則化的對數(shù)似然函數(shù),得到如下表達式:
(17)
其中λ為正則化系數(shù),Θ為模型參數(shù)集.所有模型參數(shù)均是通過最小化訓練數(shù)據(jù)上的目標函數(shù)L來學習.為實現(xiàn)訓練過程中學習速率的自動調(diào)整,本文采用了自適應矩估計優(yōu)化器.并在全連接層使用了dropout技術,避免了過度擬合的問題.
5.1.1 實驗數(shù)據(jù)集
本文實驗的數(shù)據(jù)集來自Foursquare[注]http://spatialkeyword.sce.ntu.edu.sg/eval-vldb17/和Gowalla[注]http://www.yongliu.org/datasets/index.html,這兩個數(shù)據(jù)集的數(shù)據(jù)真實且公開.Foursquare是一個手機服務網(wǎng)站,Gowalla是一個社交游戲的網(wǎng)絡平臺,二者都能夠為用戶提供基于位置的網(wǎng)絡服務.本文分別從兩個數(shù)據(jù)集獲取了兩萬余名用戶一年的簽到記錄,每條簽到記錄都包含用戶ID、興趣點ID、簽到時間戳和興趣點的經(jīng)緯度等信息.
為使算法的準確性能夠得到充分的評估,將Foursquare與Gowalla數(shù)據(jù)集中用戶活躍度較小的、不適于本模型學習的數(shù)據(jù)進行剔除,即對數(shù)據(jù)進行預處理.對簽到記錄少于10條和訪問地點數(shù)少于10個的數(shù)據(jù)進行剔除后,數(shù)據(jù)集的基本統(tǒng)計信息如表2所示.在模型訓練中,將較早的簽到記錄用于訓練模型,而將最近的簽到記錄用作對模型性能進行評估的測試樣本.
表2 數(shù)據(jù)集基本信息Table 2 Basic data set information
5.1.2 評價標準
本文采用推薦算法中常用的精確度評價標準Accuracy@N、NDCG@N與MRR對模型進行性能評價.定義Dtest為測試數(shù)據(jù)的集合,|Dtest|為測試數(shù)據(jù)的總數(shù).定義正確推薦的興趣點li在所有推薦的興趣點中的排名為reli,表示位置i的推薦結(jié)果的相關性.
Accuracy@N:本文采用的評價標準Accuracy@N與Yin等人[12]所采取的相同.由于本文的最終目標是形成一個由排名前N項的興趣點構(gòu)成的top-N推薦列表,因此如果reli滿足reli≤N,表示推薦的POI滿足用戶需求.定義指示函數(shù)IN(x),表達式如下:
(18)
當本文的推薦列表top-N滿足了用戶的需求時,IN(x)的值取1,否則取0.因此Accuracy@N的計算公式為:
(19)
為方便后續(xù)表達,本文將該評價標準簡稱為Acc@N.
NDCG@N:NDCG是歸一化后考慮位置影響因素的累積增益.這個評估標準既可以評價一個系統(tǒng)是否準確地推薦了POI,還注意到了所推薦的正確POI在推薦序列中的排名,其計算公式為:
(20)
其中|REL|表示將所得到的結(jié)果按照相關性降序排列,取前N個結(jié)果組成的集合.
MRR:將正確檢索結(jié)果值在所有檢索結(jié)果中的排名取倒數(shù),再對測試數(shù)據(jù)取平均.其計算公式為:
(21)
5.1.3 對比算法
為驗證本文提出的模型的興趣點推薦性能,本文選取了7種具有代表性的推薦模型進行對比,其中POP、FPMC-LR為傳統(tǒng)的推薦算法,而POI2Vec、ST-RNN、RUM、AttRec和SHAN為基于深度學習的推薦算法.
POP:基于地點的受歡迎程度的進行興趣點推薦,是一種非個性化的模型.
FPMC-LR[13]:將矩陣分解與個性化馬爾可夫鏈結(jié)合進行興趣點推薦的模型.
POI2Vec[14]:在學習興趣點嵌入過程中整合了興趣點的地理關系、興趣點的順序轉(zhuǎn)換和用戶偏好進行聯(lián)合建模的興趣點推薦模型.
ST-RNN[15]:利用連續(xù)簽到的時間間隔和地理距離信息對經(jīng)典RNN進行改進的興趣點推薦模型.
RUM[12]:利用外部存儲網(wǎng)絡集成協(xié)同過濾的順序進行興趣點推薦的模型.本文使用項目級RUM進行對比.
AttRec[16]:同時考慮了局部與全局的興趣點推薦模型.該模型利用自注意力機制來捕捉用戶歷史行為交互的關系,并利用度量學習對用戶的長期偏好建模進行建模.
SHAN[17]:兩層次的注意力網(wǎng)絡推薦模型.第1層注意力網(wǎng)絡專注于學習用戶的長期偏好,第2層注意力網(wǎng)絡通過耦合用戶的長期和短期偏好實現(xiàn)興趣點推薦.
5.2.1 UPTS-PRec模型與其他推薦方法的性能對比
本節(jié)實驗在Foursquare和Gowalla數(shù)據(jù)集的基礎上,將本文推薦模型與POP、FPMC-LR等7種推薦模型的Acc@N、NDCG@N和MRR進行對比,各模型均取得最佳性能.對比結(jié)果見圖2-圖4.
圖2-圖4分別展示了在Foursquare和Gowalla數(shù)據(jù)集上,各模型所推薦興趣點個數(shù)分別為5、10、20時的推薦性能.隨著所推薦興趣點個數(shù)的個數(shù)的增加,各模型的Acc@N、NDCG@N和MRR均有所升高.這是因為向用戶推薦的興趣點的個數(shù)越多,越有利于對用戶偏好的挖掘,對模型的推薦性能有一定的影響.
從圖2-圖4可以看出,本文所提出的模型的Acc@N、NDCG@N和MRR明顯優(yōu)于其他7種模型,在本實驗中,本模型的Acc@N、NDCG@N及MRR最優(yōu)分別可達到27.90%、15.06%、12.42%,高出對比算法至少2.06%、2.17%、2.80%.其中POP模型性能均顯著低于其他模型,這是因為POP模型只考慮地點的受歡迎程度,而沒有考慮到用戶個體的不同. FPMC-LR是基于馬爾可夫鏈的推薦方式,POI2Vec是基于嵌入的推薦方式,這些方式能夠捕捉簽到序列成對的關系,進行個性化推薦,因此推薦性能有所提高.但是,由于這些方法并不能探索更高級的關聯(lián)方式,因此這些推薦方法的性能較如RUM等基于深度學習的興趣點推薦算法仍性能較弱.而在基于深度學習的興趣點推薦模型ST-RNN、RUM、AttRec和SHAN中,AttRec和SHAN性能略優(yōu)于ST-RNN、RUM,這也驗證了基于用戶偏好與時間序列的思想在興趣點推薦中的優(yōu)越性.
5.2.2 性能比較
本節(jié)對前文提出的短期模型、長期模型與UPTS-PRec模型的有效性加以驗證.實驗分別在經(jīng)過處理的Foursquare和Gowalla數(shù)據(jù)集上比較短期、長期與UPTS-PRec模型在分別為用戶推薦5個、10個和20個興趣點的實驗時Acc@N、NDCG@N與MRR的變化情況的變化情況.實驗中將算法的參數(shù)設置為最優(yōu)值.
表3、表4分別為本文的短期模型、長期模型與UPTS-PRec模型在Foursquare和Gowalla數(shù)據(jù)集上Acc@N、NDCG@N與MRR的變化情況. 其中,短期模型和長期模型分別用UPTS-PRec-s和UPTS-PRec-l表示.通過在該兩大數(shù)據(jù)集上的實驗結(jié)果,可看出推薦地點數(shù)相同的情況下,UPTS-PRec模型的性能優(yōu)于未經(jīng)融合的模型性能,且短期模型的性能普遍優(yōu)于長期模型的推薦性能.UPTS-PRec模型推薦性能的優(yōu)化程度有隨推薦興趣點數(shù)量的增加而增大的趨勢,且在Gowalla數(shù)據(jù)集集上的變化更為明顯,優(yōu)化最大可表現(xiàn)為Acc@N較UPTS-PRec-s提高1.78%,NDCG@N提高0.67%.UPTS-PRec模型相對于短期模型和長期模型推薦性能能夠提高的原因是UPTS-PRec模型兼具短期模型和長期模型的優(yōu)點,既能夠較好地捕捉用戶在短期內(nèi)的需求,又能夠捕捉到用戶的長期偏好.
表3 兩數(shù)據(jù)集上不同模型的Acc@NTable 3 Acc@N for different models on the two datasets
表4 兩數(shù)據(jù)集上不同模型的NDCG@N、MRRTable 4 NDCG@N and MRR for different models on the two datasets
5.2.3 實驗參數(shù)的影響
本實驗主要分析短期序列長度k與正則化系數(shù)λ對實驗結(jié)果的影響.由于篇幅有限,本文僅展示Acc@20和NDCG@20時的實驗結(jié)果.在短期偏好模塊中,序列長度k是注意力網(wǎng)絡捕捉用戶序列模式的關鍵.本文將序列長度k的范圍設置為1~10,結(jié)果如圖5所示.從圖中可看出,在Foursquare和Gowalla數(shù)據(jù)集上,模型性能在開始會隨k的提高而增強,但k達到一定數(shù)值后,模型性能會隨k的增大而有一定程度的下降,模型在k分別取4、3時在兩數(shù)據(jù)集上性能達到最優(yōu).原因可能是用戶的序列模式通常包含較短的序列,較長的序列會給模型帶來一些噪聲,不利于性能的提高.對于正則化系數(shù)λ,本文依次取值為1×10-6、5×10-6、1×10-5、5×10-5、1×10-4和1×10-3,結(jié)果如圖6所示.可以看出模型在兩數(shù)據(jù)集上均在λ為5×10-6時,達到最好效果,λ過高或過低均會導致模型效果變差.原因可能是因為正則化系數(shù)過小會使目標函數(shù)區(qū)趨于低次項而出現(xiàn)欠擬合現(xiàn)象,而正則化系數(shù)過大可能會使目標函數(shù)區(qū)趨于高次項而出現(xiàn)過擬合的情況,同樣導致模型推薦效果不佳.可以看出,在模型中選用合適的短期序列長度與正則化系數(shù)對于提高模型性能是非常重要的.
圖5 序列長度k影響Fig. 5 Effect of sequence length k
圖6 正則化系數(shù)λ影響Fig. 6 Effect of regularization coefficient λ
根據(jù)用戶興趣點偏好的復雜性與變化性,本文提出了一種基于用戶偏好與時間序列的興趣點推薦模型.本文采用LTSM與注意力機制建立短期模型,采用注意力機制建立長期模型,并實現(xiàn)長期模型與短期模型的融合.為用戶提供興趣點推薦服務.實驗結(jié)果表明:本文提出的興趣點推薦模型性能在3種評價標準下均優(yōu)于對比方法.未來工作將進一步擴大實驗數(shù)據(jù)集,對模型的普適性進行驗證.