焦 旭 肖迎元 鄭文廣 朱 珂
1(天津市智能計算及軟件新技術重點實驗室(天津理工大學) 天津 300384)2(計算機視覺與系統省部共建教育部重點實驗室(天津理工大學) 天津 300384)3(天津外國語大學基礎課教學部 天津 300204)
隨著移動互聯網技術、定位技術和無線傳感技術的飛速發展以及智能手機的不斷普及,基于位置的社會化網絡(location-based social networks, LBSNs)及其帶來的應用服務應運而生,并得到了迅速的發展.目前比較流行的LBSNs有Foursquare,Gowalla,Facebook Place,Microsoft GeoLife,Bikely,Flickr,Panotamio、微信朋友圈等.其中,以Foursq-uare,Gowalla,Facebook Place為代表的LBSNs主要提供對興趣點的簽到(check-in)服務,鼓勵用戶分享其當前位置,通過對用戶共享位置信息的分析為用戶推薦感興趣的位置和社交活動;而以Microsoft GeoLife,Bikely為代表的LBSNs則主要記錄和分享用戶出行軌跡,提供和用戶軌跡相關的一些信息,諸如軌跡的總時長、在一個位置的駐留時長、速度、海拔和一些相應的距離等,同時還可以展示用戶在軌跡旅程中的留言、標簽、照片等以此來反映用戶的旅行經驗和經歷以供其他用戶參考;以Flickr,Panotamio、微信朋友圈為代表的LBSNs主要是把位置信息作為一個標簽嵌入到照片、視頻、文本等媒體信息當中,在此類LBSNs中位置信息只作為一個新的維度被嵌入到媒體信息當中,服務的主體仍然是媒體信息.
LBSNs中蘊含著大量而豐富的信息,在一個LBSN中,用戶所關注的可能是某些地點、某些人或某些活動.針對用戶的興趣所在,為用戶提供基于位置的個性化推薦服務(基于位置的社會化網絡推薦服務),已成為當前LBSNs的一項重要服務,得到工業界和學術界的廣泛重視,正成為推薦系統和社會化網絡研究領域的一個新的研究熱點.
LBSNs不僅意味著在現有社會化網絡中添加位置信息以使用戶在社交結構中分享嵌入的位置信息,而且包括由他們在現實世界中的物理位置以及他們位置標簽媒體的內容(例如照片、視頻和文本)產生的相依性連接的用戶所組成的新的社交結構[1],這里的物理位置由用戶在給定時間戳的瞬時位置以及用戶在特定時間段中累積的位置歷史所組成.此外,這種相依性不僅包括2個人同時出現在相同的物理位置或分享了相似的位置歷史,而且還包括了從用戶的位置(歷史)和位置標簽數據推斷出的諸如共同興趣、行為和活動的知識.
通過對LBSNs的深入理解可以發現該網絡是一個異構網絡,其中存在著位置與用戶2種不同屬性的節點.根據這2種不同屬性的節點,基于位置的社會化網絡存在著3種關系:位置與位置的關系、用戶與用戶的關系、位置與用戶的關系.同時對應于這3種關系還存在著3種不同的距離:位置與位置間的距離、用戶與用戶間的距離(指用戶當前位置間的距離)、用戶與位置間的距離(指用戶的當前位置與某一位置間的距離).在LBSNs中位置與位置間的距離直接反映著2個位置間的相關程度,例如多家大學就近而形成大學城、多家企業就近而形成工業園、多家商場比鄰而形成商業中心;用戶與用戶間的距離則可以反映出2個用戶之間的相似性,例如2個用戶各自的出行軌跡中的多個興趣點都比較接近即軌跡的相似性較高就說明這2個用戶具有相似的興趣偏好或出行模式;用戶與位置間的距離直接影響到用戶對該位置的訪問概率,例如一個用戶去超市購物一般都會選擇距離其較近的一個,文獻[2]基于Foursquare的簽到數據做出了關于用戶活動模式的實證研究,研究表明用戶的簽到行為有20%是發生在1 km范圍內的,60%是發生在1~10 km范圍內的,20%是發生在10~100 km范圍內的,5%是發生在100 km以外的,符合冪律分布,即較近的位置擁有較高的訪問概率,這也與Tobler地理學第一定律(任何事物都是相關的,只是相近的事物關聯更緊密)認為人類行為與所在地區有絕對的影響,此種影響隨著距離的增大而遞減是完全一致的.由此我們也可以看到在LBSNs中位置與用戶相互依存緊密聯系,在研究位置的同時無法割裂用戶對其的訪問行為,而在研究用戶的同時也無法忽視其在不同時間所處的地理位置.
位置還具有其自身的獨特屬性,首先,位置是具有粒度屬性的.例如對一家購物超市來說,它位于某個商業中心,這個商業中心屬于某個區,這個區又屬于某個城市,這個城市又屬于某個省份,也就是說描述該購物超市的位置可采用不同的粒度:某商業中心→某區→某城市→某省.我們在不同的粒度上談及用戶分享的位置隱含的效果是不同的,例如一個用戶去了天安門,另一個用戶去了故宮博物院,在這個細粒度下我們可以推斷2人都到過北京的歷史古跡,2人都偏好旅游且都喜歡游覽歷史古跡,2人具有極高的相似性,而如果換作是省份這一級的粗粒度,我們僅能知道2人都到過北京,其推斷出的2人的相似性就大打折扣了.其次位置還具有順序性,例如一條東西向的街道上自東向西依次有A,B,C這3個興趣點,自駕用戶們的訪問順序都是由A到B再到C,說明這條街道極有可能是一條單行路.
推薦系統作為有效解決“信息過載”的重要工具早已為用戶所熟悉,尤其是在電子商務方面,推薦系統的使用既為企業帶來了經濟效益也大大方便了用戶,例如商品推薦領域的淘寶、Amazon,電影推薦領域的豆瓣、Netflix,音樂推薦領域的Last.fm,新聞推薦更是在各大門戶網站廣泛使用.相較于基于互聯網的傳統推薦而言,由于LBSNs中用戶與位置關系的相依性以及位置的獨特屬性,使得LBSNs的推薦變得更加復雜,存在諸多不同于傳統推薦的困難與挑戰,具體表現如下:
1) 在傳統推薦中,通常根據用戶的歷史行為建模其偏好從而為他推薦物品,比如一個用戶曾經購買過食譜方面的書籍,通常表明他可能偏愛美食做飯,自然就應該向其推薦烹飪類的最新書籍,但是在LBSNs中卻不一定如此,比如一個廣東的用戶偏好健身,但當他出現在天安門廣場時,我們給他的推薦列表中排在前列的應該是人民大會堂、英雄紀念碑、天安門、故宮博物院等,而不會是某個健身房或體育館,因為他所處的位置信息(情境)告訴我們該用戶到了北京的天安門廣場應該是來旅游的.
2) 在LBSNs中需要根據推薦對象的不同選擇不同的位置粒度,比如要做興趣點推薦,就需要選擇較細的粒度,細到餐館、影院這個級別,而如果做新聞推薦,位置粒度的選擇可以適當粗一點.
3) 在推薦興趣點時還要考慮順序性,比如在給用戶做旅程規劃時應根據具體的起點和終點位置順序推薦它們之間的興趣點,避免讓用戶來回奔波;此外,如果推薦的多個興趣點在同一單行路上時更應避免給自駕用戶帶來困擾.
4) 在傳統推薦中,用戶顯式地表達自己對物品的偏好,例如目前采用較多的是5分制評分,評分由1~5分表達了用戶對物品從很不感興趣到很偏愛的程度,換言之一個用戶對物品的評價都集中1~5分這個范圍內,然后可以把用戶對物品的評分情況轉換為一個用戶物品矩陣.但是在LBSNs中則不然,用戶對地點的偏好是隱式地通過訪問頻率表達的,用戶對某一地點訪問的次數越多說明其偏愛此地的程度越高;其次相較于用戶對物品的評分,用戶的訪問頻率沒有固定的數值范圍,比如有的用戶對某一位置的訪問頻率可能多達幾百次,而其他用戶僅有一兩次;此外,將用戶對興趣點的訪問頻次轉換為一個用戶-興趣點簽到矩陣后可以發現與傳統推薦中的用戶-物品矩陣相比是極度稀疏的,因為對于一個用戶來說面對現實世界成千上萬的興趣點其去過的畢竟是少數,例如根據Foursquare用戶的Twitter報告,文獻[3]最終確定了一個包含12 422個用戶、46 194個興趣點與738 445個簽到行為的數據集,其對應的用戶-興趣點簽到矩陣的稀疏程度達到了99.87%,可以說是極度稀疏了,平均每個用戶簽到59.44個興趣點,僅是興趣點總數極小的一部分,同時對興趣點的簽到頻率數值范圍為1~786.
5) 用戶的社會屬性對用戶簽到行為的影響:傳統推薦根據用戶的最近鄰來對其進行推薦,最具代表性的方法就是基于用戶的協同過濾算法,并且取得了不錯的效果.然而文獻[4]的研究表明,在LBSNs中大約96%的朋友分享少于10%的常訪問地點,并且87.7%的用戶什么都不分享.由于大多數的朋友不分享常訪問地點,這就意味著不是所有的社交朋友都有助于進行位置推薦,這也就說明了用戶的社會屬性對用戶簽到行為的影響是有限的.同時作者還發現,距離較近的朋友有較高的分享常訪問位置的概率,這是因為他們更容易參與到相同位置的活動當中.這也印證了LBSNs中的用戶的社交活動(訪問興趣點)很大程度上受地理接近度的影響.
6) 與傳統推薦相比,在LBSNs中用戶本身的屬性及其所處的情境都會對推薦結果產生重要的影響.比如用戶的年齡、性別、收入、職業、當前的位置、心情、當前時間、天氣、交通情況等,因為用戶的偏好會隨著情境的改變而改變.同時用戶的偏好也是有粒度的,比如:一個用戶偏好旅游→偏好城市旅游→偏好參觀各大城市的博物館.因此,在LBSNs中如何融合各方面的情境來提高推薦的質量是一個挑戰.
本節分別從推薦對象、推薦方法和評價方法3方面全面地介紹基于位置的社會化網絡推薦相關技術.
在LBSNs中包含各種不同的推薦對象,本文將推薦對象劃分為4類:位置(興趣點)、朋友、本地專家、活動,其中位置和朋友的推薦又根據使用數據集類型的不同進行分類介紹.
3.1.1 位置推薦
位置推薦又可分為興趣點推薦和旅程規劃(興趣點軌跡推薦),目前的位置推薦主要使用用戶在LBSNs中的簽到(check-in)數據集或用戶GPS軌跡數據集.check-in數據集包含了帶有語義信息的興趣點以及豐富的用戶屬性與興趣點屬性,同時還包含用戶間的好友關系,因此成為許多研究人員的首選,但是用戶簽到行為的極度稀疏也是check-in數據集無法回避的問題.相較于check-in數據的極度稀疏,GPS軌跡數據集則不存在這個問題,其包含了用戶軌跡的總時長、用戶在一個位置的駐留時長、速度、海拔和一些相應的距離等地理信息,但要使用GPS軌跡數據集的首要工作就是需要研究人員從軌跡數據中挖掘出興趣點的地理信息;此外,如何匹配這些挖掘出來的興趣點的語義信息,也是一項充滿挑戰的任務.以下將按照使用數據集的不同詳細介紹.
1) 使用check-in數據集的位置推薦
用戶的簽到(check-in)行為往往會受到地理、時間、順序、社會、評論等多方面因素的影響,本文將從這5個角度分別介紹.
① 地理影響
地理影響對興趣點推薦是極其重要的,可以說這是其區別于傳統推薦最根本的特征,由于用戶的簽到行為呈現出空間聚類現象,可以用冪律分布、高斯分布、泊松分布、核密度估計的方法來建模地理影響.文獻[5]使用冪律分布來模擬被同一用戶訪問的2個興趣點的簽到概率y:
y=axb,
(1)
其中,x表示2個興趣點之間的距離,a和b為冪律分布的參數,可以利用觀測到的簽到數據使用線性擬合的方法獲得.文獻[6]發現在LBSNs中用戶的簽到數據具有2個獨特屬性:1)用戶趨向于圍繞著幾個中心進行簽到,在每一個中心用戶的簽到行為是符合高斯分布的,如圖1所示;2)盡管不同的用戶對興趣點有著不盡相同的口味,但是一個用戶訪問一個位置的概率與其距最近中心的距離成反比,如圖2所示.這就暗示著如果一個興趣點距離用戶所在的位置較遠,盡管用戶喜歡該處,但是也很有可能不會去.基于以上2個特點,文獻[6]使用高斯分布來建模用戶的簽到行為并且提出了多中心高斯模型(MGM).當給定了多中心集合Cu(1≤u≤M),用戶u訪問興趣點l(一個位置的經度和緯度)的概率:
(2)


