李蘊怡
(公安部第三研究所,上海 200031)
隨著移動通信技術的發(fā)展,手機成為人們生活必不可少的工具。位置是人日常生活最為重要的信息之一。手機定位信息客觀反映了用戶的現實行為,因此位置信息可支持多種應用場景。隨著互聯網的發(fā)展,基于地理位置的社交網絡(Location-Based Social Network,LBSN)的覆蓋范圍越來越廣,如微信定位、發(fā)現附近好友服務等。LBSN創(chuàng)造了一種基于用戶地理位置的線上交互方式。它通過地理位置信息將虛擬世界和現實世界連接起來。通過挖掘手機用戶的運動軌跡數據,可研究用戶的行為規(guī)律,從而刻畫人物特性。尤其是在電子商務的服務模式中,研究用戶的行為規(guī)律具有重要的現實意義。
國內外學者對地理位置的相關研究,包括通過數學模型檢測用戶行為軌跡中的重要地理位置,從而總結用戶的行為規(guī)律[1-2];從地理位置角度分析用戶之間的相似度,建立多層次的相似度模型[3];通過地理位置數據的分析,研究用戶的行為和偏好,并對未來的行為進行預測[4];基于LBSN的數據,建立用戶相似度計算模型,發(fā)現用戶可能的好友和可能偏好的地理位置,從而進行好友推薦和位置推薦[5];使用Louvain算法進行社區(qū)劃分,提高好友預測和鏈接預測的準確率[6];基于用戶通過手機軟件進行簽到的數據,建立主題挖掘模型,對簽到的主題信息進行充分挖掘[7-8];從垂直距離、平行距離、角度距離三個方面計算用戶運動軌跡的相似度[9]。綜上,現有研究深入挖掘了地理位置數據,但用戶使用定位服務的時間和頻率較少,而時間和頻率這兩個方面的規(guī)律對人物行為特點的分析也很重要。
本文首先通過數據挖掘,從地理位置數據中提取有相關的數據,然后建立數據分析模型,分析用戶的地理位置變化規(guī)律,發(fā)現用戶的地理位置偏好、時間偏好、定位頻率偏好,并結合這三方面綜合刻畫用戶的行為特點。最后,通過對比不同用戶的行為特點,可計算用戶之間的相似度,從而根據行為特點將用戶進行分類。
進行地理位置數據挖掘的流程,如圖1所示。

圖1 地理位置數據挖掘流程
本文的數據包括手機用戶的基本身份信息、地理位置信息、通訊好友信息等,存儲于Hive數據庫中。本文使用SQL語句進行數據預處理。
數據預處理的主要步驟,如圖2所示。首先篩除數據中的空數據和亂碼數據,再建立3張新的數據表——“用戶基本信息表”“地理位置信息表”“通訊錄好友信息表”,抽取字段為“MOBIL E”“Name”“Age”“Sex”“Address”“Work”的數據存入基本信息表,抽取字段為“MOBILE”“Longitude”“Latitude”“Time”“Tag”的數據存入地理位置信息表,抽取字段為“MOBILE”“F_Mobile”“Last_Call”“Which_Group”的數據存入好友信息表。這3張表的主鍵均是“MOBILE”字段,可以通過主鍵相互聯接,如圖3所示。

圖2 數據預處理流程

圖3 數據表的聯接關系
基于地理位置的數據非常復雜,存在很多無效數據,如同一個地點的多次定位信息。因此,需要對數據進行清洗,只保留有實際意義的數據。本文給出以下3個概念,從而定量描述用戶的運動軌跡。
地理興趣點:興趣點指的是用戶使用手機在特定地點進行“簽到行為”,如某用戶在某商場發(fā)布了一條帶有位置信息的朋友圈信息,則認為這家商場是此用戶的一個地理興趣點。
用戶軌跡:用一個向量描述一條運動軌跡(Pi1,Pi2,…,Pin),其中 Pi1.Time<Pi2.Time,Pin代表第 i個用戶第n次進行簽到。簽到地點按時間排序組成,如圖4所示,圖中Pn代表第n個地點。

