本發(fā)明涉及推薦系統(tǒng)和基于位置社交網(wǎng)絡(luò)領(lǐng)域。
背景技術(shù):
近來,移動(dòng)設(shè)備技術(shù)的發(fā)展(gps、wi-fi)使地理位置信息與傳統(tǒng)的在線社交網(wǎng)絡(luò)的結(jié)合成為可能,傳統(tǒng)的在線社交網(wǎng)絡(luò)進(jìn)化為基于位置的社交網(wǎng)絡(luò)(lbsns)。地理位置信息可以充當(dāng)網(wǎng)絡(luò)缺乏的物理維度。在這個(gè)新的領(lǐng)域,用戶可以通過移動(dòng)設(shè)備隨時(shí)隨地使用基于位置的服務(wù)。此外,用戶可以同他人分享與地點(diǎn)相關(guān)的信息。
在實(shí)際的應(yīng)用中,用戶-項(xiàng)目的評(píng)分矩陣通常都是比較稀疏的,因此,很多推薦結(jié)果并不理想。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供了一種基于位置社交網(wǎng)絡(luò)的地點(diǎn)推薦方法,該方法能夠在用戶-項(xiàng)目評(píng)分矩陣稀疏的情況下可以彌補(bǔ)矩陣稀疏性并產(chǎn)生較高質(zhì)量的推薦結(jié)果。
為了達(dá)到上述目的,本發(fā)明的技術(shù)方案包括如下步驟:
步驟1、建立基于位置的社交網(wǎng)絡(luò)lbsns中的用戶集合,用戶的地點(diǎn)集合,用戶的簽到集合以及每個(gè)用戶的朋友集合。
步驟2、針對(duì)當(dāng)前用戶u1,得到其簽到集合為c、地點(diǎn)集合為l、朋友集合為f;
從其簽到集c中得到一個(gè)描述用戶-地點(diǎn)-簽到次數(shù)的集合ln,ln中每一條數(shù)據(jù)均包括當(dāng)前用戶u1的id、當(dāng)前用戶u1的地點(diǎn)id以及當(dāng)前用戶u1的id在每個(gè)地點(diǎn)id的歷史簽到次數(shù)。
從朋友集合f中得到一個(gè)描述用戶-用戶-共同朋友數(shù)量的集合fn,fn中的每條數(shù)據(jù)均包括當(dāng)前用戶u1及其朋友的id、當(dāng)前用戶u1與其朋友之間共同朋友的數(shù)量。
步驟3、當(dāng)前用戶u1與朋友u2關(guān)于簽到記錄的相似度
其中,fu,l代表用戶u在地點(diǎn)l的簽到次數(shù);其中u2∈f。
步驟4、當(dāng)前用戶u1和朋友u2關(guān)于社交關(guān)系的相似度
步驟5、根據(jù)步驟3和步驟4的結(jié)果,計(jì)算得到當(dāng)前用戶u1和朋友u2的相似度為
其中,
步驟6、依據(jù)步驟5的計(jì)算結(jié)果,獲取k個(gè)和當(dāng)前用戶u1相似度最高的朋友作為最近鄰居。
步驟7、通過當(dāng)前用戶u1的k個(gè)最近鄰居,計(jì)算得到地點(diǎn)集合p,集合p由當(dāng)前用戶u1的最近鄰居訪問過、而u1沒有訪問過的地點(diǎn)構(gòu)成;對(duì)于集合p中的每個(gè)地點(diǎn)p,計(jì)算出當(dāng)前用戶u1可能訪問地點(diǎn)p的頻率
選取前50個(gè)預(yù)測(cè)頻率最高的地點(diǎn)作為地點(diǎn)候選集lc。
步驟8、遍歷lc中的每一個(gè)候選地點(diǎn)lc,計(jì)算當(dāng)前用戶u1訪問候選地點(diǎn)lc的可能性,選出可能性最大的多個(gè)候選地點(diǎn)作為推薦地點(diǎn)。
已有用戶訪問過的地點(diǎn)的集合l和集合中每對(duì)地點(diǎn)的地理位置距離集合d。計(jì)算lc與地點(diǎn)集合l中的每個(gè)地點(diǎn)li的di,i∈[1,n],n為集合l中地點(diǎn)的個(gè)數(shù)。
則當(dāng)前用戶u1訪問候選地點(diǎn)lc的概率為
d為當(dāng)前用戶u1的訪問地理距離樣本集合;集合l中地點(diǎn)兩兩之間的地理位置距離集合,h為帶寬,按照如下帶寬公式求解:
當(dāng)前用戶u1可能訪問候選地點(diǎn)lc的概率為
則當(dāng)前用戶u1訪問候選地點(diǎn)lc的可能性為:p(u,l)=pcf(u,l)×pdistribution(u,l)。
進(jìn)一步地,當(dāng)前用戶u1不是冷啟動(dòng)用戶,則所述d為集合l中地點(diǎn)兩兩之間的地理位置距離集合;若當(dāng)前用戶u1為冷啟動(dòng)用戶,則所述d中包括u1與集合l中各地點(diǎn)之間、以及集合l中地點(diǎn)兩兩之間的地理位置距離。
有益效果:
1、本發(fā)明所提供的方法是采用相似度加權(quán)算法對(duì)基于歷史簽到記錄和社交關(guān)系的相似度進(jìn)行加權(quán)。通常情況下,互為朋友的用戶訪問相同的地點(diǎn)的概率較高。住宅間距離越近的兩個(gè)用戶訪問相同地點(diǎn)的概率越高。所以,在融合基于用戶簽到記錄計(jì)算出的相似度與基于用戶社交關(guān)系計(jì)算出的相似度的過程中,本發(fā)明根據(jù)兩個(gè)用戶住宅間的距離,自動(dòng)調(diào)整兩種相似度在推薦算法中所占的比重。
2、本發(fā)明將核密度估計(jì)和協(xié)同過濾推薦算法相結(jié)合的推薦算法?,F(xiàn)有的基于地理位置影響的算法對(duì)地理因素影響的計(jì)算方式不能很好的處理現(xiàn)實(shí)情況。本發(fā)明為用戶推薦地點(diǎn)時(shí),對(duì)每個(gè)用戶的簽到行為的地理影響進(jìn)行個(gè)性化處理。本發(fā)明首先計(jì)算用戶歷史簽到地點(diǎn)間的距離,然后選取非參數(shù)檢驗(yàn)方法-核密度估計(jì)預(yù)測(cè)歷史簽到地點(diǎn)間距離的分布函數(shù),最后,計(jì)算訪問候選地點(diǎn)的概率。
3、本發(fā)明利用基于混合協(xié)同過濾的推薦方法,解決了傳統(tǒng)協(xié)同過濾中由于用戶-項(xiàng)目評(píng)分矩陣相對(duì)稀疏、冷啟動(dòng)問題,而造成的推薦結(jié)果不準(zhǔn)確、推薦精度不高的問題;另一方面,形成了一套切實(shí)可行的系統(tǒng)方案,對(duì)于符合條件的輸入,均可以產(chǎn)生相對(duì)較優(yōu)的推薦結(jié)果。
附圖說明
圖1為本發(fā)明中的推薦方法skhcf算法的流程。
具體實(shí)施方式
下面結(jié)合附圖并舉實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
本實(shí)施例提供了一種基于位置社交網(wǎng)絡(luò)的地點(diǎn)推薦方法,包括如下步驟:
步驟1、建立基于位置的社交網(wǎng)絡(luò)lbsns中的用戶集合,用戶的地點(diǎn)集合,用戶的簽到集合以及每個(gè)用戶的朋友集合。
針對(duì)當(dāng)前用戶u1,其簽到集合為c、地點(diǎn)集合為l、朋友集合為f;
從其簽到集c中得到一個(gè)描述用戶-地點(diǎn)-簽到次數(shù)的集合ln,ln中每一條數(shù)據(jù)均包括當(dāng)前用戶u1的id、當(dāng)前用戶u1的地點(diǎn)id以及當(dāng)前用戶u1的id在每個(gè)地點(diǎn)id的歷史簽到次數(shù)。
從朋友集合f中得到一個(gè)描述用戶-用戶-共同朋友數(shù)量的集合fn,fn中的每條數(shù)據(jù)均包括當(dāng)前用戶u1及其朋友的id、當(dāng)前用戶u1與其朋友之間共同朋友的數(shù)量。
步驟2、相對(duì)在不同地點(diǎn)簽到的用戶來說,在相同地點(diǎn)簽到的用戶相似度更高。另外,在相同地點(diǎn)簽到的頻率越相似,相似度越,因此本實(shí)施例在計(jì)算相似度的過程中考慮了用戶的簽到頻率。當(dāng)前用戶u1與朋友u2關(guān)于簽到記錄的相似度
其中,fu,l代表用戶u在地點(diǎn)l的簽到次數(shù);其中u2∈f。
步驟3、朋友之間的相似度比非朋友用戶之間的相似度更高,共同朋友個(gè)數(shù)越高的兩個(gè)用戶的相似度越高。當(dāng)前用戶u1和朋友u2關(guān)于社交關(guān)系的相似度
步驟4、根據(jù)步驟2和步驟3的結(jié)果,計(jì)算得到當(dāng)前用戶u1和朋友u2的相似度為
其中,
即兩個(gè)朋友間的住宅距離的越近,訪問相同地點(diǎn)的概率越高。反之,當(dāng)住宅距離大到一定程度以后,朋友間訪問相同地點(diǎn)的概率近似為零。
步驟5、依據(jù)步驟4的計(jì)算結(jié)果,獲取k個(gè)和當(dāng)前用戶u1相似度最高的朋友作為最近鄰居。
步驟6、通過當(dāng)前用戶u1的k個(gè)最近鄰居,計(jì)算得到地點(diǎn)集合p,集合p由當(dāng)前用戶u1的最近鄰居訪問過、而u1沒有訪問過的地點(diǎn)構(gòu)成;對(duì)于集合p中的每個(gè)地點(diǎn)p,計(jì)算出當(dāng)前用戶u1可能訪問地點(diǎn)p的頻率
選取前多個(gè)預(yù)測(cè)頻率最高的地點(diǎn)作為地點(diǎn)候選集lc,本實(shí)施例選取了50個(gè)。
步驟7、遍歷lc中的每一個(gè)候選地點(diǎn)lc,計(jì)算當(dāng)前用戶u1訪問候選地點(diǎn)lc的可能性,選出可能性最大的多個(gè)候選地點(diǎn)作為推薦地點(diǎn)。
計(jì)算lc與地點(diǎn)集合l中的每個(gè)地點(diǎn)li的di,i∈[1,n],n為集合l中地點(diǎn)的個(gè)數(shù)。
則當(dāng)前用戶u1訪問候選地點(diǎn)lc的概率為
d為當(dāng)前用戶u1的訪問地理距離樣本集合;集合l中地點(diǎn)兩兩之間的地理位置距離集合,h為帶寬。
當(dāng)前用戶u1可能訪問候選地點(diǎn)lc的概率為
則當(dāng)前用戶u1訪問候選地點(diǎn)lc的可能性為:p(u,l)=pcf(u,l)×pdistribution(u,l)。
進(jìn)一步地,當(dāng)前用戶u1不是冷啟動(dòng)用戶,則所述d為集合l中地點(diǎn)兩兩之間的地理位置距離集合;若當(dāng)前用戶u1為冷啟動(dòng)用戶,則所述d中包括u1與集合l中各地點(diǎn)之間、以及集合l中地點(diǎn)兩兩之間的地理位置距離。
綜上,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。