Fig. 1 A typical user’s multi-center check-in behavior[6]圖1 典型用戶多中心簽到行為[6]

Fig. 2 Check-ins probability vs. distance[6]圖2 距離相關的簽到概率[6]

(3)
其中,li=(lati,loni)T是一個經度和緯度組成的2維列向量,K(·)是一個核函數,用式(4)表示,σ是一個平滑參數稱為帶寬,式(5)給出了其計算方法:
(4)
(5)
給定Lu={l1,l2,…,ln},用戶u訪問新位置l的概率表示為
p(l|Lu)=
(6)
實驗表明CoRe方法的準確性和效率均優于冪律分布、多中心高斯分布和iGSLR.文獻[9]對固定帶寬的核密度估計進行改進,采用決策的方法自適應當地帶寬也取得了不錯的效果.
文獻[10]認為高斯分布更適合于建模用戶的評分行為而不是用戶的簽到行為,而泊松分布擬合簽到頻率數據好于高斯分布,提出了基于Ranking的泊松矩陣分解興趣點推薦算法.首先,為了更加準確地捕獲用戶對興趣點的偏好,使用泊松分布來建模用戶的簽到行為;其次,為解決興趣點推薦中的隱式反饋問題,利用BPR(Bayesian personalized ranking)標準來優化泊松矩陣分解的損失函數;最后,為了進一步改進推薦算法的性能,利用包含地域影響力的正則化因子約束泊松矩陣分解過程.
② 時間影響
在傳統的推薦中,時間影響力是逐步衰減的,比如新聞或者電影都會隨著時間的推移其熱度大大衰減.在LBSNs中,可以為某一具體的時間狀態進行興趣點推薦,時間影響對于興趣點推薦的重要作用主要表現在用戶簽到行為的時間周期性和時間非均勻性2個方面.
用戶簽到行為具有時間周期性是指用戶通常在相同的時間區間內會去訪問相同或者相似的興趣點.例如人們通常白天去圖書館,傍晚去餐館,夜晚去酒吧,工作日通常在辦公地點周圍活動,周末通常會去購物中心或者公園.用戶簽到行為具有時間的非均勻性通常是指用戶的簽到偏好在1 d中的不同時間、1周中的不同日子、1年中的不同月份是存在差異的.文獻[11-17]分別利用時間影響進行了興趣點推薦,大部分方法都是將1 d分割成多個時間區間,比如分成24 h,或分成上午、中午、下午、傍晚、晚間、深夜等,進而使用協同過濾等一些推薦技術推斷用戶在每個時間區間的興趣點偏好.但是由于這些時間區間是離散化的,就會造成丟失一些時間信息,同時缺乏不同時間區間之間的時間影響相關性.為了克服離散化的缺陷,文獻[14]提出了一個概率框架來建模連續的時間影響,在向用戶推薦興趣點的同時也向用戶建議合適的訪問時間,該框架需要預測用戶u訪問興趣點l∈L在時間區間T的概率p(l|u,T,D),其中,D為包含所有用戶訪問所有位置的簽到集合,p(l|u,T,D)的計算公式為

