Method and apparatus for federated location fingerprinting

文档序号:7869 发布日期:2021-09-17 浏览:28次 中文

1. An apparatus comprising at least one processor and at least one non-transitory memory including computer program code instructions configured to, when executed, cause the apparatus at least to:

providing a machine learning model to a client;

receiving a state vector from the client;

determining a representative location of the client based on using the state vector as an input to the machine learning model; and

providing location-related services or information to the client based on the representative location of the client.

2. The apparatus of claim 1, wherein the representative location of the client comprises a context vector.

3. The apparatus of claim 2, wherein the context vector comprises an indication of a point of interest count for a respective category of a plurality of point of interest categories.

4. An apparatus of claim 1, wherein the apparatus is further caused to:

providing a request to the client for a client-updated machine learning model; and

a representation of a client-updated machine learning model is received.

5. An apparatus of claim 4, wherein the apparatus is further caused to:

updating a machine learning model based at least in part on the representation of the client-updated machine learning model.

6. The apparatus of claim 5, wherein causing the apparatus to update a machine learning model based at least in part on the representation of the client updated machine learning model comprises causing the apparatus to:

multiplying the learning rate by an average value of the machine learning models updated by the plurality of clients to obtain an update increment; and

and adding the updated increment and the machine learning model to obtain an updated machine learning model.

7. An apparatus of claim 6, wherein the apparatus is further caused to:

providing the updated machine learning model to the client to facilitate reliance on the updated machine learning model instead of the machine learning model.

8. A computer program product comprising at least one non-transitory computer-readable storage medium having computer-executable program code instructions stored therein, the computer-executable program code instructions comprising program code instructions for:

providing a machine learning model to a client;

receiving a state vector from the client;

determining a representative location of the client based on using the state vector as an input to the machine learning model; and

providing location-related services or information to the client based on the representative location of the client.

9. The computer program product of claim 8, wherein the representative location of the client comprises a context vector.

10. The computer program product of claim 9, wherein the context vector comprises an indication of a point of interest count for a respective category of a plurality of point of interest categories.

11. The computer program product of claim 8, further comprising program code instructions for:

providing a request to the client for a client-updated machine learning model; and

a representation of a client-updated machine learning model is received.

12. The computer program product of claim 11, further comprising program code instructions for:

updating a machine learning model based at least in part on the representation of the client-updated machine learning model.

13. The computer program product of claim 12, wherein the program code instructions for updating a machine learning model based at least in part on the representation of the client updated machine learning model comprise program code instructions for:

multiplying the learning rate by an average value of the machine learning models updated by the plurality of clients to obtain an update increment; and

and adding the updated increment and the machine learning model to obtain an updated machine learning model.

14. The computer program product of claim 13, further comprising program code instructions for:

providing the updated machine learning model to the client to facilitate reliance on the updated machine learning model instead of the machine learning model.

15. A method, comprising:

providing a machine learning model to a client;

receiving a state vector from the client;

determining a representative location of the client based on using the state vector as an input to the machine learning model; and

providing location-related services or information to the client based on the representative location of the client.

16. The method of claim 15, wherein the representative location of the client comprises a context vector.

17. The method of claim 16, wherein the context vector comprises an indication of a point of interest count for a respective category of a plurality of point of interest categories.

18. The method of claim 15, further comprising:

providing a request to the client for a client-updated machine learning model; and

a representation of a client-updated machine learning model is received.

19. The method of claim 18, further comprising:

updating a machine learning model based at least in part on the representation of the client-updated machine learning model.

20. The method of claim 19, wherein updating a machine learning model based at least in part on the representation of the client updated machine learning model comprises:

multiplying the learning rate by an average value of the machine learning models updated by the plurality of clients to obtain an update increment; and

and adding the updated increment and the machine learning model to obtain an updated machine learning model.

Background

Maps have been used for centuries to provide route geometric and geographic information. Conventional paper maps containing static images of roads and geographic features from historical snapshots have given way to digital maps presented on computers and mobile devices and enhanced navigation through the use of graphical user interfaces.

Digital maps and navigation may provide dynamic route guidance to a user as the user travels along a route, or provide general assistance to the user, including point of interest identification or general information about a location. Typical digital maps and navigation systems may have a large amount of information available.

The popularity of mobile devices and devices capable of tracking the location of a person's movements has produced a vast amount of location-based data, the usefulness of which remains under investigation. Knowing the movement of people within an area can provide information to various consumers of such data. The location information may include the location and movement of pedestrians, riders, vehicles, etc., so that the data may be used in various ways by various entities to learn about the movement of people, vehicles, etc. Data consumers may include traffic planners, merchants, developers (residential/commercial), city planners, and the like. However, data privacy and anonymity are concerns for many users who may want to limit how much information is shared.

Disclosure of Invention

