李蘊(yùn)怡
(公安部第三研究所,上海 200031)
隨著移動(dòng)通信技術(shù)的發(fā)展,手機(jī)成為人們生活必不可少的工具。位置是人日常生活最為重要的信息之一。手機(jī)定位信息客觀反映了用戶的現(xiàn)實(shí)行為,因此位置信息可支持多種應(yīng)用場(chǎng)景。隨著互聯(lián)網(wǎng)的發(fā)展,基于地理位置的社交網(wǎng)絡(luò)(Location-Based Social Network,LBSN)的覆蓋范圍越來越廣,如微信定位、發(fā)現(xiàn)附近好友服務(wù)等。LBSN創(chuàng)造了一種基于用戶地理位置的線上交互方式。它通過地理位置信息將虛擬世界和現(xiàn)實(shí)世界連接起來。通過挖掘手機(jī)用戶的運(yùn)動(dòng)軌跡數(shù)據(jù),可研究用戶的行為規(guī)律,從而刻畫人物特性。尤其是在電子商務(wù)的服務(wù)模式中,研究用戶的行為規(guī)律具有重要的現(xiàn)實(shí)意義。
國(guó)內(nèi)外學(xué)者對(duì)地理位置的相關(guān)研究,包括通過數(shù)學(xué)模型檢測(cè)用戶行為軌跡中的重要地理位置,從而總結(jié)用戶的行為規(guī)律[1-2];從地理位置角度分析用戶之間的相似度,建立多層次的相似度模型[3];通過地理位置數(shù)據(jù)的分析,研究用戶的行為和偏好,并對(duì)未來的行為進(jìn)行預(yù)測(cè)[4];基于LBSN的數(shù)據(jù),建立用戶相似度計(jì)算模型,發(fā)現(xiàn)用戶可能的好友和可能偏好的地理位置,從而進(jìn)行好友推薦和位置推薦[5];使用Louvain算法進(jìn)行社區(qū)劃分,提高好友預(yù)測(cè)和鏈接預(yù)測(cè)的準(zhǔn)確率[6];基于用戶通過手機(jī)軟件進(jìn)行簽到的數(shù)據(jù),建立主題挖掘模型,對(duì)簽到的主題信息進(jìn)行充分挖掘[7-8];從垂直距離、平行距離、角度距離三個(gè)方面計(jì)算用戶運(yùn)動(dòng)軌跡的相似度[9]。綜上,現(xiàn)有研究深入挖掘了地理位置數(shù)據(jù),但用戶使用定位服務(wù)的時(shí)間和頻率較少,而時(shí)間和頻率這兩個(gè)方面的規(guī)律對(duì)人物行為特點(diǎn)的分析也很重要。
本文首先通過數(shù)據(jù)挖掘,從地理位置數(shù)據(jù)中提取有相關(guān)的數(shù)據(jù),然后建立數(shù)據(jù)分析模型,分析用戶的地理位置變化規(guī)律,發(fā)現(xiàn)用戶的地理位置偏好、時(shí)間偏好、定位頻率偏好,并結(jié)合這三方面綜合刻畫用戶的行為特點(diǎn)。最后,通過對(duì)比不同用戶的行為特點(diǎn),可計(jì)算用戶之間的相似度,從而根據(jù)行為特點(diǎn)將用戶進(jìn)行分類。
進(jìn)行地理位置數(shù)據(jù)挖掘的流程,如圖1所示。
圖1 地理位置數(shù)據(jù)挖掘流程
本文的數(shù)據(jù)包括手機(jī)用戶的基本身份信息、地理位置信息、通訊好友信息等,存儲(chǔ)于Hive數(shù)據(jù)庫(kù)中。本文使用SQL語句進(jìn)行數(shù)據(jù)預(yù)處理。
數(shù)據(jù)預(yù)處理的主要步驟,如圖2所示。首先篩除數(shù)據(jù)中的空數(shù)據(jù)和亂碼數(shù)據(jù),再建立3張新的數(shù)據(jù)表——“用戶基本信息表”“地理位置信息表”“通訊錄好友信息表”,抽取字段為“MOBIL E”“Name”“Age”“Sex”“Address”“Work”的數(shù)據(jù)存入基本信息表,抽取字段為“MOBILE”“Longitude”“Latitude”“Time”“Tag”的數(shù)據(jù)存入地理位置信息表,抽取字段為“MOBILE”“F_Mobile”“Last_Call”“Which_Group”的數(shù)據(jù)存入好友信息表。這3張表的主鍵均是“MOBILE”字段,可以通過主鍵相互聯(lián)接,如圖3所示。
圖2 數(shù)據(jù)預(yù)處理流程
圖3 數(shù)據(jù)表的聯(lián)接關(guān)系
基于地理位置的數(shù)據(jù)非常復(fù)雜,存在很多無效數(shù)據(jù),如同一個(gè)地點(diǎn)的多次定位信息。因此,需要對(duì)數(shù)據(jù)進(jìn)行清洗,只保留有實(shí)際意義的數(shù)據(jù)。本文給出以下3個(gè)概念,從而定量描述用戶的運(yùn)動(dòng)軌跡。
地理興趣點(diǎn):興趣點(diǎn)指的是用戶使用手機(jī)在特定地點(diǎn)進(jìn)行“簽到行為”,如某用戶在某商場(chǎng)發(fā)布了一條帶有位置信息的朋友圈信息,則認(rèn)為這家商場(chǎng)是此用戶的一個(gè)地理興趣點(diǎn)。
用戶軌跡:用一個(gè)向量描述一條運(yùn)動(dòng)軌跡(Pi1,Pi2,…,Pin),其中 Pi1.Time<Pi2.Time,Pin代表第 i個(gè)用戶第n次進(jìn)行簽到。簽到地點(diǎn)按時(shí)間排序組成,如圖4所示,圖中Pn代表第n個(gè)地點(diǎn)。
圖4 運(yùn)動(dòng)軌跡
停駐點(diǎn):指用戶停留的時(shí)間超過一個(gè)閾值的地點(diǎn),且是有一定實(shí)際意義的地點(diǎn),如居住點(diǎn)、上班點(diǎn)、商店、旅游景點(diǎn)等。圖4中詮釋了2種停駐點(diǎn)的情況,P3是第一種停駐點(diǎn),用戶在此地點(diǎn)進(jìn)行了長(zhǎng)期停留;當(dāng)用戶在一個(gè)區(qū)域內(nèi)徘徊時(shí),會(huì)產(chǎn)生第二種停駐點(diǎn),P5、P6、P7、P8四個(gè)點(diǎn)形成停駐點(diǎn) 2。
本文開發(fā)了停駐點(diǎn)識(shí)別算法,去除無意義的數(shù)據(jù),識(shí)別停駐點(diǎn),提高數(shù)據(jù)的質(zhì)量。以圖4的停駐點(diǎn)為例,算法邏輯如圖5所示。首先對(duì)地點(diǎn)數(shù)量進(jìn)行統(tǒng)計(jì),計(jì)算各地點(diǎn)兩兩之間的距離,篩選出距離符合閾值條件的數(shù)據(jù);再計(jì)算兩地點(diǎn)之間簽到時(shí)間的間隔,篩選出時(shí)間間隔符合閾值條件的數(shù)據(jù);最后得到符合停駐點(diǎn)要求的地點(diǎn)數(shù)據(jù)。
圖5 停駐點(diǎn)識(shí)別算法邏輯
地理位置數(shù)據(jù)量龐大,如社交軟件Foursquare的用戶簽到數(shù)據(jù)已超過20億條。但是,不同的經(jīng)緯度數(shù)據(jù)可能對(duì)應(yīng)同一個(gè)地理位置,因此需要將這類數(shù)據(jù)進(jìn)行聚類。例如,某學(xué)生在食堂和教室的地理位置信息可聚類為同一地點(diǎn),即學(xué)校。這樣能減少數(shù)據(jù)量,降低計(jì)算復(fù)雜度,提高計(jì)算的整體效率。
本文使用停駐點(diǎn)聚類算法,將一定距離范圍內(nèi)的停駐點(diǎn)聚為一個(gè)中點(diǎn)停駐點(diǎn),聚類的效果如圖6所示。將距離近的停駐點(diǎn)聚為一簇后,取簇的中心作為新的停駐點(diǎn),此時(shí)的運(yùn)動(dòng)軌跡變?yōu)椋℅2,G3,…,G6)。
圖6 停駐點(diǎn)聚類示意
算法的計(jì)算邏輯如圖7所示。先計(jì)算樣本點(diǎn)數(shù),定義一個(gè)距離半徑,新建一個(gè)有序隊(duì)列和一個(gè)結(jié)果隊(duì)列,循環(huán)判斷樣本點(diǎn)是否在結(jié)果隊(duì)列中。當(dāng)其不在結(jié)果隊(duì)列中時(shí),尋找以此點(diǎn)為中心的半徑距離內(nèi)的附近位置點(diǎn)。對(duì)比中心點(diǎn)和附近點(diǎn)的位置標(biāo)簽,當(dāng)模糊匹配成功時(shí),判定為同類位置,將這些附近點(diǎn)存入有序隊(duì)列中;如此,循環(huán)計(jì)算。
在將用戶行為進(jìn)行分類前,需要分析每個(gè)用戶的行為規(guī)律,用數(shù)據(jù)量化每個(gè)用戶的行為特點(diǎn),然后將每個(gè)用戶的行為特點(diǎn)進(jìn)行對(duì)比計(jì)算,得到各用戶的行為相似度,最后基于相似度進(jìn)行聚類,將不同用戶的行為進(jìn)行分類。
本文從3個(gè)方面刻畫用戶的行為特征,即用戶使用定位服務(wù)的地理位置偏好、時(shí)間偏好、頻率偏好。
圖7 停駐點(diǎn)聚類算法邏輯
位置偏好指用戶出現(xiàn)在每類地點(diǎn)的次數(shù)占所有定位次數(shù)的比例。計(jì)算公式如下:
例如,某用戶在標(biāo)簽為“食品”的地理位置訪問次數(shù)為10,總簽到次數(shù)為100;所有用戶去過標(biāo)簽為“食品”的地理位置次數(shù)為10 000,總用戶數(shù)為1 000,則這個(gè)用戶對(duì)“食品”標(biāo)簽的位置偏好度為。對(duì)每個(gè)用戶計(jì)算其對(duì)各類地理位置的偏好度,選取最大值作為其定性評(píng)價(jià)的依據(jù),如某用戶在標(biāo)簽為“辦公樓”“住宅”“食品”“商場(chǎng)”“書店”等標(biāo)簽地點(diǎn)使用過定位服務(wù),但在“商場(chǎng)”的位置偏好度最大,則選取這個(gè)標(biāo)簽作為此用戶的行為刻畫依據(jù)。
時(shí)間偏好指用戶使用定位服務(wù)的時(shí)間偏好。根據(jù)用戶在每個(gè)時(shí)間段簽到的概率,可粗略判斷用戶的生活作息習(xí)慣。例如,某用戶在凌晨1點(diǎn)簽到的概率最大,則認(rèn)為此用戶為凌晨活躍者。計(jì)算時(shí)間偏好的公式為:
其中,K代表每天不同的簽到時(shí)段,Tik為第i位用戶在k時(shí)段簽到的概率,Ttik為第i位用戶在k時(shí)段簽到的總天數(shù),TDi為第i位用戶從第一次使用簽到服務(wù)以來的總天數(shù)。這里,選取概率最大的時(shí)間段作為評(píng)價(jià)其時(shí)間偏好的依據(jù)。
計(jì)算時(shí)間偏好度的邏輯流程,如圖9所示。計(jì)算中,用到時(shí)間劃分和用戶定性規(guī)則,如表1所示。
圖9 時(shí)間偏好度計(jì)算邏輯
表1 時(shí)間劃分
頻率偏好指用戶使用定位服務(wù)的頻率偏好。每個(gè)用戶使用定位服務(wù)的頻率不同,計(jì)算每位用戶的簽到頻率,能體現(xiàn)用戶對(duì)定位服務(wù)的偏好程度。計(jì)算簽到頻率的公式如下:
其中K代表每天不同的簽到次數(shù),分為三個(gè)檔次,分別為0、1到3之間、3以上;Fik為第i位用戶每天的簽到次數(shù)為k發(fā)生的概率;TRik為第i位用戶簽到次數(shù)為k的總天數(shù);TDi為第i位用戶從第一次使用簽到服務(wù)以來的總天數(shù)。這里,選取概率最大的檔次作為評(píng)價(jià)其簽到活躍程度的依據(jù)。算法的計(jì)算邏輯如圖10所示。
根據(jù)簽到頻率對(duì)用戶進(jìn)行定性評(píng)價(jià)的標(biāo)準(zhǔn),如表2所示。
表2 頻率檔次劃分
上文的用戶行為刻畫已經(jīng)得到每個(gè)用戶在地理位置、時(shí)間、頻率三個(gè)維度的偏好度,然后計(jì)算不同用戶在這3個(gè)方面的接近程度,即可得到行為相似度。這三個(gè)維度對(duì)應(yīng)的相似度分別為位置相似度、時(shí)間相似度、頻率相似度。計(jì)算邏輯流程如圖11所示。
圖11 用戶行為相似度算法邏輯
相似度計(jì)算公式如下:
對(duì)于位置相似度,k代表每一種標(biāo)簽的地理位置,Mik為i用戶對(duì)標(biāo)簽為k的地理位置的偏好度,計(jì)算得到位置相似度Simij(locat);對(duì)于時(shí)間相似度,k代表每個(gè)時(shí)段,Mik為i用戶對(duì)k時(shí)間段的偏好度,計(jì)算得到時(shí)間相似度Simij(time);對(duì)于頻率相似度,k代表每個(gè)頻率,Mik為i用戶對(duì)簽到頻率k的偏好度,計(jì)算得到頻率相似度 Simij(freq)。
最后,為每個(gè)維度設(shè)定權(quán)重,即可得到2個(gè)用戶的綜合行為相似度Simij。設(shè)地理位置、時(shí)間、頻率的權(quán)重分別為 α、β、1-(α+β),其中 0<α,β<1,則Simij計(jì)算公式如下:
基于用戶行為相似度,用戶與用戶之間可形成一個(gè)復(fù)雜的網(wǎng)絡(luò)。在復(fù)雜網(wǎng)絡(luò)中發(fā)現(xiàn)聯(lián)系緊密的社區(qū),即可將相似網(wǎng)站進(jìn)行聚類。因此,本文選擇Fast Unfolding這種社區(qū)發(fā)現(xiàn)算法進(jìn)行聚類。Fast Unfolding算法是一種基于模塊最大化(Modularity Optimization)的啟發(fā)式方法。聚類后,對(duì)每一類用戶行為進(jìn)行定性分析,根據(jù)地理位置偏好、時(shí)間偏好、頻率偏好3個(gè)方面對(duì)每一類進(jìn)行打標(biāo)簽,如某類用戶的行為標(biāo)簽是“辦公樓+早餐+不活躍”,其含義是這類用戶習(xí)慣于早晨在辦公樓使用定位服務(wù),并且簽到活動(dòng)屬于不活躍類型。
本實(shí)驗(yàn)使用的數(shù)據(jù)均為模擬數(shù)據(jù),數(shù)據(jù)示例如表3所示。
表3 地理位置數(shù)據(jù)示例
源數(shù)據(jù)為1萬行用戶地理位置數(shù)據(jù),經(jīng)過地理位置數(shù)據(jù)挖掘,數(shù)據(jù)量精簡(jiǎn)至6 700行數(shù)據(jù)。對(duì)其進(jìn)行用戶的位置偏好計(jì)算、時(shí)間偏好計(jì)算、頻率偏好計(jì)算,即可得到用戶的行為刻畫。通過手機(jī)號(hào),將位置數(shù)據(jù)與用戶基本信息數(shù)據(jù)進(jìn)行關(guān)聯(lián),可對(duì)用戶進(jìn)行較全面的刻畫。以手機(jī)號(hào)為13306xxx753的用戶為例,其行為刻畫如圖12所示。
圖12 用戶行為刻畫示例
基于上述用戶的位置偏好、時(shí)間偏好、頻率偏好的計(jì)算結(jié)果,結(jié)合本文的用戶行為相似度計(jì)算公式,可計(jì)算得到各用戶之間的相似度。本實(shí)驗(yàn)設(shè)定α、β的取值均為0.4,即位置偏好、時(shí)間偏好、頻率偏好的權(quán)重分別為0.4、0.4、0.2。相似度計(jì)算的結(jié)果示例,如表4所示。
表4 用戶行為相似度結(jié)果示例
基于相似度計(jì)算結(jié)果,使用Fast Unfolding算法進(jìn)行聚類,最終得到用戶行為分類結(jié)果,即將用戶行為分成了9大類,如圖13所示。
圖13 用戶行為分類示例
綜上可見,本文的模型能在實(shí)踐中多角度地刻畫用戶行為特點(diǎn),并能從行為特點(diǎn)的角度計(jì)算用戶的相似度,將用戶進(jìn)行分類,可為相關(guān)企業(yè)進(jìn)行人
綜上可見,本文的模型能在實(shí)踐中多角度地刻畫用戶行為特點(diǎn),并能從行為特點(diǎn)的角度計(jì)算用戶的相似度,將用戶進(jìn)行分類,可為相關(guān)企業(yè)進(jìn)行人員的行為分析提供可靠的技術(shù)支持。
本文從地理位置數(shù)據(jù)出發(fā),研究了用戶使用手機(jī)定位服務(wù)時(shí)的行為特點(diǎn)。首先通過地理位置數(shù)據(jù)挖掘過程,篩選出實(shí)際意義的數(shù)據(jù);其次,通過建立基于地理位置的用戶行為刻畫模型,從位置偏好、時(shí)間偏好、頻率偏好3個(gè)方面刻畫用戶的行為特點(diǎn),建立用戶行為分類模型;最后,實(shí)驗(yàn)結(jié)果證明,本文的行為分析模型能有效刻畫用戶的行為特點(diǎn),并發(fā)現(xiàn)行為相似的用戶,能在用戶的行為分析等應(yīng)用場(chǎng)景中提供技術(shù)支持。