IP Library Granted Patent US 10,380,503
Granted Patent B2
US 10,380,503 · App. 15/094,292 · Granted Aug 13, 2019

Distributed online learning for privacy-preserving personal predictive models

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,380,503
App. No.
15/094,292
Granted
Aug 13, 2019
Kind
B2
Abstract

Methods, apparatus, systems, and computer program products are provided for providing distributed online learning for personal predictive models that preserves user privacy. An example method comprises receiving model updates based at least in part on synchronization metadata. The model update comprises one or more received model parameter updates. The received model parameter updates correspond to one or more model parameters. The model updates are associated with a particular apparatus. The example method further comprises determining a decay factor based at least in part on the synchronization metadata; applying the decay factor to the one or more received model parameter updates; and updating the one or more model parameters based on the decayed model parameter updates.

Claims (44)

1. A method comprising:

receiving, by a first apparatus, a model update based at least in part on synchronization metadata, wherein (a) the model update comprises one or more received model parameter updates, (b) each of the one or more received model parameter updates corresponds to one or more model parameters, and (c) the model update is associated with a second apparatus;

determining, by the first apparatus, a decay factor based at least in part on the synchronization metadata;

weighting the one or more received model parameter updates by applying, by the first apparatus, the decay factor to each of the one or more received model parameter updates;

updating, by the first apparatus, the one or more model parameters based on the decayed model parameter updates;

using, by the first apparatus, the one or more updated model parameters to determine a prediction; and

performing, by the first apparatus, an action based on the determined prediction.

2. A method according to claim 1 , further comprising:

collecting one or more data points, the one or more data points based at least in part on measurements made by one or more sensors;

determining one or more determined model parameter updates based at least in part on the one or more data points; and

updating the one or more model parameters based at least in part on the one or more determined model parameter updates.

3. A method according to claim 2 , wherein determining the one or more determined model parameter updates is based at least in part on a loss function, a regularization term, a learning rate function, or a combination thereof.

4. A method according to claim 2 , wherein the one or more model parameters are updated by an element wise addition of one or more determined model parameter updates.

5. A method according to claim 1 wherein the synchronization metadata comprises information indicating a number of model update iterations completed by the second apparatus since a most recent previous model update associated with the second apparatus was received.

6. A method according to claim 1 , wherein the decay factor applied to the received model parameter updates decreases monotonically as a number of model update iterations completed by the second apparatus since a most recent previous model update associated with the second apparatus was received increases.

7. A method according to claim 1 , wherein the decay factor is parameterized by a decay constant.

8. A method according to claim 1 , further comprising, providing one or more determined model updates to the second apparatus, the one or more determined model updates selected based on synchronization metadata indicating a model update iteration number for which a determined model update was last provided to the second apparatus.

9. A method according to claim 8 , further comprising storing synchronization metadata indicating a most recent model update iteration number for which a determined model update has been provided to the second apparatus, the most recent model update iteration number being stored in association with an identifier configured to identify the second apparatus.

10. A method according to claim 1 , wherein the one or more model parameters comprise one or more parameters of a predictive model.

11. A method according to claim 1 , wherein the one or more model parameters comprise a default prediction.

12. A first apparatus comprising at least one processor and at least one memory storing computer program code, the at least one memory and the computer program code configured to, with the processor, cause the apparatus to at least:

receive a model update based at least in part on synchronization metadata, wherein (a) the model update comprises one or more received model parameter updates, (b) each of the one or more received model parameter updates corresponds to one or more model parameters, and (c) the model update is associated with a particular second apparatus;

determine a decay factor based at least in part on the synchronization metadata;

weight the one or more received model parameter updates by applying the decay factor to the one or more received model parameter updates;

update the one or more model parameters based on the decayed model parameter updates;

use the one or more updated model parameters to determine a prediction; and

perform an action based on the determined prediction.

13. A first apparatus according to claim 12 , wherein the at least one memory and the computer program code are further configured to, with the processor, cause the apparatus to at least:

collect one or more data points, the one or more data points based at least in part on measurements made by one or more sensors;

determine one or more determined model parameter updates based at least in part on the one or more data points; and

update the one or more model parameters based at least in part on the one or more determined model parameter updates.

14. A first apparatus according to claim 13 , wherein the one or more model parameters are updated by an element wise addition of one or more determined model parameter updates.

15. A first apparatus according to claim 13 , wherein determining the one or more determined model parameter updates is based at least in part on a loss function, a regularization term, a learning rate function, or a combination thereof.

16. A first apparatus according to claim 12 , wherein the synchronization metadata comprises information indicating a number of model update iterations completed by the second apparatus since a most recent previous model update associated with the second apparatus was received.

17. A first apparatus according to claim 12 , wherein the decay factor applied to the received model parameter updates decreases monotonically as a number of model update iterations completed by the second apparatus since a most recent previous model update associated with the second apparatus was received increases.

18. A first apparatus according to claim 12 , wherein the at least one memory and the computer program code are further configured to, with the processor, cause the apparatus to at least provide one or more determined model updates to the second apparatus, the one or more determined model updates selected based on synchronization metadata indicating a model update iteration number for which a determined model update was last provided to the second apparatus.

19. A first apparatus according to claim 18 , wherein the at least one memory and the computer program code are further configured to, with the processor, cause the apparatus to at least store synchronization metadata indicating a most recent model update iteration number for which a determined model update has been provided to the second apparatus, the most recent model update iteration number being stored in association with an identifier configured to identify the second apparatus.

20. 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 configured to, when executed by a processor of a first apparatus, cause the first apparatus to at least:

receive a model update based at least in part on synchronization metadata, wherein (a) the model update comprises one or more received model parameter updates, (b) each of the one or more received model parameter updates corresponds to one or more model parameters, and (c) the model update is associated with a second particular apparatus;

determine a decay factor based at least in part on the synchronization metadata;

weight the one or more received model parameter updates by applying the decay factor to the one or more received model parameter updates;

update the one or more model parameters based on the decayed model parameter updates;

use the one or more updated model parameters to determine a prediction; and

perform an action based on the determined prediction.

Assignments (2)
CHANGE OF ADDRESS Recorded Apr 4, 2017
From: HERE GLOBAL B.V.
To: HERE GLOBAL B.V.
Reel/Frame 042153/0445 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2016
From: STAJNER, TADEJ
To: HERE GLOBAL B.V.
Reel/Frame 038419/0824 →