Accordingly, a method, apparatus and computer program product are provided for identifying a context of a client, and more particularly, for identifying a context of a client while maintaining data privacy and anonymity. Embodiments provided herein include an apparatus comprising at least one processor and at least one non-transitory memory including computer program code instructions. The computer program code instructions are configured to, when executed, cause an apparatus to at least: receiving a machine learning model; identifying at least one of a location or a trajectory; generating a context vector based on a context of at least one of the location or the trajectory; using a machine learning model to perform dimension reduction on the context vector to generate a state vector; providing a state vector; and receiving location-related information or services in response to the state vector.

Causing the device to generate the context vector based on the context of at least one of the location or the trajectory may include causing the device to: identifying a plurality of points of interest proximate to at least one of a location or a trajectory; identifying a plurality of categories of interest points; determining a point of interest count for the respective category; and generating a context vector based on the point of interest counts of the respective categories. Causing the device to generate the context vector based on the point of interest counts of the respective categories may include causing the device to generate the context vector based on a relative relationship of the point of interest counts of the respective categories to an average point of interest count of the respective categories.

The apparatus of some embodiments may be caused to store the context vector in memory along with previously stored context vectors for the plurality of stored context vectors. The apparatus of some embodiments may be caused to: receiving a request for the updated machine learning model of the client; generating a client-updated machine learning model using the machine tilt model and the plurality of stored context vectors; and providing a representation of the client updated machine learning model in response to a request for the client updated machine learning model.

According to some embodiments, an apparatus may be caused to: receiving a server updated machine learning model, wherein the server updated machine learning model is based at least in part on a representation of the client updated machine learning model; and relying on the server updated machine learning model instead of the machine learning model. The apparatus may be caused to: and establishing an increment between the client-side updated machine learning model and the machine learning model, wherein the representation of the client-side updated machine learning model comprises the client-side updated machine learning model and the increment between the machine learning models. The representation of the client-updated machine learning model may include the client-updated machine learning model.

Embodiments provided herein may include a computer program product having at least one non-transitory computer-readable storage medium having computer-executable program code instructions stored therein. The computer-executable program code instructions may include program code instructions for: receiving a machine learning model; identifying at least one of a location or a trajectory; generating a context vector based on a context of at least one of the location or the trajectory; using a machine learning model to perform dimension reduction on the context vector to generate a state vector; providing a state vector; and receiving location-related information or services in response to the state vector.

The program code instructions for generating the context vector based on the context of the at least one of the location or the trajectory may include program code instructions for: identifying a plurality of points of interest proximate to at least one of a location or a trajectory; identifying a plurality of categories of interest points; determining a point of interest count for the respective category; and generating a context vector based on the point of interest counts of the respective categories. The program code instructions for generating the context vector based on the point of interest counts of the respective categories may include program code instructions for generating the context vector based on a relative relationship of the point of interest counts of the respective categories to an average point of interest count of the respective categories.

Embodiments may include program code instructions for storing a context vector in a memory along with a previously stored context vector for a plurality of stored context vectors. Embodiments may include program code instructions for: receiving a request for the updated machine learning model of the client; generating a client-updated machine learning model using the machine learning model and the plurality of stored context vectors; and providing a representation of the client updated machine learning model in response to a request for the client updated machine learning model.

According to some embodiments, a computer program product may include program code instructions for: receiving a server updated machine learning model, wherein the server updated machine learning model is based at least in part on a representation of the client updated machine learning model; and relying on the server updated machine learning model instead of the machine learning model. Embodiments may include program code instructions for: and establishing an increment between the client-side updated machine learning model and the machine learning model, wherein the representation of the client-side updated machine learning model comprises the client-side updated machine learning model and the increment between the machine learning models. The representation of the client-updated machine learning model may include the client-updated machine learning model.

Embodiments provided herein may include a method comprising: receiving a machine learning model; identifying at least one of a location or a trajectory; generating a context vector based on a context of at least one of the location or the trajectory; using a machine learning model to perform dimension reduction on the context vector to generate a state vector; providing a state vector; and receiving location-related information or services in response to the state vector.

According to some embodiments, generating the context vector based on the context of at least one of the location or the trajectory may include: identifying a plurality of points of interest proximate to at least one of a location or a trajectory; identifying a plurality of categories of interest points; determining a point of interest count for the respective category; and generating a context vector based on the point of interest counts of the respective categories. Generating the context vector based on the point of interest counts for the respective categories may include generating the context vector based on a relative relationship of the point of interest counts for the respective categories to an average point of interest count for the respective categories. The method may include storing the context vector in a memory along with previously stored context vectors for a plurality of stored context vectors.

Embodiments provided herein may include an apparatus comprising: means for receiving a machine learning model; means for identifying at least one of a location or a trajectory; means for generating a context vector based on a context of at least one of the location or the trajectory; means for reducing dimensions of the context vector using a machine learning model to generate a state vector; means for providing a state vector; and means for receiving location-related information or services in response to the state vector.