(7)
其中,p(l|u,D)是不依賴于時間區間T的用戶u訪問興趣點l的先驗概率,可以通過任何非時間感知的方法獲得;f(t|u,l,D)是以用戶u和興趣點l為條件的時間概率密度,這也從本質上利用了時間影響,對其進行基于核密度的估計:
(8)
tΘti為這2個時刻的時間差,Su,l為估計f(t|u,l,D)的時間樣本,Wu,l(ti)為樣本點ti的權重.
③ 順序影響
文獻[18]的研究發現:大量的連續簽到是高度相關的,超過40%和60%的連續簽到行為分別發生在Foursquare和Gowalla中距離上一次簽到后的4 h以內.在Foursquare和Gowalla中大約90%的連續簽到發生在32 km范圍內(0.5 h的車程).這也反映出用戶簽到行為的順序影響是時空相關的,它是時間周期性(人們通常白天去圖書館、傍晚去餐館、夜晚去酒吧)、興趣點在地理空間上的接近性(游客通常會先后游覽人民大會堂、英雄紀念碑、天安門、故宮博物院)、興趣點的屬性與人類習慣(人們通常會先去健身房再去餐館晚餐,如若相反是不利于人們的健康習慣的)共同作用的結果.為了利用這種順序影響進行興趣點推薦,目前的許多方法都是假設下一個可能訪問的興趣點只與訪問過的最新的這個興趣點相關,因而可采用了一階Markov鏈進行建模[19-21].然而在實際當中,用戶下一個將要訪問的興趣點往往和其之前訪問過的所有興趣點都相關,為此文獻[22-23]提出:首先,從所有用戶的簽到位置序列中挖掘順序模式作為一個動態的位置—位置遷移圖,位置—位置遷移圖不僅包括位置間的遷移計數,而且還包括位置到其他位置的外出計數,遷移概率通過遷移計數除以外出計數獲得;其次,在給定位置—位置遷移圖和用戶訪問過的位置序列的前提下,使用n階加法Markov鏈(additive Markov chain, AMC)預測該用戶訪問新位置的順序概率.
④ 社會影響
在傳統推薦中就已經使用基于記憶[24-25]和基于模型[26-27]的方法來利用社會影響提高推薦系統的效果.在LBSNs中,基于朋友與非朋友相比會分享更多的共同興趣這一假設,可以借鑒傳統推薦的方法利用社會影響來提高興趣點推薦效果[4,6,22,28-32].文獻[4]使用了基于朋友的協同過濾(friend-based collaborative filtering, FCF)的方法進行興趣點推薦.由于用戶僅僅訪問所有興趣點中的一小部分,協同過濾方法會被用戶—興趣點簽到矩陣的稀疏問題所困擾.為此文獻[32]利用用戶和已訪問某一興趣點的該用戶的朋友的社會相關性來推斷該用戶和未被訪問興趣點之間的相關性,整個方法包含3個步驟:社交頻率的聚集、社交頻率的分布估計、社交相關性得分的計算.
步驟1. 社交頻率的聚集.
給定用戶u和未訪問過的興趣點l,聚合用戶u的朋友(即u′,Su,u′=1)在興趣點l的簽到頻率或評分
(9)
其中,Ru′,l是用戶u′訪問興趣點l的頻率或評分,Su,u′表示用戶u和u′之間是否存在社交鏈接.
在現實世界中,社交簽到頻率隨機變量x符合冪律分布,概率密度函數被定義為
fSO(x)=(β-1)(1+x)-β,x≥0,β>1,
(10)
其中,β通過簽到矩陣R和社交鏈接矩陣S估計得到
(11)

