張大千,尹廣楹
(中國石油大學(xué)(華東) 計算機(jī)科學(xué)與技術(shù)學(xué)院,青島 266580)
興趣點(diǎn)(Point-Of-Interest,POI)推薦是個性化推薦方向中的一個分支,其目的在于根據(jù)用戶訪問興趣點(diǎn)的軌跡日志以及兩者本身的特征,為用戶推薦符合其偏好的興趣點(diǎn)[1].在基于位置的社交網(wǎng)絡(luò)(Location-Based Social Networks,LBSN)中,用戶通過移動設(shè)備上的應(yīng)用在附近的興趣點(diǎn)簽到,從而分享自己所處的位置,以生成屬于自己的興趣點(diǎn)行為軌跡.而興趣點(diǎn)推薦算法從某種意義上講,是基于用戶在LBSN 中的軌跡所研究或改進(jìn)的一種面向興趣點(diǎn)的推薦算法.
目前為止,興趣點(diǎn)推薦相關(guān)的研究主要以用戶的興趣點(diǎn)訪問序列、訪問頻次以及用戶本身所具有的社會關(guān)系網(wǎng)為基準(zhǔn)進(jìn)行推薦.其中,基于序列的推薦方法對興趣點(diǎn)訪問序列進(jìn)行時空上下文信息的挖掘,從而推測出用戶在下一時刻可能將要訪問的興趣點(diǎn).基于訪問頻次的興趣點(diǎn)推薦方法則是將用戶在LBSN 中所產(chǎn)生的簽到數(shù)據(jù)轉(zhuǎn)化為用戶-興趣點(diǎn)矩陣,其元素為用戶對該興趣點(diǎn)的總共訪問次數(shù),從而將興趣點(diǎn)推薦任務(wù)轉(zhuǎn)化為一般的用戶-物品矩陣的空缺項(xiàng)填充任務(wù)(即矩陣分解).而基于社交關(guān)系網(wǎng)的推薦方法則是根據(jù)用戶關(guān)系網(wǎng)所延展到的其它用戶信息,以及用戶之間的訪問軌跡相似度,為用戶進(jìn)行推薦.
在基于訪問頻次的興趣點(diǎn)推薦方法中,針對用戶未訪問過的興趣點(diǎn),其偏好程度能夠被有效地預(yù)測出來.然而該方法沒有考慮到用戶本身和興趣點(diǎn)的地理位置關(guān)系,以及用戶簽到數(shù)據(jù)的時間關(guān)系.同理,基于社交關(guān)系網(wǎng)的推薦方法將用戶相似度的計算過程以關(guān)系網(wǎng)數(shù)據(jù)進(jìn)行強(qiáng)化,從而使相似用戶的推理以及興趣點(diǎn)的推薦更具有合理性,但同樣沒有考慮到用戶偏好的時空上下文關(guān)系.因此,基于序列和時空上下文信息的方法適用于興趣點(diǎn)訪問序列的推薦,以局部的角度來講,此方法最有可能實(shí)現(xiàn)低訪問代價下用戶對偏好興趣點(diǎn)的訪問需求,但其推薦的產(chǎn)生方式類似于貪心算法,即根據(jù)前n項(xiàng)的興趣點(diǎn)訪問記錄生成用戶下一個最有可能訪問且代價相對較小的興趣點(diǎn).在不強(qiáng)調(diào)興趣點(diǎn)訪問順序以及特定訪問(必須經(jīng)過的)興趣點(diǎn)的情況下,局部訪問代價最小不全等于全局訪問代價最小.圖1為理想狀態(tài)下興趣點(diǎn)的推薦結(jié)果.
圖1 興趣點(diǎn)推薦示例
基于上述興趣點(diǎn)推薦的相關(guān)研究可以發(fā)現(xiàn),大部分的興趣點(diǎn)推薦研究成果將LBSN 的信息作為用戶喜好的參考進(jìn)行推薦,完全沒有考慮到用戶是否有必要訪問最符合喜好的興趣點(diǎn),以及訪問興趣點(diǎn)所付出的距離代價.而另外一小部分的研究成果雖然考慮到了興趣點(diǎn)的地理位置以及距離關(guān)系為用戶進(jìn)行推薦,但究其細(xì)節(jié),很難做到以全局最優(yōu)為考量滿足低訪問代價下用戶對偏好興趣點(diǎn)的訪問需求.因此,針對上述問題,本文提出了一種基于序列挖掘與距離損失優(yōu)化的興趣點(diǎn)推薦方法.其中,序列挖掘的目的在于通過用戶的興趣點(diǎn)訪問歷史序列總結(jié)出用戶所感興趣的興趣點(diǎn)特征,而距離損失優(yōu)化的目的在于使興趣點(diǎn)序列所產(chǎn)生的整體訪問代價達(dá)到最小.
如引言所述,許多興趣點(diǎn)推薦相關(guān)的研究基于LBSN 的信息對興趣點(diǎn)的推薦序列進(jìn)行優(yōu)化,力求所生成的興趣點(diǎn)候選項(xiàng)能夠盡可能地符合用戶的偏好.其中,一部分基于協(xié)同過濾的算法以LBSN 中的簽到數(shù)據(jù)為基準(zhǔn)對用戶的興趣點(diǎn)偏好進(jìn)行預(yù)測.例如文獻(xiàn)[2]中所提出的模型,將用戶與興趣點(diǎn)之間產(chǎn)生的交互數(shù)據(jù)轉(zhuǎn)化為矩陣,以矩陣分解的形式預(yù)測用戶對未曾到達(dá)過的地點(diǎn)的偏好程度.
相當(dāng)一部分融合社交關(guān)系信息優(yōu)化矩陣分解的方法以直接相連的用戶間關(guān)系為基準(zhǔn)對算法模型進(jìn)行優(yōu)化.在實(shí)際的應(yīng)用場景中,具有直接關(guān)系的用戶被認(rèn)為具有相似的偏好,因此可以當(dāng)作推薦的依據(jù).基于此,以社交關(guān)系信息與評分信息相結(jié)合的推薦模型成為主流,如Ma 等所提出的SoRec 模型[3]以及Guo 等所提出的TrustSVD 算法[4].此外,在文獻(xiàn)[4]的工作中,用戶間的直接社交關(guān)系以及評分信息被整合為一個混合矩陣,基于該混合矩陣,Guo 等提出了基于隨機(jī)梯度下降的分解算法.
然而,所有基于協(xié)同過濾的推薦算法具有一定的共性,即側(cè)重于用戶對項(xiàng)目所產(chǎn)生的交互值(如評分)而非用戶或項(xiàng)目本身,因此該算法無法充分運(yùn)用興趣點(diǎn)或用戶本身的信息完善其推薦性能.并且,在現(xiàn)實(shí)世界中,用戶的興趣點(diǎn)訪問軌跡重合率較低,因此對于協(xié)同過濾相關(guān)的算法,其性能將受到數(shù)據(jù)稀疏性的制約.針對此類問題,許多有關(guān)協(xié)同過濾的研究成果以用戶-項(xiàng)目交互值之外的信息作為補(bǔ)充,避免數(shù)據(jù)稀疏性帶來的負(fù)面影響.
在基于LBSN 的信息中,用戶的興趣點(diǎn)訪問軌跡以及興趣點(diǎn)的地理位置也是推薦算法的重要考慮因素.在龔衛(wèi)華等[5]提出的基于社區(qū)發(fā)現(xiàn)的興趣點(diǎn)推薦方法中,興趣點(diǎn)按照地理位置被歸類為多個簇,根據(jù)多個簇所凸顯出的喜好特征,用戶相對于地理位置簇的隸屬度(即喜好程度)被計算出來,從而由面及點(diǎn),將隸屬度高的地理位置簇中的興趣點(diǎn)推選給相應(yīng)的用戶.基于社區(qū)發(fā)現(xiàn)的方法側(cè)重于利用用戶本身所攜帶的社區(qū)關(guān)系網(wǎng)以及興趣點(diǎn)位置為用戶生成興趣點(diǎn)候選項(xiàng),充分利用LBSN 中的信息進(jìn)行推薦.但此方法將興趣點(diǎn)地理位置作為偏好因素為用戶生成推薦列表,并沒有將興趣點(diǎn)地理位置所隱含的訪問距離代價考慮在內(nèi),在興趣點(diǎn)次序以及必要性需求較弱的情況下,所推薦的興趣點(diǎn)序列可能脫離用戶的實(shí)際要求.
序列推薦是推薦算法的一個子集,其目的在于以用戶對物品產(chǎn)生的交互作為歷史依據(jù),為用戶生成一系列符合其偏好的推薦候選序列.在實(shí)際的應(yīng)用中,用戶對物品的偏好可能會隨著時間的推移產(chǎn)生變化,因此有必要利用時空上下文相關(guān)的信息對推薦算法進(jìn)行進(jìn)一步優(yōu)化.考慮到上述問題,Koren 等在矩陣分解的過程中所產(chǎn)生的偏置信息同時間變量建立映射關(guān)系,提出timeSVD[6]模型.但從現(xiàn)實(shí)意義上來講,用戶興趣與時間的映射關(guān)系因人而異,簡單的線性關(guān)系不能夠完整準(zhǔn)確地描述用戶隨時間推移產(chǎn)生的興趣變化.因此,基于序列的推薦更偏向于對用戶歷史行為建模而非對用戶興趣與時間變量的映射關(guān)系建模.
針對推薦任務(wù)中用戶交互序列所隱含的復(fù)雜時空上下文關(guān)系,RNN和CNN 的思想也被應(yīng)用于序列推薦中.Hidasi 等針對大部分推薦系統(tǒng)只能根據(jù)短時的會話記錄進(jìn)行推薦,而不能根據(jù)長時間的用戶行為記錄進(jìn)行有效推薦的問題,對傳統(tǒng)RNN 進(jìn)行了修改,使之更適應(yīng)于序列化推薦[7].Tang 等提出CASER[8]模型,這是一種基于CNN 思想實(shí)現(xiàn)的推薦模型,目的是來預(yù)測用戶未來可能有交互行為的前n個物品的排序.該模型的主要思想是將一系列最近產(chǎn)生交互的物品嵌入到時間和潛在空間所對應(yīng)的“圖像”中,并使用卷積濾波器學(xué)習(xí)交互序列作為圖像的局部特征.
在興趣點(diǎn)推薦任務(wù)中,用戶的興趣點(diǎn)訪問序列具備完整的時空信息.在蔣宗禮等[9]的研究成果中,興趣點(diǎn)推薦問題被轉(zhuǎn)化為根據(jù)用戶的歷史訪問序列預(yù)測未來興趣點(diǎn)序列的問題.在用戶的興趣點(diǎn)歷史訪問序列中,興趣點(diǎn)之間的轉(zhuǎn)移概率,即用戶從其中一個興趣點(diǎn)在若干步以內(nèi)轉(zhuǎn)移至下一個興趣點(diǎn)的概率,通過統(tǒng)計學(xué)的方式計算出來.根據(jù)興趣點(diǎn)之間的轉(zhuǎn)移概率,受到NLP 領(lǐng)域中Skim-gram 方法的啟發(fā),以長文本中詞預(yù)測的方式對用戶將要訪問的下一個興趣點(diǎn)進(jìn)行預(yù)測.在強(qiáng)調(diào)興趣點(diǎn)先后順序的情況下,本方法能夠在局部意義上實(shí)現(xiàn)為用戶推薦訪問代價較小且符合習(xí)慣的興趣點(diǎn)訪問序列.然而,在現(xiàn)實(shí)環(huán)境中,存在相對一部分用戶,其行為軌跡中對興趣點(diǎn)的訪問順序并非如句子中的詞向量一樣具有明顯的先后關(guān)系,興趣點(diǎn)之間的轉(zhuǎn)移概率可能差別并不大.因此從全局的角度來看,此類方法不適用于這部分用戶的興趣點(diǎn)推薦.
此外,在實(shí)際的應(yīng)用中,用戶并不是在任何時候都對自己所經(jīng)過的興趣點(diǎn)信息實(shí)時上報.在本文所使用的數(shù)據(jù)集中,LBSN 信息僅僅包含用戶之間簡單的關(guān)系網(wǎng)以及興趣點(diǎn)的訪問軌跡,并不包含交互類的附加信息(如評分或文本評價).由于用戶的行動距離有限,用戶之間的興趣點(diǎn)軌跡重合程度普遍較低,其數(shù)據(jù)稀疏性比一般的電商平臺中的用戶訂單數(shù)據(jù)可能還要高,針對未訪問過的興趣點(diǎn)不能單純以用戶相似度做出準(zhǔn)確的喜好估計.由此可見,興趣點(diǎn)推薦雖然是推薦領(lǐng)域中的一個分支,但其所要考慮的因素比一般的推薦算法要廣,用戶對興趣點(diǎn)的偏好往往與用戶的行動能力、興趣點(diǎn)的相對距離以及用戶本身的社交網(wǎng)(鄰近用戶的偏好)有關(guān).因此,本文提出了一種兼顧用戶偏好以及訪問代價的興趣點(diǎn)推薦方法,旨在將上述信息進(jìn)行整合,為用戶生成符合現(xiàn)實(shí)情況的興趣點(diǎn)訪問序列.
首先,基于LBSN 的興趣點(diǎn)推薦任務(wù)可以表述如下:設(shè)U={u1,u2,···,un}為用戶集合,而待推薦的興趣點(diǎn)集合為L={l1,l2,···,lm}.對于集合U中的每一個用戶ui,存在按照時間從先到后排序的交互序列Hi={hi1,hi2,···,hit|hij∈L,j∈[0,t]}.此外,在LBSN 中用戶之間的關(guān)系以圖的形式表征,設(shè)為G.在關(guān)系網(wǎng)G中,每一個節(jié)點(diǎn)代表一個用戶,而用戶之間的邊代表兩個用戶之間存在關(guān)系.根據(jù)以上數(shù)據(jù),預(yù)測用戶將來可能訪問的若干個興趣點(diǎn)POIi={li1,li2,···,lik|lij∈L,j∈[0,k]},并保證這組興趣點(diǎn)兼顧用戶的偏好以及訪問興趣點(diǎn)所產(chǎn)生的距離代價因素.
針對上述推薦任務(wù),本文提出了如圖2所示的算法模型.該算法模型首先將用戶與興趣點(diǎn)的交互矩陣以社交關(guān)系信息進(jìn)行補(bǔ)充,之后對補(bǔ)充后所生成的混合矩陣進(jìn)行分解.最后,根據(jù)用戶對興趣點(diǎn)的訪問記錄,對矩陣分解的過程中所生成的興趣點(diǎn)隱向量建立時序關(guān)系,以類遞歸形式的模型對序列進(jìn)行學(xué)習(xí),從而推斷出用戶將來可能訪問的興趣點(diǎn).
圖2 模型結(jié)構(gòu)
在興趣點(diǎn)推薦的實(shí)際應(yīng)用環(huán)境中,根據(jù)訪問頻次所形成的用戶-興趣點(diǎn)交互矩陣往往表現(xiàn)出較高的稀疏性.通過LBSN 中給定的社交關(guān)系網(wǎng),交互矩陣得以稠密化,為下一步的矩陣分解以及用戶或興趣點(diǎn)的隱特征向量生成做準(zhǔn)備.
然而,直接相連的社交關(guān)系對相似用戶的喜好挖掘并不充分,在現(xiàn)實(shí)世界中具有間接關(guān)系的用戶之間也具有一定的聯(lián)系.考慮到LBSN 中所提供信息的局限程度,本文參考了文獻(xiàn)[4]中的思想,以用戶之間的關(guān)系距離為參考,將用戶社交關(guān)系信息以及用戶-興趣點(diǎn)的交互信息整合為混合矩陣.
針對每一個用戶ui,其社交關(guān)系往往以一定的層級關(guān)系進(jìn)行傳遞,且用戶ui與其他用戶之間的可達(dá)關(guān)系路徑并不唯一.因此,用戶ui對其本身在社交關(guān)系網(wǎng)中能夠觸及到的其他用戶之間存在不同程度的親疏關(guān)系.由于本文所使用的數(shù)據(jù)集中關(guān)系網(wǎng)所包含的信息較為簡單(基本只有用戶id 以及無向邊關(guān)系),以用戶ui通過關(guān)系網(wǎng)到達(dá)其他用戶所產(chǎn)生的關(guān)系距離為準(zhǔn),衡量關(guān)系網(wǎng)中其他用戶對用戶ui的影響程度:
其中,s(i,k) 表示用戶ui與uk之間的親疏程度,而d(i,k)表示在關(guān)系網(wǎng)G中用戶ui與uk之間所有可達(dá)路徑的長度,一般為一組離散值.若用戶ui無法通過關(guān)系網(wǎng)G找到uk,即兩者之間根本不存在社交關(guān)系,那么兩者之間的可達(dá)距離最小值m in(d(i,k))將會變?yōu)闊o限大;若i等于k,即uk指向用戶自身,那么可達(dá)距離最小值為0.由上式可以看出,用戶ui與uk之間的最短關(guān)系路徑長度越小,兩者的親密程度就越高.根據(jù)親疏程度s(i,k)以及用戶關(guān)于興趣點(diǎn)的表征向量ui,稠密化的新向量rui得以計算,將每一個rui按行進(jìn)行組合表示,即可獲得新的稠密化交互矩陣.
根據(jù)用戶間社交關(guān)系親疏程度將矩陣稠密化的步驟可概括如下:
1)對于用戶-興趣點(diǎn)交互矩陣的每一行,可看作用戶ui關(guān)于興趣點(diǎn)的表征向量,而向量的每一列fij值代表ui對興趣點(diǎn)lj的訪問次數(shù).即
2)對每一個用戶ui,根據(jù)其社交關(guān)系網(wǎng)中與其他用戶的親疏程度以及其他用戶的表征向量,進(jìn)行加權(quán)整合,生成新的稠密化用戶向量rui:
3)將每一個用戶向量rui以行的形式整合為交互矩陣R,并且以特定的方式將R中的元素縮放至一定的區(qū)間內(nèi),以提高算法模型收斂的速度及效果.在原本的用戶-興趣點(diǎn)交互矩陣中,元素的值表示特定用戶對某個興趣點(diǎn)所產(chǎn)生的訪問次數(shù),由于數(shù)據(jù)的分布并非固定在一定的值域內(nèi),故使用標(biāo)準(zhǔn)化的方式將R中的元素進(jìn)行線性變換,使其值分布于[?1,1]之間.
至此,原本的用戶-興趣點(diǎn)交互矩陣以用戶關(guān)系網(wǎng)信息作為參考,經(jīng)過稠密化與標(biāo)準(zhǔn)化形成新的矩陣R,對其進(jìn)行矩陣分解,可得到用戶或興趣點(diǎn)的隱特征向量表示.
在上一小節(jié)中,融合用戶社交關(guān)系以及興趣點(diǎn)訪問次數(shù)的混合矩陣已經(jīng)構(gòu)建完成,依據(jù)SVD 的思想,考慮到偏置信息[10],矩陣中的每一個元素可表示為:
其中,pi表示用戶的隱特征向量,qj表示興趣點(diǎn)的隱特征向量,而bi和bj分別表示用戶和興趣點(diǎn)的偏移量,μ表示混合矩陣元素的全局偏移量.由于本文對混合矩陣的分解基于SVD 思想,因此擬合過程中采用隨機(jī)梯度下降法優(yōu)化以下?lián)p失函數(shù):
可以看出,損失部分由兩部分構(gòu)成,前者為預(yù)測值與實(shí)際值rij之間產(chǎn)生的偏差,而后者為所生成的隱特征向量的模.該損失函數(shù)的目的在于同時兼顧高準(zhǔn)確率與隱特征向量的低復(fù)雜度.
為了充分利用用戶的興趣點(diǎn)訪問序列中所隱含的上下文信息優(yōu)化推薦性能,將長短期記憶網(wǎng)絡(luò)的思想應(yīng)用于基于序列的推薦任務(wù)中.長短期記憶網(wǎng)絡(luò)(Long-Short Term Memory,LSTM)基于RNN 改進(jìn),是一種對時間序列所隱含的信息進(jìn)行挖掘的模型,能夠有效避免序列元素的長依賴問題.在本文所使用的Gowalla 數(shù)據(jù)集中,用戶的興趣點(diǎn)訪問序列長度最多可達(dá)1600 左右,宜用LSTM 進(jìn)行處理.
根據(jù)Li 等[11]的分析,在實(shí)際的推薦任務(wù)中,用戶的決策過程受到其當(dāng)前動機(jī)和長期偏好的影響.針對兩種不同的影響因素,Li 等所提出的行為神經(jīng)網(wǎng)絡(luò)針對用戶的短期訪問行為和歷史訪問記錄分別建立兩種不同的LSTM 進(jìn)行學(xué)習(xí),最終以一個全連接網(wǎng)絡(luò)將兩種LSTM 的輸出進(jìn)行匯總,得到用戶的下一項(xiàng)可能訪問的物品.以Li 等所提出的算法模型作為參考,本文對LSTM 中的損失函數(shù)進(jìn)行改進(jìn).改進(jìn)后的模型能夠綜合考慮用戶喜好以及訪問代價,并給出相應(yīng)的推薦結(jié)果.
在原本的LSTM 損失函數(shù)中,興趣點(diǎn)的預(yù)測向量與真實(shí)表征向量之間的均方誤差(Mean Squared Error,MSE)被用來衡量模型的準(zhǔn)確度,其推薦結(jié)果更偏向于用戶的喜好.為了使模型在關(guān)注用戶喜好的同時能夠兼顧興趣點(diǎn)序列中的距離要素進(jìn)行推薦,本文提出了基于距離優(yōu)化的LSTM 模型(LSTM based on Distance Optimization,DO-LSTM),對原本的損失函數(shù)做出了如下改進(jìn):
該算式中,H表示n個用戶序列的集合,即H={H1,H2,···,Hn};ts表示LSTM 訓(xùn)練過程中所采用的時間步長.對于每一個用戶i的興趣點(diǎn)訪問序列Hi,以Hi中的前ts項(xiàng)作為輸入,所產(chǎn)生的結(jié)果應(yīng)該與Hi中的后|Hi|?ts?1|項(xiàng)形成的子序列保持較小的隱特征向量誤差,即每一時刻的MS E(,qt)達(dá)到最小,而序列內(nèi)部的興趣點(diǎn)距離代價D(Li)不宜過高.因此,該損失函數(shù)主要由兩部分組成:偏好興趣點(diǎn)的預(yù)測誤差以及預(yù)測序列的距離代價.其中,偏好興趣點(diǎn)的預(yù)測誤差等于每個時刻t中的興趣點(diǎn)預(yù)測值與真實(shí)值的MSE 之和,和qt分別表示出現(xiàn)在t時刻的預(yù)測值和真實(shí)值;而序列的整體距離代價D(Li)由相鄰時刻內(nèi)興趣點(diǎn)之間的距離依次相加而得,pos()表示預(yù)測值所對應(yīng)的地理位置(一般取預(yù)測值最為相似的興趣點(diǎn)向量所在的地理位置),dist(pos(),pos()) 則表示與之間的距離,采用歐式距離公式進(jìn)行計算.τ為超參數(shù),用以調(diào)節(jié)距離代價所占的比重.
在訓(xùn)練的過程中,使用自適應(yīng)梯度算法(AdaGrad)[12]方法對該損失函數(shù)進(jìn)行最小化.AdaGrad 以每次迭代的歷史梯度平方和為分母調(diào)整模型中不同參數(shù)的學(xué)習(xí)率,能夠更有效地使模型收斂.
最終,如圖2所示,LBSN 中的用戶-興趣點(diǎn)交互信息首先以社交網(wǎng)數(shù)據(jù)為輔助信息形成混合矩陣;基于該混合矩陣,用戶和興趣點(diǎn)的隱特征向量被提取;最后,根據(jù)用戶的興趣點(diǎn)訪問序列以及所提取的興趣點(diǎn)特征向量,以序列中所隱含的時空上下文關(guān)系為用戶推薦一組符合用戶偏好以及距離要求的興趣點(diǎn).
本文使用Gowalla和Yelp 的數(shù)據(jù)進(jìn)行研究與實(shí)驗(yàn).Gowalla 數(shù)據(jù)集中包含了32 510 個地點(diǎn)與18 737 個用戶的興趣點(diǎn)訪問軌跡,共計1278 274 條簽到數(shù)據(jù).Yelp 數(shù)據(jù)集中包含了30 887 個地點(diǎn)與18 995 個用戶的興趣點(diǎn)訪問軌跡,共計860 888 條簽到數(shù)據(jù).此外,在兩個數(shù)據(jù)集中均包含用戶關(guān)系網(wǎng)數(shù)據(jù).
對于這兩種數(shù)據(jù)集,本文按時間順序取前80%的數(shù)據(jù)為訓(xùn)練集,后20%的數(shù)據(jù)為測試集.在基于LSTM與距離優(yōu)化的序列推薦模型中,興趣點(diǎn)本身的推薦準(zhǔn)確率要比興趣點(diǎn)的排序正確程度更加重要,且興趣點(diǎn)的排序并非單純依賴于用戶的偏好,而是綜合考慮了訪問興趣點(diǎn)所產(chǎn)生的距離損失.因此,以Precision@N 衡量模型的推薦性能,即在未來的長度為N的序列中,用戶接下來確實(shí)要訪問的興趣點(diǎn)所占的比例.
本文選取了以下幾種算法模型進(jìn)行實(shí)驗(yàn)對比:
1) 基于協(xié)同過濾(CF)的推薦算法:在近百萬條簽到數(shù)據(jù)中,對每一個用戶尋找訪問過相同興趣點(diǎn)的用戶,并標(biāo)記為此用戶的近鄰用戶.根據(jù)近鄰程度,即目標(biāo)用戶與近鄰用戶的興趣點(diǎn)偏好相同程度,為目標(biāo)用戶推薦近鄰用戶所偏好的興趣點(diǎn).此類方法同樣不關(guān)心用戶或興趣點(diǎn)本身的特征,近鄰用戶的計算基于用戶與興趣點(diǎn)的交互行為.
2) 基于奇異值分解(SVD)的算法:SVD 類模型試圖將用戶-興趣點(diǎn)之間的交互數(shù)據(jù)轉(zhuǎn)化為以用戶id為行、以興趣點(diǎn)id為列、以用戶對興趣點(diǎn)訪問頻次為元素值的矩陣,以矩陣元素實(shí)際值與分解項(xiàng)相乘所得的預(yù)測值之間的誤差為損失函數(shù)進(jìn)行訓(xùn)練.通過SVD 模型,矩陣被分解為兩個更小規(guī)模的矩陣,矩陣的行或列代表每一個用戶或興趣點(diǎn)的隱特征向量.SVD 的目的在于對未訪問部分進(jìn)行訪問頻次預(yù)估,從而全面挖掘用戶偏好的興趣點(diǎn),并按照頻次大小排序推薦給用戶.本實(shí)驗(yàn)中,使用biasedSVD[10]模型進(jìn)行測試.
3) 基于自注意力機(jī)制(self-attention)的算法:多用于NLP 領(lǐng)域中語義分析相關(guān)的任務(wù)中,其目的是根據(jù)整個句子中詞語之間的聯(lián)系,判斷出相對值得注意,即能夠完整表述句子意義的部分.而AttRec[13]模型則是將用戶的興趣點(diǎn)訪問序列看作NLP 中的“句子”,并通過自注意力機(jī)制判斷序列中用戶最為關(guān)注的興趣點(diǎn),該興趣點(diǎn)往往能夠全局性地代表用戶訪問序列所隱含的整體偏好.
4) 基于長短期記憶網(wǎng)絡(luò)(LSTM)與距離優(yōu)化的算法:即本文所提出的DO-LSTM 模型.該模型參考了LSTM在語義分析任務(wù)中的用途,根據(jù)興趣點(diǎn)之間的時空上下文推斷用戶在未來的n個時刻可能訪問的興趣點(diǎn).和其它的基于序列的推薦算法不同,本模型對未來序列的預(yù)測并不完全依賴于用戶的喜好,興趣點(diǎn)的可達(dá)性(即訪問代價)也是該模型的關(guān)注點(diǎn)之一.
取τ=0.7作為損失函數(shù)中距離代價所占比重,分別以N=5/10/20 對4 個算法模型分別在Gowalla和Yelp的數(shù)據(jù)所表現(xiàn)出的性能進(jìn)行評估,實(shí)驗(yàn)結(jié)果如圖3.
圖3 Gowalla和Yelp 數(shù)據(jù)集中的準(zhǔn)確率對比柱狀圖
由圖3可以看出,在完整性有限的數(shù)據(jù)集中,DOLSTM 模型所表現(xiàn)出的準(zhǔn)確率與召回率比其它的算法模型較好.
本文對興趣點(diǎn)推薦研究相關(guān)的現(xiàn)狀進(jìn)行分析,針對興趣點(diǎn)偏好推薦以及興趣點(diǎn)可達(dá)性提出DO-LSTM模型.相比于其它的興趣點(diǎn)推薦模型,該模型能夠在興趣點(diǎn)交互信息較為促狹的情況下為用戶生成一系列偏好的興趣點(diǎn),且這些興趣點(diǎn)對當(dāng)前用戶具有較好的可達(dá)性.然而,在興趣點(diǎn)推薦領(lǐng)域中,本模型仍然具有需要改進(jìn)的地方:
首先,該模型能夠僅根據(jù)LBSN 中用戶-興趣點(diǎn)的訪問序列、興趣點(diǎn)地理位置以及簡單的用戶社交關(guān)系網(wǎng)為用戶生成相對準(zhǔn)確且完整的偏好興趣點(diǎn).然而該模型在豐富的LBSN 數(shù)據(jù)中的性能表現(xiàn)可能不如其它模型,如基于地理-社會-評論關(guān)系的推薦方法[14]以及融合地理信息的推薦方法[15],這兩種模型分別將評論關(guān)系以及興趣點(diǎn)詳細(xì)信息作為參考因素優(yōu)化推薦性能.因此在后續(xù)的改進(jìn)工作中,將繼續(xù)收集興趣點(diǎn)的詳細(xì)信息以及用戶-興趣點(diǎn)評論關(guān)系,對模型進(jìn)行重新設(shè)計.
其次,由于用戶社交關(guān)系網(wǎng)信息過于簡單,僅包含成對的用戶id 信息,該模型對該信息的利用并不充分,僅以用戶之間的社交關(guān)系距離為考量預(yù)估用戶對興趣點(diǎn)的偏好程度.而改進(jìn)的方向主要分為兩個方面:一是豐富社會關(guān)系網(wǎng)的邊信息,使關(guān)系類型有所區(qū)分(如朋友關(guān)系、父母關(guān)系等).二是使用圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks,GNN)[16]等更加精確的模型分析社交網(wǎng)中每一個用戶與其它用戶的相互影響程度,從而準(zhǔn)確地評估出當(dāng)前用戶在其它近鄰用戶的影響下對興趣點(diǎn)的偏好.
綜上,在未來的工作中,本模型將根據(jù)以上不足之處進(jìn)行改進(jìn),使其能夠用于更加復(fù)雜的業(yè)務(wù)環(huán)境中.