According to some embodiments, the means for generating a context vector based on the context of at least one of the location or the trajectory may comprise: means for identifying a plurality of points of interest proximate to at least one of a location or a trajectory; means for identifying a category of a plurality of points of interest; means for determining a point of interest count for the respective category; and means for generating a context vector based on the point of interest counts of the respective categories. The means for generating a context vector based on the point of interest counts of the respective categories may comprise means for generating a context vector based on a relative relationship of the point of interest counts of the respective categories to an average point of interest count of the respective categories. An example apparatus may include means for storing a context vector in a memory along with previously stored context vectors for a plurality of stored context vectors.

Embodiments provided herein may include an apparatus having at least one processor and at least one non-transitory memory including computer program code instructions. The computer program code instructions are configured to, when executed, cause an apparatus to at least: providing a machine learning model to a client; receiving a state vector from a client; determining a representative location of the client based on using the state vector as an input to a machine learning model; and providing location-related services or information to the client based on the representative location of the client. A representative location of a client may contain a context vector. The context vector may include indications of point of interest counts for respective ones of a plurality of point of interest categories.

According to some embodiments, an apparatus may be caused to: providing a request to the client for the updated machine learning model of the client; and receiving a representation of the client-updated machine learning model. The apparatus may be caused to update the machine learning model based at least in part on the client updated representation of the machine learning model. Causing the apparatus to update the machine learning model based at least in part on the representation of the client-updated machine learning model may include causing the apparatus to: multiplying the learning rate by an average value of the machine learning models updated by the plurality of clients to obtain an update increment; and adding the updated increment and the machine learning model to obtain an updated machine learning model. The apparatus may be caused to: the updated machine learning model is provided to the client to facilitate reliance on the updated machine learning model instead of the machine learning model.

Embodiments provided herein may include a computer program product having at least one non-transitory computer-readable storage medium having computer-executable program code instructions stored therein. The computer program code instructions include program code instructions for: providing a machine learning model to a client; receiving a state vector from a client; determining a representative location of the client based on using the state vector as an input to a machine learning model; and providing location-related services or information to the client based on the representative location of the client. A representative location of a client may contain a context vector. The context vector may include indications of point of interest counts for respective ones of a plurality of point of interest categories.

The computer program product of some embodiments may include program code instructions for: the machine learning model is updated based at least in part on the client-updated representation of the machine learning model. The program code instructions for updating the machine learning model based at least in part on the representation of the client updated machine learning model may include program code instructions for: multiplying the learning rate by an average value of the machine learning models updated by the plurality of clients to obtain an update increment; and adding the updated increment and the machine learning model to obtain an updated machine learning model. Embodiments may include program code instructions for providing an updated machine learning model to a client to facilitate reliance on the updated machine learning model instead of the machine learning model.

Embodiments provided herein may include a method comprising: providing a machine learning model to a client; receiving a state vector from a client; determining a representative location of the client based on using the state vector as an input to a machine learning model; and providing location-related services or information to the client based on the representative location of the client. A representative location of a client may contain a context vector. The context vector may include indications of point of interest counts for respective ones of a plurality of point of interest categories.

The method may comprise: providing a request to the client for the updated machine learning model of the client; and receiving a representation of the client-updated machine learning model. The method may include updating the machine learning model based at least in part on the client updated representation of the machine learning model. Updating the machine learning model based at least in part on the representation of the client-updated machine learning model may include: multiplying the learning rate by an average value of the machine learning models updated by the plurality of clients to obtain an update increment; and adding the updated increment and the machine learning model to obtain an updated machine learning model.

Embodiments provided herein may provide an apparatus comprising: means for providing a machine learning model to a client; means for receiving a state vector from a client; means for determining a representative location of the client based on using the state vector as an input to a machine learning model; and means for providing location-related services or information to the client based on the representative location of the client. A representative location of a client may contain a context vector. The context vector may include indications of point of interest counts for respective ones of a plurality of point of interest categories.

An example apparatus may include: means for providing a request to a client for a client-updated machine learning model; and means for receiving a representation of the client-updated machine learning model. The example apparatus may include means for updating the machine learning model based at least in part on the representation of the client-updated machine learning model. The means for updating the machine learning model based at least in part on the representation of the client-updated machine learning model may include: means for multiplying the learning rate by an average of the plurality of client updated machine learning models to obtain an update increment; and means for adding the update delta to the machine learning model to obtain an updated machine learning model.

The above summary is provided merely to summarize some example embodiments to provide a basic understanding of some aspects of the present invention. Therefore, it will be understood that the above-described embodiments are merely examples and should not be construed as limiting the scope or spirit of the present invention in any way. It will be understood that the scope of the present invention includes many potential embodiments in addition to those summarized herein, some of which are described further below.

