標籤:
背景資訊
什麼是使用者行為資料,使用者行為資料是怎麼積累的。為什麼我們需要研究使用者理解以及為什麼使用者理解這麼重要。在第二部分,我會介紹我們最近關於移動規律理解應用的研究工作。例如,怎樣處理使用者軌跡中的資料缺失問題,怎麼樣為使用者推薦有趣的地點。在最後一部分,我會展示我們近期在使用者分析和隱私保護方面的研究項目。
這張圖展示了每分鐘使用者在一些網站上產生的資料量。
二十多年之前,那時候普適計算的概念才剛剛被提出來。馬克.維瑟提出了普適計算的概念。那時候已經有了大型主機和個人電腦,人們想知道計算的未來會是什麼樣的。馬克提出,普適計算是計算的未來。
那麼什麼是普適計算呢?馬克提出了四個原則。
- 計算的目的為了協助人們做其他事情。
- 最好的電腦是安靜的、無形的僕人。
- 一個人能夠憑直覺做的事情越多,他就越聰明。電腦應該擴充人的潛意識。
- 技術應該營造出平靜,這一點對普適計算非常重要。
普適計算的概念提出後,研究人員開始構建原型。大體上,他們希望讓電腦變得更聰明。
研究人員為這類裝置設計了三種規格,分別是tabs、pads和boards。
Tabs是厘米級的裝置。如智能手機和智慧卡。它們非常容易攜帶。人們可以把它們帶到任何地方。
Pads是像膝上型電腦這樣的分米級裝置。這些裝置可以隨身攜帶,但是不能裝在口袋裡。
Board是米級的裝置。因為它們非常大,所以無法隨身攜帶,也不能移動。但是,它們很適合照片分享或者遊戲類的應用。
因為這些裝置是可移動的,所以一個直接的想法就是檢測它們的位置並使用它們來構建可感知情境的應用。例如,如果知道裝置的位置,我們就可以使用它們來推斷使用者的位置。
在現在的行動裝置,如智能手機中,已經有很多感應器。例如,智能手機能夠記錄裝置的時間和地點,地點可能來自GPS、Wi-Fi、移動基站或者藍芽訊號。智能手機中還有很多可以記錄裝置移動的感應器,如加速度計、陀螺儀和數字羅盤。使用這些移動訊號,我們可以推斷使用者的移動和活動。感應器還可以被用於記錄環境訊號。例如,我們可以使用麥克風來檢測聲音訊號,使用相機來檢測視覺訊號。我們還可能有環境光線感應器、接近感應器、氣壓計、濕度感應器和溫度計。
Flickr上有大量的帶有地理位置標籤的照片。通常,使用者會在去其他城市旅行或者開會的時候拍照片。這些照片代表了他們怎麼在這些城市中旅行以及他們怎麼拍照片的行為。所以,照片中包含了很多關於地點和使用者的資訊。
北京有很多出租車,據說北京有超過6萬輛出租車。大部分出租車都裝有GPS。這意味著我們可以記錄這些出租車的軌跡。基於出租車的軌跡資料,我們畫出這張熱點圖。從熱點圖中,我們可以很容易地看到主幹道路網和受歡迎的地區。我們在這方面做了很多研究工作。從出租車軌跡中挖掘知識對很多應用都非常有用,如城市規劃、位置推薦和拼出租車。
這些資料有幾個共同點。它們都是直接或者間接由人產生的。它們代表了一些物理世界的活動。例如,帶有地理位置標籤的照片表示人們在哪裡拍照。位置簽到表示人們在哪裡停留,如餐館、電影院。出租車軌跡展示了出租車如何在城市中行駛。這些資料都是結構化的。例如,所有資料都包含至少一個時間戳記和一個位置標記。位置標記可以用經度和緯度這樣的座標或者位置名稱、公用汽車站表示。
這些資料包含一定的隱私風險。因為這些資料中包含很多與使用者有關而使用者可能不願意透露的資訊。所以,我們在挖掘這些資料的時候要非常小心。使用人類行為資料,我們要做的就是盡量利用做些資料來產生關於使用者的知識。然後利用這些知識來使各種雲端服務變得更加個人化並為使用者提供更好的推薦。
如果我們能夠更好地理解使用者,我們就能夠使用這些知識來協助不同應用實現個人化並提供個人化的協助。
使用者移動規律的理解——通過智慧卡交易資料重建個人移動行為。
在這項工作中,我們的研究關注公交系統中產生的智慧卡交易資料。它們通常都是為數字化支付和監控使用者的數字化支付的目的設計的。這些資料在揭示使用者的移動規律方面很有價值,而使用者的移動規律對城市規劃、基於位置的社交網路、GIS和交通應用等都很有用。
在源應用產生的資料和目標應用需要的資料之間總是存在差距。
出租車軌跡就是一個例子。我們會在各種交通相關的應用中使用出租車軌跡,比如交通流量估計。然而,因為出租車軌跡是為出租車管理的目的收集的,所以資料採樣頻率通常很低。也就是說,大約每5分鐘或者3分鐘才會有一條資料。這種情況很常見,因為人們通常在設計源應用的時候並不能預計到應用產生的資料未來會被使用在什麼地方。總是會有新的應用能夠從這些資料中受益。
智慧卡交易總是包含很多不確定性,它們也不是為這個應用設計的。其中存在很多資料缺失。為瞭解決這個問題,我們嘗試利用各種不同類型的資金空間、時間空間和地理空間的限制。我會介紹,如何讓資料更完整,以及對這些應用更有用。
資料集
這張投影片展示了資料集中的欄位。
- cardID:匿名化處理之後的卡id,
- Bus: 公交線路號。
- Boarding: 上車站
- Alighting: 下車站
有兩類公交車:非階梯計價公交車和階梯計價公交車。非階梯計價公交車是指使用者在乘車時支付固定的費用的線路,階梯計價公交車是指使用者根據乘車距離付費的線路。這兩類公交車的上車站和下車站是不同的。對於非階梯計價公交車,資料中沒有上車站和下車站。
對階梯計價公交車,資料中包含一個表示與終點站之間的距離的代碼,代碼為0時表示公交線路的起點站。
- Time: 時間。
這個欄位對這兩類公交車也是不同的。對非階梯計價的公交車,這裡的時間表示上車時間,因為交易是在上車時完成的。對於階梯計價的公交車,時間表示下車時間,因為交易是在乘客下車時完成的。
- Expense:費用。
非階梯計價公交車的乘車費用是固定的,階梯計價公交車的乘車費用取決於乘客的乘車距離。
- Balance:餘額。
我們總共收集了70萬持卡人在2012年8月到2013年5月之間的2200萬條乘車記錄。在這張表中,大家可以看到存在很多缺失值,尤其是非階梯計價的公交車的上車站和下車站。所以,如果想研究使用者的移動規律,我們就需要填充這些缺失站的實際值。否則,我們就會損失使用者的很多移動規律模式。
為瞭解決這個問題,我們還收集了一些其他資料集。
這些資料及包括乘客的儲值記錄。我們有大約600萬條儲值記錄。儲值記錄中包括匿名化處理之後的卡id、儲值時間、儲值金額和卡餘額。
我們還有北京的路網資料,其中包含北京的所有路段資訊。路網使用一張圖來表示。圖中包含約14.8萬個節點和20萬條邊。這些邊都是路段。
我們還從一個線上服務中收集了公交線路資訊。
資訊中包含公交線路的名稱和所有公交車站的座標。資訊還包括公交線路的定價資訊,包括階梯計價的公交線路和非階梯計價的公交線路。
我們的資料中包含收費記錄、路網資訊、部分標記的乘車記錄和公交線路資訊。我們需要盡量填充缺失的上車站和下車站及其經度和緯度座標。然後,我們就可以利用這些資料來研究使用者移動規律模式。
空間定位架構
- Monetary:資金空間展示了使用者智慧卡餘額的變化。
- Temporal:時間空間展示了交易時間或者付費時間。通常,它代表一次乘車或者一個收費時間。
- Geospatial: 地理空間展示了使用者的乘車位置。
我們需要把這三個空間串連起來,以便從這些資料集中發現和重建使用者的移動規律。如果能夠把這三個空間串連起來,我們就可以把資金、時間和空間的點串連到一起。例如,我們知道乘客的上車時間、上車地點和下車地點。我們就可以從資料中重建使用者的軌跡。然後,我們就能夠知道這些使用者的家庭住址、工作地點等重要地點,以及他們的乘車模式。
對資料集進行預先處理
這裡,我們需要將使用者的乘車分成一些段,每一段在資金空間應當是連續的。這意味著我們不希望包含其他付款。因為北京的智慧卡能夠在出租車和地鐵上使用,也能用於購物等。我們想只保留公交車的支付記錄,這個資料分割可以以線性時間成本完成。我們只檢查每次乘車的餘額和費用以及二者是否相符。
資料集轉換
下面,我們定義兩種類型的轉換:內部轉換和外部轉換。它們表示使用者是否在公交車上。
假設有一個使用者的公交車乘車序列。Li是一次公交車乘車,其中包含上車站Oi和下車站Di。它們分別是起點和終點。當乘客在公交車上時,我們稱之為在轉換內部,也就是從O到D。當使用者不在公交車上時,我們稱之為外部轉換,也就是從D到O。
如果只知道公交線路號,那麼乘客的乘車方案就可能有很多種,乘車方案的組合數量為ni*(ni-1)。所以,我們可以看到,這位乘客的乘車方案有很多種可能。
資料集約束
下面,我們將應用一些約束來減少這些可能。
第一個約束是近似性約束,它是針對外部轉換的。
假設人的步行速度和時間長度是有限的。如果兩次乘車相距很遠,那就意味著無法找到鄰近的公交車站。那麼就可以將其分為兩段。所以,在我們的演算法中定義了距離閾值。使用距離閾值可以減少可能的公交車站的數量。所以,可能的乘車方案數量將大大減少。
第二個約束是費用約束。費用約束是為內部轉換設計的。這意味著使用者在公交車上。乘坐階梯計價公交車時,乘客按照乘車距離付費。所以如果我們知道乘客乘車的費用,就可以通過查看階梯計價表來估計乘客的乘車距離。通過這種方式,可以進一步減少內部轉換的可能性。
第三個約束是時間約束。時間約束包括內部轉換和外部轉換。對非階梯計價公交車,我們有上車時間;對階梯計價的公交車,我們有下車時間。所以,我們還有很多關鍵時間點可以來計算每趟公交車的乘車時間。
例如,在這張圖中,稱第一條公交線路的乘車時間為delta t1,delta t1應小於第一條公交線路的上車時間和第二條公交線路的上車時間之間的間隔。因為還知道第三條公交線路的下車時間,所以我們可以看到,第二條公交線路和第三條公交線路的乘車時間之和應該小於t3-t2。
標記缺失資料
介紹了三種類型的約束之後,我們將利用條件隨機場來標記缺失資料。
在觀察序列中,每個節點被定義為兩條連續公交線路的組合。對於隱藏序列,每個節點包括第一條公交線路的起點、終點和第二條公交線路的起點。我們利用前人文獻中的帶約束的半監督訓練方法來解決這個問題。
我們同時在整個資料集和由使用者標記的資料集上對演算法進行了評估。
對於整個資料集,我們只使用了階梯計價的乘車記錄並去掉了這些乘車記錄中的標籤。我們想看看我們的演算法是否能夠恢複這些標籤。我們把條件隨機場演算法和帶約束的條件隨機場演算法與之前的兩種方法進行比較。這兩種方法是TC+MF和TC+MS。從第一張圖中,我們可以看到,如果只使用條件隨機場模型,演算法的效能與之前的工作相似。但是,如果增加了約束,那麼演算法的效能就會有很大的提升。從MSRA的使用者資料中,我們也得到了類似的效能。
理解使用者的移動規律
這裡我們使用了一個簡單的應用來理解使用者移動規律,這個應用是家庭地址和工作地點檢測。
我們使用了一個常規方法來完成家庭地址和工作地點檢測。我們請參加我們的使用者研究的102位使用者標記他們的家庭地址和工作地點並對比了我們的計算結果和他們的標記。
我們發現,在恢複了缺失資料之後,家庭地址檢測的準確度能夠提高88%,工作地點檢測的準確度能夠提高35%。這個結果與當地家庭問卷調查的結果是一致的。
總結
- 我們提出了一個空間定位架構。這個架構結合資金空間、時間空間和地理空間三個空間。其中,資金空間之前很少被考慮到。
- 我們的方法中設計了恢複智慧卡缺失資料的通用方法。這個方法適用於恢複資料中缺失的下車站、上車站和公交線路方向。
- 實驗表明,我們在恢複使用者移動規律方面取得了很高的準確度。我們邀請了102位使用者進行了4個月的資料標記。我們使用這些資料來評估我們的演算法。我們發現了這項工作在移動規律分析應用中的意義和潛力。
大資料學習筆記3·社交運算中的大資料(1)