Abstract:
The method estimating said route between an origin location and a destination location of a cell phone user requesting said route by using a computer device receiving as inputs location data from a base station tower, said computer device: creating a plurality of perturbations of at least one of said computed origin or said destination location within said base station tower coverage; for each perturbation created querying a route calculation engine, based on geospatial data, to calculate a route between said perturbations or between said perturbations and said origin or destination and obtaining a list of routes, and choosing among said list of routes an optimal route by maximizing an utility function that assesses the efficacy of each route of said list of routes by using user&#39;s location data being performed within certain distance of said calculated routes.

Description:
FIELD OF THE ART 
       [0001]    The present invention relates to a method, a system and computer-readable storage mediums for estimating a route, and more particularly, this invention relates to estimating a route using location data of a wireless communication network. 
       BACKGROUND OF THE INVENTION 
       [0002]    Location data developed by a wireless communication network, such as Call detail records (CDRs), GPS traces, hand-off patterns, etc. have become one of the major data sources for analyzing human mobility. 
         [0003]    In document EP 1437013 (B1) it is disclosed a traffic information mechanism that is capable of using this type of data generated routinely by wireless telephony communication networks. Location estimates are made based on processing the operational data which can be combined, as the present invention does, with computerized street maps to measure the time it takes to get from one geographic area to another. It also aggregates and analyses anonymous data from devices allowing determining real-time and historical travel times and velocities between cities, intersections and along specific routes. 
         [0004]    On another hand, in document US 2012115475 (A1) are disclosed some methods and apparatuses that receive mobile phone operational data indicative of user equipment location to perform travel estimation based on said mobile phone operation data. The traffic estimation includes interpolating the data associated with one or more individuals in a population to estimate intermediate positions of a trajectory of each of the one or more individuals for a specified time period based on a shortest path mesh sequence estimation algorithm. 
         [0005]    However, the use of the mobile phone operational data has two inherent limitations. One is that the location is captured only when a call takes place (i.e., low resolution), and the other is that the captured location only approximates the actual position (i.e., coarse granularity) which make it hard to estimate the street-level commuting route between two user locations, for instance a user home and work. 
         [0006]    The accurate estimation of street-level commuting routes, instead of the frequent sequence of cell towers or the probability distribution of placement, can bring more sophisticated applications for location-based service, user profiling, target advertisement, traffic engineering, or urban planning. 
         [0007]    There are also some scientific studies that have tried to solve this problem. For instance, Olof Görnerupin [1] proposed to count how many times individuals contact to each cell tower or base station and extract common (frequently visited) sequence of tower by using CDRs. That is, the cell towers that people usually contact to can be identified, but they do not know the geographic features, such as where the road is. The problem here is the fact that an individual who has a mobile phone can be anywhere in the cell tower coverage. As a consequence, the method presented cannot estimate the street-level route but the tower-level route 
         [0008]    On another hand, Becker et. al. [2] tried to estimate which road people should take by using hand-off patterns instead of CDRs. Hand-off patterns are the network signal patterns recorded when an individual moves from one cell tower to the other cell. Authors collected hand-off patterns when they drove along each road, and they found that hand-off patterns are consistent for each road. Based on these ‘in-advance’ references, authors estimate the individuals&#39; route. The problem is that it cannot apply to every type of location data, it only apply to hand-off data, which is more detail data. Second, authors need to collect such hand-off patterns by driving each road and collecting hand-off signals by themselves. 
         [0009]    The present invention overcomes the deficiencies of the existing methods and systems by providing a scalable solution to estimate a street-level commuting route for each individual by using any location data. 
         [0010]    [1] O. Görnerup. Scalable mining of common routes in mobile communication network traffic data. In Proceedings of the 10th international conference on Pervasive Computing, Pervasive&#39;12, pages 99-106, 2012. 
         [0011]    [2] R. A. Becker, R. Caceres, K. Hanson, J. M. Loh, S. Urbanek, A. Varshaysky, and C. Volinsky. Route classification using cellular handoff patterns. In Proceedings of the 13th international conference on Ubiquitous computing, UbiComp &#39;11, pages 123-132, 2011 
       SUMMARY OF THE INVENTION 
       [0012]    To achieve the above, according to a first aspect, the invention provides a method for estimating a route, between an origin location and a destination location of a cell phone user requesting said route by using a computer device that receives as inputs location data, such as GPS traces, hand-off patterns, network strength data or location-based service data or geotagged comments in a social network, from a base station tower. On contrary of the known proposals, the method of the first aspect comprises using said computer device for: 
         [0013]    a) creating a plurality of perturbations of at least one of said computed origin or said destination location within said base station tower coverage; 
         [0014]    b) for each perturbation created querying a route calculation engine based on geospatial data, preferably stored in a geospatial database accessed via the internet, to calculate a route between said perturbations or between said perturbations and said origin or destination and obtaining a list of routes, and 
         [0015]    c) choosing among said list of routes an optimal route by maximizing an utility function that assesses the efficacy, in terms of time or distance, of each route of said list of routes by using user&#39;s location data being performed within certain distance of said calculated routes. 
         [0016]    According to an embodiment of the invention, the method can create the number of perturbations for both the origin and destination locations. For instance, the origin location can be the home location of said user and the destination location can be the work location of said user. 
         [0017]    The obtained list of routes allows the identification of the geographical features of the routes. Furthermore, the optimal route preferably will include its duration and/or its total distance. 
         [0018]    For each perturbation created, according to a preferred embodiment, it is added at least one intermediate point in order to improve the choosing of the optimal route, wherein said at least one intermediate point comprises a place where the user makes many calls and/or a popular or common location concerning the user and/or a highway where the user travels. In order to avoid overfitting, the addition of the intermediate points will be limited to a defined number. Preferably, the intermediate point is identified by means of computing an intermediate point score A(T i ) for each base station tower T i  by means of applying the following equation: 
         [0000]    
       
         
           
             
               A 
                
               
                 ( 
                 
                   T 
                   i 
                 
                 ) 
               
             
             = 
             
               
                 ( 
                 
                   
                     c 
                      
                     
                       ( 
                       
                         T 
                         i 
                       
                       ) 
                     
                   
                   C 
                 
                 ) 
               
               n 
             
           
         
       
     
         [0000]    wherein
   A(T) is the computed intermediate point score;   T i  represents a base station tower; and   C represents the proportion of location data involved in the base station tower T i .   
 
         [0022]    Furthermore, according to yet another embodiment, perturbations can also be created for the added intermediate point or points. 
         [0023]    According to a second aspect, the invention provides a system for estimating a route, between an origin location and a destination location of a cell phone user requesting said route, the system including a preprocessing unit that receives as inputs, location data from a base station tower. On contrary of the known proposals, the system of the second aspect further includes: a perturbation unit computing perturbations of at least one of said computed origin or said destination location within said base station tower coverage; a querying unit querying, for each perturbation created, a route calculation engine, based on geospatial data, to calculate a route between said perturbations or between said perturbations and said origin or destination and obtaining a list of routes; and a route selection unit to choose among said list of routes an optimal route by maximizing an utility function calculated by a utility function computing unit, wherein said utility function assesses the efficacy, in terms of time or distance, of each route of said list of routes by using user&#39;s location data being performed within certain distance of said calculated routes. 
         [0024]    The queries can be sent by a query scheduler of said querying unit in order to send queries to said route search calculation engine in a distributed manner, depending on the characteristics or limitations of the route calculation engine, so that the global performance of the estimation is improved. 
         [0025]    According to a third aspect, the invention provides a computer-readable storage medium comprising instructions to cause said computer device to carry out step a) of claim  1 . 
         [0026]    In yet another embodiment, the invention also provides a computer-readable storage medium comprising instructions to cause said computer device to carry out step c) of claim  1 . 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0027]    The previous and other advantages and features will be more fully understood from the following detailed description of embodiments, with reference to the attached, which must be considered in an illustrative and non-limiting manner, in which: 
           [0028]      FIG. 1  is an example of the added perturbation (P) in the base station location of the origin and the destination. H and W denote home (origin) and work (destination) locations respectively. 
           [0029]      FIGS. 2A and 2B  illustrate the example in which the perturbations (P) are added either at the origin ( FIG. 2A ) or at the destination ( FIG. 2B ), according to some embodiments of the present invention. 
           [0030]      FIG. 3  is an example illustrating the addition of intermediate points (AP) to be considered in the route estimation, according to an embodiment of the present invention. 
           [0031]      FIG. 4  is an example of the architecture followed by the proposed method. 
       
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
       [0032]    The present invention proposes a scalable method to estimate the street-level commuting route using location data, such as call detail records, GPS traces, hand-off patterns that are network signatures collected when a user moves from one cell tower to the other tower, network strength data or location-based service data such as check-in to venues in a Foursquare® system or geotagged comments in a social network. 
         [0033]    In this particular embodiment as a location data it will be considered the use of call detail records or CDRs and the origin and destination locations will refer to the home H and work W locations of a user. 
         [0034]    In order to estimate the commuting route, it is estimated home H and work W locations of said user. From CDRs, there are many methods to estimate where home and work locations are. The challenging issue here is that in most of cases, when dealing with CDRs it is hard to know the accurate home H and work W locations of individuals because CDRs are always fully anonymized for the privacy concerns. Although many techniques are proposed to address this problem, the invention uses the method introduced by Isaacman S. et. al. “ Identifying important places in people&#39;s lives from cellular network data”  due to simplicity but high accuracy. Isaacman method basically finds clusters of base stations (or cell towers) that are involved in the largest number of calls during home and work hours. 
         [0035]    Then, the proposed method works in the three mentioned steps, that is, it creates perturbations P of said home H and work W locations within the coverage area of a base station tower; identifies a route between each pair of both locations H and W through route calculation engines based on web mapping and chooses the route that maximizes the normalized number of said CDRs within certain distance from the route. 
         [0036]    For each user who contact to a certain base station, their location is expressed as longitude and latitude of the base station. The real location of the user can be anywhere within the coverage of the base station tower. To consider these characteristics, the invention intentionally adds those perturbations P, i.e. noises, to the base station location of the origin H and the destination W presented in  FIG. 1 . The grey area represents the coverage of the base station tower, and the black cross sign denotes where the user makes calls. According to other embodiments, the perturbations can be applied to either of two locations, H and W, as is represented in  FIGS. 2A and 2B . This is for the less computation of perturbations P. Instead of picking randomly generated N perturbations from home H and work W each, making perturbations P only for home H or only for work W requires a half of computation costs (time and computer power). 
         [0037]    Within a circular area whose centre is the latitude and longitude of a base station and a radius represents the coverage of the tower, the invention creates N pairs of perturbed locations from the original location. N could be any number, and it is directly related with the complexity of the geography in that region because N reflects the possibility of locations/routes of users. For instance, in case there is only one big highway that passes from one to the other location, the invention wouldn&#39;t need to make a large number of perturbations P because that user has no other choices except taking that highway. On the other hand, if there are many streets in that cell region, the invention would take higher N because it will consider all possibilities with those streets. For instance, with CDR data collected from two well-developed cities, it is sufficient that N&gt;20. Then, for each pair of perturbed home H and work W locations, the route between both locations is queried to the route calculation engine, in this particular case being based on web mapping, and it is obtained the routes represented by the solid lines. 
         [0038]    Web mapping is a standard protocol for serving georeferenced map images generally over the Internet that are generated by a map server using data from a geospatial database. This type of service is used for identifying an optimal route satisfying all geographical features between the user home H and work W locations. For instance, Bing Maps®, Google Maps®, or Nokia Maps® are popular route calculation engines based on web mapping which offers a fine-grained navigation with a street-level resolution. These route calculation engines usually cover a variety of nations and continents, so the proposed method becomes scalable by using them. From the route calculation engine, it can be obtained not only the detail route between two locations but also the duration and the distance of the route. Moreover, it can find different routes according to the corresponding means of transportation. 
         [0039]    Among the N routes provided by the route calculation engine for N pairs of perturbed home H and work W, the proposed method chooses the most probable route by assessing, for instance, the explanatory power of each route for the electronic footprints left in CDRs. The explanatory power of each route is defined as a variety form of utility functions. The utility function, U i , computes the utility of each route, r i , according to different criteria. For example, it can simply compute the portion of calls near the route, as in the following equation 
         [0000]    
       
         
           
             
               
                 
                   
                     U 
                      
                     
                       ( 
                       
                         r 
                         i 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       c 
                       i 
                     
                     C 
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where C is the total number of calls that the user is involved in during commuting hours, and the number of calls made during commuting hours within d meters from the route, c i . The right side of the equation can be transformed into other forms by power, as in equation 2, for different weighting scheme. 
         [0000]    
       
         
           
             
               
                 
                   
                     U 
                      
                     
                       ( 
                       
                         r 
                         i 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       ( 
                       
                         
                           c 
                           i 
                         
                         C 
                       
                       ) 
                     
                     n 
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
         [0000]    If n=2, the difference of c/C becomes much higher when c i  becomes bigger, as compared with n=1. If n=3, the difference becomes much higher. 
         [0040]    The more general form of the utility function is like equation 3 
         [0000]    
       
         
           
             
               
                 
                   
                     U 
                      
                     
                       ( 
                       
                         r 
                         i 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       α 
                        
                       
                         ( 
                         
                           
                             c 
                             i 
                           
                           C 
                         
                         ) 
                       
                     
                     + 
                     
                       β 
                        
                       
                           
                       
                        
                       τ 
                     
                     + 
                     ε 
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
         [0000]    wherein both α and β are parameters to give different weight to each term. τ is the term of taking into account the temporal characteristics. This includes from when calls are made to what the relative order of calls are. For example, it is possible to give more weight to morning calls than evening calls because the route from home H to work W might be more stable than that from work W to home H. ε is the error term. The error range of the measurements is considered by explicitly considering said ε term. Whilst the resolution of the route estimation can be enhanced by decreasing the distance d of a route, the straightforward choice is setting d as the diameter of the average coverage of a base station tower in an urban environment. After the computation of the utility function for N routes is finished, the most probable route, r*, that maximizes the utility function U can be chosen: 
         [0000]    
       
         
           
             
               
                 
                   
                     r 
                     * 
                   
                   = 
                   
                     
                       
                         arg 
                          
                         
                             
                         
                          
                         max 
                       
                       r 
                     
                      
                     
                        
                       
                         U 
                          
                         
                           ( 
                           r 
                           ) 
                         
                       
                        
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
         [0041]    As a particular example, U is computed for the three routes in  FIG. 1 . The results are showed in Table 1. Wherein three routes are labeled as r 0 , r 1 , and r 2  from the top to the bottom: U(r 0 )=2/10=0.2, U(rd=1/10=0.1 and U(r 2 )=6/10=0.6. As a result, r 2  is selected because it can explain the highest number of calls. 
         [0000]    
       
         
               
             
               
               
               
             
           
               
                 TABLE 1 
               
             
             
               
                   
               
               
                 Example of computing the utility function U 
               
             
          
           
               
                 Route r i   
                 Calls near the route c i   
                 Utility function value, U(r i ) 
               
               
                   
               
               
                 r 0   
                 2 
                  2/10 = 0.2 
               
               
                 r 1   
                 1 
                  1/10 = 0.1 
               
               
                 r 2   
                 6 
                  6/10 = 0.6 
               
               
                   
               
             
          
         
       
     
         [0042]    According to an alternative, as previously said, different types of location data can be used for computing the utility function U. For instance, it can be used GPS traces and/or hand-off patterns and/or network strength data that measures the signal strength from the near towers, and/or even location-based service data, such as check-in to venues in Foursquare®, or geotagged tweets of a social network such as Twitter®. In each case, the utility function should be adapted in such location data as in equation 5. 
         [0000]    
       
         
           
             
               
                 
                   
                     U 
                      
                     
                       ( 
                       
                         r 
                         i 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       
                         α 
                         1 
                       
                        
                       
                         ( 
                         
                           
                             c 
                             i 
                           
                           C 
                         
                         ) 
                       
                     
                     + 
                     
                       
                         α 
                         2 
                       
                        
                       
                         ( 
                         
                           
                             g 
                             i 
                           
                           G 
                         
                         ) 
                       
                     
                     + 
                     
                       
                         α 
                         3 
                       
                        
                       
                         ( 
                         
                           
                             l 
                             i 
                           
                           L 
                         
                         ) 
                       
                     
                     + 
                     … 
                     + 
                     
                       
                         α 
                         n 
                       
                        
                       
                         ( 
                         
                           
                             h 
                             i 
                           
                           H 
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where C is the location data corresponding to CDRs, G corresponds to GPS data, L is the location-based service data, H is the hand-off pattern data, and so on with the rest of location data that can be used for computing the utility function. The numerator in each term is the trace captured near the route, r i . The parameter, α i , in each term shows the different weight for each data. In general, the data of finer resolution might have the higher weight. 
         [0043]    In the exemplary embodiment showed in  FIG. 1 , intermediate points or anchor points AP can be added, as a perfection of the present invention, usually where the user is likely to pass through, as illustrated in  FIG. 3 . Preferably, a candidate anchor point AP would be where people or users make many calls, where a popular location is, or where the highway is. The route calculation engine gives the optimal route between two locations. Although it may happen that the optimal route change due to traffic conditions, road availability, or individual preference. For that reason, it is important to consider other alternative points in order to allow computing the optimal route between the locations. For instance, when a user brings one&#39;s children to their school, one&#39;s commuting route should pass through those schools, even if the school is not close to the optimal route. Other possible scenarios like this could be: visiting a family after work, going to gym after work, having breakfast before work in a café, etc. 
         [0044]    The dashed line in  FIG. 3  is the optimal route between perturbed home PH and work PW locations satisfying geographic features, and the solid line is the route that considers the anchor point where the individual makes many calls. Adding anchor points to the route makes the route more realistic. 
         [0045]    In order to define said anchor points APs an anchor score, A(T i ), is defined for each base station tower T i , as the proportion of location data, in this case calls, involving the base station tower T i  as in equation 6. 
         [0000]    
       
         
           
             
               
                 
                   
                     A 
                      
                     
                       ( 
                       
                         T 
                         i 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       c 
                        
                       
                         ( 
                         
                           T 
                           i 
                         
                         ) 
                       
                     
                     C 
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
           
         
       
     
         [0046]    As similar with the previous example, the term in right-hand side could be a quadratic form or polynomial form as in equation 7 
         [0000]    
       
         
           
             
               
                 
                   
                     A 
                      
                     
                       ( 
                       
                         T 
                         i 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       ( 
                       
                         
                           c 
                            
                           
                             ( 
                             
                               T 
                               i 
                             
                             ) 
                           
                         
                         C 
                       
                       ) 
                     
                     n 
                   
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
           
         
       
     
         [0047]    After computing the anchor score of each tower A(T i ), if anchor score of base station tower 1 is more than threshold t, the method sets the base station tower 1 as an anchor point AP that a user must go through. As a result, the number of anchor points APs could be more than one when anchor score of multiple towers are more than threshold t. During this process, the number of anchor points APs can be limited to a specific number in order to avoid over-fitting. 
         [0048]    Preferably, anchor points APs are added to the route by two different methods. One way is explicitly dividing the route by the anchor point AP; first, the route is found between home H and the anchor point AP, and the anchor point AP to home H. In this case, it is possible to make perturbations P of the anchor point AP as well. It could bring more accurate route but requires more requests to route calculation engines. The other way is querying web-mapping services to go through the anchor point AP. In this case, it does not consider the variations on anchor points APs within base station coverage, so it could be less accurate than the first mode, but it requires fewer requests to route calculation engines. It is a trade-off between the accuracy and the time (resource) complexity relating with route calculation engines. 
         [0049]    On another hand, there are many methodologies to estimate the basic demographic information of users based on CDRs. For instance it is possible that for a user making more and longer calls, the user is likely to be a woman rather than a man. Through this process it is not tried to de-anonymized but add another layer of information of anonymous users, even preserving the privacy of basic characteristics of users based on CDRs after this estimation. This basic information could be used for enhancing the accuracy of the estimation because such demographic information is an indicator of user&#39;s preference. 
         [0050]    For example, in a scenario where the volume of CDRs is not enough the route estimation is very sensitive to few irregular calls because there are not many evidences (calls) along the commuting routes. Thus, it is not surprising even multiple routes, r A , r B , and r C , have the same values of utility function. However, the demographic information can help to pick one of three routes. Considering that r A  is going through a gym, r B  is going through a cosmetic center, and there are nothing special around r C , if a user is a man, it is possible to think r A  has higher probability of being the commuting route of the user than r B  or r C . If the user is a woman, we think r B  as a candidate route. More sophisticated estimations&#39; can be done with detailed information of user&#39;s preference. 
         [0051]    In reference know to  FIG. 4 , it is showed an overview of the implementation of the present invention. First, raw location data LD, for instance CDRs, are preprocessed in preprocessing unit  1  which filters noises or errors from said CDRs. With preprocessed CDRs, the home and work identification unit  2  runs. This unit  2  identifies home H and work W locations based on CDRs. Here is possible to consider extra input EI, such as billing addresses. Once home H and work W locations are identified, perturbation unit  3  makes perturbation of home and work locations. Perturbed locations can be generated from some probability distributions, such as Gaussian or uniform distribution, within cell coverage. The probability distribution generator  3 . 1  helps this process. Then, the querying unit  4  queries perturbed home and work locations PH and PW to route calculation engine. These queries can be sent by a query scheduler  4 . 1  in distributed manner, for instance, every certain period of time depending on the characteristics or limitations of the route calculation engine, for the performance improvements. If the bottleneck is the rate limit of the route calculation engine, the query scheduler  4 . 1  can send queries to other route calculation engines. Moreover, considering the rate limit of the route calculation engines, query scheduler  4 . 1  can send queries to a variety of route calculation engines in round-robin manner, random manner, etc. After obtaining candidate routes CR between perturbed home and work locations PH and PW, utility function computing unit  5  calculates the utility function for each route with preprocessed CDRs. Route selection unit  6  chooses the best one route Re according to the utility of each route CRu. Then, the route estimation of the user finishes. 
         [0052]    The proposed method could be useful for traffic analysis and accurate provisioning. For instance, instead of the large-scale survey of commuters, the method of the first aspect can suggest where the new road is constructed. Through the location data collected in that city, identifies all routes of commuters and extract routes passing street that is always packed with many cars. Then, it gets the accurate O-D matrix of people whose commuting path is going through the street. By considering their commuting routes, the method can suggest a new road location maximizing the number of individuals that are helped by the new road. 
         [0053]    On another hand, it can also be useful for public transit optimization. From the location data, for instance CDRs, this method can accurately identify how many people use which means of transportation. Then, it can optimize the public transit systematically by considering the origin-destination of individuals. Or it can also be used for target advertising in order to identify potential customers. For instance, through this method, it can be known who passes on the street near a store, so discount coupons/advertisement can be sent to exactly those users who not only live near those stores but also commute near them. 
         [0054]    Finally, the proposed method can be applied as a means of car sharing between users having a similar commuting route.