Drawings

Having thus described certain example embodiments of the disclosure in general terms, reference will hereinafter be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:

fig. 1 is a schematic diagram of an example apparatus configured to perform some of the operations described herein, according to an example embodiment of the present disclosure;

FIG. 2 illustrates a map including multiple tracks where text of the map beyond a numeric element identifier is unimportant, according to an example embodiment of the present disclosure;

FIG. 3 illustrates an indication of the number of points of interest of various categories proximate to the trajectory of FIG. 2, according to an example embodiment of the present disclosure;

FIG. 4 illustrates a map including a number of tracks where text of the map beyond a numeric element identifier is unimportant, according to an example embodiment of the present disclosure;

FIG. 5 illustrates the map of FIG. 4 with a clustering technique applied to the tracks to identify three clusters of tracks, where text of the map beyond the numeric element identifiers is unimportant, in accordance with an example embodiment of the present disclosure;

FIG. 6 illustrates an indication of the number of points of interest of various categories proximate to the cluster of FIG. 6, according to an example embodiment of the present disclosure;

FIG. 7 illustrates a system including a server and a plurality of clients according to an example embodiment of the present disclosure;

FIG. 8 illustrates the system of FIG. 7 in which a client provides a state vector to a server, according to an example embodiment of the present disclosure;

FIG. 9 illustrates the system of FIG. 7 in which a client is selected for updating a machine learning model of a server, according to an example embodiment of the present disclosure;

FIG. 10 illustrates the system of FIG. 7 in which a client establishes updates to a machine learning model, according to an example embodiment of the present disclosure;

FIG. 11 illustrates the system of FIG. 7 in which a server updates a machine learning model based on updates from a client, according to an example embodiment of the present disclosure;

FIG. 12 illustrates the system of FIG. 7 in which a server assigns updated machine learning models to clients, according to an example embodiment of the present disclosure;

FIG. 13 is a flow diagram of a method of identifying a context of a client while maintaining data privacy and anonymity, according to an example embodiment of the present disclosure; and

fig. 14 is another flow diagram of a method of identifying a context of a client while maintaining data privacy and anonymity, according to an example embodiment of the present disclosure.

Detailed Description

Some embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, various embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout. As used herein, the terms "data," "content," "information" and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention.

Example embodiments in accordance with the present disclosure provide a method, apparatus, and computer program product for identifying a context of a client while maintaining data privacy and anonymity. Users of mobile devices or clients want to provide them with relevant and useful information; however, users often want to share as little personal data and information as possible. These requirements are conflicting, as the best way to provide useful information to a user is to know as much of the user as possible.

Users analyzing advertising supported and location based services may provide useful information to users while associating those users with merchants that may provide products and services to the users. Understanding the context of a user is an important aspect of advertising technology so that relevant information can be presented to the user. Bombarding the user with irrelevant advertisements makes the user insensitive to the advertisements and makes the user get bored with the advertisements, thereby reducing the effectiveness of the advertisements. Advertisers want to target potential customers related to their products and services to maximize their advertising spending. Advertisers purchase advertising impressions for a user population such as "coffee shop consumers" or "frequent guests". For mobile applications, location may facilitate such subdivision; however, this may compromise privacy. Embodiments described herein provide privacy preserving machine learning to address a tension between the usefulness of machine learning methods and the privacy costs of their users. Embodiments enable a user's context to be identified with high accuracy while maintaining user privacy.

Product and service providers offering online services may want to improve user segmentation by considering user location. A straightforward approach is for the user to send only their location to the service provider, and the service identifies additional information about the location (e.g., the types of points of interest or POIs around the location) for further inference. However, this comes at the cost of a high frequency revealing the exact location of the user. This approach is under increasingly strict scrutiny as users become increasingly aware of the amount of data that can be shared about them, so mobile operating systems are now actively counteracting such approaches and alerting users as different mobile device applications track their locations.

Embodiments provided herein do not perform user segmentation based on the actual location of the user, but rather have their client devices compute their states in a highly reduced-dimension abstract state space. The model that converts the location and its context into an abstract state space is computed and updated in a distributed "federated" manner, so that the observed location and location context can be used to train the model without disclosing its exact context. A user (e.g., an advertiser or service provider) of the received information may restore the reduced-dimension location from the original space back to the prototype feature vector, and thus may learn the average context of the user sending the particular state.

