Retrieving Similar Trajectories from Cellular Data at City Scale

07/20/2019 ∙ by Zhihao Shen, et al. ∙ Xi'an Jiaotong University 0

Retrieving similar trajectories from a large trajectory dataset is important for a variety of applications, like transportation planning and mobility analysis. Unlike previous works based on fine-grained GPS trajectories, this paper investigates the feasibility of identifying similar trajectories from cellular data observed by mobile infrastructure, which provide more comprehensive coverage. To handle the large localization errors and low sample rates of cellular data, we develop a holistic system, cellSim, which seamlessly integrates map matching and similar trajectory search. A set of map matching techniques are proposed to transform cell tower sequences into moving trajectories on a road map by considering the unique features of cellular data, like the dynamic density of cell towers and bidirectional roads. To further improve the accuracy of similarity search, map matching outputs M trajectory candidates of different confidence, and a new similarity measure scheme is developed to process the map matching results. Meanwhile, M is dynamically adapted to maintain a low false positive rate of the similarity search, and two pruning schemes are proposed to minimize the computation overhead. Extensive experiments on a dataset of 3,186,000 mobile users and real-world trajectories of 1701 km reveal that cellSim provides high accuracy (precision 62.4 recall of 89.8



There are no comments yet.


This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

1 Introduction

Retrieving similar trajectories is to search in a large dataset for the trajectories that have a similar movement pattern. This is essential for many trajectory processing tasks (e.g., clustering [1, 2], classification [3]) and many applications (e.g., human mobility analysis [4, 5, 6, 7] and transportation planning [8, 9]). Many works have been proposed to define new similarity measures [10, 11] or implement search operations in parallel [12]. However, most existing works are designed for fine-grained GPS trajectories [13, 14], which can only cover a small population or space in a city, as GPS sensors are not installed in all vehicles or enabled by all mobile users.

This paper investigates the feasibility of finding a set of trajectories within a large-scale dataset that are close to a given query trajectory in time and space domain. Benefiting from the pervasive usage of mobile phones and the extensive coverage of cellular networks, cellular data can provide a more comprehensive coverage in terms of population and space. Many anonymized cellular datasets [15, 16] have been released by mobile carriers. They are composed of time-series sequences, each of which is a series of time-stamped cell tower locations. They are processed for a variety of applications [14], e.g., human mobility [17] and mobile network analysis [18]. However, existing trajectory similarity measures cannot be simply applied due to the large localization error and low sample rate of cellular data, compared with GPS data. For example, two persons may associate with different cell towers that may be hundreds of meters apart when moving together; and the issue can become worse if their phones subscribe to different mobile carriers.

We develop a holistic system, named as cellSim

, which effectively searches for similar trajectories, which are close to the query trajectory in the space-time domain, in a large-scale cellular dataset of multiple carriers. First, we apply a Hidden Markov Model (HMM) to map-match each cell tower sequence in the cellular dataset to the trajectory. Then, we further output multiple trajectory candidates as the results of map matching to handle the low sample rate problem in the cellular data. Finally, a novel trajectory similarity measure is proposed to find similar trajectories. In this way, the trajectories having similarities larger than similarity threshold will be classified as the similar trajectories.

We first map-match cell tower sequences into trajectories on a road map to avoid the location ambiguity of cellular data of multiple carriers. Most existing map matching methods are designed to process GPS trajectories [19, 20] or cellular beacon data [21, 22]. Accurate localization can be acquired with the cellular beacon data, since multiple beacons from different cell towers can be received by a mobile phone simultaneously at a time. However, the cellular data used in this work can only provide coarse location information, as we only know the associated cell tower at every location. To implement more accurate map matching, a set of techniques are developed on top of a HMM-based map matching method while considering the unique features of our cellular data. The proposed algorithm can automatically adapt to the variety of cell tower density and the local properties of roads, including topological structure, road type and speed limit.

We further explore reducing the low sample rate problem in the cellular data by seamlessly incorporating map matching into the trajectory similarity search. In particular, our map matching outputs top

trajectory candidates, which probably include the true trajectory or one trajectory close to it. To compare two cell tower sequences, our similarity search performs pairwise comparisons between their

trajectories while considering each candidate’s confidence. If two persons are traveling together, their true trajectories must have the highest similarity. We choose the highest similarity from the similarity results as the final result. With trajectory candidates for each cell tower sequence, we increase the probability of finding truly similar trajectories, but we also increase the probability of finding false similar trajectories. We propose an adaption algorithm of to minimize the false positive rate. In addition, two pruning techniques are developed to reduce the computation overhead of the similarity search.

Fig. 1: An example of similar trajectory search.

Although the above map matching method could mitigate the location ambiguity of cellular data, its results still suffer from location deviations caused by the cellular data. We further design a trajectory similarity measure to better measure the similarity between two trajectories generated from our cellular data. Most existing works [10, 23] measure the distance of two trajectories (e.g., Euclidean distance or edit distance). They work well for GPS data with low localization errors. However, due to the variety of cell tower density, some locations have large localization errors within our generated trajectories, which make the results of distance-based trajectory similarity measures vary drastically. It is hard to find a similarity threshold to identify similar trajectories. On the contrary, our trajectory similarity measure first uses a sliding time window to extract road segments of two trajectories within the same time interval. Then, we calculate the similarities by comparing the spatially-overlapping ratio in all sliding windows. By doing so, it reduces the impact of location deviations in trajectories, which increases its ability to tolerate noise.

To the best of our knowledge, we are the first to develop a system that extracts similar trajectories from a large-scale cellular dataset. We implement cellSim in Hadoop [24]

with 3 master nodes and 10 slave nodes. We collect real-world trajectories of 1701 km by volunteers that move together as ground truth. For each trajectory in our ground truth data, we search for the other similar trajectories in the cellular dataset of 3,186,000 mobile users. Experiment results reveal that cellSim provides a precision and recall of 62.4% and 89.8% respectively, corresponding to a performance gain of 88.5% and 65.7% over the state-of-the-art solution. With our pruning scheme, cellSim only uses 51 seconds to search in the large-scale cellular dataset for one query.

2 Motivation

In this section, we introduce the trajectory similarity search problem and our cellular dataset.

(a) Cell towers.
(b) Mobile users.
Fig. 2: The density of cell towers and mobile users.

2.1 Trajectory similarity search

A trajectory is a sequence of locations (cell tower location or GPS point) to which an object travels, i.e., , where is a point with the location of at the time . In this paper, we define trajectory similarity search as the problem of finding a set of trajectories within a large-scale dataset that are close to a given query trajectory in the space-time domain. Existing trajectory similarity search methods [25, 26, 10] are designed for fine-grained GPS trajectories with low localization error and high sample rate. They normally have two steps, i.e., first extracting the trajectories that have the similar start and end time with the query trajectory, and then aligning the sample points using their timestamps to compare the spatial distance between each pairs of sample points.

(a) Single carrier
(b) Different carriers
Fig. 3: Cell tower sequences of two persons that move together.

Fig. 1 depicts an example of the search process of a typical algorithm, i.e., Dynamic Time Warping (DTW) [10]. The query trajectory is highlighted by the solid line and the dataset contains three trajectories, . First, DTW extracts a set of trajectories whose start-stop times are close to the query trajectory . Then, the similarity between the query trajectory and each trajectory in is calculated. In this example, =0.86 and =0.82. Finally, the similar trajectories () are retrieved if their similarity is larger than the threshold (0.85).

2.2 Cellular data

In this study, we use an anonymized cellular dataset from a large city. The dataset contains 231 billion records over 61 days from two major mobile carriers, i.e. Carrier A and Carrier B. They provide 71.7% and 28.3% data in the dataset respectively. Table I

describes the format of each record, including Anonymized ID, Time, LAC (Location Area Code), and CID (Cell Tower ID). To protect the privacy of users, the carriers anonymize the data by replacing the subscriber identifications by a hash code. The data do not contain any information relating to text messages, phone conversations or data usage. Based on the cell tower map provided by the carriers, we know the physical location of each cell tower. Thus, in our dataset, a cell tower sequence is a vector composed of the locations of all cell towers accessed by a mobile phone at different timestamps.

1B2A7 20170901080234 37146 196*18
5U2F1 20170903070821 37149 195*57
TABLE I: Examples of the records in our cellular dataset.

Data coverage. Our dataset covers 83.5% of the total population in a big city. By filtering out the cell tower sequences of extremely-low sample rates (i.e., less than 1 sample per 10 minutes), we still have the records of around 3,186,000 users, corresponding to one third of the total population. Fig. 2 presents the density of cell towers and mobile users provided by the cellular dataset. The analysis results show that cellular networks can cover the city with a high density of cell towers and users for both urban and rural areas.

2.3 Comparisons of cell tower sequences.

We exploit one question: can we detect two persons that move together by directly comparing their cell tower sequences? Fig. 3 presents an example using the cell tower sequences of two persons that move together under two cases, i.e. they subscribe to the same carrier and different carriers.

Same carrier. Even with the same carrier, the mobile phones of two persons that move together may associate with different cell towers. For example, in Fig. 3 LABEL:sub@figCellTowerLocationsSame, the sample points of the user 1 are different from that of the user 2, causing significant misalignment of the timestamps. It may be caused by the diverse app usage of different persons and the handover algorithm of the carrier.

Two different carriers. Fig. 3 LABEL:sub@figCellTowerLocationsDifferent demonstrates that two persons that move together associate with completely different cell towers of different carriers. From the cell tower sequences, it is difficult to infer that the two persons are moving together.

The above two observations indicate that we cannot directly compare two cell tower sequences. First, the low sample rates of cellular data make aligning two cell tower sequences along the temporal dimension rather difficult. Second, it is hard to find an appropriate distance threshold to determine whether two cell tower sequences are made by two similar moving trajectories, due to the location ambiguity of cellular data.

3 Design of cellSim

We introduce an overview of cellSim and the design of two key components in cellSim, i.e., map matching and similarity search. Table II lists the notations used in this study.

3.1 Overview

Fig. 4 depicts the architecture of cellSim. We first preprocess the cell tower sequences of our raw cellular dataset to mitigate noise and abnormal behaviors (Section 3.4). Each processed cell tower sequence is then transformed into a trajectory on a road network using a HMM-based map matching method (Section 3.2). The map matching processing of the cellular dataset can be conducted offline, without impacting the speed of our online similar trajectory search. The output of map matching is a trajectory dataset generated from the cell tower sequence dataset.

The input of cellSim is a query trajectory, which can be either a cell tower sequence or a GPS trajectory on the road network. For a cell tower sequence, it is first transformed to a trajectory by the map matching component. Given the query trajectory, the trajectory similarity search component calculates its similarity measure with each trajectory generated by our large-scale cellular data (Section 3.3). The output of cellSim is the similar trajectories which are close to the query trajectory in the space-time domain with a similarity larger than a threshold .

Fig. 4: The architecture of cellSim.
Notation Description
A sample point in cell tower sequences
A trajectory consist of points
The distance length of trajectory
The trajectory dataset
A query trajectory consists of points
The number of trajectory candidates generated for one cell tower sequence
Top trajectory candidates for trajectory
The geodesic distance between the sample point and
A segment of between and
The road segment of
The distance between the road segment and
The length of overlapping parts between and
The similarity threshold
TABLE II: Notations used in this paper.

Holistic design. Our map matching component outputs top trajectory candidates for each cell tower sequence (Section 3.2.2). Every trajectory candidate is also assigned a confidence to quantify its probability of being the true trajectory. To measure the similarity of two cell tower sequences, our similarity search component performs pairwise comparisons between the trajectories of the query cell tower sequence and the trajectories of each cell tower sequence in the dataset, resulting in similarity comparisons. We select the highest similarity as the final similarity result for each cell tower sequence in the dataset. CellSim identifies all cell tower sequences with a similarity higher than a threshold as its final result. To minimize false positive, is adapted according to the length of query trajectory (Section 3.3.2).

Due to the expense of processing all sample points during calculating the similarity of trajectory pairs, we propose two pruning techniques, i.e., global pruning and local pruning, to skip some calculation without impacting the accuracy of our similarity search results (Section 3.3.3).

3.2 Map matching for cellular data

We adopt a classic first order Hidden Markov Model [27] with full use of road network and cell tower information. Although many map matching algorithms have been proposed [28, 29], they are not suitable for our scenario. For example, Conditional Random Field (CRF) models can model high-order dependencies among multiple states [28]. A lightweight map matching method [30]

applies CRF for indoor localization. However, CRF needs to estimate a set of parameters beforehand. It is difficult to do so in our case, because we do not have sufficient training data at city scale. The other existing map matching algorithms, e.g., second order HMM 

[29] or particle filters  [31]

, suffer from high time complexity. The experimental results show that the calculation time of second order HMM and particle filters are more than three times that of first order HMM, due to the fact that they require more computation to evaluate the probability distribution. This makes it impossible to match massive trajectories.

3.2.1 Customized HMM-based map matching

For the input of map matching, we have a time-series sequence of cell tower locations and the road segment information, including start and end points on the map, speed limit, etc. Our map matching model uses the input to find a trajectory composed of several road segments that are traversed by the user. The HMM model has a hidden state and an observable state at each time step. Both states maintain two probabilities (emission and transition probability) to evaluate whether the user is at a specific road segment. At the beginning, all road segments are initialized with the same probability. As the modeling process proceeds, some road segments’ probabilities increase faster than the others. Finally, one trajectory composed of several road segments with high probabilities will be selected.

Based on the general HMM process, we take further information of specific road networks and cell towers into account. Two customized improvements are made to the emission probability and the transition probability respectively as follows.

Emission probability. It is the probability of observing a cell tower if the user is actually on the road segment . As previous works have done [27, 32]

, we model the emission probability of a projected point on the road segment as a Gaussian distribution given an observation point

(cell tower). For an observed cell tower, it is more likely that the user is on some closer roads. For one state (i.e. road segment of ) and an observation , the emission probability is given as:



, the standard deviation, is adapted to the cell tower density,

is the distance between and , and and are two weight parameters derived by the hints from the road network. They are based on the following two observations.

First, people normally prefer to follow the same direction or only slightly deviate from the moving direction. For example, on a two-way road, people are more likely to keep the same forward direction, rather than changing to the opposite side of the road. To map the road direction to a weight , we use the following function.


where is the moving object’s direction vector, and is the candidate road segment’s direction vector.

Second, people normally prefer to use a wider road, if multiple roads can lead to the destination. We assign the roads of a higher speed limit with a larger weight in their observation probability, as follows:


where is constant and is the speed limit of roads with a maximum speed limit of 120 km/h.

Transition Probability. The transition probability measures the probability that the user transits from a state at step to another state at next step . Most previous works use the idea proposed by Newson and Krumm [27], i.e. the geodesic distance between two states (i.e. road segments) should be similar to the distance between two observations (i.e. cell towers). The transition probability that the user moves from one road segment to another road segment can be expressed as follows.


where is a constant parameter, experimentally set to 0.0096 in our implementation. is the difference between the geodesic distance of two cell towers and the geodesic distance of two road segments. The transition probability is high if is small.

The above method works for GPS trajectories with high sample rates. However, due to the low sample rate of our cellular data, people may travel for a long distance between two consecutive time points, and the geodesic distance between two cell towers cannot reflect the real distance traveled on the road map. To consider all possible paths between two states (i.e. road segments), we argue that people are more likely to take the shortest path among all possible paths on the road network. used in Eq. 4 can be expressed as follows.


where is the distance between two road segments and on the road network and is the minimum distance of all possible paths at two consecutive time points. At time , the hidden state () can be any road segment around the cell tower ().

Fig. 5: Example of multiple paths.

3.2.2 Multiple trajectory candidates

Due to the low sample rate, there may exist several possible paths with similar distances from one cell tower to another one. It is hard for the HMM transition probability to distinguish these paths. As the example in Fig. 5 illustrates, for cell tower and , if their candidate road segments are the closest intersections (highlighted as red points in the figure), there are 4 similar paths. To handle this problem, we output multiple trajectory candidates as the results of map matching. We will use the information from the other time points in the whole journey to find the best trajectory during the similarity search process.

We do not need to output multiple paths between two cell towers when their projected two road segments only have one path that connects them. We detect such a case if the length of the path is equal to the geodesic distance between two road segments. One example is a long straight road on which the cell towers are projected. The cell towers are located along with the road, and and are similar. In this case, we only output one path which has the highest probability of HMM model as the result.

We can now find multiple paths between two cell towers. For a sequence of many cell towers, we finally output top trajectory candidates, each of which is composed of the paths from multiple pairs of cell towers. We first perform the map matching process to obtain one trajectory with the highest HMM probability. Then, we use the above method to verify whether it is necessary to output multiple paths for each pair of adjacent cell towers along the sequence one by one. If necessary, we generate paths and replace the original path in the trajectory. By splicing the multiple paths of all pairs, we obtain a number of trajectory candidates that are more than . Suppose a trajectory has samples, we calculate its confidence in its map matching result by multiplying the emission probability of each road segment by transition probability between the road segments as follows.


Finally, we rank these trajectory candidates based on their normalized probabilities and output the top trajectories .

3.3 Trajectory similarity search

In this section, we introduce our new similarity measure function, the adaptation algorithm of the parameter and the pruning schemes in sequence.

3.3.1 A new trajectory similarity measure

Although the above map matching scheme can significantly mitigate the location ambiguity of cellular data, the output trajectories are still not perfect. Fig. 6 depicts an example of four sample points. Our map matching algorithm outputs the result as a solid red line. Compared with the real trajectory (dashed green line), the map matching result has an extra u-turn caused by the large localization error of and . We have handled this problem by assigning a larger weight for keeping the same direction in map matching, due to the low localization granularity of cellular data.

The above problem results in the low performance of existing methods for processing our cellular data, since they are based on the distance between the query trajectory and a trajectory candidate. Sudden changes of trajectory shapes can cause the similarity distance to increase sharply. We investigate a novel trajectory similarity measure to handle these sudden changes of the trajectory shapes in the process of similarity search. Our measure calculates the overlapping ratio between the query trajectory and a trajectory candidate. It minimizes the impact of the deviated parts in trajectories, which increases its ability to tolerate noise.

To compare a query trajectory with a trajectory candidate in the dataset

, we first align them in time by the temporal interpolation on road maps. We use the timestamps of the original cell tower sequence to calculate the moving speed by the distance on the road network and time differences of two consecutive projected points. Then, we estimate the time information of any point

between these two projected points by the movement distance and moving speed.

With two aligned trajectories, we use a sliding window to extract a segment of these two trajectories separately. For a sample point in the query trajectory , there must exist a point in the trajectory candidate that has the same timestamp with . For the segments and , we calculate the length of their overlapping parts, . To calculate the similarity between and , we move the sliding window forward and obtain the total length of the overlapping part in all sliding windows. The final similarity is the overlapping ratio, the total length of the overlapping parts normalized by the length of query trajectory. For a query trajectory and a trajectory candidate , we also consider their map matching confidences and . Supposing the query trajectory has samples (), its similarity to the trajectory can be calculated as:


Fig. 6: Example of ambiguity caused by cellular data.

3.3.2 Adaptive similarity search

By outputting multiple trajectory candidates with different map matching probabilities, we increase the probability of including the true trajectories in the comparisons. Moreover, if two persons move together, their trajectories are almost identical and should have the highest similarity, compared with the other pairs of trajectories. As a result, the probability of successfully detecting two co-moving persons is increased. For example, if the cell tower sequence of another user has more samples between to in the example of Fig. 5, the information of extra cell towers helps HMM model to find one path with the highest probability. The results of four pairwise comparisons are likely to include the comparison between two true paths. On the other hand, multiple trajectory candidates may also increase the false positive where cellSim identifies two similar trajectories, which are not in fact, from two persons that move together.

For long query trajectories, the false positive problem is rare. The example shown in Fig. 5 only relates to the paths between two cell towers, corresponding to a short part of the whole trajectory. If two persons do not move together, the remaining parts of their trajectories will produce a low similarity result. However, when the query trajectory is short, multiple trajectory candidates may increase this false positive.

To minimize false positive, we adapt the number of trajectory candidates used in the similarity search according to the length of the query trajectory. We categorize the trajectory length into 5 levels, i.e., {}, {}, {}, {} and {}. For each level, we find the best setting for the number of trajectory candidates (i.e. ), which is proportional to the trajectory length (see the empirical experiment results in Section 5.2.3).

3.3.3 Pruning

Although the similarity comparisons can be executed in parallel to speed up the similarity search of cellSim, we propose two orthogonal pruning techniques to reduce the computation overhead of cellSim.

Global pruning. For one query trajectory, we do not need to evaluate every cell tower sequence in the dataset. Instead, we propose a global pruning method, which skips a large portion of sequences whose start and end points are significantly different from those of the query trajectory. A pair of points and are close with each other if they meet the following requirement.


where is the global threshold and set dynamically according to the density of cell-towers. If the density of cell-towers is small, a relatively-larger threshold is used.

Local pruning. For a single cell tower sequence, we devise a local pruning method to avoid some unnecessary comparisons in the comparisons. Our similarity measure (see Section 3.3.1) is computed step by step. At each step , we calculate the overlapping length and the accumulated similarity. According to Eq. 7, the accumulated similarity is decreasing as the step index increases. During the computation of the similarity for one trajectory , we stop the computation and is pruned, if its accumulated similarity is lower than the similarity threshold .

3.4 Preprocessing of cellular data

We develop three noise filters to process noisy phenomena in our cellular data before map matching.

Ping-Pong filters. When a mobile user is in the middle of several adjacent cell towers, her phone performs handover between several cell towers frequently in a short time. For each sample point, our filter first checks whether the following sample points have the Ping-Pong phenomenon, i.e., some points are from cell towers that differ from the current point, while others are from the same cell tower as the current point. If a Ping-Pong phenomenon is detected, the sample points of the second cell tower are discarded. Sometimes, we cannot handle all the Ping-Pong noises at once. We apply the Ping-Pong filter to process the same cell tower sequence iteratively until the sequence size does not decrease.

Backward filters. When a person moves in a direction, the mobile phone may sometimes handover to a cell tower opposite to the moving direction due to the fluctuation of wireless signals. As a consequence, the cell tower sequence may change direction suddenly at some points and return to the normal direction shortly. This phenomenon causes U-turns in the map matching results. To handle this noise, when the moving direction of one point is different from the current direction, the filter caches that point and checks its next points. If the next points confirm the change of direction, the filter adds all points to the result; otherwise, it deletes that cached point and keeps the points.

Drifting filters. A mobile phone may sometimes handover to a cell tower very far from its location. As a consequence, its cell tower footprint sometimes moves quickly to another location, and then returns to the previous location with an impractical moving speed. To handle the drifting noise, we estimate the moving speed between two points, based on their distance and time interval. If the moving speed is higher than the road speed limit, the next point will be discarded.

3.5 Discussion

CellSim Assumptions. We shows the validity and rationality of the assumptions in cellSim.

First, we assume that people normally prefer to follow the same direction or slightly depart from the moving direction. The assumption is confirmed by [33]. In that work, the authors first selected six typical study areas with different traffic conditions in a city. Then, they presented details of traffic characteristics at these areas by extracting the number of vehicles in through traffic and U-turns using installed video recorders. The result showed that on average 93.4% of the persons preferred straight road.

Second, we assume that people normally prefer to use a wider road, if multiple roads can lead to the destination. This assumption is verified by transportation statistics released by Britain in 19th July 2018 [34]. The statistics showed that motor vehicles travelled 326.2 billion miles from April 2017 to March 2018 and 65.7% of the total miles is moving on the wider roads (i.e., ’A’ roads and motorways).

Third, we assume that people are more likely to take the shortest path among all possible paths on the road network. Zhu et al. [35] revealed that the larger the distance between origin and destination, the less likely people take the shortest path. In our dataset, the average distance between two consecutive points is about 412 meters, which means more than 80% of persons will follow the shortest path.

Road segment candidates of each cell tower. To minimize the computation of map matching, we set a limited searching range for each cell tower to find candidate road segments. The searching range for each cell tower is dynamically determined by the local density of its surrounding cell towers. We adopt a linear function to fit the relationship between local density of cell towers and the searching range. When the density is larger than , the searching range is set to 200 meters, and when the density is less than , the searching range is set to 1000 meters. All the road segments that fully or partially fall into the range of a cell tower are candidates for its map matching.

Distance between a cell tower and a road segment. For the emission probability in map matching (Section 3.2.1), we need to calculate the distance between a cell tower and a road segment. This is calculated as the geodesic distance between the cell tower and its projected point on the road segment. If the projected point is on the extension of the road section, we use the close endpoint of the road segment as the projected point in the distance calculation.

4 Implementation

We implement cellSim on a Hadoop cluster with 3 master nodes and 10 slave nodes. Each master node uses a dual Intel E5-2680 v4 CPU @ 2.4GHz with 14 cores. Each slave node has a dual Intel E5-2650 v4 CPU @ 2.4GHz with 12 cores. The total RAM is 1.5 TB and the total storage is 260 TB. The nodes run on CentOS release 6.8 with Hadoop 2.6.0-cdh5.5.0.

Fig. 7: CellSim workflow with MapReduce.

Implementation of cellSim based on MapReduce. In our dataset, the daily data volume is GB. To process the data efficiently, we implement cellSim on MapReduce [24] in parallel. Fig. 7 depicts the work flow of our framework that consists of three MapReduce jobs.

First, the raw cellular data are transformed into cell tower sequences. In the Map phase, the original logs are segmented by Hadoop TextSplitter. The logs from one user are identified by the same anonymized IDs and shuffled to the same reducer. In the Reducer phase, we sort all the records by time.

Second, the map matching algorithm is implemented by a Mapper job. The digital road network and cell tower sequences are fed into the Mapper jobs. Through processing, multiple trajectory candidates are generated as a sequence of road segments with timestamps.

Finally, we calculate the similarity between the query trajectory and every trajectory in the generated dataset. We first call the function to read the query trajectory and match it with the road network. We compute the similarity using the trajectory similarity measure designed in Section 3.3 and output the trajectories with the similarity values larger than the similarity threshold.

The first two jobs can be done offline to process the cellular dataset. For the query of a cell tower sequence, we only need to convert it to trajectory candidates and perform the last similarity search job.

Data format. For each cell tower sequence, we may need to store trajectories. If one trajectory occupies bytes, the total cost is bytes, which is memory-consuming. We develop a new data format to efficiently store all trajectories. As shown in Fig. 8, one trajectory is composed of multiple sub-paths. For all trajectories, some sub-paths are the same, e.g., some parts with straight road segments. In our data format, each sub-path has a binary field, “Type”, which indicates whether this part is shared by all trajectories. If “Type” is 1, we only store one sub-path for all trajectories; otherwise, we provide a set of possible path instances. We also save the confidence of each sub-path according to the result of the map matching process.

Implementation cost for different cities. The overhead of implementing cellSim for a new city is low. For different cities, we use different road maps and cellular datasets, which are implemented as two plug-in components in cellSim and can be changed easily without any modification of the other components. Both the trajectory similarity calculation and the map matching modeling take the digital road network of the city as input. The road network can be obtained from an open source websites (e.g. OpenStreetMap). The public road network data contain all the information we need in cellSim, including road speed limit, the start point and end point of each road segment, etc.

5 Evaluation

We first present the experiment results on the overall performance of cellSim. Then, we study the performance of the two key components in cellSim, i.e., map matching and similarity search. Finally, we test the computation overhead of cellSim and the performance of the noise filters for map matching.

Fig. 8: Data format in cellSim.
(a) Multiple carriers dataset
(b) Single carrier dataset
(c) Query trajectory of GPS data
Fig. 9: Overall performance of cellSim in terms of precision and recall on retrieving similar trajectories.

5.1 Experiment setting

We test cellSim on the cellular dataset introduced in Section 2.2. The dataset contains 231 billion records of 3,186,000 mobile users in a big city for 2 months (1 Sep. - 1 Nov. 2017).

Ground truth. During the two months of our dataset, we also recruited 60 volunteers and collected their trajectories as ground truth to evaluate cellSim. We assigned the volunteers to different groups, each of which contained 2-8 persons. Volunteers were required to enable the GPS on their mobile phones and record the location information at a sample rate up to 1 sample/sec, when they were moving outdoors. At the same time, based on their phone number, our mobile carrier collaborators provided us their anonymized IDs which we used to identify their cell tower sequences in the anonymized cellular dataset. All the volunteers have been informed with the purpose of their data collection and experimental procedure, and have signed the consent form. In the end, we collected 1701-km trajectories that included 121 co-moving groups and covered both urban and rural areas with different road conditions, including main road and side roads. The GPS trajectories we used as ground truth in our evaluation experiments. Our volunteer groups drove private vehicles to generate long-distance trajectories with varied speeds. Thus, it is unlikely that there are other people who may travel along with our volunteers. For each co-moving group, one randomly-selected trajectory is used as the query trajectory to search for the other trajectories in the dataset.

Baselines. Since cellSim is the first work searching for similar trajectories from cellular data, we build two baselines for evaluation. First, to evaluate the design of adaptive trajectories in cellSim, we implement a simple version of cellSim, denoted as cellSim-1, in which only the top 1 trajectory candidate is generated by map matching. Second, we develop a simple solution based on existing techniques. We replace the map matching component and the similarity search component of cellSim-1 by two state-of-the-art approaches: SnapNet [32] and TS-Join [12] respectively. The combined baseline is denoted as SnapTS.

We further compare the proposed map matching component of cellSim with two existing map matching methods. SnapNet [32] develops a HMM model that considers the road network information for cellular trajectories collected by mobile phones. ST-Matching [36] matches low sample rate GPS trajectories to the road network by combining both spatial and temporal features.

We also compare the proposed trajectory similarity measure of cellSim with two existing approaches. DTW [10] finds the optimal spatio-temporal alignment by matching one point of a trajectory with multiple points of another trajectory. TS-Join [12] calculates the spatial and temporal similarities separately. It then combines the similarity results of these two parts by weighted averaging with a parameter . In our implementation, is set to 0.5, the best reported in [12].

All the parameters of the above baselines are set to the optimal values that are obtained by empirical experiments on our cellular data, e.g., we set to 0.85 for both DTW and TS-Join to achieve their optimal performance.

(a) Similarity threshold
(b) Multiple trajectory candidates
Fig. 10: Effect of parameter and .
(a) Length.
(b) Area.
(c) Moving speed.
(d) Sample rate.
Fig. 11: Performance of cellSim under different query trajectories with different attributes.

5.2 Overall performance of cellSim

We use the trajectories collected by our volunteers as ground truth to evaluate the performance of cellSim. We first convert the cell tower sequences in our cellular dataset (including the volunteers’ sequences) into trajectories using the map matching component of cellSim. Then, we use a generated trajectory or the corresponding GPS trajectory of one volunteer as the query trajectory to find the trajectories of the other volunteers in the same co-moving group from our generated trajectory dataset. We conduct 121 queries using different query trajectories in our collected volunteer data. Fig. 9 depicts the average experiment results of cellSim and the two baseline methods.

We use precision and recall to study the performance of cellSim on retrieving similar trajectories. Precision is the ratio between the number of real similar trajectories (indicated by the ground truth) and the number of all similar trajectories identified by cellSim. Recall is the ratio between the number of true similar trajectories correctly identified by cellSim and the number of real similar trajectories in the ground truth.

Cell tower sequences as query input. We conduct two experiments with two different cellular datasets, i.e., one with the data of multiple carriers (Fig. 9 LABEL:sub@Cmulti) and the other with the data of only one carrier (Fig. 9 LABEL:sub@Csingle). We first transform the query input of cell tower sequences and the cellular data into trajectories by our map matching scheme. We then search for the similar trajectories with query trajectories from the transformed datasets.

With the cellular data of multiple carriers, the experiment results in Fig. 9 LABEL:sub@Csingle reveal that cellSim can provide a high precision and recall, i.e., 62.4% and 89.8% respectively. CellSim can improve the precision and recall of the existing solution (SnapTS) by 88.5% and 65.7% respectively, based on the unique design of map matching and similarity search, and their innovative combination. In addition, CellSim outperforms cellSim-1 by 21.6% and 17.8% in precision and recall respectively, benefiting from its innovative combination of map matching and similarity search.

Fig. 9 LABEL:sub@Csingle depicts the experiment results based on the cellular data of a single carrier. If only the cellular data of Carrier A are used, the precision and recall of cellSim and two baselines are higher than those of multiple carriers (Fig. 9 LABEL:sub@Cmulti). This is because cell tower sequences from the same carrier have lower location ambiguity.

GPS trajectories as query input. The above experiments use cell tower sequences as query input. CellSim also accepts GPS trajectories as query inputs. Fig. 9 LABEL:sub@Cgps presents the performance achieved by cellSim and the two baselines using GPS trajectories as query inputs. Compared with the experiment results with the input of cell tower sequences in Fig. 9 LABEL:sub@Cmulti, all three methods achieve slightly-higher performance, because the GPS trajectories on the road network have higher location accuracy in both space and time. On the other hand, the GPS input only mitigates the location ambiguity of query trajectories. We still need to search similar trajectories in the cellular dataset. As a result, in Fig. 9 LABEL:sub@Cgps the performance gain of cellSim over the other two baselines is still high, benefiting from its unique design for cellular data.

5.2.1 Similarity threshold

Fig. 10 LABEL:sub@figTau depicts the precision and recall of cellSim with different similarity threshold . As decreases from 0.95 to 0.8, the recall increases, but the precision gradually decreases. When ¡ 0.85, the precision declines sharply, because a smaller increases the number of similar trajectories in the output. To find a proper , we use F-Measure [37] to find a balance between precision and recall.


As shown in Table III, we have the largest F-Measure 0.76 when = 0.85. Therefore, we set to 0.85 in our experiments.

5.2.2 Number of trajectory candidates

The motivation of trajectory candidates is to increase the probability of including the true trajectory in our map matching output. We conduct an experiment to verify it. We use our volunteers’ GPS trajectories as ground truth. We calculate the overlapping ratio between each trajectory generated by map matching and the ground truth. The statistic results are shown in Table IV. For trajectories of one cell tower sequence, we output the highest overlapping ratio in Table IV. When is set to 7 or higher, there exists at least one trajectory in the trajectory candidates that has an overlapping ratio larger than 89% with the GPS trajectory.

Adaptation of the parameter . Fig. 10 LABEL:sub@figM presents the performance of cellSim according to prefixed values or an adaptive value. As increases, the recall increases, but the precision decreases, because it is more likely that the true trajectory is included in the trajectory candidates outputted by map matching. When is larger than 7, the recall maintains stable. However, 7 trajectory candidates also make the precision decrease. Therefore, we need to adapt the value to achieve a better performance in both precision and recall. The experiment results in Fig. 10 LABEL:sub@figM demonstrate that our adaptation algorithm (denoted as in the figure) can automatically approach the highest precision and recall simultaneously, which can only be achieved by different prefixed values separately.

5.2.3 Different query trajectories

The above experiment results are the average results of cellSim for all the 121 query trajectories in our collected trajectory data. We further categorize the 121 query trajectories into different categories according to their attributes, like trajectory length, moving speed and sample rate. Fig. 11 presents the performance of cellSim according to different types of query trajectories.

Trajectory length. Fig. 11 LABEL:sub@length depicts the performance of cellSim with respect to different lengths of query trajectories. We divide all query trajectories into 5 levels of lengths. The precision and recall increase as the trajectory length increases, since a longer query trajectory provides map matching and the trajectory similarity search with more information to find the true trajectory and eliminate falsely-similar trajectories.

Area. To evaluate the impact of the areas of the query trajectory on the performance of cellSim. We divide all query trajectories into 5 levels according to their distance to the center of the city. Fig. 11 LABEL:sub@location demonstrates that cellSim can almost achieve stable performance in different areas of the city, since cellSim adapts its map matching according to the density of cell towers.

Moving speed. We also consider the impact of different moving speeds of the query trajectory on the performance of cellSim. We calculate the average moving speed of each query trajectory and categorize them into 3 levels according to their moving speed, i.e., {}, {} and {}. As shown in Fig. 11 LABEL:sub@speed, the movement speed has very little impact on the performance of cellSim. This indicates that our algorithm is insensitive to the moving speed of query trajectories.

0.8 0.85 0.90 0.95
F-Measure 0.37 0.76 0.73 0.69
TABLE III: The F-Measure score according to different similarity threshold .

Sample rate. To analyze how the sample rate of query trajectories impact the performance of cellSim, we discretize the sample rate into five levels, as shown in Fig. 11 LABEL:sub@samplingrate. The experiment results reveal that cellSim achieves a high performance when the sample rate reaches 0.6 per minute. Higher sample rates result in higher performance in retrieving similar trajectories, since more finer-grained information of cellular data is provided.

Fig. 12: CellSim map matching.
Fig. 13: Emission probability.
Fig. 14: Transition probability.
Fig. 15: CellSim similarity search.
Fig. 16: Effect of pruning.
Fig. 17: Effect of global pruning threshold
Fig. 18: Scalability

5.3 Map matching in cellSim

We use the map matching component of cellSim to transform the cell tower sequences of our volunteers into trajectories and compare the generated trajectories with the corresponding GPS trajectories. All the 1701-km trajectories are used in the test. We also use precision and recall to assess the performance of map matching. Precision is calculated as the ratio of the total length of the correctly-matched trajectories to the total length of the whole trajectories in the map matching output. Recall is the ratio of the total length of the correctly-matched trajectories to the total length of the ground truth trajectories.

As depicted in Fig. 15, cellSim achieves the highest score in both precision and recall, 78.4% and 82.9%, respectively. The performance of SnapNet (64.1% and 76.2% in precision and recall) is slightly higher than ST-Matching (61.5% and 68.0%), because SnapNet is designed for phone-collected cellular data with higher localization errors. CellSim outperforms SnapNet by 14.3% and 6.7% in precision and recall respectively, since our map matching techniques are developed for carrier-collected cellular data with larger localization errors and lower sample rates.

To further decompose the performance gain of our developed map match techniques, we test our emission probability and transition probability separately.

1 3 5 7 10
Probability 0.65 0.73 0.83 0.89 0.91
TABLE IV: The overlapping ratio of map matching results and the ground truth.

Emission probability. Fig. 15 depicts the performance of different designs of emission probabilities. CellSim can improve the map matching performance of SnapNet by 7.5% and 4.8% in terms of precision and recall respectively. In cellSim, we consider the road direction and road weight while calculating the emission probability.

We further exploit the performance with the change of road weight . As shown in Table V, we could see that our method achieves best performance at 0.08. According to Eq. 3, by considering the road speed limit, map matching achieves the best performance at 0.08.

Road weight 0 0.02 0.04 0.06 0.08 0.1
Precision 0.702 0.723 0.741 0.768 0.784 0.772
Recall 0.764 0.792 0.782 0.801 0.829 0.812
TABLE V: The performance with different road weight .

Transition probability. We replace the transition probability with designs used in ST-Matching and SnapNet. It can be observed from Fig. 15 that our transition probability achieves the highest precision and recall scores, i.e.,78.4% and 82.9%, compared to 64.1% and 72.9% by ST-Matching transition probability, and 68.3% and 76.2% by SnapNet transition probability. This indicates that our design for the low-sample-rate data in transition probability is effective.

5.4 Similarity search in cellSim

We compare the similarity measure of cellSim with DTW [10] and TS-Join [12] under the same experiment settings (query trajectories and ground truth) used in Sec. 5.2. We only output the top 1 trajectory candidate for each cell tower sequence using the map matching component in cellSim. In addition, we select the best similarity thresholds for the two baseline methods. Through many empirical experiments, we set to 0.85 for both DTW and TS-Join, since such a setting can achieve the highest F-measure.

As shown in Fig. 15, the similarity measure in cellSim has the best performance in both precision and recall. First, our method adopts a time-aligned sliding window to handle the temporal dynamics of cellular data. In contrast, TS-Join tries to find a proper parameter

to combine the spatial and temporal similarities, which is hard to determine in practical applications. Second, our method compares the spatial-overlapping ratio to capture the similarity while the other two methods use conventional distance as similarity measures. Due to the inevitable outliers in our generated trajectories caused by the large localization error of cellular data, DTW suffers from large distance differences, while our similarity measure can exclude such outliers in the overlapping process. Moreover, if we reduce the similarity threshold for larger recall, DTW introduces a high number of large false positives.

(a) Ping-Pong filter
(b) Backward filter
(c) Drifting filter
(d) Overall effect
Fig. 19: Performance of the preprocessing components in the precision and recall of map matching

5.5 Running efficiency of cellSim

We study the effectiveness of two pruning techniques and the scalability of the map matching component.

5.5.1 Pruning

We verify the effectiveness of pruning in time saving. Fig. 18 compares the runtime by varying the number of trajectories in the dataset. In this experiment, we implement three pruning methods, including global pruning and local pruning, as well as both of them, denoted as cellSim-G, cellSim-L and cellSim-G-L in Fig. 18. CellSim in Fig. 18 indicates that no pruning is applied in that version. First, cellSim-G-L reduces the runtime to 152 seconds, compared to 181 seconds of cellSim-G or 969 seconds of cellSim-L when the dataset has 3 million trajectories. Second, global pruning is more effective than local pruning because it uses a global pruning threshold to avoid the computation on a large proportion of non-relative trajectories in the dataset. Third, the performance gain provided by local pruning is higher when the number of trajectory candidates is large, because more relative trajectories need to be verified in that case and local pruning can avoid some unnecessary computation.

Fig. 18 depicts the effectiveness and efficiency of global pruning method by varying from 0.5 to , where means that we do not use global pruning technique. As we can see, when = 2, the technique can prune a large number of trajectories, resulting in less execution time, but with a slight decrease in recall. In addition, if we are more inclined to efficiency, we can also set a small (e.g. ).

5.5.2 Scalability of map matching.

We examine how the cluster size affects the runtime of map matching. Fig. 18 depicts the runtime of map matching when the nodes of a cluster vary from 1 to 10. We discover that the process of map matching scales well and achieves nearly linear scalability. When only one node is used, 9.36 hours are taken on average to finish the map matching, compared with 1.88 hours for 10 nodes. This indicates that we can handle the incoming data in a timely manner with enough nodes.

5.6 Data preprocessing

We evaluate the contributions of three proposed noise filters on the map matching performance.

Ping-Pong filter. Fig. 19 LABEL:sub@pingpong depicts the performance of the Ping-Pong filter according to the number of checked points, . When , the Ping-Pong filter is not applied. From the experiment results, we see that the Ping-Pong filter offers a performance gain of precision and recall up to 4.4% and 4.3% respectively, when .

Backward filter. We test the performance of the backward filter according to the number of checked point, . When , the backward filter is turned off. As demonstrated by Fig. 19 LABEL:sub@back, the performance of the backward filter is stable for the different settings of , especially when is set to 5 or higher. When , the accuracy is lower than the other cases, because the filter removes all backward data without the confirmation of the direction change.

Drifting filter. Fig. 19 LABEL:sub@drift depicts the effect of the drifting filter on accuracy. As depicted, the filter improves the precision and recall of map matching by 8.1% and 1.3% respectively.

Overall contribution of data preprocessing. According to the above analysis, we use , as the default parameters for the Ping-Pong filter and backward filter. As depicted in Fig. 19 LABEL:sub@overallpre, preprocessing model improve the performance of map matching in precision and recall by 12.4% and 8.9% respectively.

6 Related works

As many public cellular datasets are released by mobile carriers, many works have been conducted for a variety of applications, e.g., human mobility [15, 38, 17], urban planning [39] and mobile network analysis [18]. A comprehensive survey on cellular data analysis can be found in [14]. However, to the best of our knowledge, no previous works have been done to find similar trajectories using cellular data.

Trajectory similarity search. Trajectories close to a query trajectory are retrieved for various applications. ATSQ [40] identifies similar activity trajectories given a query trajectory for place recommendation. SLAM [41] computes the similarity between trajectories for indoor localization. Many trajectory similarity measure functions, e.g., Dynamic Time Warping (DTW) [10], and Edit distance with Real Penalty (ERP) [23], have also been designed for time-series sequences. Recently, TS-Join defines a new similarity function which combines spatial and temporal information in a continuous manner [12]. Recently, TS-Join defines a new similarity function which combines spatial and temporal information in a continuous manner [12]. However, the aforementioned studies cannot be directly used for processing cellular data, because they assume the trajectories with low localization error and high sample rate. NSIM [42] is most relevant to our study, which discovers similar trajectories based on cellular data, but it cannot support to retrieve similar trajectories at city scale due to the high time complexity of their model.

Map matching. Before cellSim, two works have explored map matching using the cellular data recorded by network infrastructure. SnapNet [32] develops a HMM model for map matching and considers the road type, i.e., preferring major roads rather than side roads. However, it is more capable of accommodating expressways and highways. Our HMM map matching model also works for urban areas.  [43] first identifies the accurate stationary positions by multiple sector observations and obtains the most likely path among all paths according to the moving points between stationary points. However, the sector information is not available in our cellular dataset.

Besides the above works on cellular data, many previous map matching methods are based on GPS [27, 44, 45] and data fusion [30]. Newson and Krumm [27] propose a HMM-based map matching algorithm for GPS trajectories. ST-Matching [36] map-matches low-sampling-rate GPS trajectories with spatial and temporal information. Wei et al. makes a comprehensive comparison of map-matching methods and takes advantages of the integration in accordance with varying sample rates. [20, 19]. Hu et al. [45] incorporate multi-source information to handle many ambiguous cases. Srivatsa et al.  [46] study the basic assumption of HMM and identify top shortest paths to chooses the most-likely trajectory. However, the above works cannot be used in our work due to the large localization error and low sample rate of cellular data.

Some studies have also been conducted about the cellular data collected by mobile phones. At one location, a mobile phone receives the beacon packets from multiple cell towers. CTrack [21] and CAPS [22] use this type of cellular data for localization. Unlike these studies, our cellular data are from mobile carriers, which only provide coarse location information by one cell tower at one time point.

7 Conclusion

This paper presents cellSim, a practical system that can identify a group of people traveling together from a large-scale cellular dataset. By combining map matching with the trajectory similarity search, cellSim significantly improves the detection ratio of similar trajectories and achieves low false positive. A set of map matching techniques and a new trajectory similarity measuring method are developed for processing cellular data. Extensive experiments on a large dataset and real-world trajectories in a large city demonstrate the high performance gain achieved by cellSim.


This work is supported by the National Natural Science Foundation of China (Grant No. 91746111, Grant No. 71702143), Ministry of Education & China Mobile Joint Research Fund Program (No. MCM20160302), Shaanxi provincial development and Reform Commission (No. SFG2016789)


  • [1] J.-G. Lee, J. Han, and K.-Y. Whang, “Trajectory clustering: a partition-and-group framework,” in ACM SIGMOD, 2007, pp. 593–604.
  • [2] T. Chen, Y. Zhang, Y. Tuo, and W. Wang, “Online discovery of congregate groups on sparse spatio-temporal data,” in IEEE PIMRC, 2018, pp. 1–7.
  • [3] J.-G. Lee, J. Han, X. Li, and H. Gonzalez, “Traclass: trajectory classification using hierarchical region-based and trajectory-based clustering,” Proceedings of the VLDB Endowment, vol. 1, no. 1, pp. 1081–1094, 2008.
  • [4] X. Zhao, X. Lu, Y. Liu, J. Lin, and J. An, “Tourist movement patterns understanding from the perspective of travel party size using mobile tracking data: A case study of xi’an, china,” Tourism Management, vol. 69, pp. 368–383, 2018.
  • [5] E. Naserian, X. Wang, X. Xu, and Y. Dong, “A framework of loose travelling companion discovery from human trajectories,” IEEE Trans. Mobile Comput., vol. 17, no. 11, pp. 2497–2511, 2018.
  • [6] E. Thuillier, L. Moalic, S. Lamrous, and A. Caminada, “Clustering weekly patterns of human mobility through mobile phone data,” IEEE Trans. Mobile Comput., vol. 17, no. 4, pp. 817–830, 2018.
  • [7]

    H. Cao, F. Xu, J. Sankaranarayanan, Y. Li, and H. Samet, “Habit2vec: Trajectory semantic embedding for living pattern recognition in population,”

    IEEE Trans. Mobile Comput., 2019.
  • [8] D. Zhang, T. He, and F. Zhang, “National-scale traffic model calibration in real time with multi-source incomplete data,” ACM Transactions on Cyber-Physical Systems, vol. 3, no. 2, p. 21, 2019.
  • [9] C. Meng, X. Yi, L. Su, J. Gao, and Y. Zheng, “City-wide traffic volume inference with loop detector data and taxi trajectories,” in ACM GIS, 2017, p. 1.
  • [10] B.-K. Yi, H. Jagadish, and C. Faloutsos, “Efficient retrieval of similar time sequences under time warping,” in IEEE ICDE, 1998, pp. 201–208.
  • [11] M. Vlachos, G. Kollios, and D. Gunopulos, “Discovering similar multidimensional trajectories,” in IEEE ICDE, 2002, pp. 673–684.
  • [12] S. Shang, L. Chen, Z. Wei, C. S. Jensen, Z. Kai, and P. Kalnis, “Parallel trajectory similarity joins in spatial networks,” Vldb Journal, vol. 27, no. 3, pp. 395–420, 2018.
  • [13] J. Yuan, Y. Zheng, C. Zhang, W. Xie, X. Xie, G. Sun, and Y. Huang, “T-drive: driving directions based on taxi trajectories,” in ACM GIS, 2010, pp. 99–108.
  • [14] D. Naboulsi, M. Fiore, S. Ribot, and R. Stanica, “Large-scale mobile traffic analysis: a survey,” IEEE Communications Surveys & Tutorials, vol. 18, no. 1, pp. 124–161, 2016.
  • [15] D. Zhang, J. Huang, Y. Li, F. Zhang, C. Xu, and T. He, “Exploring human mobility with multi-source data at extremely large metropolitan scales,” in ACM MobiCom, 2014, pp. 201–212.
  • [16] Z. Feng and Y. Zhu, “A survey on trajectory data mining: Techniques and applications,” IEEE Access, vol. 4, pp. 2056–2067, 2016.
  • [17] M. C. Gonzalez, C. A. Hidalgo, and A.-L. Barabasi, “Understanding individual human mobility patterns,” Nature, vol. 453, no. 7196, p. 779, 2008.
  • [18] Y. Li, J. Gao, P. P. Lee, L. Su, C. He, C. He, F. Yang, and W. Fan, “A weighted crowdsourcing approach for network quality measurement in cellular data networks,” IEEE Trans. Mobile Comput., vol. 16, no. 2, pp. 300–313, 2017.
  • [19] H. Wei, Y. Wang, G. Forman, and Y. Zhu, “Map matching: Comparison of approaches using sparse and noisy data,” in ACM GIS, 2013, pp. 444–447.
  • [20] H. Wei, Y. Wang, G. Forman, Y. Zhu, and H. Guan, “Fast viterbi map matching with tunable weight functions,” in ACM GIS, 2012, pp. 613–616.
  • [21] A. Thiagarajan, L. Ravindranath, H. Balakrishnan, S. Madden, and L. Girod, “Accurate, low-energy trajectory mapping for mobile devices,” in USENIX NSDI, 2011, pp. 267–280.
  • [22] J. Paek, K.-H. Kim, J. P. Singh, and R. Govindan, “Energy-efficient positioning for smartphones using cell-id sequence matching,” in ACM Mobisys, 2011, pp. 293–306.
  • [23] L. Chen and R. Ng, “On the marriage of lp-norms and edit distance,” in VLDB, 2004, pp. 792–803.
  • [24] K. Shvachko, H. Kuang, S. Radia, and R. Chansler, “The hadoop distributed file system,” in IEEE MSST, 2010, pp. 1–10.
  • [25] Y. Chen and J. M. Patel, “Design and evaluation of trajectory join algorithms,” in ACM GIS, 2009, pp. 266–275.
  • [26] D. Xie, F. Li, and J. M. Phillips, “Distributed trajectory similarity search,” Proceedings of the VLDB Endowment, vol. 10, pp. 1478–1489, 08 2017.
  • [27] P. Newson and J. Krumm, “Hidden markov map matching through noise and sparseness,” in ACM GIS, 2009, pp. 336–343.
  • [28] J. D. Lafferty, A. Mccallum, and F. C. N. Pereira, “Conditional random fields: Probabilistic models for segmenting and labeling sequence data,” IEEE ICML, vol. 3, no. 2, pp. 282–289, 2001.
  • [29] A. Kundu, Y. He, and P. Bahl, “Recognition of handwritten word: first and second order hidden markov model based approach,” Pattern recognition, vol. 22, no. 3, pp. 283–297, 1989.
  • [30] Z. Xiao, H. Wen, A. Markham, and N. Trigoni, “Lightweight map matching for indoor localisation using conditional random fields,” in ACM/IEEE IPSN, 2014, pp. 131–142.
  • [31] A. Rai, K. K. Chintalapudi, V. N. Padmanabhan, and R. Sen, “Zee: Zero-effort crowdsourcing for indoor localization,” in ACM MobiCom, 2012, pp. 293–304.
  • [32] R. Mohamed, H. Aly, and M. Youssef, “Accurate real-time map matching for challenging environments,” IEEE Trans. Intell. Transp. Syst., vol. 18, no. 4, pp. 847–857, 2017.
  • [33] V. K. Sharma, S. Mondal, and A. Gupta, “Analysis of u-turning behaviour of vehicles at mid-block median opening in six lane urban road: A case study.” International Journal for Traffic & Transport Engineering, vol. 7, no. 2, 2017.
  • [34] L. Shaw, “Provisional road traffic estimates, Great Britain,”
  • [35] S. Zhu and D. Levinson, “Do people use the shortest path? an empirical test of wardrop’s first principle,” PloS one, vol. 10, no. 8, p. e0134322, 2015.
  • [36] Y. Lou, C. Zhang, Y. Zheng, X. Xie, W. Wang, and Y. Huang, “Map-matching for low-sampling-rate gps trajectories,” in ACM GIS, 2009, pp. 352–361.
  • [37] B. Larsen and C. Aone, “Fast and effective text mining using linear-time document clustering,” in ACM SIGKDD, 1999, pp. 16–22.
  • [38] R. Becker, R. Cáceres, K. Hanson, S. Isaacman, J. M. Loh, M. Martonosi, J. Rowland, S. Urbanek, A. Varshavsky, and C. Volinsky, “Human mobility characterization from cellular network data,” Communications of the ACM, vol. 56, no. 1, pp. 74–82, 2013.
  • [39] A. Thiagarajan, L. Ravindranath, K. LaCurts, S. Madden, H. Balakrishnan, S. Toledo, and J. Eriksson, “Vtrack: accurate, energy-aware road traffic delay estimation using mobile phones,” in ACM SenSys, 2009, pp. 85–98.
  • [40] K. Zheng, S. Shang, N. J. Yuan, and Y. Yang, “Towards efficient search for activity trajectories,” in IEEE ICDE, 2013, pp. 230–241.
  • [41] S. Wang, H. Wen, R. Clark, and N. Trigoni, “Keyframe based large-scale indoor localisation using geomagnetic field and motion pattern,” in IEEE IROS, 2016.
  • [42] Y. Tuo, X. Yun, and Y. Zhang, “Nsim: A robust method to discover similar trajectories on cellular network location data,” in IEEE PIMRC, 2017, pp. 1–7.
  • [43] I. Leontiadis, A. Lima, H. Kwak, R. Stanojevic, D. Wetherall, and K. Papagiannaki, “From cells to streets: Estimating mobile paths with cellular-side data,” in ACM CoNEXT, 2014, pp. 121–132.
  • [44] X. Liu, J. Biagioni, J. Eriksson, Y. Wang, G. Forman, and Y. Zhu, “Mining large-scale, sparse gps traces for map inference: comparison of approaches,” in ACM SIGKDD, 2012, pp. 669–677.
  • [45] G. Hu, J. Shao, F. Liu, Y. Wang, and H. T. Shen, “If-matching: Towards accurate map-matching with information fusion,” IEEE Trans. Knowl. Data Eng., vol. 29, no. 1, pp. 114–127, 2017.
  • [46] M. Srivatsa, R. Ganti, J. Wang, and V. Kolar, “Map matching: Facts and myths,” in ACM GIS, 2013, pp. 484–487.