步驟3. 社交相關性得分的計算.

1-(1+xu,l)1-β,
(12)


好,我沒能力不能代表大多數,我們假設一種極端情況,正好泳池里有100個打著游泳的幌子,專門去擼管的色狼。鑒于他們的偉大能力,我們計劃他們同時排出了6毫升精液,每毫升精液都有6000萬條精子。且不說這泳池的水會不會變渾,會不會有一種石楠花的味道,這600毫升濃濃的精液也就一可樂瓶,包含約360億個精子,被釋放到這1000立方米水中。
(13)

相應地間接社會群體應滿足:
(14)

⑤ 評論內容影響
在LBSNs中以用戶對興趣點的訪問頻率作為用戶對興趣點的喜好程度的依據,而如果能夠有效利用用戶在某一時刻對某一興趣點的評論信息[31,34-35],就能夠更加準確地說明用戶對該興趣點的好惡,需要說明的是用戶對興趣點有過評論行為并不意味著該用戶一定喜歡該興趣點,因為用戶的評論有可能是負面的,所以要進行語義分析,并量化出情感得分.文獻[31]首先做出了利用評論信息提高興趣點推薦的研究,利用用戶的簽到信息和評論信息為用戶進行統一的混合偏好建模(hybrid preference model, HPM),其中對評論信息分析的首要任務就是將評論信息轉化為情感得分.圖3展示了一個意大利餐廳的留言,圖3(a)是對留言的處理過程,使用了基于字典的無監督情感分析方法僅對英文留言進行了處理.首先在最開始的語言發現部分過濾掉非英語的留言;然后留言被劃分為句子和詞性(圖3中的POS)進行識別,通過在SentiWordNet中查找獲取每個詞的情感得分,使用名詞短語拆分技術提取短語;將留言中的每一個詞的情感得分進行累加并歸一化到區間[-1,1]獲得留言整體的情感得分,-1表示最負面,0表示中性,1表示最正面,圖3(b)展示了處理的結果;最后根據用戶的簽到頻率和留言的情感得分建立用戶—興趣點偏好矩陣.

