Navigation system
By training local machine learning models on navigation client devices and performing weighted aggregation, the problem of how to simultaneously improve navigation performance and protect user privacy in navigation history data processing is solved, and efficient navigation performance improvement and user privacy protection are achieved.
Patent Information
- Application Number
- CN202180012260.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-02-04
- Filing Date
- 2021-02-04
- Publication Date
- 2025-05-02
- Estimated Expiration
- 2041-02-04
AI Technical Summary
When existing navigation systems process navigation historical data, it is difficult to simultaneously improve navigation performance and protect user privacy.
By training the local machine learning model on the navigation client device and transmitting the model data and attribute data to the server for weighted aggregation, an aggregate parameter set is generated and the local machine learning model is updated.
It realizes improving navigation system performance without leaking user sensitive data, reducing the possibility of model instability and deviation, and enhancing user privacy protection.
Smart Images

Figure CN115038935B_ABST
Abstract
Description
Background Art
[0001] The invention relates to a navigation device and system, and an operation method thereof.
[0002] Navigation devices that include GPS (Global Positioning System) signal reception and processing functionality are well known and widely used as vehicle navigation systems. Generally speaking, a modern navigation device may include a processor, a memory (at least one of volatile and non-volatile, and typically both), and map data stored within the memory. Such navigation devices are typically capable of processing GPS location data in order to determine the current location of the device.
[0003] The GPS location data may be used by the device to provide navigation functionality based on the current location of the device, or to perform other location-based services. For example, the device may provide relevant navigation instructions (e.g., "turn left at the next intersection") to assist the user of the device when navigating along a route.
[0004] GPS position data from a number of such navigation devices may be provided to a central server and used, for example, to construct a map of traffic conditions within a road network. This navigation history data may also be used for a range of digital mapping purposes, for example to update or construct an electronic map which may then be used by such navigation devices.
[0005] However, exporting navigation data from a navigation client device, such as routes and destinations visited by a user, may raise privacy issues because the information may be personally sensitive.
[0006] The present invention seeks to provide a new method for processing navigation history data so that the data can be used to improve the performance of the navigation system while protecting the privacy of the user. Summary of the invention
[0007] From a first aspect, the present invention provides a method for operating a navigation system, wherein the navigation system comprises a server and a plurality of navigation client devices, the method comprising:
[0008] each navigation client device using a respective location sensor to collect, over time, respective navigation history data representative of locations visited by the navigation client device, and storing the navigation history data in a memory of the navigation client device;
[0009] each navigation client device using a respective training set of the navigation history data to train a respective local machine learning model stored in the memory of the navigation client device to determine a respective updated set of parameters for the local machine learning model;
[0010] each navigation client device transmitting to the server model data representing the respective updated parameter set;
[0011] each navigation client device transmitting to the server attribute data representing respective values of common properties of the respective training set used to determine the updated set of parameters;
[0012] The server receives the model data and the attribute data from the navigation client device;
[0013] the server determining an aggregated parameter set from the updated parameter sets by performing a weighted aggregation in which each of the updated parameter sets is weighted depending on the value of the property of the corresponding training set used to determine the updated parameter set;
[0014] The server transmits data representing the aggregated parameter set to a first navigation client device of the plurality of navigation client devices; and
[0015] The first navigation client device uses the aggregated parameter set to update the local machine learning model stored in the memory of the first navigation client device.
[0016] From a second aspect, the present invention provides a navigation system, which includes a server and a plurality of navigation client devices.
[0017] Each navigation client device includes:
[0018] Position sensor;
[0019] Memory;
[0020] processing systems; and
[0021] Communication module,
[0022] and is configured with:
[0023] using the location sensor to collect, over time, corresponding navigation history data representing locations visited by the navigation client device;
[0024] storing the navigation history data in the memory;
[0025] using a respective training set of the navigation history data to train a respective local machine learning model stored in the memory of the navigation client device to determine a respective updated set of parameters for the local machine learning model;
[0026] transmitting model data representing the corresponding updated parameter sets to the server; and
[0027] transmitting to the server attribute data representing respective values of common properties of the respective training sets used to determine the updated parameter set,
[0028] The server is configured to:
[0029] receiving the model data and the attribute data from the navigation client device;
[0030] determining an aggregated parameter set from the updated parameter sets by performing a weighted aggregation in which each of the updated parameter sets is weighted depending on the value of the property of the corresponding training set used to determine the updated parameter set; and
[0031] transmitting data representing the aggregated parameter set to a first navigation client device of the plurality of navigation client devices,
[0032] And wherein the first navigation client device is configured to use the aggregated parameter set to update the local machine learning model stored in the memory of the first navigation client device.
[0033] From a third aspect, the present invention provides a navigation client device, comprising:
[0034] Position sensor;
[0035] Memory; and
[0036] processing systems; and
[0037] Communication module,
[0038] The navigation client device is configured to:
[0039] using the location sensor to collect navigation history data representing locations visited by the navigation client device over time;
[0040] storing the navigation history data in the memory;
[0041] using the training set of navigation history data to train a local machine learning model stored in the memory of the navigation client device to determine an updated set of parameters for the local machine learning model;
[0042] transmitting model data representing the updated parameter set to the server; and
[0043] Attribute data representing values of properties of the training set used to determine the updated set of parameters is transmitted to the server.
[0044] The navigation client device may be further configured to:
[0045] receiving data representing a set of aggregated parameters from the server; and
[0046] The aggregated parameter set is used to update the local machine learning model stored in the memory of the navigation client device.
[0047] From a fourth aspect, the present invention provides a computer program product comprising instructions which, when executed by a processor of a navigation client device having a position sensor, a memory and a communication module, cause the processor to perform the following steps:
[0048] using the location sensor to collect navigation history data representing locations visited by the navigation client device over time;
[0049] storing the navigation history data in the memory;
[0050] using the training set of navigation history data to train a local machine learning model stored in the memory of the navigation client device to determine an updated set of parameters for the local machine learning model;
[0051] controlling the communication module to transmit model data representing the updated parameter set to the server; and
[0052] The communication module is controlled to transmit attribute data representing values of properties of the training set used to determine the updated parameter set to the server.
[0053] This aspect extends to transitory or non-transitory media carrying the computer program product.
[0054] The computer program product may further include instructions for causing the processor to:
[0055] Using the communication module to receive data representing an aggregated parameter set from a server; and
[0056] The aggregated parameter set is used to update the local machine learning model stored in the memory of the navigation client device.
[0057] It will therefore be seen that, in accordance with the present invention, a machine learning model on a single client device can benefit from navigation history data collected by other navigation client devices in the system without any of the client devices needing to export any sensitive history data from the client device.
[0058] In addition, the contribution of each client device to the overall model is weighted based on the nature of the navigation data stored on each respective client device. This can help prevent instabilities in the overall model when the usage patterns of the respective navigation client devices differ significantly from one another, which will typically be the case with navigation systems. For example, users typically have different driving patterns and operate in substantially different map regions (i.e., different physical locations in a country). There may be significant differences in the typical distances traveled by different navigation devices on individual journeys and / or the speeds traveled by different users along a given road or road type. By weighting the contributions of different devices, the potential for instabilities and biases can be reduced, which helps ensure that the aggregated parameter set actually improves the navigation performance of any client device to which the aggregated parameters are sent.
[0059] This federated machine learning approach can enable the same model to be deployed to a large number of navigation client devices, which can then individually update the corresponding local model parameters based on the user's personal data. These updated parameters can then be aggregated into an updated centralized model using weights based on the properties of the local training data from each client device. This process can then be repeated at regular intervals to allow for continuous improvement of the local model distributed across all navigation client devices. This decentralized iterative approach can achieve strong user privacy because it is generally impossible to reverse engineer the updated model parameters transmitted to the server to reproduce the original training set.
[0060] The common property of each training set may be related to any attribute of the training set of navigation history data. However, in some embodiments, the common property represents the entropy or information content of the training set. It will be appreciated that this is not the same as the raw size of the training set alone; for example, navigation history data consisting of 20 examples of the same route traveled on different days will have much less information content than 20 examples of 20 completely different routes, even though the original history data may occupy a similar amount of memory in the memory of the navigation device. The corresponding value may therefore be an entropy value. Entropy may be understood here in a formal mathematical sense (e.g., as defined by Shannon) or in a more general sense. In some embodiments, the common property is a statistic of the training set, such as a statistic representing the variance of the training set.
[0061] In some embodiments, the common property represents the size of the geographic area covered by the training set—e.g., the area of the smallest convex shape that contains some or all of the set of positions contained in the navigation history data. When the two-dimensional positions are considered as a normally distributed data sample, the area may include all positions or only a subset, such as those within a predetermined value, such as a 95% confidence ellipse. The value of the common property may represent the covered area as an absolute area or a relative area, such as as a portion of a larger area, such as a predetermined map area (e.g., a country).
[0062] The position sensor may be a satellite positioning sensor, such as a GPS sensor.
[0063] The training set of navigation history data may include location data (e.g. coordinate data), which may be time-stamped. The location may be a destination of a journey performed by the navigation device. The location may be a point along a route traveled by the navigation device. The training set may include route data.
[0064] The local machine learning model may additionally be trained using additional data not collected from the location sensor. In some embodiments, the additional data may include search data—e.g., an encoded search term entered by a user or search results previously presented to a user. The attribute data transmitted by the client device may further encode values of one or more properties of the additional data. The server may additionally use these additional values when weighting each of the updated parameter sets to determine the aggregate parameter set.
[0065] The local machine learning model may be any suitable model, such as a convolutional neural network, a recurrent neural network (RNN), a gated recurrent unit (GRU) model, a long short-term memory (LSTM) model, a differential neural network computer (DNC) model, a feedforward neural network, a pairwise ranking model, or any other suitable model.
[0066] The navigation client device may use any suitable training process—such as using stochastic gradient descent to train its corresponding local machine learning model.
[0067] A navigation client device may use a local machine learning model to provide functionality to a user of the device.
[0068] The device may include an input, such as a touch screen, for receiving user input. The device may include an output, such as a display screen, for displaying information, such as a map, to a user.
[0069] In some embodiments, the model is used to predict a destination. The device may use the model to determine a candidate list of possible destinations. The device may present this list to the user (e.g., on a display screen) for the user to select a desired destination. The device may rank the possible destinations by estimating the likelihood that each destination is the user's desired destination.
[0070] In some embodiments, the model is used to predict a route to a destination—for example, based on destination data received from a user, or based on a destination predicted by the model or by another local machine learning model stored on the client device. The device may use the local machine learning model to determine a candidate list of possible routes. The device may present this list to the user for the user to select a desired route. The device may rank the possible routes by estimating the likelihood that each route is the route desired by the user. Alternatively, the device may determine a single route. The device may be configured to navigate the user along the selected or determined route.
[0071] In some embodiments, the model is used to predict the time of arrival at the destination. The device may present this to the user as an estimated arrival time, for example before starting a journey or during a journey.
[0072] In some embodiments, the model is used to predict a search result or set of search results, such as a desired destination. The prediction can be based on a search query received from a user—e.g., a partial search term, such as the first few letters of a place name, or a query with multiple possible results, such as "good restaurants in Paris." The device can use the model to provide contextual ranking for the user's location search. The device can rank the set of locations before displaying the set of locations to the user.
[0073] The local model may receive one or more inputs, such as the current time, the current weather, or the identity of the current user, which the local model may use in determining the prediction.
[0074] The server may transmit the aggregate parameter set to one or more further navigation client devices of the plurality of navigation client devices.The server may transmit or attempt to transmit the aggregate parameter set to each navigation client device in the system.
[0075] The first navigation client device and any other client devices that receive the aggregate parameter set can use the aggregate parameter set to update their respective local machine learning models by replacing the stored parameter set of the local machine learning model (e.g., the updated parameters transmitted to the server by the client device) with the received aggregate parameter set.
[0076] Each client device may be configured to transmit updated parameters and associated property values to the server at intervals, which may be regular or irregular (e.g., depending on when the device is powered on and has network connectivity). A client device may train its local model continuously or at intervals—e.g., once more than a threshold amount of new navigation history data has been collected.
[0077] The client device may use all stored navigation history data to train its local model. However, in some embodiments, the client device is configured to filter the stored navigation history data to select a training set that satisfies one or more selection criteria. For example, the client device may exclude certain types of data, or the client device may exclude data associated with excluded destinations (e.g., home locations or work locations). This may further enhance user privacy.
[0078] The server may be configured to calculate a series of aggregate parameter sets over time, such as at regular intervals, or in response to receiving updated parameters from a client device. The server may transmit or attempt to transmit each aggregate parameter set to the first navigation client device and / or additional client devices in the system in succession.
[0079] Where appropriate, features of any aspect or embodiment described herein may be applied to any other aspect or embodiment described herein.Where reference is made to different embodiments or sets of embodiments, it should be understood that these are not necessarily different, but may overlap. BRIEF DESCRIPTION OF THE DRAWINGS
[0080] Certain preferred embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which:
[0081] Figure 1 is a schematic diagram of a client navigation device embodying the present invention;
[0082] Figure 2 is a set of variant client navigation devices having different form factors all embodying the present invention;
[0083] Figure 3 is a schematic diagram of a navigation system embodying the present invention;
[0084] Figure 4 is a schematic diagram showing more details of components and data flows within and between machine learning server and machine learning client modules of a navigation system;
[0085] Figure 5 is a schematic diagram showing components and data flows within and between a machine learning server and a variant machine learning client module in a navigation system embodying the present invention; and
[0086] Figure 6is a flow chart of a joint training process used by a navigation system embodying the present invention. DETAILED DESCRIPTION
[0087] Figure 1 Key elements of a client navigation device 1 embodying the present invention are shown.
[0088] The navigation device 1 includes a processor 2, a non-volatile flash memory 3 storing software for execution by the processor 2, a volatile RAM 4 for storing temporary data, a display screen 5, a GPS module 6 and a battery 7, among other components.
[0089] The flash memory 3 stores a navigation client software program for execution by the processor 2. The navigation client program may receive position data from the GPS module 6 and use this position data to display a visual representation of the current position of the device 1 on an electronic map displayed on the display screen 5.
[0090] There is a wide range of computing devices that can execute this navigation client software.
[0091] Figure 2 Several examples are shown, including a tablet device 1', a smartphone 1", a laptop computer 1"', and a built-in car navigation system 1"". which may be a complex infotainment system. Each has a display screen 5', 5", 5"', 5"". for displaying navigation data, such as a map, to a user. This may assist the user in navigating to a desired destination. However, a visual display is not essential; for example, some embodiments may only provide sound output, such as voice navigation instructions.
[0092] A personal navigation device (PND) is a single-purpose computing device. Vehicles also have an integrated computing device with a navigation client. Other computing devices are general-purpose computing devices, such as mobile phones, tablet computers, and wearable devices (watches). Any of these devices can be used to implement embodiments of the present invention.
[0093] Figure 3 A functional diagram of a navigation system 400 embodying the present invention is provided.
[0094] The system 400 includes a navigation client device 402, a map server 404, a traffic information server 406, and a machine learning (ML) server 500. These servers 404, 406, 500 and the client device 402 and their modules are described in more detail below.
[0095] The navigation client device 402 may be Figure 1 The device 1 in the client navigation device 1, although this is not essential. Its functions can be implemented using software executed on the processor 2 of the client navigation device 1.
[0096] The system 400 will typically include many other navigation client devices ( Figure 3 ), each device is similar to this navigation client 402. These can be implemented across a range of hardware platforms, such as Figure 2 exemplified in .
[0097] The navigation client 402 communicates wirelessly with the map server 404, the traffic information server 406, and the ML server 500. More specifically, the HTTPS client 424 on the navigation client 402 can access the map data service 438 on the map server 404 and the traffic information service 444 on the traffic information server 406. The probe interface 428 on the navigation client 402 can communicate with the probe data service 446 on the traffic information server 406. The machine learning (ML) client module 429 on the navigation client 402 can communicate with the machine learning service 450 on the ML server 500. These communications can be performed via a cellular phone link and / or Bluetooth TM or WiFi TM and / or any other suitable data channel occurs.
[0098] The map server 404, the traffic information server 406, and the ML server 500 may be separate servers, or they may be at least partially combined in a single server system. The servers 404, 406, 500 may be individual physical servers, or they may be distributed servers, each server physically located across multiple locations to provide load balancing or improve access speed to navigation client devices.
[0099] Navigation Client 402
[0100] Figure 3 The navigation client device 402 in FIG. 4 contains a user input device 410 and an output device (e.g., a display screen 412) common to most computing devices. A map data controller 414 obtains map data and stores it in a non-volatile memory (e.g., a flash memory 3) of a computing device (e.g., a client navigation device 1). A position sensor 416 (e.g., a GPS module 6) includes a position sensor (e.g., a GPS receiver) in addition to conventional computing hardware components such as a processing unit, memory, display, long-term storage (flash memory), and a networking interface.
[0101] The navigation client 402 operates using an electronic map of the geographic area. The map information may be stored locally on the device for a long time (e.g., in non-volatile solid-state memory) or may be retrieved from the map server 404 as needed, for example in the form of snippets. The navigation client 402 uses the electronic map to generate a map view of the geographic area of interest on the display 412. Typically, the geographic area is centered on the current location of the client device executing the navigation client software application. Based on the location sensor 416, using known location sensing technologies (e.g., satellite positioning (GPS, GNSS, etc.), WiFi TM , mobile phone tracking, Bluetooth TM Beacons, image analysis (e.g. from TomTom TM RoadDNA TM , described in PCT / EP2016 / 068593, PCT / EP2016 / 068594, PCT / EP2016 / 068595, and PCT / IB2016 / 001198), map matching, dead reckoning, and other position sensors to determine the current position. In the presence of position sensing errors, a process known as "map matching" may be used to adjust the measured position(s) to best match a road segment on a map.
[0102] The navigation client 402 can assist a human user in navigating from a current location to a destination location. A destination selection module 418 can be used to enter a destination. Module 418 can provide a search interface that allows a user to search for a desired destination by name (e.g., "London") or other query (e.g., "fish and chips near me"). Module 418 can provide an auto-complete function that suggests possible search terms from an incomplete search term—e.g., when a user types the letters "L" and "O," "London," "Loughborough," and the like are suggested in a list. The navigation client can use a sequencing process to sequence the search suggestions and / or search results, e.g., in order of likelihood. The sequencing process can use a machine learning model, as described in more detail below, which can be trained based on the user's search history and navigation data. The machine learning model can also take into account the search history and navigation patterns of other users using a joint learning method as disclosed herein.
[0103] The routing module 420 of the navigation client 402 calculates a route to the selected destination. In addition to accessing the electronic map via the map data controller 414, the routing module 420 can also obtain current traffic information from the traffic information server 406 to determine an estimated travel time or an estimated arrival time. The current traffic information describes the current conditions of the road network in the geographic area of the electronic map. This includes the current average speed, current traffic density, current road closures, etc.
[0104] The routing module 420 can use a machine learning model to determine the travel time or arrival time estimate, and the machine learning model can be trained using data such as the typical driving speed of the user on different roads or road types. The model can also take into account the driving data of other users using the joint learning method disclosed herein.
[0105] The routing module 420 may present a preferred route as well as alternative routes, thereby enabling the user to select a preferred route.
[0106] The guidance module 422 of the navigation client 402 uses the selected preferred route to guide the end user to the selected destination. The guidance module 422 can use the display 412 to show a map and a portion of the route to the destination. The guidance can also take the form of additional graphical instructions on the display 412. Most navigation clients 402 also support audio guidance with turn-by-turn instructions.
[0107] The active navigation client 402 uses the location sensor 416 to generate location probes using the location probe generator 426 and provides these location probes to the traffic information server 406. Communication occurs via a probe interface 428 on the client 402, which communicates with a probe data service 446 on the traffic information server 406.
[0108] Map Server 404
[0109] The map server 404 provides an infrastructure for storing, managing, and creating large amounts of information to create electronic maps and use electronic maps for navigation.
[0110] Map server 404 manages 10 7 to 10 8 The map information is associated with a road network of 1,000 kilometers. The map information needs to be of high quality, so the server infrastructure 404 handles updates to the map information, with an average update rate of about 1,000 updates per second. In addition, the map information is distributed to a global infrastructure of navigation clients 402. In addition to requiring a cloud computing system, the distribution also requires a complex content distribution network (not shown) to generate the map information to be distributed. The map servers 404 can therefore be distributed over multiple physical locations.
[0111] A map data source 434 feeds data to a map production module 432 from which the data is passed to a map compiler 430. This is a background application that uses the information to compile map information into an appropriate format, such as a format that complies with a standardized map specification (NDS, OSM, etc.), or produces map information for a specific application (auto navigation, pedestrian navigation, vehicle type specific navigation, public transportation navigation, autonomous vehicle navigation, etc.). A map compiler takes the relevant information from a presentation format and produces map information relevant to a specific map area.
[0112] The compiled map data is made available to the remote navigation client 402 through a map data server 438 and associated map metadata service 436. The navigation client 402 may obtain updates only occasionally (e.g., as a single large download over a wired Internet connection), or in near real-time as needed (e.g., wirelessly downloading smaller map units or tiles depending on the current location of the client 402).
[0113] Traffic Information Server 406
[0114] The traffic information server 406 uses a traffic information compiler 440 to provide road and traffic information to the navigation client 402 through a traffic information service 444. The server 406 also receives probes from the navigation client 402 and uses these probes to calculate, update, and provide real-time traffic information.
[0115] Traffic information server 406 aggregates the location probes from navigation client 402 into a sequence of location probes that describe the path traveled from the starting location to the destination. This timed location data is sensitive personal data. The handling of this data is subject to laws and regulations, such as the General Data Protection Regulation in Europe. TomTom TM Patent EP3095226 discloses a mechanism for solving privacy issues when handling real-time probe data that can be used in the present system 400. It describes a solution that removes the device identifier value (identifying the user) from all probes in a track when the track data is moved from the "current track" database to the "historical track" database. The probes are stored in the probe data source 442.
[0116] Map information usually contains static traffic information based on historical data. For more dynamic traffic information, such as traffic density, parking availability, accidents, road closures, updated road signs, points of interest, the traffic information server 406 uses the location probe data from the navigation client 402. The traffic information compiler 440 can use the current location probe data to provide current traffic information.
[0117] Machine Learning Server 500
[0118] The ML server 500 provides a machine learning service 501 to the navigation client 402. The ML server 500 includes a model update engine 520 that aggregates data received from a plurality of navigation clients 402 and controls outbound transmission of model data to the navigation client 402. The model update engine 520 accesses a central model 510 stored in a memory of the server 500.
[0119] Figure 4 More details of the ML server 500 and the ML client module 429 are provided.
[0120] The machine learning server 500 and the client modules 429 of the plurality of navigation client devices 402 together implement a federated machine learning system in which each client device 402 independently updates a local machine learning model obtained from the centralized server 500 using local data, and returns the updated model to the centralized server 500. The ML server 500 then merges the received updated models and provides the updated model data to the navigation client 402. This client update cycle is repeated over time.
[0121] This approach avoids the need for a central data repository containing sensitive user data (such as navigation and location history), thereby preventing data leakage and improving user privacy.
[0122] The ML server 500 and the client module 429 may implement federated machine learning principles known in the art—for example, as disclosed in WO 2018 / 057302A1. However, they also implement additional new processes as disclosed herein.
[0123] Figure 4 There is shown an ML server 500 storing data encoding a central model 510 and a representative navigation client 402 of a plurality of navigation clients in communication with the ML server 500. Each navigation client 402 has a private data store containing client data 640 (embodying a training set as disclosed above).
[0124] When first initialized (e.g., when a user turns on the device 402 for the first time after purchasing the device 402), the client 402 receives data representing the central model 510 and uses it as the client model 610. Thereafter, each client 402 uses its client data 640 to adjust the client model 610, and sends updated client models 610 to the server at regular intervals. The central model update module 520 in the server 500 aggregates these updated client models to produce an updated model, which is then stored 522 as the current central model 510. This process is repeated over time, thereby improving the central model 510 with each iteration. Because the client data 640 is still stored locally, this approach protects the privacy of the client data 640, but it provides each client 402 with a client model 610 based on a larger set of client data, thereby improving the quality of the resulting client model.
[0125] Each navigation client 402 has a client model update module 620 within its ML client module 429, which receives 512 the current central model 510 and replaces the stored client model 610 with the latest received central model 510. The client device 402 further has a learning algorithm module 630, which uses the client data 640 to determine update parameters 632 that change the local client model 610 through a local machine learning training process. The client 402 sends data 612 representing its updated client model 610 back to the ML server 500 at certain intervals. The data 612 can encode a model update matrix, for example, using the principles disclosed in US 2018 / 0089587A1.
[0126] Importantly, the client 402 also sends weight data 652 (embodying the attribute data disclosed above) to the ML server 500. The client 402 contains a weight estimation module 650 that accesses the client data 640 of the client 402 to generate the weight data 652. The weight data 652 describes one or more properties of the client data 640 that have been used by the learning algorithm 630 to train the current client model 610. The weight data may characterize the client data 640 of the client 402.
[0127] In some embodiments, weight data 652 includes an entropy value representing the information entropy of the client data—that is, the amount of new or unexpected information contained in the client data. In other embodiments, weight data 652 may represent the statistical variance of client data 640. In some embodiments, weight data 652 may include a set of distribution parameters that characterize the size of local data and / or a distribution function for client data.
[0128] In some embodiments, weight data 652 may represent the physical or geometric extent of the locations represented in client data 640. The weight data may, for example, represent the area (e.g., in km) of a zone containing all or a predetermined proportion (e.g., 90%) of all the locations in client data 640. 2 The area may be defined as the smallest convex area containing all locations, or defined in any other suitable manner. The weight data 652 may encode an area ratio value determined as a ratio of the common travel area to the total data space (e.g., a larger map area, such as an entire country). The weight value may additionally or alternatively be determined using other factors, such as the type of road traveled.
[0129] For example, a first navigation client 402 that primarily travels on a single route (e.g., between home and work) and a second navigation client that travels on a large number of routes will have significantly different local client data 640. In some embodiments, the corresponding weight estimation module 650 may characterize these differences in the weight data 652 between the two clients.
[0130] Each weight estimation module 650 can calculate a corresponding statistical value z j , to be sent to the ML server 500 as a weight value (a value reflecting a common property, as described above).
[0131] The server 500 may normalize the received weight values, for example, using a Softmax function:
[0132]
[0133] For j=1,...K, where K is the number of navigation clients 402 in the system, indexed by j; and where are the K latest weight values z received by the server 500 from the K clients 402 k of collection.
[0134] This allows the server 500 to scale the weights to a probability distribution (ie, sum to 1). However, the use of Softmax is not essential; for example, the server 500 may simply divide each received weight value by the sum of the K most recently received weight values from the K clients 402.
[0135] When the system 400 is first configured, the coefficients (parameters) of each client model may be initialized to the same values, such as described in the article "Communication-Efficient Learning of Deep Networks from Decentralized Data" (arXiv:1602.05629). However, after the local client learning algorithm 630 further trains the client model 610 based on the client data 640, the client 402 sends the client model data 612 and the weight data 652 to the server 500.
[0136] This approach of federating machine learning models that can operate on client data from different navigation clients 402, having different properties and / or degrees of entropy, allows the ML server 500 to develop a stable model even when receiving local model data from navigation clients 402 that were trained on substantially different client data 640. This is very useful in navigation systems where users typically vary widely in their navigation patterns (e.g., map areas covered, routes used, frequency, driving time, driving duration); for example, most users spend most of their driving time close to home.
[0137] The use of weight data 652 derived from client navigation history data 640 may provide rapid convergence and stability of the central model 510 even when using local data with widely varying degrees of overlap with the overall data set, while also protecting user privacy.
[0138] The central update module 520 of the server 500 uses the weight data 652 it receives from the navigation clients 402 to adjust the contributions of the associated updated client models 612 to produce an updated central model 522. The central model update module 520 performs a weighted model averaging of the client models 612 weighted according to the associated weight data 652. For example, the update module 520 may assign higher weights to models with higher entropy weights because these models are likely to provide more "new" information.
[0139] After processing all models and weights from clients 402, updated central model 522 replaces central model 510 for distribution to clients 402. A new central model 510 may be calculated at regular intervals or whenever updated model data 612 has been received from a threshold number of clients 402. In some embodiments, an update may be performed each time any new client model data 612 and weight data 652 are received; this will ensure that central model 510 is as current as possible, but may be computationally less efficient. After server 500 is initialized, several client update iterations may be performed on the central model to converge to a stable version.
[0140] The navigation client 402 typically stores client data 640 including one or more of: a set of locations visited, a starting location, an ending location, a driving time, a driving speed, a map location search, or a mode of transportation.
[0141] Figure 5 A variant navigation client device 402' is shown with a variant machine learning module 429'. In this embodiment, the navigation client 402' and Figure 4 , but additionally contains a local data controller module 660 that manages client data 640 used in the learning algorithm module 630 and the weight estimation module 650. The local data controller 660 performs filtering operations on the local data 640 so that certain local data are not used in the distributed learning system—that is, so that only some of the local data 640 form a training set. For example, the navigation client 402' may exclude certain types of data, or may exclude data associated with a destination such as a home location or a work location from being used in the distributed learning system.
[0142] In some embodiments, the client 402, 402' may store multiple different client models for different purposes. Different machine learning models may have different associated learning algorithms, weight estimation modules, central models, etc. The models may be stored on different corresponding ML servers, or on the same ML server 500. Thus, where appropriate, the models may be replicated within the client 402 and on the server 500. Figure 4 At least some of the features described in.
[0143] Some specific examples will now be given to illustrate various applications and use cases of ML models developed in conjunction with the navigation system as disclosed herein. These are not limiting, and other use cases are possible.
[0144] Destination Forecast
[0145] In some embodiments, the central and local ML models 510, 610 are used to predict the expected destination of a trip without the user having to manually add the destination. This is a multi-class classification problem.
[0146] By developing a central model 510 that incorporates model parameters from many different users, the local client model 610 can predict not only previously visited locations for a particular user, but also new destinations that have never been visited that are similar to previously visited destinations based on some properties, such as being in the same category of "supermarkets."
[0147] The process takes as input the client's historical behavior regarding:
[0148] -GPS track sequence (each sequence is a trip);
[0149] - a sequence of map attributes from the GPS track (e.g. one or more of the following: version of the map; number of segments travelled; average speed registered for the segments travelled; average turn time used; etc.);
[0150] - External databases, such as weather, personal calendar, etc.
[0151] - Previous destinations, which may be derived from the last indexed terms in previous trips and / or from terms obtained from previous search queries.
[0152] These are stored in client data 640 and used by learning algorithm 630 to train local client model 610 .
[0153] The process consists of the following steps, which are repeated over time:
[0154] - When no historical data is available, the navigation device 402 receives a pre-trained centralized model 510; if this model is also not available, a random model is initialized;
[0155] - after each iteration (trip, part of a trip, search query), the local client model 610 is updated by training on new customer data 640; a map matching process may be performed online to extract map attributes from the trip / destination;
[0156] - Periodically sending the local model 610 (i.e., parameter data 612) and weight data 652 to the ML server 400, where the aggregation operation is performed by the model update module 520;
[0157] - The central model 510 is periodically sent to all individual navigation devices 402 in the system 400, which replace their corresponding local models 610 with the received central model 510; this makes the local models 610 more robust to context changes.
[0158] Figure 6 These steps are illustrated as a flow chart from the perspective of client device 402 .
[0159] In a first step 600 , the client device 402 is initialized by receiving pre-trained model data from the server 400 .
[0160] Next, at 601, the user begins to use the device for navigation purposes, and navigation history data begins to be stored in memory. This can be stored rollingly, such as in a fixed-size buffer, or the history can be cleared each time the local model is updated.
[0161] Next, at 602, once a suitable amount of data has been obtained (eg, after each trip termination, or after each search query), the local model is retrained to incorporate the new material (eg, using a gradient descent method).
[0162] Next at 603, after training is complete, or at regular intervals, the updated model data 612 and attribute data (weight data 652) are sent to the server 400, which inputs the data into a weighted aggregation process to generate updated aggregated model data.
[0163] The client device 402 (along with other client devices) then receives 604 these aggregated parameters from the server and updates 605 its local model depending on the updated parameters.
[0164] When new navigation data is obtained 601 , the process is repeated.
[0165] In the example use case of destination prediction, the machine learning task performed by the learning algorithm 630 is multi-class classification, and the model is a deep learning model that processes sequences due to the dependency on the time dimension. It can be a one-dimensional convolutional neural network; a recurrent neural network (RNN), such as a gated recurrent unit (GRU), a long short-term memory (LSTM), or a differential neural computer (DNC) model; a feed-forward neural network; or any other suitable model.
[0166] Route prediction
[0167] In some embodiments, the central and local ML models 510 , 610 are used to predict the optimal route for a journey without the user having to manually select a route.
[0168] The problem can be described as the navigation system 400 predicting a customer's route not by optimizing based on a single metric (e.g., journey time or distance), but based on multiple metrics for different parts of the route, such as based on the user's driving style and contextual information. For example, the system may learn the user's preferences: "When I arrive at destination A late in the morning, I prefer to take the highway (fastest), except for a specific highway that I always avoid and in that case I prefer to take a detour."
[0169] The joint learning method disclosed in this article can not only predict the routes previously used by the current user, but also generalize to new routes that are similar to previously used routes according to some properties, such as especially the "highway" class.
[0170] The process takes as input the client's historical behavior regarding:
[0171] -GPS track sequence (each sequence is a trip);
[0172] - Sequence of map attributes from GPS tracks;
[0173] - External databases, such as weather, personal calendar, etc.
[0174] These are stored in client data 640 and used by learning algorithm 630 to train local client model 610 .
[0175] In this case, the ML model is a deep learning model that processes sequences due to the dependency on the time dimension. Also, due to the nature of the problem and the large number of classes to be predicted, the most suitable model may be a recurrent neural network.
[0176] The joint learning process may be the same or similar to the process proposed above for destination prediction.
[0177] Arrival time prediction
[0178] In some embodiments, the central and local ML models 510 , 610 are used to predict an estimated time of arrival (ETA) of a user during a trip, taking into account her personal driving style, without sharing sensitive information belonging to the user.
[0179] The federated learning approach can predict an ETA for a user for routes she has previously used, but it can also generalize to new routes.
[0180] The process takes as input the client's historical behavior regarding:
[0181] -GPS track sequence (each sequence is a trip);
[0182] - Sequence of map attributes from GPS tracks;
[0183] - External databases, such as weather, personal calendar, etc.
[0184] These are stored in client data 640 and used by learning algorithm 630 to train local client model 610 .
[0185] In this example, the ML problem can be viewed as either a recursive problem or a multi-class classification problem. For a multi-class classification model, a predefined ETA (e.g., 1, 5, 10, 15, 30 minutes) is required, and the task will then involve predicting one of the predefined classes. For a recursive task, the exact arrival time will be inferred, which means that this approach will attempt to predict the exact arrival time.
[0186] The joint learning process may be the same or similar to the process proposed above for destination prediction.
[0187] Sort search results
[0188] In some embodiments, the central and local ML models 510, 610 are used to provide contextual ranking for a user's location search. The search process occurs locally and / or remotely (e.g., involving communication with the map server 404), and once the results are generated, the process ranks the locations before displaying them to the client.
[0189] The ranking will be based on the user's personal preferences (eg his search history), but will also benefit from previous searches performed in the same venue by other users, eg due to federated learning.
[0190] The process takes as input the client's historical behavior regarding:
[0191] - previously visited destinations (e.g. obtained from GPS tracks);
[0192] - Previous search data (e.g. query logs).
[0193] These are stored in client data 640 and used by learning algorithm 630 to train local client model 610 .
[0194] In this example, the ML problem is a form of machine learning-based ranking (MLR). The ML model used by the learning algorithm 630 may be a pairwise ranking model. The model attempts to predict which of the following is more suitable for the information need of the client's user query given a pair of possible results (s1, s2).
[0195] The joint learning process may be the same or similar to the process proposed above for destination prediction.
[0196] Further general details
[0197] In general, in any embodiments disclosed herein, the systems and devices that may be used to implement the processes disclosed herein may include a smartphone, a cellular telephone, a portable personal computer (PC), a personal digital assistant (PDA), a dedicated portable navigation device (PND), a vehicle such as an automobile, or any type of processing device configured to execute navigation software in a portable manner to provide route planning and navigation functionality.
[0198] Some embodiments have been described with reference to road segments. It will be appreciated that the invention is also applicable to other navigable road segments, such as segments of paths, rivers, canals, cycle paths, towpaths, railway lines etc. For ease of reference these are generally referred to herein as road segments.
[0199] It will also be apparent that where route planning is performed in some embodiments of the invention, this may occur even in circumstances where the user is not seeking instructions on how to navigate from one point to another, but merely wishes to be provided with a view of a given location. In such circumstances, the "destination" location selected by the user need not have a corresponding starting location from which the user wishes to initiate navigation, and thus references herein to a "destination" location, or indeed to a "destination" view, should not be interpreted as meaning that the generation of a route is essential, that travel to the "destination" must occur, or indeed that the existence of a destination requires the specification of a corresponding starting location.
[0200] Embodiments may use the Global Positioning System (GPS) - for example when not within the confines of a tunnel or covered parking area. In general, GPS is a satellite radio-based navigation system capable of determining continuous position, velocity, time, and in some cases direction information for an unlimited number of users. GPS, formerly known as NAVSTAR, incorporates multiple satellites that orbit the earth in extremely precise orbits. Based on these precise orbits, GPS satellites can relay their positions as GPS data to any number of receiving units. However, it will be appreciated that other global positioning systems may be used, such as GLOSNASS, the European Galileo Positioning System, the COMPASS Positioning System, or the IRNSS (Indian Regional Navigation Satellite System).
[0201] The GPS system is implemented when a device 1, which is specially equipped to receive GPS data, begins scanning radio frequencies for GPS satellite signals. Upon receiving a radio signal from a GPS satellite, the device 1 determines the precise position of that satellite via one of a number of different conventional methods. In most cases, the device 1 will continue scanning for signals until it has acquired at least three different satellite signals (it should be noted that the position is not usually but can be determined with only two signals using other triangulation techniques). Implementing geometric triangulation, the receiver uses the three known positions to determine its own two-dimensional position relative to the satellites. This can be done in a known manner. Additionally, acquiring a fourth satellite signal allows the receiving device 1 to calculate its three-dimensional position in a known manner through the same geometric calculations. The position and velocity data can be continuously updated in real time by an unlimited number of users.
[0202] Optionally, the device 1 embodying the invention may be capable of establishing a data session with the network hardware of a "mobile" or telecommunication network via a mobile device, such as a mobile phone, a PDA and / or any device with mobile phone technology, in order to establish a digital connection, for example via the known Bluetooth TM Thereafter, the mobile device, through its network service provider, may establish a network connection (e.g., through the Internet) with the server. Thus, a "mobile" network connection may be established between the device (which may be, and usually is, mobile when it is traveling alone and / or in a vehicle) and the server to provide a "real-time" or at least very "up-to-date" information gateway.
[0203] Establishing a network connection between the mobile device (via a service provider) 1, 402 and another device, such as a server 404, 406, 500, using, for example, the Internet can be accomplished in a known manner. In this regard, any number of suitable data communication protocols can be employed, such as the TCP / IP layered protocol. In addition, the mobile device can utilize any number of communication standards, such as CDMA2000, GSM, IEEE 802.11a / b / c / g / n, etc. Therefore, it can be seen that an Internet connection can be utilized, which can be achieved via a data connection, such as via a mobile phone or mobile phone technology within a navigation device.
[0204] The device 1, 402 may be capable of communicating with the server 404, 406, 500 via a common communication channel that may be implemented by any of a number of different arrangements, such as a cellular network data connection, a direct connection via a personal computer via the Internet, etc. In one illustrative arrangement, the communication channel includes telephone and computer networks. Furthermore, the communication channel may be capable of accommodating wireless communications, such as infrared communications, radio frequency communications, such as microwave frequency communications, etc. Additionally, the communication channel may accommodate satellite communications.
[0205] The communication signals transmitted through the communication channel include, but are not limited to, signals that may be required or desired for a given communication technology. For example, the signals may be adapted for use with cellular communication technologies such as Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), etc. Both digital and analog signals may be transmitted through the communication channel. These signals may be modulated, encrypted, and / or compressed signals as may be desired for the communication technology.
[0206] In addition to including other components, the remote server 404, 406, 500 may also include a processor that is operably connected to a memory and further operably connected to a mass data storage device via a wired or wireless connection. The mass storage device contains storage of navigation data and map information, and may also be a device separate from the server or may be incorporated into the server. The processor is further operably connected to a transmitter and a receiver to transmit information to and receive information from the navigation device 1, 402 via a communication channel. The sent and received signals may include data, communications and / or other propagation signals. The transmitter and receiver may be selected or designed according to the communication requirements and communication technologies used in the communication design of the navigation system. In addition, it should be noted that the functions of the transmitter and receiver may be combined into a single transceiver.
[0207] A device 1, 402 embodying the present invention may include a processor 2 and a memory 3, 4, which may cooperate to support a BIOS (Basic Input / Output System) that serves as an interface between the functional hardware components of the device and the software executed by the device. The processor 2 may load an operating system from the memory 3, 4, which provides an environment in which application software (e.g., implementing route planning and navigation functionality) may run. The application software may provide an operating environment including a graphical user interface (GUI) that supports the core functions of the device, such as map viewing, route planning, navigation functions, and any other functions associated with the device. In this regard, portions of the application software may include a view generation module.
[0208] The processor 2 of the device 1 may be programmed to receive GPS data received by the antenna and, from time to time, store that GPS data in a memory together with a timestamp of when the GPS data was received to build up a position record for the navigation device. Each data record so stored may be considered a GPS fix; that is, it is a fix of the navigation device's position and includes latitude, longitude, timestamp and accuracy report.
[0209] The data may be stored substantially periodically, for example once every 5 seconds. It will be appreciated by those skilled in the art that other periods will be possible and that there is a balance between data resolution and memory capacity; that is, as the resolution of the data is increased by acquiring more samples, more memory is required to hold the data. However, in other embodiments, the resolution may be substantially every 1 second, 10 seconds, 15 seconds, 20 seconds, 30 seconds, 45 seconds, 1 minute, 2.5 minutes (or indeed, any period intermediate these periods). Thus, within the memory of the device, a record of the whereabouts of the device 200 at various points in time is constructed.
[0210] In some embodiments, it may be found that the quality of the captured data degrades as the period increases, and a suitable upper limit may be provided when the degree of degradation depends at least in part on the speed at which the device 1 is moved over a period of approximately 15 seconds.
[0211] While the device 1 is generally arranged to build a record of its whereabouts, some embodiments do not record data for a predetermined period and / or distance at the beginning or end of a journey. This arrangement helps to protect the privacy of the user of the device, as he / she may protect the location of his / her home and other frequently visited destinations. For example, the device 1 may be arranged not to store data for approximately the first 5 minutes of a journey and / or approximately the first mile of a journey.
[0212] In other embodiments, GPS may not be stored periodically, but may be stored in memory when a predetermined event occurs. For example, the processor may be programmed to store GPS data when the device passes an intersection, a road segment change, or other such events.
[0213] In addition, the processor 2 may be programmed from time to time to upload a whereabouts record of the device 1, 402 (i.e., GPS data and timestamps, and / or location and timestamp data obtained using a light sensor or microphone as described herein) to the server 404, 406, 500. In some embodiments in which the device has a permanent or at least normally present communication channel connecting it to the server, the uploading of data occurs periodically, for example once every 24 hours. It will be appreciated by those skilled in the art that other periods are possible and may be substantially any of the following periods: 15 minutes, 30 minutes, every hour, every 2 hours, every 5 hours, every 12 hours, every 2 days, every week, or any of these. In fact, in such embodiments, the processor may be arranged to upload the whereabouts record in substantially real time, although this may inevitably mean that the data is in fact transmitted from time to time, with the period between transmissions being relatively short and thus more correctly considered to be pseudo real time. In such pseudo real time embodiments, the device may be arranged to buffer GPS fixes in memory and transmit these GPS fixes when a predetermined number has been stored. This predetermined number may be approximately 20, 36, 100, 200, or any number therein. Those skilled in the art will appreciate that the predetermined number is determined in part by the size of the memory.
[0214] In other embodiments that do not have a ubiquitous communication channel, the processor 2 may be arranged to upload the record to the server 404, 406, 500 when the communication channel is established. For example, this may occur when the device 1, 402 is connected to a user's computer, or when the device 1, 402 emerges from a tunnel or other area without network connectivity. Again, in such embodiments, the navigation device 1, 402 may be arranged to buffer position fixes in memory. If the memory is full of position fixes, the device may be arranged to delete the oldest position fix and thus it may be considered a first-in, first-out (FIFO) buffer.
[0215] In some embodiments, the whereabouts record of the device 1, 402 may include one or more tracks, each track representing the movement of the device, for example, within a 24-hour period. Each period may be arranged to coincide with a calendar day, but in other embodiments this need not be the case. Typically, the user of the device consents to having the whereabouts record of the device uploaded to the server. If not, then in some embodiments, no record is uploaded to the server. The device 1, 402 itself and / or the computer to which the device is connected may be arranged to ask the user whether he / she consents to the use of this whereabouts record. The remote server 404, 406, 500 may be arranged to receive the whereabouts record of the device and store this whereabouts record in a mass data storage device for processing.
[0216] It will be apparent to those skilled in the art that the present invention has been described by describing various specific embodiments thereof but is not limited to these embodiments; many variations and modifications are possible within the scope of the appended claims.
Claims
1. A method for operating a navigation system, wherein the navigation system comprises a server and a plurality of navigation client devices, the method comprising: each navigation client device using a respective location sensor to collect, over time, respective navigation history data representative of locations visited by the navigation client device, and storing the navigation history data in a memory of the navigation client device; each navigation client device using a respective training set of the navigation history data to train a respective local machine learning model stored in the memory of the navigation client device to determine a respective updated set of parameters for the local machine learning model; each navigation client device transmitting to the server model data representing the respective updated parameter set; each navigation client device transmitting to the server attribute data representing respective values of common properties of the respective training set used to determine the updated set of parameters; The server receives the model data and the attribute data from the navigation client device; the server determining an aggregated parameter set from the updated parameter sets by performing a weighted aggregation in which each of the updated parameter sets is weighted depending on the value of the property of the corresponding training set used to determine the updated parameter set; the server transmitting data representing the aggregated parameter set to a first navigation client device of the plurality of navigation client devices; and The first navigation client device uses the aggregated parameter set to update the local machine learning model stored in the memory of the first navigation client device.
2. The method according to claim 1, comprising: the server transmitting the data representing the aggregated parameter set to each of the plurality of navigation client devices; and Each of the plurality of navigation client devices uses the aggregated parameter set to update the respective local machine learning model stored in the memory of the respective navigation client device.
3. The method of claim 1 or 2, wherein each step is repeated over time.
4. A navigation system comprising a server and a plurality of navigation client devices, Each navigation client device includes: Position sensor; Memory; Processing systems; and Communication module, and is configured with: using the location sensor to collect, over time, corresponding navigation history data representing locations visited by the navigation client device; storing the navigation history data in the memory; using a respective training set of the navigation history data to train a respective local machine learning model stored in the memory of the navigation client device to determine a respective updated set of parameters for the local machine learning model; transmitting model data representing the corresponding updated parameter sets to the server; and transmitting to the server attribute data representing respective values of common properties of the respective training sets used to determine the updated parameter set, The server is configured to: receiving the model data and the attribute data from the navigation client device; determining an aggregated parameter set from the updated parameter sets by performing a weighted aggregation in which each of the updated parameter sets is weighted depending on the value of the property of the corresponding training set used to determine the updated parameter set; and transmitting data representing the aggregated parameter set to a first navigation client device of the plurality of navigation client devices, And wherein the first navigation client device is configured to use the aggregated parameter set to update the local machine learning model stored in the memory of the first navigation client device. The navigation system according to claim 4 , wherein the common property represents entropy or variance of the corresponding training sets.
6. A navigation system according to claim 4 or 5, wherein the common property represents the size of the geographical area covered by the training set.
7. The navigation system of claim 4 or 5, wherein each navigation client device is configured to use the respective local machine learning model to do one or more of the following: Identify a shortlist of possible destinations; predicting routes to destinations; Estimated time of arrival at destination; and One or more search results are predicted based on a search query received from a user.
8. The navigation system of claim 4 or 5, wherein the server is configured to transmit or attempt to transmit the aggregated parameter set to each of the plurality of navigation client devices.
9. The navigation system of claim 4 or 5, wherein each navigation client device is configured to filter the stored navigation history data to select a training set that satisfies one or more selection criteria.
10. A navigation client device, comprising: Position sensor; Memory; and Processing systems; and Communication module, The navigation client device is configured to: using the location sensor to collect navigation history data representing locations visited by the navigation client device over time; storing the navigation history data in the memory; using the training set of navigation history data to train a local machine learning model stored in the memory of the navigation client device to determine an updated set of parameters for the local machine learning model; transmitting model data representing the updated parameter set to a server; and Attribute data representing values of properties of the training set used to determine the updated set of parameters is transmitted to the server.
11. The navigation client device of claim 10, further configured to: receiving data representing a set of aggregated parameters from the server; and The aggregated parameter set is used to update the local machine learning model stored in the memory of the navigation client device.
12. The navigation client device of claim 10 or 11, wherein the property represents the entropy or variance of the training set.
13. A navigation client device according to claim 10 or 11, wherein the property represents the size of the geographical area covered by the training set.
14. The navigation client device according to claim 10 or 11, wherein the position sensor is a satellite positioning sensor.
15. The navigation client device of claim 10 or 11, wherein the training set comprises destination data or route data.
16. A navigation client device according to claim 10 or 11, configured to use search data in addition to data representative of locations visited by the navigation client device to train the local machine learning model.
17. The navigation client device of claim 10 or 11, configured to use the local machine learning model to determine a candidate list of possible destinations, and configured to present the candidate list of possible destinations to a user.
18. The navigation client device of claim 10 or 11, configured to use the local machine learning model to predict a route to a destination.
19. The navigation client device of claim 10 or 11, configured to use the local machine learning model to predict a time of arrival at a destination.
20. The navigation client device of claim 10 or 11, configured to use the local machine learning model to predict one or more search results based on a search query received from a user.
21. A navigation client device according to claim 10 or 11, configured to provide input data to the local machine learning model to predict output, wherein the input data represents one or more of time, weather, and identity of a current user.
22. The navigation client device of claim 11, configured to use the aggregated parameter set to update the local machine learning model by replacing the updated parameters with the aggregated parameter set.
23. The navigation client device of claim 10 or 11, configured to filter stored navigation history data to select a training set that satisfies one or more selection criteria.
24. A computer program product comprising instructions which, when executed by a processor of a navigation client device having a position sensor, a memory, and a communication module, cause the processor to perform the following steps: using the location sensor to collect navigation history data representing locations visited by the navigation client device over time; storing the navigation history data in the memory; using the training set of navigation history data to train a local machine learning model stored in the memory of the navigation client device to determine an updated set of parameters for the local machine learning model; controlling the communication module to transmit model data representing the updated parameter set to a server; and The communication module is controlled to transmit attribute data representing values of properties of the training set used to determine the updated parameter set to the server.
25. The computer program product of claim 24, further comprising instructions that, when executed by the processor, cause the processor to: Using the communication module to receive data representing an aggregated parameter set from a server; and The aggregated parameter set is used to update the local machine learning model stored in the memory of the navigation client device.
Citation Information
Patent Citations
Systems and Methods for Communication Efficient Distributed Mean Estimation
US20180089587A1
Communication efficient federated learning
WO2018057302A1
Distributed model learning
US20150324686A1
Distributed online learning for privacy-preserving personal predictive models
US20170293857A1