Fig. 1 is a schematic diagram of an example apparatus configured to perform some of the operations described herein, particularly the operations of identifying a context, generating feature vectors based on the context, and establishing a state of a client device. The example apparatus may optionally be configured to receive a state of the client device, and based on a machine learning model of the state vector, identify a feature vector and estimate a context of the client device. Apparatus 20 is an example embodiment that may be implemented by or associated with any of a variety of computing devices, including or otherwise associated with devices configured to provide advanced driver assistance features. For example, the computing device may be embodied or partially embodied as a mobile terminal, such as a Personal Digital Assistant (PDA), a mobile phone, a smartphone, a personal navigation device, a tablet computer, a camera, or any combination of the foregoing systems. The computing device of some embodiments may be a navigation system or an Advanced Driver Assistance System (ADAS) of a vehicle. Optionally, the computing device may be a stationary computing device, such as a desktop computer, a server, or the like.

Optionally, the apparatus may be embodied by or associated with a plurality of computing devices that are in communication with each other or otherwise networked with each other such that various functions performed by the apparatus may be divided among the plurality of computing devices operating in cooperation with each other.

The apparatus 20 may be equipped with any number of sensors 21, such as a Global Positioning System (GPS), an accelerometer, an image sensor, and/or a gyroscope. Any of the sensors may be used to sense position, movement, location with respect to a device for identifying the position of the deviceOr directional information as described herein according to example embodiments. In some example embodiments, such sensors may be implemented in a vehicle or other remote device (e.g., mobile device), and the detected information may be, for example, by Near Field Communication (NFC), including but not limited to BluetoothTMCommunications, Wi-Fi communications, etc.) to device 20.

Apparatus 20 may include, be associated with, or otherwise in communication with, a communication interface 22, a processor 24, a memory device 26, and a user interface 28. In some embodiments, the processor (and/or the coprocessor or any other processing circuitry assisting or otherwise associated with the processor) may communicate with the memory device over a bus that is used to transfer information between components of the apparatus. The memory device may be non-transitory and may include, for example, one or more volatile and/or non-volatile memories. In other words, for example, a memory device may be an electronic storage device (e.g., a computer-readable storage medium) that includes a gate configured to store data (e.g., bits) that may be retrieved by a machine (e.g., a computing device, such as a processor). The memory devices may be configured to store information, data, content, applications, instructions or the like for enabling the apparatus to perform various functions in accordance with example embodiments of the present invention. For example, the memory device may be configured to buffer input data for processing by the processor. Additionally or alternatively, the memory device may be configured to store instructions for execution by the processor.

The processor 24 may be embodied in a number of different ways. For example, a processor may be embodied as one or more of various hardware processing means such as a coprocessor, a microprocessor, a controller, a Digital Signal Processor (DSP), a processing element with or without an accompanying DSP, or various other processing circuitry including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like. Thus, in some embodiments, a processor may include one or more processing cores configured to execute independently. A multi-core processor may implement multiprocessing within a single physical package. Additionally or alternatively, the processor may include one or more processors configured in series via a bus to enable independent execution of instructions, pipelining, and/or multithreading.

In an example embodiment, the processor 24 may be configured to execute instructions stored in the memory device 26 or otherwise accessible to the processor. Alternatively or in addition, the processor may be configured to perform hard-coded functionality. Thus, whether configured by hardware or software methods, or by a combination thereof, a processor may represent an entity (e.g., physically embodied in circuitry) capable of performing operations according to embodiments of the present invention while configured accordingly. Thus, for example, when the processor is embodied as an ASIC, FPGA, or the like, the processor may be specifically configured hardware for performing the operations described herein. Alternatively, as another example, when the processor is embodied as an executor of software instructions, the instructions may specifically configure the processor to perform the algorithms and/or operations described herein when the instructions are executed. However, in some cases, the processor may be a processor of a dedicated device (e.g., a computing device) configured to employ embodiments of the present invention by further configuring the processor with instructions for performing the algorithms and/or operations described herein. A processor may include, among other things, a clock, an Arithmetic Logic Unit (ALU), and logic gates configured to support operation of the processor.

Apparatus 20 of an example embodiment may also include or otherwise be in communication with a user interface 28. The user interface may include a touch screen display, speakers, physical buttons, and/or other input/output mechanisms. In an example embodiment, processor 24 may include user interface circuitry configured to control at least some functions of one or more input/output mechanisms. The processor and/or user interface circuitry comprising the processor may be configured to control one or more functions of one or more input/output mechanisms via computer program instructions (e.g., software and/or firmware) stored on a memory accessible to the processor (e.g., memory device 24, etc.).

Apparatus 20 of an example embodiment may also optionally include a communication interface 22, which may be any means, such as a device or circuitry embodied in hardware or a combination of hardware and software, configured to receive and/or transmit data from other electronic devices in communication with the apparatus, such as through NFC as described above. Additionally or alternatively, the communication interface 22 may be configured to communicate over a global system for mobile communications (GSM) such as, but not limited to, Long Term Evolution (LTE). In this regard, the communication interface 22 may include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communication with a wireless communication network. Additionally or alternatively, communication interface 22 may include circuitry for interacting with one or more antennas to cause signals to be transmitted via the one or more antennas or to process the reception of signals received via the one or more antennas. In some environments, the communication interface 22 may optionally support wired communication and/or may alternatively support a vehicle-to-vehicle or vehicle-to-infrastructure wireless link. Further, signals received via the communication interface 22 may be processed for identifying a location of the device.