圖4 運動軌跡
停駐點:指用戶停留的時間超過一個閾值的地點,且是有一定實際意義的地點,如居住點、上班點、商店、旅游景點等。圖4中詮釋了2種停駐點的情況,P3是第一種停駐點,用戶在此地點進行了長期停留;當用戶在一個區(qū)域內徘徊時,會產生第二種停駐點,P5、P6、P7、P8四個點形成停駐點 2。
本文開發(fā)了停駐點識別算法,去除無意義的數據,識別停駐點,提高數據的質量。以圖4的停駐點為例,算法邏輯如圖5所示。首先對地點數量進行統(tǒng)計,計算各地點兩兩之間的距離,篩選出距離符合閾值條件的數據;再計算兩地點之間簽到時間的間隔,篩選出時間間隔符合閾值條件的數據;最后得到符合停駐點要求的地點數據。

圖5 停駐點識別算法邏輯
地理位置數據量龐大,如社交軟件Foursquare的用戶簽到數據已超過20億條。但是,不同的經緯度數據可能對應同一個地理位置,因此需要將這類數據進行聚類。例如,某學生在食堂和教室的地理位置信息可聚類為同一地點,即學校。這樣能減少數據量,降低計算復雜度,提高計算的整體效率。
本文使用停駐點聚類算法,將一定距離范圍內的停駐點聚為一個中點停駐點,聚類的效果如圖6所示。將距離近的停駐點聚為一簇后,取簇的中心作為新的停駐點,此時的運動軌跡變?yōu)椋℅2,G3,…,G6)。

圖6 停駐點聚類示意
算法的計算邏輯如圖7所示。先計算樣本點數,定義一個距離半徑,新建一個有序隊列和一個結果隊列,循環(huán)判斷樣本點是否在結果隊列中。當其不在結果隊列中時,尋找以此點為中心的半徑距離內的附近位置點。對比中心點和附近點的位置標簽,當模糊匹配成功時,判定為同類位置,將這些附近點存入有序隊列中;如此,循環(huán)計算。
在將用戶行為進行分類前,需要分析每個用戶的行為規(guī)律,用數據量化每個用戶的行為特點,然后將每個用戶的行為特點進行對比計算,得到各用戶的行為相似度,最后基于相似度進行聚類,將不同用戶的行為進行分類。
本文從3個方面刻畫用戶的行為特征,即用戶使用定位服務的地理位置偏好、時間偏好、頻率偏好。

圖7 停駐點聚類算法邏輯
位置偏好指用戶出現在每類地點的次數占所有定位次數的比例。計算公式如下:

例如,某用戶在標簽為“食品”的地理位置訪問次數為10,總簽到次數為100;所有用戶去過標簽為“食品”的地理位置次數為10 000,總用戶數為1 000,則這個用戶對“食品”標簽的位置偏好度為。對每個用戶計算其對各類地理位置的偏好度,選取最大值作為其定性評價的依據,如某用戶在標簽為“辦公樓”“住宅”“食品”“商場”“書店”等標簽地點使用過定位服務,但在“商場”的位置偏好度最大,則選取這個標簽作為此用戶的行為刻畫依據。

時間偏好指用戶使用定位服務的時間偏好。根據用戶在每個時間段簽到的概率,可粗略判斷用戶的生活作息習慣。例如,某用戶在凌晨1點簽到的概率最大,則認為此用戶為凌晨活躍者。計算時間偏好的公式為:

其中,K代表每天不同的簽到時段,Tik為第i位用戶在k時段簽到的概率,Ttik為第i位用戶在k時段簽到的總天數,TDi為第i位用戶從第一次使用簽到服務以來的總天數。這里,選取概率最大的時間段作為評價其時間偏好的依據。
計算時間偏好度的邏輯流程,如圖9所示。計算中,用到時間劃分和用戶定性規(guī)則,如表1所示。

圖9 時間偏好度計算邏輯

表1 時間劃分
頻率偏好指用戶使用定位服務的頻率偏好。每個用戶使用定位服務的頻率不同,計算每位用戶的簽到頻率,能體現用戶對定位服務的偏好程度。計算簽到頻率的公式如下:

