本發(fā)明是一種融入時間和地點位置信息的地點推薦方法,屬于用戶推薦系統(tǒng)
技術領域:
。
背景技術:
:近年來,隨著新興電子商務服務興起,互聯(lián)網(wǎng)信息爆炸式增長,信息種類多樣復雜,用戶具有更多的選擇。但是,由于信息過載,降低了用戶的滿意度,用戶從紛繁復雜的物品(產(chǎn)品和服務)中選擇自己感興趣的物品變得越來越困難。推薦系統(tǒng)是一種解決這種信息過載問題的有效工具。推薦系統(tǒng)一方面能夠幫助用戶發(fā)現(xiàn)對自己有價值的信息,另一方面讓信息能夠展現(xiàn)在對它感興趣的用戶面前,使生產(chǎn)者和消費者達到共贏效果。協(xié)同過濾(CollaborativeFiltering)技術是個性化推薦應用最早和最為成功的技術之一,在地點推薦中,協(xié)同過濾的方法是基于用戶在地點的簽到記錄來進行個性化推薦。地點推薦中,協(xié)同過濾算法的核心思想可以分為兩部分:首先,利用用戶的歷史簽到信息計算用戶或地點之間的相似性;然后利用與目標用戶相似性較高的鄰居用戶在特定地點的簽到次數(shù),或者利用與目標用戶已簽到地點相似性較高的特定地點,來預測目標用戶對特定地點的喜好程度。最后,根據(jù)這一喜好程度來對目標用戶進行推薦。目前,有學者發(fā)現(xiàn),與傳統(tǒng)的電子商務環(huán)境下的個性化推薦不同,在移動推薦環(huán)境下,用戶和地點的地理位置直接影響個性化地點推薦的結果,用戶與地點的距離越近,用戶訪問該地點的概率就越大,反之,概率越小,并將地理位置信息融入?yún)f(xié)同過濾中,提高了地點推薦的精度?,F(xiàn)有理論雖然可以為個性化地點推薦系統(tǒng)的構建提供理論基礎和實踐指導,但是仍然存在諸多缺陷與不足:(1)地點推薦中,協(xié)同過濾算法只利用了用戶在地點的簽到次數(shù)來進行推薦,但由于用戶簽到數(shù)據(jù)稀疏性問題,推薦精度較差;(2)現(xiàn)有理論中計算基于地理位置信息下用戶到未簽到地點的概率時,無差別地利用了用戶的所有已簽到地點信息,這樣一方面會增加計算的復雜度,另一方面,如果用戶可能偶然到一些偏遠地點并有低頻次簽到,但這些低頻率的地點并不是用戶經(jīng)常訪問的地點,無差別地考慮這些地點會影響概率計算的結果,降低推薦結果的精度。技術實現(xiàn)要素:本發(fā)明為了解決現(xiàn)有技術所存在的不足之處,提出融入時間和地理位置信息的地點推薦方法,以期能在綜合考慮時間和地理位置因素的條件下實現(xiàn)地點推薦,從而提高推薦的精準率和召回率。為了達到上述目的,本發(fā)明所采用的技術方案為:本發(fā)明一種融入時間和地理位置信息的地點推薦方法的特點是按以下步驟進行:步驟1:獲取用戶地點簽到數(shù)據(jù),所述用戶地點簽到數(shù)據(jù)的屬性包括:用戶、地點、地點經(jīng)度、地點緯度和用戶簽到時間段;令所述用戶地點簽到數(shù)據(jù)中的所有用戶記為U={U1,...,Uu,…U|U|},所有地點記為L={L1,...,Ll,...,L|L|},所有用戶簽到時間段記為T={1,...,t,...,|T|};其中|U|為用戶的總個數(shù),Uu表示第u個用戶;|L|為地點的總個數(shù),Ll表示第l個地點;并有,Ll={latl,lonl},latl表示第l個地點Ll的經(jīng)度,lonl表示第l個地點Ll緯度;|T|為時間的總個數(shù),t為第t個用戶簽到時間段;定義第t個時間段內(nèi)第u個用戶Uu在第l個地點Ll的簽到次數(shù)為若第t個時間段內(nèi)第u個用戶Uu在第l個地點Ll未簽到,則令否則令μ表示第t個時間段內(nèi)第u個用戶Uu在第l個地點Ll的簽到總次數(shù);從而得到第u個用戶Uu在所有已簽到地點的集合和第u個用戶Uu在所有未簽到地點的集合,并令Lu,a表示第u個用戶Uu的第a個已簽到地點;令Lu,b表示第u個用戶Uu的第b個未簽到地點;步驟2:計算基于地理位置因素的用戶到每個未簽到地點的概率;步驟2.1:利用式(1)計算第u個用戶Uu在第a個已簽到地點Lu,a的簽到總次數(shù)Cu,a:步驟2.2:利用多中心聚類算法對第u個用戶Uu的所有已簽到地點進行聚類,得到K個聚類結果,其中,第k個聚類結果包括:第u個用戶Uu的聚類中心,記為Cenu={cenu,k};cenu,k表示第u個用戶Uu的第k個聚類中心,且第u個用戶Uu在第k個聚類中心cenu,k所在類別的簽到總次數(shù)記為allu,k;1≤k≤K;步驟2.3:根據(jù)聚類結果計算用戶到未簽到地點的概率;步驟2.3.1:計算第u個用戶的第b個未簽到地點Lu,b和第k個聚類中心之間的距離步驟2.3.2:利用式(2)計算在第k個聚類結果條件下,第u個用戶Uu到第b個未簽到地點Lu,b的條件概率P(Lu,b|cenu,k):步驟2.3.3:利用式(3)計算在所有聚類結果條件下,第u個用戶Uu到第b個未簽到地點Lu,b的概率Pro(Uu,Lu,b)步驟3:計算時間感知下地點之間的相似性:步驟3.1:利用式(4)計算第i個時間段和第j個時間段之間的間距Di,j:步驟3.2:對于第l個地點Ll,利用式(5)計算第i個時間段和第j個時間段之間的余弦相似度cosl(i,j):步驟3.3:結合時間段之間的間距和時間段之間的余弦相似度,利用式(6)計算第i個時間段和第j個時間段之間的相似性sim(i,j):式(6)中,λ為調(diào)整參數(shù);步驟3.4:根據(jù)各時間段之間的相似性,利用式(7)對第t個時間段內(nèi)第u個用戶Uu在第b個未簽到地點Lu,b的簽到次數(shù)進行填補,得到填補后的簽到次數(shù)式(7)中,h表示所有用戶簽到時間段T中,除第t個時間段之外的任一時間段;對于第a個已簽到的地點Lu,a,令賦值給步驟3.5:根據(jù)填補后的簽到數(shù)據(jù),利用式(8)計算時間感知下第m個地點Lm和第n個地點Ln之間的相似性sim(Lm,Ln),1≤m,n≤|L|:步驟4:綜合考慮時間和地理位置信息,預測用戶在未簽到地點的簽到次數(shù);步驟4.1:設定每個地點的鄰近地點數(shù)目K;對于第u個用戶Uu的第b個未簽到地點Lu,b,根據(jù)地點Lu,b與其它地點的時間感知下的相似性,將相似性排名前K位的地點依次放入地點Lu,b的鄰近集合NLu,b中,得到鄰近集合表示第u個用戶Uu在第b個未簽到地點Lu,b的第d個鄰近地點,令第u個用戶Uu在第d個鄰近地點的簽到次數(shù)為步驟4.2:利用式(9)預測第u個用戶Uu在第b個未簽到地點Lu,b的可能簽到次數(shù)Pre(Uu,Lu,b);步驟5:設定用戶推薦的地點數(shù)目為N;將第u個用戶Uu在所有未簽到地點的可能簽到次數(shù)進行降序排序,并選取排名前N個地點推薦給第u個用戶Uu。與已有技術相比,本發(fā)明的有益效果體現(xiàn)在:1、本發(fā)明綜合考慮了時間和地理位置因素,將時間信息和地理位置信息融入基于地點的推薦算法中,相對于傳統(tǒng)基于地點的推薦算法,具有較高的準確率和召回率;2、本發(fā)明將時間因素融入地點推薦中,將一天劃分成不同的時間段,考慮用戶在不同時間段的簽到來計算地點之間的相似性。與傳統(tǒng)協(xié)同過濾方法相比,尋找出的鄰近地點相似度更高;3、本發(fā)明基于用戶已簽到數(shù)據(jù),利用時間段之間的相似性對用戶的簽到數(shù)據(jù)進行了填補,有助于緩解用戶簽到數(shù)據(jù)的稀疏性問題;4、本發(fā)明利用了多中心聚類方法尋找用戶活動區(qū)域,去掉了一些低頻次的地點聚類集合,相對于現(xiàn)有考慮所有已簽到地點的方法,減少了不重要地點對推薦結果的影響;5、本發(fā)明在計算基于地理位置因素下用戶到未簽到地點的概率時,不僅考慮了未簽到地點與各聚類中心的距離,還融入了用戶在各個活躍區(qū)域的簽到頻次,相對于現(xiàn)有方法,計算結果更能反映用戶對未簽到地點的地理位置偏好;6、本發(fā)明可用于餐館、旅館和旅游地點等關于地點推薦的個性化推薦系統(tǒng),可以在電腦和手機的網(wǎng)頁、App等平臺進行使用,應用范圍廣泛。附圖說明圖1為本發(fā)明結合地點和時間因素推薦的流程圖;圖2為本發(fā)明實驗精準率結果;圖3為本發(fā)明實驗召回率結果;圖4為本發(fā)明實驗F值結果。具體實施方式本發(fā)明方法首先利用獲取的用戶地點簽到數(shù)據(jù),對用戶的歷史簽到地點進行多中心聚類,得到用戶活躍區(qū)域,利用用戶活躍區(qū)域中心與各未簽到地點之間的距離以及用戶在活躍區(qū)域的簽到頻次,計算用戶去每個未簽到地點的概率;再計算各個時間段之間的相似性,利用時間段之間的相似性對用戶簽到數(shù)據(jù)進行填補,并根據(jù)填補后的簽到數(shù)據(jù)計算時間感知下的地點相似性;再結合用戶到未簽到地點的概率與時間感知下的地點相似性,預測用戶在未簽到地點的簽到次數(shù),并根據(jù)預測值,選取簽到次數(shù)排名前N個進行推薦,生成最終的推薦結果;最后,在標準數(shù)據(jù)集上與基礎算法進行比較。具體的說,如圖1所示,包括以下步驟:步驟1:獲取用戶地點簽到數(shù)據(jù),所述用戶地點簽到數(shù)據(jù)的屬性包括:用戶、地點、地點經(jīng)度、地點緯度和用戶簽到時間段;令所述用戶地點簽到數(shù)據(jù)中的所有用戶記為U={U1,...,Uu,...U|U|},所有地點記為L={L1,…,Ll,…,L|L|},所有用戶簽到時間段記為T={1,…,t,…,|T|};其中|U|為用戶的總個數(shù),Uu表示第u個用戶;|L|為地點的總個數(shù),Ll表示第l個地點;并有,Ll={latl,lonl},latl表示第l個地點Ll的經(jīng)度,lonl表示第l個地點Ll緯度;|T|為時間的總個數(shù),t為第t個用戶簽到時間段;定義第t個時間段內(nèi)第u個用戶Uu在第l個地點Ll的簽到次數(shù)為若第t個時間段內(nèi)第u個用戶Uu在第l個地點Ll未簽到,則令否則令μ表示第t個時間段內(nèi)第u個用戶Uu在第l個地點Ll的簽到總次數(shù);從而得到第u個用戶Uu在所有已簽到地點的集合和第u個用戶Uu在所有未簽到地點的集合,并令Lu,a表示第u個用戶Uu的第a個已簽到地點;令Lu,b表示第u個用戶Uu的第b個未簽到地點;本實施例中,使用的是Foursquare公開數(shù)據(jù)集,該數(shù)據(jù)集中有2321個用戶,5596個地點,194108個簽到記錄。且將時間劃分為24個時間段,例如:第一個時間段為0:00到0:59,第二個時間段為1:00到1:59等;數(shù)據(jù)集表結構如表一、表二所示:表一表二地點經(jīng)度緯度L1lat1lon1………Lllatllonl………L|L|lat|L|lon|L|步驟2:計算基于地理位置因素的用戶到每個未簽到地點的概率;步驟2.1:利用式(1)計算第u個用戶Uu在第a個已簽到地點Lu,a的簽到總次數(shù)Cu,a:步驟2.2:利用多中心聚類算法對第u個用戶Uu的所有已簽到地點進行聚類,得到K個聚類結果,其中,第k個聚類結果包括:第u個用戶Uu的聚類中心,記為Cenu={cenu,k};cenu,k表示第u個用戶Uu的第k個聚類中心,且第u個用戶Uu在第k個聚類中心cenu,k所在類別的簽到總次數(shù)記為allu,k;1≤k≤K;多中心聚類算法具體方法可以參考論文《FusedMatrixFactorizationwithGeographicalandSocialInfluenceinLocation-BasedSocialNetworks》,其具體的實施步驟如下:1)對于第u個用戶Uu,按已簽到地點的簽到次數(shù),將已簽到地點降序排列,放入第u個用戶Uu的簽到地點集合CLu中;2)選取集合CLu中的第一個地點,將它作為當前聚類的聚類中心,設定距離閾值,計算集合CLu中其他地點與聚類重心的距離,如果該距離小于距離閾值,則將它放入當前聚類集合中,并將它從集合CLu中移除。直到計算完集合CLu中所有地點;3)如果集合CLu為空,則轉到下一步;否則,返回到2),進行下次聚類;4)設定簽到比例閾值,對于用戶Uu的所有聚類集合,若存在聚類集合,使得用戶Uu在該集合中的地點的簽到總次數(shù)與用戶Uu的總簽到次數(shù)的比值小于比例閾值,則去掉該聚類集合。最后得到的即為最終的聚類集合;本實施例中,距離閾值取75Km,比例閾值取0.05;步驟2.3:根據(jù)聚類結果計算用戶到未簽到地點的概率;步驟2.3.1:計算第u個用戶的第b個未簽到地點Lu,b和第k個聚類中心之間的距離計算距離的公式參考現(xiàn)有的根據(jù)兩地點的經(jīng)度和緯度計算公式。本實施例中使用的公式為:步驟2.3.2:利用式(2)計算在第k個聚類結果條件下,第u個用戶Uu到第b個未簽到地點Lu,b的條件概率P(Lu,b|cenu,k):步驟2.3.3:利用式(3)在所有聚類結果條件下,計算在第u個用戶Uu到第b個未簽到地點Lu,b的概率Pro(Uu,Lu,b)步驟3:計算時間感知下地點之間的相似性:步驟3.1:利用式(4)計算第i個時間段和第j個時間段之間的間距Di,j:本實施例中,將一天劃分為24個時間段,|T|為24,例如,計算第1個時間段(0:00到0:59)和第15個時間段(14:00到)之間的間距,由于|15-1|=13>12,則D1,15=24-13=11;步驟3.2:對于第l個地點Ll,利用式(5)計算第i個時間段和第j個時間段之間的余弦相似度cosl(i,j):步驟3.3:結合時間段之間的間距和時間段之間的余弦相似度,利用式(6)計算第i個時間段和第j個時間段之間的相似性sim(i,j):式(6)中,λ為調(diào)整參數(shù);本實施例中,λ取1;步驟3.4:根據(jù)各時間段之間的相似性,利用式(7)對第t個時間段內(nèi)第u個用戶Uu在第b個未簽到地點Lu,b的簽到次數(shù)進行填補,得到填補后的簽到次數(shù)式(7)中,h表示所有用戶簽到時間段T中,除第t個時間段之外的任一時間段;對于第a個已簽到的地點Lu,a,令賦值給步驟3.5:根據(jù)填補后的簽到數(shù)據(jù),利用式(8)計算時間感知下第m個地點Lm和第n個地點Ln之間的相似性sim(Lm,Ln),1≤m,n≤|L|:步驟4:綜合考慮時間和地理位置信息,預測用戶在未簽到地點的簽到次數(shù);步驟4.1:設定每個地點的鄰近地點數(shù)目K,一方面K取值較小鄰近地點數(shù)目較少,會降低了預測的準確性,但計算的復雜度較?。涣硪环矫鍷取值較大時,地點之間的相似性不高,亦會降低算法預測的準確性,且計算的復雜度高,選擇合理的K值,有利于得到較好的推薦結果,本實施例中K取[10,30]之間的值;對于第u個用戶Uu的第b個未簽到地點Lu,b,根據(jù)地點Lu,b與其它地點的時間感知下的相似性,將相似性排名前K位的地點依次放入地點Lu,b的鄰近集合NLu,b中,得到鄰近集合表示第u個用戶Uu在第b個未簽到地點Lu,b的第d個鄰近地點,令第u個用戶Uu在第d個鄰近地點的簽到次數(shù)為步驟4.2:利用式(9)預測第u個用戶Uu在第b個未簽到地點Lu,b的可能簽到次數(shù)Pre(Uu,Lu,b);步驟5:設定用戶推薦的地點數(shù)目為N,N表示推薦個數(shù),可根據(jù)具體推薦場景設定;將第u個用戶Uu在所有未簽到地點的可能簽到次數(shù)進行降序排序,并選取排名前N個地點推薦給第u個用戶Uu。針對本發(fā)明方法進行實驗論證,具體包括:1)準備標準數(shù)據(jù)集本發(fā)明使用Foursquare數(shù)據(jù)集作為標準數(shù)據(jù)集驗證一種融入時間和地理位置信息的地點推薦方法的有效性,F(xiàn)oursquare數(shù)據(jù)集是應用廣泛的地點推薦數(shù)據(jù)集。在Foursquare數(shù)據(jù)集中,用戶對自己到過的地點進行簽到,數(shù)據(jù)集中包含2321位獨立用戶,5596個獨立地點,194,108個簽到記錄。訓練集和測試集按80%/20%的規(guī)則進行分割,即隨機選擇155286個評分作為訓練集,38822個評分作為測試集。2)評價指標分別采用精準率P@N、召回率R@N和F值F@N作為本實施例的評價指標,精準率、召回率和F值越高,表示推薦結果越好。用公式(10)、(11)和(12)分別計算用精準率、召回率和F值:其中,Tu為測試集中第u個用戶Uu的地點列表,Ru為推薦給第u個用戶Uu的地點列表;3)在標準數(shù)據(jù)集上進行實驗為了驗證本發(fā)明所提方法的有效性,以及證明同時融入時間和地理位置信息比只融入時間或地理位置信息的效果好,本文在Foursquare數(shù)據(jù)集進行五組交叉試驗,對照算法選取了傳統(tǒng)的基于地點的協(xié)同過濾算法LCF、融入時間信息的基于地點的協(xié)同過濾算法T-LCF和融入地理位置信息的基于地點的協(xié)同過濾算法G-LCF。其中,T-LCF是將本發(fā)明特征步驟里面的第三步與LCF結合得到的算法,相對于LCF,T-LCF可以找到更相近的鄰近地點;G-LCF并將本發(fā)明特征步驟里面第二步與LCF結合得到的算法。實驗得到的準確率、召回率和F值分別取平均值。實驗結果如圖2、圖3、圖4所示。其中,T-G-LCF為本發(fā)明提出的方法,橫坐標為給每個用戶推薦的地點數(shù)目N。本發(fā)明綜合考慮了時間和地理位置信息,如圖2、圖3、圖4所示,隨著推薦地點數(shù)由5增加到20,四種算法的精確度會降低,召回率上升,F(xiàn)值先上升再下降,但本發(fā)明提出的方法的精準率、召回率與F值始終高于對照算法,從實驗結果中可以看出本發(fā)明所提出的方法明顯優(yōu)于對照算法,且同時融入時間和地理位置信息的效果比只融入時間或地點位置信息的效果好。當前第1頁1 2 3