(西安建筑科技大學(xué) 信息與控制工程學(xué)院,西安 710055)
近年來(lái), LBSN平臺(tái)吸引了無(wú)數(shù)用戶并產(chǎn)生了大量簽到數(shù)據(jù)。通過(guò)對(duì)簽到數(shù)據(jù)建模并結(jié)合傳統(tǒng)推薦技術(shù)來(lái)實(shí)現(xiàn)用戶POI的推薦,可以從推薦結(jié)果中得出用戶的日常喜好和行為模式;幫助商家發(fā)現(xiàn)潛在客戶、調(diào)整經(jīng)營(yíng)策略,具有極大的經(jīng)濟(jì)和社會(huì)效益[1]。
目前,基于LBSN的用戶POI推薦研究,無(wú)論是基于傳統(tǒng)協(xié)同過(guò)濾、矩陣分解方法還是基于影響因素或文本信息考慮的POI推薦模型均存在以下的問題:
大部分POI推薦研究采用傳統(tǒng)協(xié)同過(guò)濾算法[2-4],對(duì)用戶和簽到的POI進(jìn)行建模,給出最后推薦。但這種基于LBSN的用戶簽到信息很容易遭遇數(shù)據(jù)稀疏問題。又有研究者提出基于矩陣分解的協(xié)同過(guò)濾算法[5-6]。分別用一個(gè)隱式向量代表用戶和POI,隱式向量間的內(nèi)積表示用戶和POI之間的線性交互。這些算法有效緩解了數(shù)據(jù)稀疏問題且對(duì)用戶和個(gè)性化POI特征提取做出改進(jìn)。但由于隱式向量?jī)?nèi)積操作只是簡(jiǎn)單向量間的線性乘法,不足以提取用戶和POI之間高階歷史交互特征(非線性特征),尤其是無(wú)法捕捉用戶簽到的序列特征。
為了解決序列建模的問題,有研究者[7]利用矩陣分解和馬爾科夫模型建模用戶的序列行為,但馬氏模型只考慮用戶訪問的最近一個(gè)POI點(diǎn)信息,所包含信息量太少,不能很好表示用戶行為特點(diǎn)。深度神經(jīng)網(wǎng)絡(luò)能夠有效學(xué)習(xí)和提取多個(gè)特征的高階非線性關(guān)系,特別是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)能夠很好地對(duì)序列進(jìn)行建模。Q.Liu等人[8]提出ST-RNN模型,Zhao等人[9]改進(jìn)提出ST-LSTM模型。這類模型雖然能有效建模用戶簽到的序列行為,但從用戶細(xì)粒度興趣來(lái)看:?jiǎn)我坏腞NN無(wú)法同時(shí)學(xué)習(xí)用戶長(zhǎng)期和短期的興趣特征,從模型整體來(lái)看:忽略了多影響因素之間的聯(lián)合作用。
綜合以上問題,文章的具體研究?jī)?nèi)容如下:1)針對(duì)簽到數(shù)據(jù)的稀疏問題,提出一種基于分解矩陣的協(xié)同過(guò)濾方法。計(jì)算得到POI的特征向量;2)針對(duì)用戶細(xì)粒度興趣(即長(zhǎng)期興趣和短期興趣)序列建模問題,提出一個(gè)基于注意力機(jī)制(Attention)的深度神經(jīng)網(wǎng)絡(luò)模型??煞謩e提取用戶長(zhǎng)、短期興趣特征[10-11];3)針對(duì)多影響因素之間的聯(lián)合作用問題,將矩陣分解提取的POI特征向量以及計(jì)算得到的用戶特征向量按照用戶簽到序列輸入帶有注意力機(jī)制的深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行模型訓(xùn)練。設(shè)計(jì)得到多特征高階非線性交互的POI推薦模型(MF-ADNN)。該模型可對(duì)LBSN中的地理、時(shí)間、社交和序列影響進(jìn)行綜合考慮,分別對(duì)用戶簽到數(shù)據(jù)集的4階段(早、午、晚、夜)進(jìn)行訓(xùn)練,做出不同時(shí)間段的POI推薦。
POI推薦模型旨在為用戶推薦其感興趣的POI點(diǎn)。表1是本文用到的基本數(shù)學(xué)符號(hào)及含義。
表1 基本數(shù)學(xué)符號(hào)及含義
U={u1,u2,...,un}表示用戶集合,P={p1,p2,...,pm}表示興趣點(diǎn),給定用戶u的歷史簽到記錄Du,當(dāng)前的時(shí)間t,文章所提出的POI推薦模型最終的操作是:從POI集合P中返回N個(gè)興趣點(diǎn)序列{pre1,pre2,...,preN}。序列集pre,即未來(lái)某階段內(nèi)用戶u最有可能訪問的興趣點(diǎn)集。
用戶興趣隨著時(shí)間的推移可能會(huì)發(fā)生變化,即用戶簽到行為可分為長(zhǎng)期興趣和短期興趣兩種,本文稱之為用戶的細(xì)粒度興趣。
1.2.1 用戶長(zhǎng)期興趣
用戶的長(zhǎng)期興趣一般指用戶周期性訪問的POI。RNN結(jié)構(gòu)具有記憶功能,能夠很好地為用戶的簽到序列行為特征進(jìn)行建模,對(duì)于捕獲用戶的長(zhǎng)期興趣是一個(gè)好的選擇。但一般的RNN存在梯度消失的問題,故采用LSTM來(lái)捕獲用戶的長(zhǎng)期興趣。具體模型情況參見第3.3節(jié)CF-ADNN模型的LM模塊。
1.2.2 用戶短期興趣
用戶的短期興趣最有可能影響后續(xù)的興趣點(diǎn)訪問,一般主要指與上一個(gè)訪問的興趣點(diǎn)距離和類別相近的POI。故采用帶有Attention機(jī)制的seq2seq架構(gòu)。將用戶歷史興趣點(diǎn)編碼成一個(gè)向量,利用Attention機(jī)制關(guān)注最相近的幾個(gè)興趣點(diǎn)進(jìn)行解碼,最終得到用戶的短期興趣。具體模型情況參見3.3節(jié)CF-ADNN模型的SM模塊。
本節(jié)介紹結(jié)合矩陣分解和深度學(xué)習(xí)的個(gè)性化POI推薦模型CF-ADNN的構(gòu)建及訓(xùn)練過(guò)程。將矩陣分解提取的POI特征向量以及計(jì)算得到的用戶特征向量作為以上兩個(gè)模塊的輸入,構(gòu)建POI推薦模型CF-ADNN,并對(duì)該模型進(jìn)行訓(xùn)練。
為了解決簽到數(shù)據(jù)的稀疏問題,利用簽到數(shù)據(jù)集中興趣點(diǎn)的ID,地理坐標(biāo)和所屬類別這三個(gè)維度信息,建立POI同現(xiàn)矩陣、位置近似矩陣以及類別同屬矩陣。再基于一種矩陣分解方法得到POI在同現(xiàn)、位置和類別特征中的隱向量,將上述三種隱向量拼接成一個(gè)整體的POI特征向量表示[12]。
2.1.1 構(gòu)造特征矩陣
1)POI同現(xiàn)矩陣:初始化一個(gè)POI同現(xiàn)矩陣O∈Nn×n,表示POI在用戶訪問模式上的關(guān)聯(lián)關(guān)系,n等于POI數(shù)。具體來(lái)說(shuō),Opp′表示同時(shí)訪問過(guò)p和p′興趣點(diǎn)的用戶個(gè)數(shù),對(duì)角線元素Opp表示訪問p的用戶個(gè)數(shù)。一般的,Opp′值越高,表明p和p′頻繁地被先后訪問,則證明關(guān)聯(lián)性越強(qiáng)。
2)位置近似矩陣:與POI同現(xiàn)矩陣類似,初始化一個(gè)位置近似矩陣G∈Nn×n,表示用戶的簽到行為和POI的地理位置高度關(guān)聯(lián)。引入距離閾值m=10 km,根據(jù)簽到點(diǎn)的經(jīng)緯度坐標(biāo)計(jì)算p(lon,lat)和p′(lon′,lat′)之間的距離D,若小于m,則Gpp′=1;否則Gpp′=0。特別的,Gpp=1。D的計(jì)算公式:
C=sin(lat)*sin(lat′ )*cos(lon-lon′)+cos(lat)*cos(lat′)
D=R*Arccos(C)*PI/180
(1)
其中:R為地球平均半徑6 371.004 km。
3)類別同屬矩陣:類別同屬矩陣R∈Nn×n,表示POI在類別信息上的關(guān)聯(lián),利用了POI的內(nèi)容信息。若p和p′屬于同一個(gè)類別,Rpp′=1;否則Rpp′=0。特別的,Rpp=1。
構(gòu)建特征矩陣過(guò)程示例如圖1所示。
圖1 構(gòu)建特征矩陣示意圖
2.1.2 對(duì)稱矩陣分解
將上述3個(gè)對(duì)稱矩陣進(jìn)行矩陣分解:
1)POI同現(xiàn)矩陣分解:對(duì)于POI同現(xiàn)矩陣O∈Nn×n,把這個(gè)矩陣分解成兩個(gè)矩陣的點(diǎn)乘,如公式(2)所示:
O(n,n)=Eo*ETo
(2)
使兩個(gè)同階的矩陣相似程度最小,得到最接近原始矩陣,如公式(3):
(3)
為了進(jìn)一步說(shuō)明對(duì)稱矩陣分解的優(yōu)點(diǎn),給出兩個(gè)POI隱向量的相似度近似計(jì)算公式(4)~(5):
(4)
(5)
通過(guò)觀察近似公式可知,隱向量的相似性與用戶臨近POI訪問率有關(guān),說(shuō)明上述分解方法能夠很好地學(xué)習(xí)、表示興趣點(diǎn)在該特征空間的相互關(guān)聯(lián);同時(shí)抑制了熱門POI對(duì)最終推薦結(jié)果的影響,有利于POI推薦結(jié)果的多樣化。
2)位置近似矩陣分解:與POI同現(xiàn)矩陣分解方法相同,具體的分解形式如式(6)所示:
(6)
3)類別同屬矩陣分解:與上述矩陣分解方法相同,具體的分解如公式(7)所示:
(7)
2.1.3 計(jì)算特征向量
拼接上述3個(gè)矩陣分解所得的隱向量,得到一個(gè)整體的POI特征向量表示。具體如公式(8):
(8)
計(jì)算用戶特征向量時(shí),可結(jié)合考慮用戶的社交影響因素,即共同計(jì)算用戶與用戶好友特征向量。文章將用戶特征向量表示成該用戶與該用戶的好友訪問過(guò)的所有POI的特征向量的期望,從而得到用戶特征向量。用戶特征向量eu計(jì)算公式(9)如下:
(9)
Pu和Pu′分別表示用戶u和他的好友u′訪問過(guò)的POI集合,|Pu|表示用戶u訪問過(guò)的POI數(shù)量。
CF-ADNN模型旨在構(gòu)建不同的神經(jīng)網(wǎng)絡(luò)模型分別學(xué)習(xí)用戶長(zhǎng)期和短期興趣特征。將前兩節(jié)基于矩陣分解提取的POI特征向量,以及計(jì)算得到的用戶特征向量按用戶簽到序列輸入模型,訓(xùn)練模型的高階交互特征,預(yù)測(cè)未來(lái)最有可能訪問的興趣點(diǎn)集。
2.3.1 CF-ADNN模型結(jié)構(gòu)
圖2展示了CF-ADNN模型的整體架構(gòu)。該模型主要分為兩個(gè)主要模塊:LM模塊獲取的是用戶的長(zhǎng)期興趣的隱含向量;SM模塊獲取的是短期的隱含向量。
圖2 CF-ADNN模型整體架構(gòu)圖
1)LM模塊:
用戶的長(zhǎng)期興趣主要考慮的是用戶周期性訪問的模式。為了捕獲長(zhǎng)期興趣,采用LSTM來(lái)捕獲用戶的長(zhǎng)期興趣。具體的公式如下:
(10)
(11)
(12)
2)SM模塊:
用戶的短期興趣主要指與上一個(gè)訪問的興趣點(diǎn)相近的(距離和類別)的興趣點(diǎn)。選擇相同類別且兩個(gè)連續(xù)簽到點(diǎn)距離小于10 km的興趣點(diǎn)作為用戶的短期興趣。SM模塊采用帶有Attention+seq2seq架構(gòu),seq2seq架構(gòu)主要分為Encoder和Decoder。用戶的短期興趣表示方法:通過(guò)Encoder把用戶訪問的興趣點(diǎn)編碼成一個(gè)向量,編碼方式選擇LSTM網(wǎng)絡(luò)。編碼過(guò)程公式如下:
(13)
(14)
具體公式如下:
Ct=∑sαtshs
(15)
(16)
score(hn,hs)=vTtanh(ω1hn+ω2hs)
(17)
其中:vT、ω1和ω2是模型需要學(xué)習(xí)得到的參數(shù)。這里Ct最為重要,表示通過(guò)Attention計(jì)算得到的上下文向量。進(jìn)一步計(jì)算得到引入注意力的隱藏狀態(tài)向量:
Sn=f(Ct,hn)=tanh(Wc[Ct+hn])
(18)
以及解碼器生產(chǎn)的目標(biāo)興趣點(diǎn)序列:
S[yt|{y1,y2…yt-1},Ct]=softmax(WcSn)
(19)
長(zhǎng)期興趣Lt+1以及短期興趣序列St+1結(jié)合起來(lái),得到最終的推薦結(jié)果Ot+1:
Ot+1=Lt+1∪St+1
(20)
2.3.2 推薦模型訓(xùn)練
從時(shí)間維度分析,為了訓(xùn)練一個(gè)模型來(lái)適應(yīng)不同時(shí)間段的用戶簽到,這里將簽到數(shù)據(jù)分為4個(gè)時(shí)間段:夜(0∶01-6∶00)、早(6∶01-12∶00)、午(12∶01-18∶00)、晚(18∶01-24∶00)分別進(jìn)行訓(xùn)練,得到適應(yīng)不同時(shí)間段的POI推薦模型。
CF-ADNN推薦模型學(xué)習(xí)算法
輸入:eu、ep、t、T
輸出:Ot+1(最終的推薦結(jié)果)L(最小損失值)
1.Repeat
2.Foreachu∈UDo
3.輸入eu和ep,SM訓(xùn)練用戶短期興趣S
4.Fort 5.輸入eu和ep,LM訓(xùn)練用戶長(zhǎng)期興趣L 7. End for 9.梯度下降法最小化損失lu 10. ift>Torlu足夠小 11.End for 12.Returnlu、Ot+1 13.End procedure 本文采用Foursquare簽到網(wǎng)站的開源數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù),驗(yàn)證模型的有效性。選取美國(guó)舊金山市(SFO)的用戶簽到信息,統(tǒng)計(jì)結(jié)果如表2所示。 表2 用戶簽到信息統(tǒng)計(jì)表 訓(xùn)練時(shí),將用戶前80%的簽到數(shù)據(jù)集作為訓(xùn)練集,最近的20%作為測(cè)試集。 性能評(píng)價(jià)指標(biāo)選用準(zhǔn)確率、召回率,分別用PRE@N,REC@N表示。對(duì)于一個(gè)用戶u,模型的推薦結(jié)果是: (21) 用戶真實(shí)的訪問序列是: (22) 其中:N為模型預(yù)測(cè)返回的POI個(gè)數(shù)。 則準(zhǔn)確率和召回率的公式如下: (23) (24) 3.3.1 參數(shù)影響 訓(xùn)練模型時(shí)選取的參數(shù)會(huì)對(duì)推薦結(jié)果造成影響。本文主要討論影響模型最重要的兩個(gè)參數(shù): 1)特征向量維度d:eu和ep作為模型的輸入可以看出,特征向量維度d是影響整個(gè)模型的重要因素。d越大模型需要的計(jì)算量越大。 圖3 特征向量維度d對(duì)模型影響 固定矩陣分解中的正則項(xiàng)參數(shù)λo=λg=λr=0.000 01,設(shè)置維度d為100、150、200、250、300。實(shí)驗(yàn)結(jié)果如圖3所示,當(dāng)維度超過(guò)200后模型的性能開始降低,故本實(shí)驗(yàn)將d設(shè)置成200。 2)關(guān)注長(zhǎng)度δ:用戶短期興趣建模主要用到基于Attention機(jī)制的序列模型,Attention關(guān)注長(zhǎng)度δ對(duì)模型十分重要。δ過(guò)長(zhǎng),模型會(huì)變得復(fù)雜;δ過(guò)短,可能會(huì)使得數(shù)據(jù)不足。 圖4 關(guān)注長(zhǎng)度δ對(duì)模型影響 分別設(shè)置關(guān)注長(zhǎng)度δ為 5,10,20,40 進(jìn)行試驗(yàn),實(shí)驗(yàn)結(jié)果如圖4所示,當(dāng)δ為10模型效果最好。 3.3.2 不同推薦模型對(duì)比結(jié)果 為了驗(yàn)證CF-ADNN模型的性能,文章選擇3個(gè)在矩陣分解和深度學(xué)習(xí)POI推薦算法領(lǐng)域,具有代表性的模型進(jìn)行試驗(yàn)對(duì)比。GeoMF[5]:基于矩陣分解的地理位置信息POI推薦;ST-RNN[8]:基于時(shí)空上下文RNN模型的POI推薦;ST-LSTM[9]:基于時(shí)空上下文LSTM模型的POI推薦。 CF-ADNN模型與以上3種算法的性能對(duì)比結(jié)果如圖5所示。 圖5 算法性能對(duì)比結(jié)果圖 從圖5的對(duì)比結(jié)果可知,GeoMF模型的指標(biāo)率最低。這說(shuō)明基于矩陣分解方法的POI推薦模型雖然有效緩解了數(shù)據(jù)稀疏性,但由于隱式向量?jī)?nèi)積操作只是簡(jiǎn)單向量間的線性乘法,不足以提取用戶和POI之間高階歷史交互特征尤其無(wú)法捕捉用戶簽到的序列特征。而ST-RNN和ST-LSTM模型將用戶的歷史簽到記錄用序列方式傳入RNN來(lái)學(xué)習(xí)用戶及POI的向量表達(dá),可有效建模用戶簽到的序列行為,故推薦性能指標(biāo)明顯高于GeoMF模型。同時(shí),ST-LSTM模型對(duì)ST-RNN進(jìn)行改進(jìn),避免了梯度消失,故ST-LSTM模型推薦性能優(yōu)于ST-RNN。而MF-ADNN結(jié)合矩陣分解技術(shù)和帶有注意力機(jī)制的用戶簽到序列建模技術(shù),可以降低簽到數(shù)據(jù)的稀疏性;細(xì)粒度建模用戶興趣;更好學(xué)習(xí)聯(lián)合影響因素的高階非線性交互特征。因此與其它3個(gè)模型相比,MF-ADNN在準(zhǔn)確率和召回率上均有更優(yōu)的表現(xiàn)。 文章提出一個(gè)結(jié)合矩陣分解和帶有注意力機(jī)制深度學(xué)習(xí)技術(shù)的POI推薦模型。該模型融合了時(shí)間影響、地理影響、社交影響以及序列影響4個(gè)因素實(shí)現(xiàn)用戶POI推薦。主要任務(wù)包括:通過(guò)構(gòu)建特征矩陣緩解簽到數(shù)據(jù)稀疏問題,矩陣分解得到隱藏因子,計(jì)算POI的特征向量;構(gòu)建一種帶注意力機(jī)制的用戶細(xì)粒度興趣的序列建模方式,有效學(xué)習(xí)用戶長(zhǎng)期和短期的興趣特征,提高POI推薦精確度;結(jié)合上述兩種方法,最終得到可以融合多種影響因素的POI推薦模型。試驗(yàn)結(jié)果表明,該P(yáng)OI推薦模型具有較好性能。文章未考慮的影響因素還有很多,如評(píng)論信息、文本信息等,未來(lái)的工作將考慮在模型中融入這些特征,進(jìn)一步提升推薦算法的性能。3 實(shí)驗(yàn)與分析
3.1 實(shí)驗(yàn)數(shù)據(jù)集
3.2 評(píng)價(jià)指標(biāo)
3.3 實(shí)驗(yàn)結(jié)果及分析
5 結(jié)束語(yǔ)