Fig. 3 Sentiment analysis of tips[31]圖3 留言情感分析[31]
文獻[36]利用3個步驟處理評論信息:首先使用標準自然語言處理工具預處理所有評論數據,刪除停用字、標點符號和數字后,為每個評論提取一組術語以表示它;其次通過分析評論預先定義一組主題,為每個主題決定一組種子術語;最后一個跨越多個主題的用戶興趣分布被表示為一個長度為k的向量,元素為通過聚集這個用戶所有評論的頻率得到的關于某一主題的頻率.由此用戶的簽到信息就有了極性,采用改進的隨機游走算法使具有正面評價的興趣點得到更多的優待和青睞.文獻[37]利用潛在狄利克雷分布對評論內容信息進行建模,也取得了不錯的實驗效果.
此外除了上述5種影響以外,在LBSNs中與興趣點相關的照片包含了豐富的關于興趣點屬性的獨特信息,比如形狀、結構、紋理等,而這些關于興趣點的信息是無法從以上5種影響中獲得的.文獻[38]提出了利用視覺內容進行興趣點推薦的方法:首先以照片作為輸入,使用卷積神經網絡(convolutional neural network, CNN)的VGG16模型對照片進行分析獲取其視覺內容,視覺內容是一個長度為4 096的向量;其次基于獲取的視覺內容,利用用戶的隱含特征區分照片是否為某一用戶所分享的,利用興趣點的隱含特征區分照片是否與某一興趣點相關聯;最后綜合利用上一步的分析結果建模照片的圖像特征.真實數據集的實驗結果表明,該方法有效提高了興趣點推薦的精度.
2) 使用GPS數據集的位置推薦
相較于孤立的簽到信息,用戶產生的GPS軌跡數據包含了非常豐富的信息,其包含了用戶軌跡的總時長、2個位置間的訪問順序、經過的路徑、用戶在一個位置的駐留時長、速度、海拔和一些相應的距離等豐富的地理信息,同時避免了簽到數據的極度稀疏的問題.利用GPS軌跡數據可以進行興趣點推薦[39-43]也可以進行旅程規劃[44-45].
HITS算法[46-47]是鏈接分析中非常基礎且重要的算法,Hub頁面(樞紐頁面)和Authority頁面(權威頁面)是HITS算法最基本的2個定義.所謂“Authority”頁面,是指與某個領域或者某個話題相關的高質量網頁,而“Hub”頁面指的是包含了很多指向高質量“Authority”頁面鏈接的網頁.HITS算法的基本思想是相互增強關系,其假設一個好的“Authority”頁面會被很多好的“Hub”頁面指向,同時一個好的“Hub”頁面會指向很多好的“Authority”頁面.文獻[39]將Hub看作一個訪問了許多興趣點的用戶,將Authority看作為一個被許多用戶所訪問的興趣點,同時假設在LBSNs中一個有經驗的用戶會訪問很多好的興趣點,一個好的興趣點會被很多有經驗的用戶所訪問,這也是一種相互增強關系,于是利用HITS算法可以發現并推薦好的興趣點.文獻[40]發現使用原始的HITS算法存在一定的缺陷,如果一個興趣點僅僅被一個用戶訪問過且訪問次數很高,HITS算法也會給該興趣點分配一個很高的Authority得分,給該用戶分配一個很高的Hub得分,這顯然是不合理的.為此提出了在用戶位置圖上使用隨機游走的隨機化HITS模型,該模型具有對小的擾動不敏感且比原始HITS模型穩定的優點.
文獻[44-45]利用GPS數據集進行了旅程規劃方面的研究,主要分為離線與在線2個部分,如圖4所示.離線部分的任務是構建一張位置—興趣圖,分為2個步驟:
步驟1. 從GPS軌跡中發現駐留點然后將駐留點聚類為位置點生成位置圖.
步驟2. 在位置圖中利用文獻[39]提出的HITS方法推斷每一個位置的興趣值并且計算出每一個2長度的旅行序列的流行度得分,最終生成位置—興趣圖.