其中K代表每天不同的簽到次數,分為三個檔次,分別為0、1到3之間、3以上;Fik為第i位用戶每天的簽到次數為k發(fā)生的概率;TRik為第i位用戶簽到次數為k的總天數;TDi為第i位用戶從第一次使用簽到服務以來的總天數。這里,選取概率最大的檔次作為評價其簽到活躍程度的依據。算法的計算邏輯如圖10所示。
根據簽到頻率對用戶進行定性評價的標準,如表2所示。


表2 頻率檔次劃分
上文的用戶行為刻畫已經得到每個用戶在地理位置、時間、頻率三個維度的偏好度,然后計算不同用戶在這3個方面的接近程度,即可得到行為相似度。這三個維度對應的相似度分別為位置相似度、時間相似度、頻率相似度。計算邏輯流程如圖11所示。

圖11 用戶行為相似度算法邏輯
相似度計算公式如下:

對于位置相似度,k代表每一種標簽的地理位置,Mik為i用戶對標簽為k的地理位置的偏好度,計算得到位置相似度Simij(locat);對于時間相似度,k代表每個時段,Mik為i用戶對k時間段的偏好度,計算得到時間相似度Simij(time);對于頻率相似度,k代表每個頻率,Mik為i用戶對簽到頻率k的偏好度,計算得到頻率相似度 Simij(freq)。
最后,為每個維度設定權重,即可得到2個用戶的綜合行為相似度Simij。設地理位置、時間、頻率的權重分別為 α、β、1-(α+β),其中 0<α,β<1,則Simij計算公式如下:

基于用戶行為相似度,用戶與用戶之間可形成一個復雜的網絡。在復雜網絡中發(fā)現聯系緊密的社區(qū),即可將相似網站進行聚類。因此,本文選擇Fast Unfolding這種社區(qū)發(fā)現算法進行聚類。Fast Unfolding算法是一種基于模塊最大化(Modularity Optimization)的啟發(fā)式方法。聚類后,對每一類用戶行為進行定性分析,根據地理位置偏好、時間偏好、頻率偏好3個方面對每一類進行打標簽,如某類用戶的行為標簽是“辦公樓+早餐+不活躍”,其含義是這類用戶習慣于早晨在辦公樓使用定位服務,并且簽到活動屬于不活躍類型。
本實驗使用的數據均為模擬數據,數據示例如表3所示。

表3 地理位置數據示例
源數據為1萬行用戶地理位置數據,經過地理位置數據挖掘,數據量精簡至6 700行數據。對其進行用戶的位置偏好計算、時間偏好計算、頻率偏好計算,即可得到用戶的行為刻畫。通過手機號,將位置數據與用戶基本信息數據進行關聯,可對用戶進行較全面的刻畫。以手機號為13306xxx753的用戶為例,其行為刻畫如圖12所示。

圖12 用戶行為刻畫示例
基于上述用戶的位置偏好、時間偏好、頻率偏好的計算結果,結合本文的用戶行為相似度計算公式,可計算得到各用戶之間的相似度。本實驗設定α、β的取值均為0.4,即位置偏好、時間偏好、頻率偏好的權重分別為0.4、0.4、0.2。相似度計算的結果示例,如表4所示。

表4 用戶行為相似度結果示例
基于相似度計算結果,使用Fast Unfolding算法進行聚類,最終得到用戶行為分類結果,即將用戶行為分成了9大類,如圖13所示。

圖13 用戶行為分類示例
綜上可見,本文的模型能在實踐中多角度地刻畫用戶行為特點,并能從行為特點的角度計算用戶的相似度,將用戶進行分類,可為相關企業(yè)進行人
綜上可見,本文的模型能在實踐中多角度地刻畫用戶行為特點,并能從行為特點的角度計算用戶的相似度,將用戶進行分類,可為相關企業(yè)進行人員的行為分析提供可靠的技術支持。
本文從地理位置數據出發(fā),研究了用戶使用手機定位服務時的行為特點。首先通過地理位置數據挖掘過程,篩選出實際意義的數據;其次,通過建立基于地理位置的用戶行為刻畫模型,從位置偏好、時間偏好、頻率偏好3個方面刻畫用戶的行為特點,建立用戶行為分類模型;最后,實驗結果證明,本文的行為分析模型能有效刻畫用戶的行為特點,并發(fā)現行為相似的用戶,能在用戶的行為分析等應用場景中提供技術支持。