Embodiments described herein identify a client's context while maintaining data privacy and anonymity. According to an example embodiment, location fingerprinting location may be used to identify the context of the client device. Fig. 2 illustrates a map 100 of an area. Identified within the map 100 are four tracks 102, 104, 106, and 108. The trajectory represents a path obtained by a user, or more specifically, a mobile device of the corresponding user. In identifying a trajectory, embodiments are similarly applied to a single location rather than a path.

For each of the four tracks 102, 104, 106, and 108, the points of interest proximate to each point or track are analyzed and the number of points of interest for each category is counted. The points of interest may include any of a wide variety of places, such as restaurants, businesses, monuments, museums, kiosks, and the like. In essence, a point of interest is any service, location, etc. that may be sought by a user. Fig. 3 illustrates four tracks 102, 104, 106, and 108 represented by track identifiers (traj _ id) having an indication of the number of points of interest for various categories 110 around each track. As shown, categories 110 are identified as business services, administrative and query services, lawyers, restaurants, and the like.

The term "proximity" refers to a distance or distance and direction (e.g., distance and heading) around a point or trajectory of interest. Distance or distance and direction may be tunable parameters, where an operator or service provider may tune the embodiment based on the accuracy of establishing a location by context and state vectors. Where proximity of points of interest may be considered a distance parameter (e.g., radius), a line of sight or field of view parameter, or the like. Additionally, a proximity in which points of interest may be considered may be established based in part on the density of the points of interest. For example, if "close" is established, as within a predefined radius, the radius may be relatively small in an environment with a high density of points of interest, such as in a city or metropolitan environment. In environments with a low density of points of interest, such as in rural or even suburban environments, the radius may be relatively large.

While the location point is established as a single location at a single point in time, the trajectory contains two or more locations over a period of time. The trajectory may be considered for use in federal learning when establishing the location of the trajectory based on location points within a predetermined time frame (e.g., thirty second intervals), trailing time periods (e.g., the last two minutes of location information), paths within a fixed-size geofence, segments of the total path of the device, etc. Thus, a trajectory may be part of a path of travel or potentially all of a path of travel. Embodiments described herein may use a trajectory to identify location information for a sequence of locations within the trajectory, providing context-aware information to a device for the sequence of locations rather than a single location point.

For each track, an indication of the number of points of interest for each category is displayed in a graph, where the number is indicated by a relative measure. As shown at 112, the relative relationship of the number of points of interest for each category to the average of the trajectory 102 is indicated. Similarly, at 114, 116, and 118, the relative relationship of the number of points of interest for each category to the average of the traces 104, 106, and 108 is indicated. For example, the track 102 contains much higher commercial services than the average number of commercial services in the vicinity of the track 102, while the track 104 has substantially fewer commercial services than the average. Track 108 is closer to more real estate services than any of the other tracks. The category counts of fig. 3 illustrate relative counts of points of interest rather than absolute counts to illustrate more pronounced patterns and to generally counteract the visual effect of some categories having higher counts.

112. 114, 116, and 118 represent high-dimensional vectors for each respective track. Although fig. 3 depicts ten categories, there are hundreds of point of interest categories that may be used with example embodiments of the present disclosure. Fig. 3 illustrates ten categories that may be selected to best reflect the distinction between tracks.

The high-dimensional vectors created as described above may be reduced in dimension to produce a generalized location fingerprint. The embodiment may be dimension reduced by clustering techniques, where the position or trajectory may be directly reduced to one of several categories (e.g., a preset number of three categories). Defining those categories may be based on machine learning and on input data. Expanding on the foregoing example, FIG. 4 illustrates a thousand tracks 202 displayed in the area of the map 200. By applying clustering techniques to point of interest category vectors, such as those illustrated in fig. 3, several categories may be obtained. Three clusters are illustrated in fig. 5, and the POI vectors of the three clusters are shown in fig. 6.

As shown, the cluster 204 of fig. 5 contains a much higher number of restaurants, while consumer services do not exist. Cluster 206 contains a lower density of restaurants but a higher density of consumer services, while cluster 208 illustrates a higher density of restaurants and a relatively lower density of consumer services. These clusters provide an explanation of how users associated with a common trajectory of the clusters may be suitable for segmentation without knowing their exact location. For example, users in the track of cluster 204 are close to many restaurants, and typically not close to any consumer service.