Fig. 4 Architecture of social itinerary recommender[45]圖4 社會旅程推薦構架[45]

Fig. 5 Framework for modeling users location history in geographical spaces[1]圖5 地理空間用戶位置歷史建模框架[1]
在線部分在接收到用戶產生的查詢以后要進行3方面的工作:①對用戶的查詢進行驗證,從時間與空間2個方面檢查用戶查詢的可行性;②搜索位置—興趣圖,生成滿足用戶查詢的候選旅程;③對滿足用戶查詢的候選旅程進行排序,排序分為以下2個步驟:
步驟1. 依據ETR(推薦旅程的時長與用戶給定時長的比例)、STR(用戶在一個位置的停留時長與位置間的遷移時長的比例)、IDR(一個旅程所包含的所有位置的興趣值的總和)進行排序.
步驟2. 依據流行度得分進行再排序最終得到Top-k的旅程推薦.
3.1.2 朋友推薦
傳統社交網絡中的朋友推薦利用用戶的屬性、社會結構、用戶的交互等信息為用戶推薦潛在的朋友.對于朋友推薦常見的方法是將友誼預測看作為經典的鏈接預測問題并依賴于社交網絡圖中的臨近度度量,用于測量2個用戶之間臨近度的方法包括共同鄰居法、Jaccard系數和Admic/Adar方法.在LBSNs中,用戶的位置歷史通常能反映出用戶的偏好,因此具有相似位置歷史的用戶很可能具有相似的偏好,因此也極有可能成為朋友.
1)使用GPS數據集的朋友推薦
文獻[1]使用GPS軌跡數據集提出了朋友推薦的方法,其方法的核心是用戶間相似性的度量.作者首先提出了新的框架,利用分層圖來建模用戶個人的位置歷史,如圖5所示:
在用戶的個人位置歷史建立以后,分2個步驟來計算2個用戶間的相似性:
步驟1. 在分層圖的每一個層內尋找2個用戶移動軌跡的相似序列.
步驟2. 在給定了相似序列以后計算2個用戶的相似性得分.
計算相似性得分時包含3個因素:①用戶移動的順序屬性,即2個用戶的位置歷史所分享的相似序列越長,2個用戶的相似度越高;②地理空間的分層屬性,即2個用戶所分享的位置歷史粒度越細,2個用戶的相似度越高,比如都去過同一所建筑物的2用戶的相似度高于都去過同一個城市的2個用戶的相似度;③不同位置的流行度,即都去過一個很少有人訪問的位置的2個用戶的相似度高于都去過一個很多人訪問過的位置的2個用戶的相似度,相似度得分的計算如下:
SimUser(LocH1,LocH2)=
(15)
(16)
(17)
(18)
式(15)表示根據2個用戶的位置歷史得出的相似性得分,其中l表示在分層圖中所處的層,fw(l)確保越底層分配到越大的權重.式(16)表示一層中2個相似序列的相似性得分,其中j表示Seq1與Seq2中的第j個最大相似匹配;|Seq1|表示序列Seq1的長度;|Seq2|表示序列Seq2的長度,歸一化是為了防止一個有長時間位置歷史的用戶比短時間位置歷史的用戶更容易和他人相似.式(17)表示一個最大相似匹配的相似性得分,其中gw(k)根據s的長度k分配權重;ci為s中所包含的位置.式(18)表示位置c的流行度,其中N為數據集中的用戶總數,n為訪問位置c的用戶數.
2) 使用check-in數據集的朋友推薦
文獻[48]提出了基于隨機游走的上下文感知朋友推薦算法(RWCFR),將LBSNs建模為一個無向無權圖,為了給用戶推薦朋友,首先根據用戶當前的上下文建立一張子圖,構建子圖的項目包括:①在附近區域用戶先前訪問過的位置(個人空間上下文);②在附近區域朋友和他們先前訪問過的位置(社會空間上下文);③在附近區域專家和他們先前訪問過的熱門位置(社會空間上下文);④朋友的朋友(社會上下文);⑤訪問過當前用戶先前訪問過的位置的用戶(社會空間上下文).在子圖建立以后,采用帶重啟的隨機游走(RWR)[49]排序潛在朋友.
文獻[50]使用Skyline查詢[51]進行朋友推薦,主要分為4個步驟:
步驟1. 基于社交關系鏈接收集候選朋友和共同朋友的編號.
步驟2. 基于用戶的簽到信息計算用戶與候選朋友間的距離.
步驟3. 基于簽到信息和社交關系鏈接計算位置相似性以及朋友的影響,通過位置相似性和朋友的影響獲取相似性得分.
步驟4. 使用Skyline查詢獲得朋友推薦列表.
文獻[52]提出了針對活動推薦同伴問題,作者利用朋友關系可以根據朋友分享的興趣來聚合的假設,使用簽到數據集有效地解決了針對活動推薦同伴問題;為了識別同伴間的友誼類型,使用了潛在主題模型,同時還考慮了用戶與所建議的場所位置的地理接近性,得到了很好的結果.
3.1.3 本地專家發現
在傳統社交網絡中通過分析信息擴散網絡中節點的度來尋找意見領袖.在LBSNs中本地專家指的是對某一位置或區域非常了解且擁有很多本地知識的用戶,尋找本地專家對于基于位置的社會化網絡推薦系統有著重要的意義.
文獻[39]基于有經驗的用戶會訪問很多好的興趣點,好的興趣點會被很多有經驗的用戶所訪問這樣的假設,利用HITS算法推薦好的興趣點的同時也發現了本地專家.該方法分為2個步驟:
步驟1. 將地理空間劃分為基于樹的分層圖(TBHG),如圖6所示.圖6(a)表示不同粒度級別下的位置聚類,圖6(b)表示每層上位置聚類之間的關系.
步驟2. 基于有經驗的用戶會訪問很多好的興趣點,好的興趣點會被很多有經驗的用戶所訪問這樣的假設,將Hub看作用戶,將Authority看作興趣點,向每個用戶分配旅行經驗得分,向每個興趣點分配流行度得分,如圖7所示.由于用戶的經驗和興趣點的流行度之間也具有相互增強的關系,因此以利用式(19)、式(20)來對用戶經驗和興趣點流行度排序:

Fig. 6 Building a tree-based hierarchical graph[39]圖6 基于樹的分層圖的構建[39]

Fig. 7 HITS-based inference model[39]圖7 基于HITS的推理模型[39]

(19)
(20)

Fig. 8 Demonstration of model[53]圖8 模型演示[53]

3.1.4 活動推薦
在LBSNs中活動推薦為用戶解決了2個問題:1)用戶有了明確要進行的活動為其推薦活動場所;2)當用戶指定一個具體的場所后為其推薦該場所適合的活動.用戶通常會分享自己在某一地點所進行的活動,通過對分享內容的學習可以得到位置與活動之間的相關性,以此構建一個位置—活動矩陣,利用這個矩陣就可以進行活動推薦.但是由于用戶的活動歷史有限,用戶分享的活動的位置遠遠小于實際的位置數量,因此位置—活動矩陣是非常稀疏的.文獻[53]利用GPS軌跡數據,提出了協同矩陣分解模型進行活動推薦,為了解決位置—活動矩陣稀疏的問題,作者基于相同類別的位置可能具有相同活動的可能性的假設建立了 位置—特征矩陣,該矩陣表示了位置所屬的分類信息(例如餐館、酒吧、健身場所等等).顯然,一個位置可以屬于多個分類.為了推斷在給定一個用戶已進行了一些其他活動的情況下,在同一位置進行某一活動的可能性,作者建立了活動—活動矩陣來建模不同活動之間的相關性.在3個矩陣建立以后,如圖8所示,使用協同矩陣分解最終得到位置—活動矩陣,目標函數推斷位置—活動矩陣中缺失的值:
(21)

