孟祥福,齊雪月,張全貴,張霄雁,王麗
(遼寧工程技術(shù)大學(xué) 電子與信息工程學(xué)院,遼寧 葫蘆島 125105)
近年來(lái),隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)和智能設(shè)備的飛速發(fā)展,用戶可以方便地獲取個(gè)人的實(shí)時(shí)位置信息,使得基于位置的社交網(wǎng)絡(luò)(LBSNs)和興趣點(diǎn)推薦(POI recommendation)技術(shù)得到了研究者的廣泛關(guān)注。協(xié)同過(guò)濾是推薦系統(tǒng)中廣泛使用的方法,其基本思想是:通過(guò)分析用戶的興趣偏好找到與某個(gè)用戶偏好相似的其他用戶,然后綜合這些相似用戶對(duì)興趣點(diǎn)的評(píng)價(jià),預(yù)測(cè)該用戶對(duì)興趣點(diǎn)的偏好程度。然而,在大規(guī)模數(shù)據(jù)集中,用戶對(duì)興趣點(diǎn)的評(píng)價(jià)非常稀疏,僅依賴評(píng)級(jí)矩陣進(jìn)行協(xié)同過(guò)濾推薦很難得到準(zhǔn)確合理的推薦結(jié)果[1-2]。
用戶與興趣點(diǎn)在屬性信息上存在顯式的關(guān)聯(lián)關(guān)系。例如,年輕人在選擇興趣點(diǎn)時(shí)可能會(huì)選擇游樂(lè)場(chǎng),而老年人通常會(huì)選擇公園;此外,人們?cè)谶x擇興趣點(diǎn)時(shí)也受距離的影響,多數(shù)情況下會(huì)選擇距離較近的興趣點(diǎn)[3]。由此可見(jiàn),用戶的年齡和興趣點(diǎn)的位置信息在用戶選擇興趣點(diǎn)時(shí)起著一定作用,也就是說(shuō),用戶的年齡屬性和興趣點(diǎn)的位置屬性之間存在著顯式關(guān)聯(lián)關(guān)系。此外,用戶與興趣點(diǎn)之間也存在著隱式關(guān)聯(lián)關(guān)系。例如,簽到行為反映了用戶與興趣點(diǎn)之間的交互關(guān)系,用戶可能由于某種潛在因素選擇了某個(gè)興趣點(diǎn),簽到矩陣反映的就是用戶與興趣點(diǎn)之間的隱式關(guān)聯(lián)關(guān)系?,F(xiàn)有的推薦模型,通常是根據(jù)用戶對(duì)興趣點(diǎn)的簽到矩陣或評(píng)分矩陣,利用基于矩陣分解的協(xié)同過(guò)濾方法進(jìn)行興趣點(diǎn)推薦,很少有模型同時(shí)考慮用戶與興趣點(diǎn)在屬性(或特征)上的顯式關(guān)聯(lián)關(guān)系和通過(guò)簽到矩陣體現(xiàn)的隱式關(guān)聯(lián)關(guān)系,這里將用戶與興趣點(diǎn)之間的顯式和隱式關(guān)聯(lián)關(guān)系綜合稱為耦合關(guān)系。
為了解決上述問(wèn)題,本文提出了基于用戶-興趣點(diǎn)耦合關(guān)系的興趣點(diǎn)推薦模型,該模型分別學(xué)習(xí)用戶與興趣點(diǎn)在屬性上的顯式關(guān)聯(lián)關(guān)系和簽到矩陣中的隱式關(guān)聯(lián)關(guān)系,將二者進(jìn)行集成,進(jìn)而實(shí)現(xiàn)興趣點(diǎn)的準(zhǔn)確推薦。最近的一些研究也提出了使用深度學(xué)習(xí)進(jìn)行推薦,但是對(duì)用戶與興趣點(diǎn)之間的交互行為進(jìn)行建模時(shí)仍然使用矩陣分解方法。文獻(xiàn)[4]闡述了矩陣分解建模用戶和項(xiàng)目之間的交互行為的局限性,因此本文提出使用神經(jīng)網(wǎng)絡(luò)來(lái)改善矩陣分解方法,從而更好地挖掘用戶與興趣點(diǎn)之間的隱式關(guān)聯(lián)關(guān)系。此外,位置信息是興趣點(diǎn)的基本屬性,也是興趣點(diǎn)推薦算法必須考慮的關(guān)鍵因素[5-7]。本文利用k-means算法根據(jù)興趣點(diǎn)的位置信息對(duì)興趣點(diǎn)進(jìn)行聚類,得到合適的區(qū)域分塊,使得每個(gè)興趣點(diǎn)被分配一個(gè)其對(duì)應(yīng)區(qū)域的位置標(biāo)簽。在此基礎(chǔ)上,構(gòu)建一個(gè)卷積神經(jīng)網(wǎng)絡(luò)模型,用來(lái)捕獲用戶屬性與興趣點(diǎn)屬性之間的顯式關(guān)聯(lián)關(guān)系。最后,將用戶與興趣點(diǎn)之間的顯式和隱式關(guān)聯(lián)關(guān)系集成到同一個(gè)框架中,綜合表征用戶-興趣點(diǎn)之間的耦合關(guān)系,在此基礎(chǔ)上利用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行精準(zhǔn)推薦。
本文的主要貢獻(xiàn):1)由于位置信息在興趣點(diǎn)推薦中具有重要作用,提出將位置信息作為劃分興趣點(diǎn)類別的主要標(biāo)準(zhǔn),進(jìn)而采用K-means算法對(duì)興趣點(diǎn)進(jìn)行聚類;2)提出了基于用戶-興趣點(diǎn)耦合關(guān)系的興趣點(diǎn)推薦模型,該模型綜合考慮了興趣點(diǎn)與用戶在各自屬性上的顯式關(guān)聯(lián)關(guān)系以及在簽到數(shù)據(jù)中的隱式關(guān)聯(lián)關(guān)系,從而提高推薦結(jié)果質(zhì)量;3)在Yelp數(shù)據(jù)集上進(jìn)行了算法的效果與性能實(shí)驗(yàn)評(píng)價(jià),驗(yàn)證了本文方法的有效性。
近年來(lái),隨著空間Web對(duì)象的迅速增多,興趣點(diǎn)推薦成為當(dāng)前推薦系統(tǒng)領(lǐng)域的研究熱點(diǎn)。興趣點(diǎn)推薦與傳統(tǒng)的商品推薦有以下不同:1)興趣點(diǎn)具有位置信息,并且位置信息在用戶選擇興趣點(diǎn)時(shí)起著重要作用。例如用戶可能由于位置信息更傾向于距離較近的興趣點(diǎn);2)興趣點(diǎn)推薦中的簽到矩陣比普通商品推薦中的評(píng)分矩陣更加稀疏;3)用戶對(duì)一個(gè)興趣點(diǎn)的喜好更可能隱藏在評(píng)論文本中,而傳統(tǒng)的商品推薦中用戶的喜好通常顯式體現(xiàn)在用戶對(duì)商品的評(píng)分中。
興趣點(diǎn)推薦方面研究主要分為以下3類,第一類是下一個(gè)興趣點(diǎn)推薦(next POI recommendation)[5,8-9]。文獻(xiàn)[8]提出了一種多上下文集成的深度神經(jīng)網(wǎng)絡(luò)模型(MCIDNN)提高下一個(gè)位置預(yù)測(cè)的精度,該模型考慮了用戶簽到序列信息、用戶偏好和輸入上下文(位置信息、時(shí)間信息等)之間的相互作用。文獻(xiàn)[5]提出了一種個(gè)性化排序度量嵌入方法(PRME),對(duì)個(gè)性化的簽到序列進(jìn)行建模,并且進(jìn)一步提出了一個(gè)整合序列信息、個(gè)體偏好和地理位置影響的PRME-G模型。文獻(xiàn)[6,10]采用基于一階馬爾可夫鏈對(duì)序列模式進(jìn)行建模,但由于計(jì)算復(fù)雜度較高,該模型僅使用近期簽到記錄進(jìn)行預(yù)測(cè),忽略了長(zhǎng)、短期序列上下文的影響。文獻(xiàn)[11]提出了用一個(gè)三階張量來(lái)模擬用戶連續(xù)簽到行為的模型,利用softmax函數(shù)將個(gè)性化馬爾可夫鏈與潛在模式融合,提出了一種貝葉斯個(gè)性化排序(BPR)方法。文獻(xiàn)[12]提出了Distance2Pre模型,利用GRU模型整合用戶不同地理距離偏好,在此基礎(chǔ)上進(jìn)行下一個(gè)興趣點(diǎn)預(yù)測(cè),提出了線性和非線性兩種方式整合用戶距離偏好分?jǐn)?shù)。不同于日常興趣點(diǎn)推薦,下一個(gè)興趣點(diǎn)推薦側(cè)重于分析用戶的歷史移動(dòng)序列軌跡,預(yù)測(cè)用戶下一時(shí)段可能訪問(wèn)的興趣點(diǎn)。
第2類為遠(yuǎn)途旅行興趣點(diǎn)推薦(remote POI recommendation)[7]。文獻(xiàn)[13]針對(duì)位置的情感屬性,提出了一種興趣點(diǎn)挖掘方法,首先使用Sentiment-based POI Mining(基于情感的興趣點(diǎn)挖掘)算法挖掘具有明顯情感屬性的興趣點(diǎn),然后使用Sentiment-based POI Recommendation(基于情感的興趣點(diǎn)推薦)算法向用戶推薦興趣點(diǎn)。文獻(xiàn)[14]通過(guò)合并興趣點(diǎn)可用性(興趣點(diǎn)可能只在某個(gè)時(shí)間窗口內(nèi)可用)的約束和不確定旅行時(shí)間(兩個(gè)興趣點(diǎn)之間的旅行時(shí)間不確定)的約束來(lái)縮減搜索空間,為用戶提供個(gè)性化的旅行推薦。遠(yuǎn)途旅行興趣點(diǎn)推薦也會(huì)受地理因素和個(gè)人偏好的影響,但更傾向于考慮大眾偏好。
第3類為日常興趣點(diǎn)推薦(general POI recommendation)[1,15]。文獻(xiàn)[16]通過(guò)利用用戶和興趣點(diǎn)之間的位置相關(guān)性、社會(huì)相關(guān)性和類別相關(guān)性進(jìn)行興趣點(diǎn)推薦。文獻(xiàn)[3]指出地理位置上的朋友、社交網(wǎng)絡(luò)中的朋友以及在同一地點(diǎn)簽到過(guò)的朋友對(duì)興趣點(diǎn)的選擇都具有影響。文獻(xiàn)[17]提出將用戶-項(xiàng)目交互數(shù)據(jù)構(gòu)建成二部圖,使用圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)用戶和項(xiàng)目的嵌入向量。在用戶和項(xiàng)目的嵌入向量中以嵌入傳播的方式顯式注入了協(xié)作信號(hào)。STAR-GCN[18]模型學(xué)習(xí)用戶和項(xiàng)目的低維嵌入向量再輸入到網(wǎng)絡(luò)中,為了預(yù)測(cè)冷啟動(dòng)問(wèn)題中的節(jié)點(diǎn)嵌入向量,STAR-GCN屏蔽了部分用戶和項(xiàng)目的嵌入向量,然后通過(guò)圖編碼-解碼器重構(gòu)這些被屏蔽的嵌入向量,有效緩解了冷啟動(dòng)問(wèn)題。文獻(xiàn)[15]結(jié)合位置因素和時(shí)間因素構(gòu)建了用戶的興趣動(dòng)態(tài)變化模型,以獲得更加準(zhǔn)確的興趣點(diǎn)推薦效果。矩陣分解方法在興趣點(diǎn)推薦中也得到了廣泛的應(yīng)用,例如文獻(xiàn)[19]整合了用戶的社交關(guān)系和位置信息到概率矩陣分解(probabilistic matrix factorization)中。文獻(xiàn)[20]提出了基于加權(quán)矩陣分解模型的興趣點(diǎn)推薦方法。由于用戶簽到行為存在空間聚合現(xiàn)象,該方法從二維核密度估計(jì)的角度,描述了空間聚合的影響并將其整合到矩陣分解模型中。但需要指出的是,上述研究[3,15,21]都使用潛在特征向量代表用戶和興趣點(diǎn),用戶在興趣點(diǎn)上的交互被建模為各自對(duì)應(yīng)的潛在向量的內(nèi)積。然而,使用簡(jiǎn)單的內(nèi)積作為用戶和興趣點(diǎn)的交互函數(shù),并不能有效捕捉用戶交互數(shù)據(jù)的復(fù)雜結(jié)構(gòu)(因?yàn)閮?nèi)積只是線性地結(jié)合了多個(gè)潛在特征的乘法),從而導(dǎo)致推薦效果不夠理想。矩陣分解將用戶和興趣點(diǎn)映射到同一潛在特征空間中,如果用戶和興趣點(diǎn)潛在向量的維數(shù)過(guò)小,無(wú)法在潛在特征空間中體現(xiàn)用戶和用戶之間的相似性、興趣點(diǎn)和興趣點(diǎn)之間的相似性,進(jìn)而使用內(nèi)積作為交互函數(shù)進(jìn)行推薦也會(huì)造成一定的排名誤差。解決該問(wèn)題的方法之一是使用大量的潛在因子,然而這可能對(duì)模型的泛化能力產(chǎn)生不利影響,特別是在稀疏的數(shù)據(jù)集上容易產(chǎn)生數(shù)據(jù)過(guò)擬合問(wèn)題。深度學(xué)習(xí)在圖形圖像處理[22]、自然語(yǔ)言處理[23]等領(lǐng)域取得突破,為推薦系統(tǒng)的研究帶來(lái)了新的機(jī)遇。但據(jù)我們所知,很多研究都是將深度學(xué)習(xí)用于建模上下文信息[21],例如評(píng)論信息、類別信息等,并使用內(nèi)積作為用戶和興趣點(diǎn)的交互函數(shù)。神經(jīng)網(wǎng)絡(luò)已經(jīng)被證明有擬合任何連續(xù)函數(shù)的能力[24],受文獻(xiàn)[25]的啟發(fā),本文利用深度神經(jīng)網(wǎng)絡(luò)從用戶簽到數(shù)據(jù)中學(xué)習(xí)用戶和項(xiàng)目的交互函數(shù)。
定義1 興趣點(diǎn)集合。興趣點(diǎn)是與地理位置相關(guān)的地點(diǎn),一個(gè)興趣點(diǎn)集合用V={v1,v2,···,vn}表示,V中的每個(gè)對(duì)象 vi由一個(gè)二元組(λ, K)組成,其中 vi.λ表 示興趣點(diǎn) vi的 位置信息,即 vi.λ=(lati,loni),lati和 loni分別代表興趣點(diǎn)的經(jīng)度和緯度, vi.K是vi中 的 文 本 信 息 集 合,vi.K=[a1,a2,···,ao],其 中ai(i∈1,2,···,o)是文本信息中的一個(gè)關(guān)鍵字。
定義2 簽到矩陣。簽到矩陣由用戶對(duì)興趣點(diǎn)的簽到數(shù)據(jù)構(gòu)成,如果用戶數(shù)為m,興趣點(diǎn)數(shù)為n,則簽到矩陣為Rm×n,如果用戶i訪問(wèn)過(guò)興趣點(diǎn)j,簽到矩陣對(duì)應(yīng)位置rij(rij∈Rm×n)為1,否則,置0。簽到矩陣中的每個(gè)元素都反映了用戶和興趣 點(diǎn)之間的交互。
本文提出的模型主要分為以下3個(gè)階段:
1)興趣點(diǎn)聚類。采用K-means算法,根據(jù)興趣點(diǎn)的位置信息,對(duì)興趣點(diǎn)進(jìn)行聚類,使得位置相近的興趣點(diǎn)被聚為一類。每類興趣點(diǎn)有一個(gè)相應(yīng)的類標(biāo)簽,用于興趣點(diǎn)與用戶的屬性之間進(jìn)行顯式關(guān)聯(lián)關(guān)系分析。
2)用戶-興趣點(diǎn)之間的耦合關(guān)系挖掘。通過(guò)卷積神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)用戶與興趣點(diǎn)在屬性上的顯式關(guān)聯(lián)關(guān)系;使用另外一個(gè)神經(jīng)網(wǎng)絡(luò)模型,根據(jù)用戶對(duì)興趣點(diǎn)的簽到數(shù)據(jù),學(xué)習(xí)用戶與興趣點(diǎn)之間的隱式關(guān)聯(lián)關(guān)系;最后,將用戶和興趣點(diǎn)的顯式和隱式關(guān)聯(lián)關(guān)系集成到一起,表征用戶-興趣點(diǎn)之間的耦合關(guān)系。
3)將2)中學(xué)習(xí)到的用戶-興趣點(diǎn)耦合關(guān)系輸入 到一個(gè)全連接網(wǎng)絡(luò)中,進(jìn)行興趣點(diǎn)推薦。
基于K-means算法的興趣點(diǎn)聚類的基本思想是:首先,從興趣點(diǎn)集合中隨機(jī)選取k個(gè)興趣點(diǎn)作為初始的聚類中心;然后,計(jì)算每個(gè)興趣點(diǎn)與各個(gè)聚類中心之間的距離,把每個(gè)興趣點(diǎn)分配給距離它最近的聚類中心,聚類中心以及分配給它們的興趣點(diǎn)就代表一個(gè)聚類,每個(gè)聚類的聚類中心根據(jù)聚類中現(xiàn)有的興趣點(diǎn)被重新計(jì)算;上述過(guò)程將不斷重復(fù)直到滿足K-means聚類的終止條件。
基于K-means算法的興趣點(diǎn)聚類的處理過(guò)程如下:
1)從興趣點(diǎn)集合中隨機(jī)選擇k個(gè)興趣點(diǎn)作為初始聚類中心。
2)計(jì)算剩余興趣點(diǎn)到聚類中心的歐式距離ρ,將最接近的興趣點(diǎn)放入類別中,形成新的類,ρ的計(jì)算方法為
其中,vi.λ=(lati,loni)和vj.λ=(latj,lonj)是興趣點(diǎn)數(shù)據(jù)
集V={v1,v2,…,vn}中的兩個(gè)興趣點(diǎn)。
3)取當(dāng)前聚類中所有興趣點(diǎn)經(jīng)緯度的均值作為新的中心點(diǎn),更新距離聚類中心最近的興趣點(diǎn)。
4)直到目標(biāo)函數(shù)收斂或聚類中心不變,否則將轉(zhuǎn)移到2)。
5)輸出興趣點(diǎn)聚類結(jié)果。表1給出了興趣點(diǎn)v1、v2、v3、v4、v5的位置信息以及文本信息。假設(shè)需要將這5個(gè)興趣點(diǎn)聚為3類,首先隨機(jī)選取v1、v2、v5作為聚類中心,通過(guò)計(jì)算得到v3到v1、v2、v5的歐氏距離分別為17 227.781 345 8、3 553 977.144 9、13 387 365.177 6 m,v4到v1、v2、v5的歐氏距離分別為3 385 341.322 16、153 131.434 74、10 085 102.605 5 m,所以將v1、v3聚為一類,v2、v4聚為一類,v5單獨(dú)成為一類。然后選取每個(gè)類的中心點(diǎn)為新的聚類中心,即(33.427 796 53,-112.046 954 5)、(40.705 609 95,-80.790 294 85)、v5,計(jì)算得到v1到這3個(gè)新的聚類中心的距離為8 611.093 741 63、3 461 882.261 76、13 370 426.099 6 m,v2為3 546 225.507 02、76 593.790 297 2、9 936 164.797 2 m,v3為8 616.704 789 23、3 477 389.386 85、13 387 365.177 6 m,v4為3 393 095.487 84、76 541.502 450 9、10 085 102.605 5 m,得到新的聚類,即v1、v3聚為一類,v2、v4聚為一類,v5單獨(dú)成為一類,可以看出聚類沒(méi)有發(fā)生變化,則聚類中心還為(33.427 796 53,-112.046 954 5)、(40.705 609 95,-80.790 294 85)、v5,由于聚類中心未發(fā)生變化,則聚類過(guò)程終止。根據(jù)聚類情況,每個(gè)興趣點(diǎn)都可以分配一個(gè)所屬聚類的類標(biāo)簽。
表 1 興趣點(diǎn)信息Table 1 The information of POIs
3.2.1 用戶-興趣點(diǎn)的顯式關(guān)聯(lián)關(guān)系評(píng)估
基于用戶-興趣點(diǎn)耦合關(guān)系的興趣點(diǎn)推薦模型由局部和全局的用戶-興趣點(diǎn)顯式關(guān)聯(lián)關(guān)系以及用戶-興趣點(diǎn)隱式關(guān)聯(lián)關(guān)系集成到一個(gè)全連接網(wǎng)絡(luò)構(gòu)成。
用戶的文本信息和興趣點(diǎn)的位置信息、文本信息分別作為各自的屬性信息,通過(guò)一個(gè)卷積神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)用戶-興趣點(diǎn)的顯式關(guān)聯(lián)關(guān)系。首先,將用戶和興趣點(diǎn)的屬性信息分別嵌入到向量uc={uc1,uc2,…,ucm}和vc={vc1,vc2,…,vcn}中,uci(vci)是uc(vc)中的第i個(gè)元素。在實(shí)際應(yīng)用中,不同類型的用戶/興趣點(diǎn)的屬性信息通常采用不同的嵌入方式。
用戶或興趣點(diǎn)屬性信息的嵌入方式如圖1所示。對(duì)于興趣點(diǎn),需要將其位置信息和文本信息進(jìn)行集成嵌入,位置信息是基于K-means算法的興趣點(diǎn)聚類結(jié)果,興趣點(diǎn)屬于聚類結(jié)果中的哪一類則該位置為1,其余位置為0。文本信息做同樣處理,例如,對(duì)于表1中的興趣點(diǎn)v1,使用3.1節(jié)中的興趣點(diǎn)聚類結(jié)果,結(jié)合表1中的文本信息,則v1的嵌入向量為[1,0,0,1,0,0,0,0,1,0,0,0],此向量的前3維為地理信息的聚類結(jié)果;依據(jù)順序嵌入向量中的第一維為聚類結(jié)果中的第一類,第二維為聚類結(jié)果中的第2類,以此類推;由于文本信息中State為4類,所以后4維分別為AZ、PA、OH、BW;嵌入向量中間的五維為文本信息中的City。嵌入向量的每一維度根據(jù)順序分別代表聚類結(jié)果中的第1類、第2類、第3類、Ahwatukee、McMcrray、Phoenix、Cuyahoga Falls、Stuttgart、AZ、PA、OH、BW,所以嵌入向量為[1,0,0,1,0,0,0,0,1,0,0,0]。同 理,用戶信息的嵌入向量也按此方法進(jìn)行轉(zhuǎn)換。
圖 1 興趣點(diǎn)信息嵌入方式Fig. 1 Embedding method of POI
對(duì)于嵌入向量uc和vc,構(gòu)造一個(gè)函數(shù)fΘ(uc,vc)來(lái)計(jì)算二者之間的關(guān)聯(lián)關(guān)系,代表了uc和vc之間的交互,其中 Θ 為f的參數(shù),可以得到一個(gè)用戶-興趣點(diǎn)關(guān)聯(lián)矩陣,關(guān)聯(lián)矩陣中的每一個(gè)元素都代表了相應(yīng)的用戶-興趣點(diǎn)之間的關(guān)聯(lián)關(guān)系。將關(guān)聯(lián)矩陣輸入到一個(gè)卷積神經(jīng)網(wǎng)絡(luò)來(lái)學(xué)習(xí)局部的用戶-興趣點(diǎn)顯式關(guān)聯(lián)關(guān)系,得到局部的顯式關(guān)聯(lián)向量。
卷積神經(jīng)網(wǎng)絡(luò)的模型由卷積層和池化層組成,卷積層和池化層可以提取更深層次的特征,其執(zhí)行方式為:
式中:* 為卷積算子;w為濾波器;b為w的偏置;g為非線性激活函數(shù);pooling為池化函數(shù)(例如,最大池化或者平均池化)。
在此基礎(chǔ)上,將用戶-興趣點(diǎn)的關(guān)聯(lián)矩陣展平成一個(gè)向量,作為一個(gè)全局的顯式關(guān)聯(lián)向量,并將其與局部的顯式關(guān)聯(lián)向量連接起來(lái),進(jìn)而綜合表 征用戶-興趣點(diǎn)的顯式關(guān)聯(lián)關(guān)系。
3.2.2 用戶-興趣點(diǎn)的隱式關(guān)聯(lián)關(guān)系評(píng)估
簽到矩陣中推斷出的潛在因素可以解釋為隱式的關(guān)聯(lián)關(guān)系,用戶可能通過(guò)潛在的因素衡量自己對(duì)興趣點(diǎn)的喜愛(ài)程度。與文獻(xiàn)[4]中的NeuMF類似,將用戶和興趣點(diǎn)的潛在因素連接到一個(gè)全連接的神經(jīng)網(wǎng)絡(luò)模型中學(xué)習(xí)隱式的用戶-興趣點(diǎn)交互。用戶-興趣點(diǎn)隱式關(guān)聯(lián)模型將用戶標(biāo)簽和興趣點(diǎn)標(biāo)簽分別表示為one-hot向量u和v。受文獻(xiàn)[26]的啟發(fā),采用全連接層作為嵌入層來(lái)學(xué)習(xí)低維向量,分別表示為u和v的p和q,嵌入過(guò)程為
權(quán)重矩陣Wu∈Rk×|U|和Wv∈Rk×|V|完全連接在輸入層和嵌入層之間。
將嵌入向量p和q輸入乘法層,乘法層進(jìn)行p和q的乘積,乘法層的輸出用線性交互向量r表示:
r捕獲了用戶和興趣點(diǎn)之間的線性交互。然后,將向量r輸入到一個(gè)多層的全連接神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)更加抽象的用戶和興趣點(diǎn)之間的非線性交互,這里將多層的全連接神經(jīng)網(wǎng)絡(luò)模型的每一層的輸出ai表示為
式中:w和b分別表示每一層的權(quán)重矩陣和偏差,ai表示用ReLU函數(shù)激活的每一層的輸出結(jié)果。
基于用戶-興趣點(diǎn)耦合關(guān)系的興趣點(diǎn)推薦模型結(jié)合了基于卷積神經(jīng)網(wǎng)絡(luò)的局部和全局顯式關(guān)聯(lián)關(guān)系以及用戶-興趣點(diǎn)隱式關(guān)聯(lián)關(guān)系。如圖2所示,將其輸入到一個(gè)全連接層中進(jìn)行處理,以生成最終的用戶-興趣點(diǎn)耦合向量。模型的總輸出 結(jié)果值由激活函數(shù)Sigmoid壓縮為[0,1]區(qū)間。
圖 2 基于用戶-興趣點(diǎn)耦合關(guān)系的興趣點(diǎn)推薦模型Fig. 2 A POI recommendation model based on user-POI coupling relationships
為了學(xué)習(xí)模型參數(shù),首先根據(jù)訓(xùn)練數(shù)據(jù)訓(xùn)練模型。步驟1中的類標(biāo)簽通過(guò)3.1節(jié)根據(jù)興趣點(diǎn)的位置信息得到。訓(xùn)練算法中輸入了batch_size的大小,所以步驟3中將訓(xùn)練集分成n個(gè)batch,每batch_size個(gè)數(shù)據(jù)組成一個(gè)batch。用戶和興趣點(diǎn)的屬性信息嵌入向量uc和vc中分別嵌入了用戶的文本信息和興趣點(diǎn)的位置信息、文本信息。計(jì)算用戶和興趣點(diǎn)的嵌入向量q和p通過(guò)式(3)和(4)得到?;谟脩?興趣點(diǎn)耦合關(guān)系的興趣點(diǎn)推薦模型的訓(xùn)練算法如算法1。
算法1 基于用戶-興趣點(diǎn)耦合關(guān)系的興趣點(diǎn)推薦模型的訓(xùn)練算法
輸入 簽到矩陣,興趣點(diǎn)的文本信息集合u.K,用戶的文本信息集合v.K,興趣點(diǎn)的位置信息v.λ,batch_size的大??;
輸出 參數(shù)集合Θ。
1)根據(jù)興趣點(diǎn)的位置信息計(jì)算類標(biāo)簽;
2)初始化模型參數(shù)集合Θ;
3)將訓(xùn)練集分成n個(gè)batch;
4) for batch in 訓(xùn)練集;
5) for (u,v) in batch do
計(jì)算用戶和興趣點(diǎn)的屬性信息嵌入向量uc和vc;
計(jì)算用戶和興趣點(diǎn)的嵌入向量q和p;
學(xué)習(xí)用戶-興趣點(diǎn)的顯式關(guān)聯(lián)關(guān)系和隱式關(guān)聯(lián)關(guān)系;
6)計(jì)算預(yù)測(cè)輸出;
7) 計(jì)算損失L;
8) for 每個(gè)θin Θ do
9) end for
10) end for
11) end for
12) return Θ
本文實(shí)驗(yàn)數(shù)據(jù)集采用2016年的Yelp數(shù)據(jù)集,據(jù)統(tǒng)計(jì),2016年Yelp數(shù)據(jù)集中有2 100萬(wàn)用戶和10 200萬(wàn)條與地理位置相關(guān)的評(píng)論信息[27]。表2給 出了本文的實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)信息。
表 2 實(shí)驗(yàn)數(shù)據(jù)信息Table 2 Information of experimental data
將基于用戶-興趣點(diǎn)耦合關(guān)系的興趣點(diǎn)推薦模型(簡(jiǎn)稱為UPC-POIR)分別與以下4個(gè)模型進(jìn)行對(duì)比,其中g(shù)lobal UPC-POIR和local UPC-POIR也為本文提出的模型,現(xiàn)對(duì)5種模型進(jìn)行介紹:
1)UPC-POIR:為本文提出的基于用戶-興趣點(diǎn)耦合關(guān)系的興趣點(diǎn)推薦模型,集成了用戶和興趣點(diǎn)在屬性上的的顯式關(guān)聯(lián)關(guān)系以及簽到矩陣中的隱式關(guān)聯(lián)關(guān)系。其中用戶和興趣點(diǎn)在屬性上的顯式關(guān)聯(lián)關(guān)系同時(shí)考慮了局部和全局的用戶-興趣點(diǎn)顯式關(guān)聯(lián)關(guān)系。
2)global UPC-POIR:集成了全局的用戶-興趣點(diǎn)顯式關(guān)聯(lián)關(guān)系和簽到矩陣中的隱式關(guān)聯(lián)關(guān)系。全局的用戶-興趣點(diǎn)顯式關(guān)聯(lián)關(guān)系是將用戶-興趣點(diǎn)關(guān)聯(lián)矩陣展平得到。
3)local UPC-POIR:集成了局部的用戶-興趣點(diǎn)顯式關(guān)聯(lián)關(guān)系和簽到矩陣中的隱式關(guān)聯(lián)關(guān)系。局部的用戶-興趣點(diǎn)顯式關(guān)聯(lián)關(guān)系是將用戶-興趣點(diǎn)關(guān)聯(lián)矩陣輸入到卷積神經(jīng)網(wǎng)絡(luò)模型中得到。
4)BPR[28]:使用貝葉斯個(gè)性化排序(BPR)損失優(yōu)化的矩陣分解,只利用用戶-興趣點(diǎn)的直接交互作為交互函數(shù)的目標(biāo)值。
5)NeuMF[4]:該推薦模型是利用多層神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)的矩陣分解,是近年來(lái)新提出的經(jīng)典推薦模型。該模型使用了元素層面上用戶和項(xiàng)目嵌入的串聯(lián)的多個(gè)隱藏層來(lái)捕獲它們的非線性特征交互,能夠更有效的捕獲用戶與項(xiàng)目之間的隱式/潛在關(guān)聯(lián)關(guān)系。
基于用戶-興趣點(diǎn)耦合關(guān)系的興趣點(diǎn)推薦模型使用Python語(yǔ)言基于Keras框架實(shí)現(xiàn),電腦配置為CPU i7-8700K3.7 GHz,操作系統(tǒng)為Ubuntu 18.04.1。在實(shí)驗(yàn)中,學(xué)習(xí)率設(shè)置為0.001,采用Adam作為優(yōu)化器,所有偏置的初始值都設(shè)置為0。參數(shù)初始化采用隨機(jī)正態(tài)分布(均值和標(biāo)準(zhǔn)差分別為0和0.01)初始化嵌入矩陣,采用glorotuniform作為全連通層的初始化器。
在k-means聚類算法中,本文分別實(shí)現(xiàn)了位置因素的聚類個(gè)數(shù)k為10、20、30、40、50、60、70、80、90、100。經(jīng)過(guò)實(shí)驗(yàn)測(cè)試,當(dāng)聚類個(gè)數(shù)為50時(shí),推薦效果最佳。
在學(xué)習(xí)局部顯式關(guān)聯(lián)關(guān)系的過(guò)程中,卷積層中卷積核的數(shù)量和卷積核的大小分別設(shè)置為8和(3,3),激活函數(shù)采用Relu函數(shù)。
在最終輸出層之前,對(duì)全連通層中的神經(jīng)元個(gè)數(shù)分別設(shè)置為16、32、64、128、256進(jìn)行試驗(yàn),測(cè)試結(jié)果表明,神經(jīng)元個(gè)數(shù)為64時(shí)推薦性能最佳。
對(duì)于每個(gè)用戶,本文從數(shù)據(jù)集中隨機(jī)選擇一個(gè)用戶交互(簽到行為)過(guò)的興趣點(diǎn)作為測(cè)試項(xiàng),用戶交互過(guò)的其他興趣點(diǎn)作為訓(xùn)練項(xiàng)。隨機(jī)生成了39個(gè)興趣點(diǎn)(不在用戶交互過(guò)的興趣點(diǎn)集合中)組成測(cè)試集,讓每個(gè)模型為每個(gè)用戶對(duì)這40個(gè)興趣點(diǎn)進(jìn)行排序,然后評(píng)估推薦算法性能。
該實(shí)驗(yàn)采用top-k命中率(HR@K)和歸一化折現(xiàn)累積收益(NDCG@K)[4]作為評(píng)價(jià)指標(biāo)。
本文提出的UPC-POIR需要先確定基于K-means算法的興趣點(diǎn)聚類中的k。圖3和圖4分別給出了當(dāng)推薦列表中興趣點(diǎn)的個(gè)數(shù)為10時(shí)UPC-POIR、local UPC-POIR、global UPC-POIR的HR以及NDCG的變化情況。通過(guò)圖3和圖4可以看出,當(dāng)k=50時(shí),3個(gè)模型中UPC-POIR的HR和 NDCG取得了最大值,所以本實(shí)驗(yàn)中固定k=50。
圖 3 興趣點(diǎn)推薦中HR@K的情況Fig. 3 HR@K results of POI recommendation
圖 4 興趣點(diǎn)推薦中NDCG@K的情況Fig. 4 NDCG@K results of POI recommendation
表3描述了當(dāng)推薦列表中興趣點(diǎn)個(gè)數(shù)為10時(shí),UPC-POIR、local UPC-POIR、global UPCPOIR、BPR和NeuMF的HR和NDCG的情況。實(shí)驗(yàn)結(jié)果表明,UPC-POIR顯著提高了推薦性能,例如HR比local UPC-POIR、global UPC-POIR分別提高了18.17%和13.36%,NDCG分別提高了13.88%和9.48%。UPC-POIR與NeuMF相比也有明顯的提高,原因是UPC-POIR不僅使用神經(jīng)網(wǎng)絡(luò)模型改善矩陣分解來(lái)學(xué)習(xí)交互函數(shù),并且考慮了用戶和興趣點(diǎn)屬性之間的關(guān)聯(lián)關(guān)系,而NeuMF沒(méi)有考慮用戶和興趣點(diǎn)屬性之間的關(guān)聯(lián)關(guān)系。BPR由于使用內(nèi)積這種線性函數(shù)作為交互函數(shù),因此推薦效果不如UPC-POIR,從而也體現(xiàn)了使用非線性函數(shù)建模交互函數(shù)能夠顯著提高推薦準(zhǔn)確性。
表 3 Top-10推薦中HR和NDCG的情況Table 3 HR@10 and NDCG@10 for Top-10 point-of-interest recommendation
圖5和圖6描述了推薦列表中興趣點(diǎn)的個(gè)數(shù)分別為2、4、6、8、10時(shí)的HR和NDCG的情況。實(shí)驗(yàn)結(jié)果表明,local UPC-POIR、global UPCPOIR都有助于提高推薦性能,但是綜合來(lái)講U PC-POIR取得了最佳推薦性能。
圖 5 Top-k興趣點(diǎn)推薦中HR的情況Fig. 5 HR@K results of Top-k POI recommendation
圖 6 Top-k興趣點(diǎn)推薦中NDCG的情況Fig. 6 NDCG@K results of top-k POI recommendation
本文提出了一個(gè)基于用戶-興趣點(diǎn)耦合關(guān)系的興趣點(diǎn)推薦模型,模型綜合考慮了用戶和興趣點(diǎn)之間的耦合關(guān)系,集成了用戶與興趣點(diǎn)之間的顯式和隱式關(guān)聯(lián)關(guān)系,通過(guò)一個(gè)卷積神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)了用戶屬性與興趣點(diǎn)屬性的顯式關(guān)聯(lián)關(guān)系捕獲,將簽到矩陣輸入到神經(jīng)網(wǎng)絡(luò)模型中學(xué)習(xí)隱式關(guān)聯(lián)關(guān)系。實(shí)驗(yàn)結(jié)果表明,與現(xiàn)有興趣點(diǎn)推薦模型相比,本文提出的推薦模型達(dá)到了更好的推薦效果。在接下來(lái)的工作中,將考慮用戶和興趣點(diǎn)的更多屬性,如用戶的社交信息、用戶對(duì)興趣點(diǎn)的評(píng)論信息等,嘗試通過(guò)圖嵌入技術(shù)解決興趣點(diǎn)推薦中的冷啟動(dòng)問(wèn)題,進(jìn)一步提升推薦的準(zhǔn)確性。