Embodiments described herein may optionally reduce the number of trajectories and feature vectors to a continuous lower-dimensional state. Example embodiments may reduce this to an n-dimensional space, where n is significantly lower than the original dimension. This may be accomplished, for example, by a similar method as described above with respect to the clustering technique, but for each data point expresses the degree to which it belongs to each cluster, rather than just the index that is closest to the cluster. Optionally, a more specifically constructed approach may be employed, such as the "t-SNE" technique of visualizing high dimensional data by giving each data point a position in a two or three dimensional map, or a more deterministic self-organizing map (SOM) algorithm may be employed that ensures specific properties of the mapping from input to output space. For example, many position or trajectory POI vectors may be mapped in a two-dimensional plane (n ═ 2-dimensional space), where more and less similar areas of the plot may be identified, and users at those positions or trajectories may be reasonably grouped by their proximity in this space rather than their geographic vicinity.

Embodiments described herein may relate to crowd sourcing the dimensionality reduction of POI vectors for positions and/or trajectories. There are three possible states of user position/trajectory. The first is one or more home locations, where one or several longitude/latitude pairs represent the user's location at a given time. The second state is a context vector of an n-dimensional vector representing the original position by its context. As described above, n is the number of POI categories, and the context is the count of POIs per category near a location or within a given range. This is an example of how a position or trajectory may be changed into a context vector. The third state is a "state vector," which is an m-dimensional vector with m much smaller than n. The m-dimensional vector represents a low-dimensional encoding of the context vector.

Based on these three different states of the user location/trajectory, there are three different contexts in which the client device may send its context to the server to communicate its context in order for the server to provide location-based services, such as advertisements. The home location is the easiest and most transparent way that a client device can share its location with a server. However, this approach is least private and provides the user-specific location to a service that can use data of its choice and can sell user location data that compromises the user's privacy. The context vector may be generated by a user device or client, and the context vector may be sent to a server to generally identify the location of the user. This approach improves privacy to some extent because the context vector does not provide the user's exact location. However, the context vector may have a high dimension as described above, and in case the context vector has a high dimension, the location may be identified, thereby suffering from similar drawbacks as the original location. A third scenario of how a client device may send location-related information to a server is to use a state vector. In this case, the client may obtain a context vector and convert the context vector to a state vector to provide to the server.

The dimension reduction algorithm works using a sample of the original data points. Here, the context vector is used as an input raw data point for dimension reduction. Since embodiments are intended to avoid sending context vectors to the server, but instead to reduce the context vectors dimensionally, a dimension reduction at the client is required. This functionality at the client is also used to generate training data that the server utilizes in federally learned techniques. Embodiments described herein use federated learning to improve dimensionality reduction of context vectors and provide improved location awareness about clients without sharing too much information with the server and sacrificing privacy.

To implement federated learning as described herein, the server provides a central model for dimension reduction to the client for dimension reduction of context vectors. When a client requests location-based information from a server for a particular latitude and longitude (lat, lon), a process at the client may first convert the location to a context vector (c1, …, cn). The context vector (c1, …, cn) is then converted to a state vector (x, y, …) using the model at the client received from the server. The state vector may then be provided to the server in a request for location-based information to provide the location of the client.

A server employing the same model as the model deployed on the client may use the obtained state vector to reconstruct an average context vector associated with the state vector and use the average context vector to provide location-based services from the server. In this way, the server does not receive the client's exact context vector, but rather provides a response to the average context vector of the state vectors provided by the client, which serves as a representative location for the client. This provides the client with context-related information or services from the server, while maintaining substantial anonymity of the server, since the server only has a representative location of the client in the form of an average context vector. To continually improve the model, the client's context vector is stored as samples for unsupervised learning at a later stage.

At intervals configured by an operator of the system, the intervals may be based on desired behavior of the system and availability of the client devices, e.g., the period during which the server may run updates to its model. This involves selecting candidate devices to participate in the training. A candidate client device may be a device that may be accessed without negatively impacting a client device, such as a client device plugged into a power source, has sufficient bandwidth, has available processing power, and has found a minimum number of instances of a context vector. Each candidate device may receive a request for a proposed model update within a given time window. The selected candidate client updates its model based on the locally saved previously stored context vector. The updated model is provided to the server.

In general, a machine learning model may be represented by a set of vectors w. The client may arrive after the model w _ update after training and send the proposed update to the server, where the update is the delta between the updated model and the previous version of the model, denoted as delta (w) — (w _ updated-w _ original). The delta is the difference between the original model and the updated model. The server receives the proposed model update increment (w) _ i from each participating client i. The server may apply those changes to the model at the server, where the update rules may be modeled as:

the center model may be updated according to:

wcenter of a ship+ learning rate increment (w) _ mean

Once the new model is completed, it can be pushed to all clients as a new version of the model.