在對以上對象推薦的過程中,使用了基于內容的、鏈接的、協同過濾、基于矩陣分解的等多種推薦方法,以下分別做簡單的總結.
基于內容的推薦方法主要是指直接將用戶的偏好屬性與位置的特征進行匹配的推薦方法,該方法的優點是不會被冷啟動問題所困擾,但缺點是需要將位置信息與用戶信息結構化,在LBSNs中完成這項工作代價巨大;此外,該方法無法利用從用戶推測出來的聚類信息.
基于鏈接分析的推薦方法[39-40,48]主要是指通過對已知網絡結構等信息進行分析,預測和估計未鏈接的2個節點之間存在鏈接的可能性,其典型代表為PageRank[54]和HITS[46-47].基于鏈接分析的推薦方法的優點在于不會被冷啟動問題所困擾,同時還考慮了用戶的經驗,但缺點是由于忽視了用戶的偏好它只能做通用推薦而無法將推薦個性化.
基于協同過濾的推薦方法[4-5,55-59]主要分為基于用戶的協同過濾和基于位置的協同過濾.在LBSNs中使用協同過濾方法主要分為3個過程:1)候選集的篩選,以此縮小計算范圍;2)相似度的計算,直接影響到推薦的性能;3)推薦得分的計算,以此排序推薦對象.該方法的優點是不需要將位置信息與用戶信息結構化同時還利用了社區意見,但缺點是容易受到冷啟動問題的困擾,容易受到稀疏問題的困擾;同時由于用戶與位置數量巨大,相似性計算的代價也是巨大的,此外,由于LBSNs增長迅速,該方法的可擴展性也受到了極大的挑戰.
自從Netfix大獎賽獲得巨大的成功,基于矩陣分解的推薦算法[60-61]受到了學術界和工業界的廣泛關注,在LBSNs中也得到了廣泛的使用[6,10,53,62].在LBSNs的推薦服務中,基于矩陣分解的推薦算法將用戶和位置的特征向量同時映射到低維的隱藏因子空間,在低維的隱藏因子空間中,由于用戶偏好和位置特征之間的相關性可以直接計算,矩陣分解的推薦算法利用用戶和位置的低維特征向量的內積來預測用戶對項目的評分.基于矩陣分解的推薦算法主要包括基本矩陣分解、非負矩陣分解和正交非負矩陣分解3種.其優點是可以發現數據中的潛在結構、具備優雅的概率解釋、容易擴展到一些指定特定先驗信息的領域,許多優化方法例如梯度下降法可以用來找到一個最優解,適合填充稀疏矩陣.
在LBSNs中,其他的一些推薦方法還包括:基于張量分解的推薦方法[18,20,63-64]、基于元路徑的推薦方法[65]和基于神經網絡的推薦方法[66]等.
與傳統推薦方法使用的評價方法類似,在LBSNs中,目前常用的評價指標有準確率P、召回率R、平均精度均值(mean average precision,MAP)、歸一化折損累積增益(normalize discounted cumulative gain,NDCG)、平均絕對誤差(mean absolute error,MAE)、均方根誤差(root-mean-square error,RMSE)等.準確率P、召回率R、平均絕對誤差MAE和均方根誤差RMSE的定義:
(22)
(23)
(24)
(25)
其中,yi表示真實值,fi表示預測值.
準確率只考慮了推薦列表中準確的推薦結果的個數,沒有考慮推薦結果之間的序.對于一個推薦系統而言返回的推薦結果必然是有序的,而且越準確的推薦結果排序越靠前越好.于是對于一個推薦列表就需要計算其平均精度(average precision,AP),定義為
(26)
其中,k表示推薦列表中的排名,P(k)表示推薦列表中截止到排名k的準確率,rel(k)表示一個指示函數,如果在排名位置k是一個準確的推薦結果其值為1,否則為0,N表示推薦總數.MAP的定義為
(27)
其中,Q表示推薦的總次數.
折損累積增益(discounted cumulative gain,DCG)也是一個衡量排名算法的指標,計算公式為
(28)
其中,reli表示第i個結果的評分.NDCG的定義:
(29)
其中,IDCGp表示理想的DCGp.
在推薦系統中,MAP和NDCG是2個最受歡迎的排名指標,兩者之間的主要區別是:MAP認為對象是二元相關性(一個對象是感興趣的或者不感興趣的),而NDCG允許以實數形式進行相關性打分,這種關系類似分類和回歸的關系.一個推薦方法返回多個項并形成一個推薦列表,NDCG要評價這個列表的優劣,其中每一項都有一個相關的評分值(非負數)這就是所謂的增益(gain),而對于那些沒有反饋給用戶的項將其增益設置為0,把這些評分值相加,就得到了累積增益(cumulative gain),而在把這些分數相加之前將每項除以一個遞增的數(通常是該項位置的對數值)也就是折損值就得到了DCG.在用戶與用戶之間,DCG沒有直接的可比性,所以要對其進行歸一化處理,歸一化采取計算列表中前k項的DCG,然后將原DCG除以理想狀態下的DCG就得到了NDCG.
基于位置的社會化網絡推薦技術作為推薦系統和社會化網絡研究領域的一個新的研究熱點受到學術界和工業界的廣泛關注,盡管在推薦架構、位置建模、相似性計算、推薦算法等諸多方面基于位置的社會化網絡推薦技術都取得了一系列重要研究成果,但隨著數據量的爆炸性增長以及計算模式與技術的不斷演化,基于位置的社會化網絡推薦方面仍然存在著一些挑戰和潛在的研究方向:
1) 推薦技術不應該只局限于地理空間,由于地理空間的限制,推薦系統無法利用2個相距遙遠但擁有著相同出行習慣和共同偏好的用戶信息進行推薦,而語義空間就很好的解決了這一問題,所以如何有效利用語義空間更好地進行推薦是一個重要的研究方向;
2) 一個高質量推薦的產生一定是多方面因素共同作用的結果,為了能讓用戶得到更滿意的推薦結果及時獲取用戶的多方面需求離不開情境信息,這就要求一個能夠整合情境的面向用戶查詢的推薦系統;
3) 隨著數據量的爆炸性增長,目前LBSNs中包含了海量的豐富信息,因此,如何將大數據處理技術與基于位置的社會化網絡推薦相結合也是一個值得關注的方向,與此同時,結合并行計算來提高運算效率也是不可或缺的,文獻[67]已經做了一些初步的探討;
4) 為了讓推薦服務能隨著時間的推移逐步提高自己的推薦質量,接受推薦反饋并不斷調整推薦能力也是不可或缺的[68];
5) 深度學習目前在數字圖象處理和自然語言處理方面表現出了巨大的潛能,如何將其無縫地應用到基于位置的社會化網絡推薦方面是一個很有潛力的發展方向.