Providers of communication services, such as telecommunication service providers, have detailed records of their subscribers' wireless activities. This information includes location—when a subscriber uses his or her cell phone and often a billing address for an account. Billing addresses can provide insight into where subscribers live, helping service providers better target and develop services and advertise those services. However, this information is not always an accurate representation of where the device is most often used and is not always available (e.g., for prepaid subscribers).
While lacking direct information specifying meaningful locations for subscribers, such as home or work locations, these service providers may have other information available to them that can be used to derive such locations. For example, when subscribers initiate communications or connect to a network of the service provider, both the cell tower location and a time may be captured.
The detailed description is set forth with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items or features.
This disclosure describes, in part, techniques for determining categorized locations for a user of a user device based at least on historical locations and associated times for the user device. Examples of categorized locations (also referred to herein, interchangeably, as “meaningful locations”) include but are not restricted to day-time and night-time locations during weekdays, which may serve as proxies for work and home locations, as well as travel locations and weekend locations. Any frequently visited location during a predictable time period can be viewed as a categorized location for different use cases.
Over a period of time, a user may engage in a variety of activities at a variety of locations with a user device. Such activities could include voice calls, video calls, messaging, transactions, social networking, and data consumption. The user device may also engage in activities independently of the user, such as connecting to a communication network. Data indicative of these activities, which may include pairs of associated locations and times, may be gathered and stored by a communication network, by the user device, or by another device or server. In some embodiments, the data may form or be a part of a multi-factor identity fingerprint.
A computing device associated with the communication network may receive this data, or at least location-time pairs included in the data, and may determine a categorized location for the user based at least in part on the location-time pairs. For example, the location-time pairs may indicate a number of locations that a user was at during the night-time over a time frame (e.g., last 1-3 months). The computing device may determine counts of the location-time pairs for each of the number of locations and may select one of those locations as a categorized location (e.g., as a home location) based on the counts (e.g., select location with the highest count or average locations with counts exceeding a threshold).
In some embodiments, upon receiving the data, the computing device determines the home network associated with the user device and excludes location-time pairs associated with activities occurring outside of the home network. In such embodiments, the home network acts as a filter, with the computing device assuming that the categorized location is within a geographic area associated with the home network.
In various embodiments, the computing device may also use other data in determining the categorized location of the user. For example, a billing address for the user or address of another subscriber (presumed to be a family member) on a same plan as the user may be known. Such information may be used in combination with the location-time pairs as a filter or as another location to be weighed with the locations of the location-time pairs.
In further embodiments, the computing device may also predict locations for the user at future times based on the location-time pairs. In such embodiments, the computing device may provide a user interface, and a user may specify a time, such as a current or future time. Based on the specified time and the location-time pairs, the computing device may predict a location for the user and may provide the predicted location in response to the query. In some embodiments, such a predicted location may be used in authenticating the identity of the user.
In various embodiments, the determined categorized location may be provided for any of a number of uses. For example, the categorized location may be provided for use in marketing or advertising, for identifying locations for prepaid customers of service provider associated with the communication network, or for use in authenticating the user.
The communication network 114 may log data associated with the calls 112, 124, and 128, data transmission 116, transaction 120, connection 130, and any other activities involving the user device 102 and communication network 114. The logged data may include at least identifiers of the locations 104-108 and the times 110, 118, 122, and 126 and may be provided to or retrieved by one or more computing devices 132. The computing device(s) 132 may include at least a data acquisition module 134 to receive or retrieve the logged data from the communication network 114, a data analysis module 136 to determine, based at least on the logged data, a categorized location of the user of the user device 102, and a user location module 138 to provide an indication of the categorized location.
The communication network 114 may be a telecommunication network providing telecommunication services, including data services, to the user device 102 and to a plurality of other devices of other users. The communication network 114 may be or include a public or private packet switched network, such as the Internet, circuit switched network, or combination of packet switched and circuit switched networks. The communication network 114 may include a plurality of computing devices, such as base stations and core network components, connected, for example, by one or more wide area networks (WAN), one or more local area networks (LAN), and/or one or more personal area networks (PAN). Communication between these ones of these computing devices of the communication network 114 may be wired, wireless, or both. These communications may utilize any sort of communication protocol known in the art for sending and receiving messages, such as the Transmission Control Protocol/Internet Protocol (TCP/IP), the Hypertext Transfer Protocol (HTTP), Extensible Messaging and Presence Protocol (XMPP), and/or the Session Initiation Protocol (SIP). Any one or more of these protocols may also be used to communicate with user devices 102 through base stations or other access points and to further communicate with one or more other networks.
At base stations or other core network components, the communication network 114 may log data associated with the calls 112, 124, and 128, data transmission 116, transaction 120, connection 130, and any other activities involving the user device 102. Such logged data may comprise voice call records, video call records, or other records storing location and time pairs associated with the activities. For example, the records may be associated with connections to the communication network 114 through wireless networks, data connections through base stations of the communication network 114, transactions utilizing the user device 102 to transmit payment or identify the user, text or video message transmissions, or social networking activity. In some embodiments, a device or devices associated with the communication network 114 may form the logged data into multi-factor identity fingerprints. Such identity fingerprints are discussed below in detail with regard to
The computing device(s) 132 may be implemented as any one or more computing devices, such as personal computers (PCs), laptop computers, workstations, server systems, mainframes, server farms, or any other computing devices. Also, modules and data of the computing device(s) 132 may be implemented in a single computing device or distributed among multiple computing devices. An example of such a computing device 132 is illustrated in greater detail in
In some embodiments, the data acquisition module 134 is configured to receive or retrieve location and time pairs from the communication network 114. The location and time pairs may be included in logged data or multi-factory identity fingerprints derived from the logged data. The data acquisition module 134 may retrieve the logged data and identity fingerprints, or may simply retrieve the location and time pairs from that logged data and those identity fingerprints.
In various embodiments, the data analysis module 136 is configured to perform at least one of determining a categorized location for a user of a user device 102 or predicting a location for the user of the user device 102. The data analysis module 136 may determine the categorized location based at least in part on the location and time pairs included in the logged data, and may also consider other data, such as billings addresses, information known about family members of the user, etc. The data analysis module 136 may also predict the location of the user at a future time based at least in part on the location and time pairs included in the logged data. The future time may, in some embodiments, be specified in a request received at a user interface offered by the computing device(s) 132.
In some embodiments, the user location module 138 may simply provide a categorized location or predicted location in response to a request or a query. In some embodiments, the user location module 138 may also provide a user interface or be associated with a user interface provided by another module.
The modules 134-138 are described in greater detail below with reference to
In various embodiments, system memory 204 is volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. As mentioned, the system memory 204 may store a data acquisition module 134 that is configured to receive or retrieve location and time pairs from the communication network 114. Such location and time pairs may be included in voice call data records 208 or in other records including location-time pair data 210. Also, the location and time pairs may be included in multi-factory identity fingerprints 212 derived from the logged data. The data acquisition module 134 may retrieve the voice call data records 208, other location-time pair data 210, and identity fingerprints 212 from any device of the communication network 114, such as a base station or a core network component. Also or instead, the voice call data records 208, other location-time pair data 210, and identity fingerprints 212 may be retrieved from user devices 102 or other devices connected to the communication network 114. Upon retrieving the voice call data records 208, other location-time pair data 210, identity fingerprints 212, the data acquisition module 134 may store the voice call data records 208, other location-time pair data 210, and identity fingerprints 212 in the system memory 204.
The voice call data records 208 may be any sort of voice call data records and may include information such as identifiers of calling or called parties, identifiers of base stations servicing the calling or called parties, locations of those base stations servicing the calling and called parties, a time at which the voice call was initiated, and a duration of the voice call.
The other location-time pair data 210 may be records associated with connections to the communication network 114 through wireless networks, data connections through base stations of the communication network 114, transactions utilizing the user device 102 to transmit payment or identify the user, video call data records, text or video message transmissions, or social networking activity.
The multi-factor identity fingerprints 212 may be data structures or other programmatic structures, classes or functions constructed by the communication network 114 or another device constructed from data indicative of user locations and behaviors over time. Each multi-factor identity fingerprint 212 includes a set of data, a plurality of modes, each mode specifying a subset of the set of data that is exposed for querying, and a mode selector operable to select one of the plurality of modes. Multi-factor identity fingerprints 212 are described in greater detail in U.S. application Ser. No. 13/612,755, entitled “Multi-Factor Profile and Security Fingerprint Analysis” and filed on Sep. 12, 2012. U.S. application Ser. No. 13/612,755 is hereby fully incorporated herein by this reference.
In various embodiments, the system memory 204 also stores the data analysis module 136, which may determine categorized locations for users based at least in part on location and time pairs for the user. The data analysis module 136 may determine the categorized locations periodically, or as data 208-212 is received, or in response to requests.
Before determining a categorized location for a user of a user device 102, the data analysis module 136 may filter the location and time pairs for the user device 102. For example, the data analysis module 136 may select location and time pairs associated with one time period (e.g., one month) or may select separately sets of location and time pairs associated with multiple historical time periods (e.g., one month and three months). When selecting multiple sets, one for each time period, the data analysis module 136 may determine a categorized location for each set/time period. The data analysis module 136 may also exclude location and time pairs associated with activities that occurred outside of a home market of the user. The data analysis module 136 may determine that a market is a home market by counting the number of location and time pairs associated with activities in that market, counting a total number of location and time pairs, dividing the per-market count by the total count, and determining if the result exceeds a threshold (e.g., thirty percent).
Once the data analysis module 136 has determined the set of location and time pairs to use in determining the categorized location, the data analysis module 136 may cluster the location and time pairs by location. The location in each location and time pair may be defined by a latitude and longitude, and the data analysis module 136 may cluster all location and time pairs whose intersections of latitude and longitude fall within a geographic area.
The data analysis module 136 may then determine counts of location and time pairs in each cluster that fall within a timeframe. For example, a given cluster may have a total count of twenty, and of those twenty, eight location and time pairs may fall within a daily timeframe of eight p.m. to six a.m.
In some embodiments, the data analysis module 136 may then simply select the cluster with the highest count of location and time pairs falling within the time frame and set one of the categorized location to the location associated with that cluster. For example, if the time frame is eight p.m. to six a.m., the location of the highest count cluster may be a categorized location such as a home location. If a daytime timeframe is used, the location may be regarded as the work location. In other embodiments, depending on usage patterns or other information, the home and work locations may be flipped.
In further embodiments, rather than simply selecting the highest count, the data analysis module 136 may determine the count of location and time pairs for a cluster that fall within a timeframe, determine a total count of location and time pairs that fall within the timeframe, divide the per-cluster count by the total count, and compare the result to a threshold (e.g., twenty-five percent). Each cluster associated with a result exceeding the threshold may be regarded as a primary cluster. Primary clusters may then be ranked, with the highest ranked selected and its associated location selected as the categorized location. Alternatively, the locations of the primary clusters may used to calculate a mean location, and the mean location may be selected as the categorized location. In some embodiments, such a calculation may involve giving different weights to different ones of the primary clusters based on their rank.
In various embodiments the data analysis module 136 may utilize other analysis data 216 in determining the categorized location for the user. Such other analysis data may include the user's billing address, billing addresses of other users sharing a communication service account with the user, or usage patterns for the user device at different locations. For example, the data analysis module 136 may determine that a first location is a home location and that a second location is a work location based on the location and time pairs. The billing address or usage pattern may indicate the reverse, however: that the second location is the home location. This may be because the user works nights. The data analysis module 136 may then flip the home location and work location based on the other analysis data.
The data analysis module 136 may also be configured to predict a location for a user, given a specified time and a set of location and time pairs for the user device 102 of the user. For example, the data analysis module 136 may determine the location in the location and time pairs that the user device 102 was at most frequently at the time of day corresponding to the specified time. In some embodiments, the data analysis module 136 may filter out locations that are outside of the user's home market or which are disqualified for some other reason.
In some embodiments, the system memory 204 further stores a user location module 138 configured to provide an identifier of the user device 102 along with the determined categorized location. Additionally or alternatively, the user location module 138 may be configured to provide a predicted location for a user at a specified time. The categorized location or predicted location may be used in marketing or advertising, for identifying locations for customers of service provider without billing addresses associated with the communication network 114, or for authenticating the user. The categorized location or predicted location may be provided to another program through a programmatic interface or may be provided by a user interface for viewing, such as a user interface provided by a user interface module 220. The categorized location or predicted location may also be provided by the user location module 138 either automatically or responsive to a request.
In further embodiments, the system memory 204 stores a user interface module 220 to provide a user interface that enables requesting of categorized locations or predicted locations for a user. Through the user interface, for example, a user may specify an individual or device of an individual, as well as a time, and may receive a location prediction for the individual for the specified time. In another example, the user interface may enable a user to specify a market (e.g., New York City) and get a count in return of users with categorized locations in that market. Returned information may be specified as text or with charts and other graphics.
In some embodiments, the processor(s) 222 is a central processing unit (CPU), a graphics processing unit (GPU), or both CPU and GPU, or any other sort of processing unit.
Computing device 132 also includes additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
In some embodiments, the transceivers 228 include any sort of transceivers known in the art. For example, transceivers 228 may include a radio transceiver that performs, in conjunction with an interface 230, the function of transmitting and receiving communications via an antenna. In various embodiments, the interfaces 230 are any sort of interfaces. Interfaces 230 may include a wired interface, such as an Ethernet interface, for wired network communications. Interfaces 230 may also or instead include any one or more of a wireless LAN interface, or a near field interface.
In various embodiments, the display 232 is a liquid crystal display or any other type of display commonly used with computing devices. For example, display 232 may be a touch-sensitive display screen, and can then also act as an input device or keypad, such as for providing a soft-key keyboard, navigation buttons, or the like.
In some embodiments, the output devices 234 include any sort of output devices known in the art, such as a display (already described as display 232), speakers, a vibrating mechanism, or a tactile feedback mechanism. Output devices 234 also include ports for one or more peripheral devices, such as headphones, peripheral speakers, or a peripheral display.
In various embodiments, input devices 236 include any sort of input devices known in the art. For example, input devices 236 may include a camera, a microphone, a keyboard/keypad, or a touch-sensitive display (such as the touch-sensitive display screen described above). A keyboard/keypad may be a push button numeric dialing pad (such as on a typical telecommunication device), a multi-key keyboard (such as a conventional QWERTY keyboard), or one or more other types of keys or buttons, and may also include a joystick-like controller and/or designated navigation buttons, or the like.
At 308, the computing device determines that a market is a home market based at least in part on whether a count of communications of the user device in the market divided by a total count of communications of the user device exceeds a threshold.
At 310, the computing device excludes from the set of location and time pairs a location and time pair that is associated with a communication engaged in by the user device outside of the home market of the user or a location and time pair that is associated with a communication engaged in by the user device that is not associated with market information.
At 312, the computing device determines a categorized location of the user of the user device based at least in part on the set of location and time pairs. At 314, the determining further comprises determining the categorized location based on the user's billing address, addresses of other users sharing a communication service account with the user, or usage patterns for the user device at different locations.
At 316, the computing device clusters the location and time pairs into different clusters based on latitude and longitude and counts for each cluster, location and time pairs within that cluster that are associated with communications of the user device which occur during a daily time frame. At 318, the computing device determines the cluster with the highest count of location and time pairs that are associated with communications of the user device which occur during the daily time frame and selects a location associated with the cluster having the highest count as the determined categorized location. Alternatively to 318, at 320, the computing device computes, for each cluster, a ratio of the count of time and location pairs for that cluster to a total number of time and location pairs, determines one or more clusters for which the ratio exceeds a threshold, and determines the categorized location by averaging locations associated with the determined one or more clusters.
At 322, the computing device predicts a location of the user device for a future time based at least in part on the set of location and time pairs.
At 324, the computing device provides the categorized location for use in marketing, advertising, or for identifying locations for customers of service provider associated with the communication network.
At 326 the computing device provides the categorized location for use in authenticating the user.
At 406, the computing device predicts a location for the user based at least in part on the time and on a set of location and time pairs for a user device of the user. At least one of the location and time pairs may be associated with a communication of the user device over a communication network. At 408, at least one of the location and time pairs is associated with a voice call data record.
At 410, the computing device provides the predicted location of the user in response to the request. At 412, the predicted location may then be used in authenticating the user.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claims.
This patent application claims priority to and is a continuation of U.S. Utility patent application with Ser. No. 13/931,602, filed Jun. 28, 2013. Application Ser. No. 13/931,602 is fully incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 13931602 | Jun 2013 | US |
Child | 15074548 | US |