FIG. 7 illustrates an example embodiment of the present disclosure in which a server 300 (which may be a server providing location-related services) distributes a dimension-reduction model 310 (shown as model version one or "model v.1") to a plurality of clients, including example client A302, example client B304, and example client C306. Client a may request a location-based service using the example embodiment described herein as shown in fig. 8, where input data 322 includes a location, which may be in the form of a latitude and longitude. Optionally, the input data may be a trace in which the form may include a plurality of latitude and longitude pairs. The input data may be converted by the client 302 into a context vector, as described above with respect to FIG. 3. The context vector may then be processed by model 310 for dimensionality reduction to state vector 326. The state vector 326 may be provided to the server 300, which processes the state vector through the same model 310 to obtain an average context vector 328. This average context vector provides a degree of anonymity to the client 302 while also enabling the server 300 to provide relevant location-based services and information. The context vector 326 generated at the client a 302 is also saved locally in memory 312 for subsequent unsupervised learning. This same process may occur for each client, including client B304 and client C306 of FIG. 8.

As described above, at configured intervals, the server 300 may run a period or period of time to update its model by selecting candidate devices to participate in training. According to the embodiment of fig. 9, client a 302 and client B304 are selected. The reason for selecting client a and client B may be due to the available power, bandwidth, processing power, etc. of the clients. Various metrics may be considered in selecting a client for updating the machine learning model.

Client A302 and client B304 may update their respective models based on locally stored context vectors. As shown in fig. 10, client a's model v.1310 is updated with the context vector of memory 312 to become model v.1a 322. Similarly, model v.1300 of client B304 is updated with the context vector from memory 314 to become model v.1b 324.

FIG. 11 illustrates the calculated deltas between original model v.1310 and modified model v.1A 322 and between original model v.1310 and modified model v.1B 324 that are provided to server 300 in response to a request from the server that sends a request to client A302 and client B304 for an updated model. The server updates the central model to become model v.2330 based on the sum of the learning rate 328 times the difference between the client modified model (model v.1a 322 and model v.1b 324) and the original model (model v.1310) divided by the number of clients providing the model (in this case, the number is two).

The modified model (model v.2330) cascades to clients including client a 302, client B304, and client C306, even though client C is not the client selected for updating. Thus, this machine learning model is constantly being improved to optimize the ability to locate clients while maintaining anonymity and to provide clients with context-aware location information as needed.

Fig. 13 and 14 illustrate a flow chart depicting a method according to an example embodiment of the present disclosure. It will be understood that each block of the flowchart, and combinations of blocks in the flowchart, can be implemented by various means, such as hardware, firmware, processor, circuitry, and/or other communication devices associated with execution of software including one or more computer program instructions. For example, one or more of the procedures described above may be embodied by computer program instructions. In this regard, the computer program instructions which embody the procedures described above may be stored by the memory device 26 of the apparatus 20 employing an embodiment of the present invention and executed by the processor 24 of the apparatus 20. As will be appreciated, any such computer program instructions may be loaded onto a computer or other programmable apparatus (e.g., hardware) to produce a machine, such that the resulting computer or other programmable apparatus implements the functions specified in the flowchart block or blocks. These computer program instructions may also be stored in a non-transitory computer-readable memory that can direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture the execution of which implements the function specified in the flowchart block or blocks. The computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operations to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide operations for implementing the functions specified in the flowchart block or blocks.

Accordingly, blocks of the flowchart support combinations of means for performing the specified functions and combinations of operations for performing the specified functions. It will also be understood that one or more blocks of the flowchart, and combinations of blocks in the flowchart, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.

FIG. 13 is a flow diagram of a method for providing dimension reduced location information to a server for receiving location based services or information while maintaining a degree of location privacy. At 410, a machine learning model is received, for example, by a client. The location or trajectory of the client is identified at 420. At 430, a context vector is generated based on the context of the location or trajectory. At 440, the context vector is reduced in dimension to generate a state vector. The state vector is then provided to, for example, a server or service provider at 450. Subsequently, at 460, the client receives information or services related to the location in response to the state vector.

FIG. 14 is a flow diagram of a method for interpreting dimension-reduced location information to provide relevant location-based information or services. As shown, at 510, a machine learning model is provided to a client. A state vector is received from the client at 520. At 530, a representative location of the client is determined based on using the state vector as an input to the machine learning model. At 540, a service or information related to the location is provided to the client based on the representative location of the client.

In an example embodiment, an apparatus for performing the methods of fig. 13 and 14 described above may include a processor (e.g., processor 24) configured to perform some or each of the operations (410, 460, and/or 510, 540) described above. For example, the processor may be configured to perform the operations (410- > 460 and/or 510- > 540) by performing hardware-implemented logical functions, executing stored instructions, or executing algorithms for performing each of the operations. Alternatively, the apparatus may comprise means for performing each of the operations described above. In this regard, according to an example embodiment, examples of means for performing operations 410-.

Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种基于图像色块连通区域分析的目标单位边界发现方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!