IP Library Granted Patent US 11,138,003
Granted Patent B2
US 11,138,003 · App. 16/837,341 · Granted Oct 5, 2021

Methods and systems for automatic determination of a device-specific configuration for a software application operating on a user device

Inventors: Aaron Mosha Glazer (Toronto, CA); Jonathan Taylor Norris (Toronto, CA); Adam James Wootton (Toronto, CA); Imaad Ahmad Umar (West Vancouver, CA); Victor Nikola Vucicevich (Waterloo, CA)
Assignee: Taplytics Inc.
G06F8/71G06F8/65G06F11/302G06F11/3051G06F21/6254G06N5/04G06N20/00G06F8/61
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 11,138,003
App. No.
16/837,341
Granted
Oct 5, 2021
Kind
B2
Abstract

A method and system for automatically determining a device-specific configuration for a software application operating on a user device. A configuration monitoring program monitors local user data stored on a user device and generates a device-specific prediction model using a machine learning algorithm applied to the monitored local data. The configuration monitoring program also receives a global prediction model generated remotely using global user data collected from a plurality of user devices. The configuration monitoring program generates a predicted device-specific configuration of the application operating on the user device using prediction data from both the device-specific prediction model and the global prediction model and updates the configuration of the given application using the predicted device-specific configuration.

Claims (84)

1. A method for automatically determining a device-specific configuration for a given application operating on a user device, the user device having a processor, a non-transitory memory and a configuration monitoring program stored in the non-transitory memory, the method comprising:

installing a configuration monitoring program on the user device;

monitoring, by the configuration monitoring program, local user data stored in the non-transitory memory of the user device;

generating, by the configuration monitoring program on the user device, a device-specific configuration prediction model, wherein the device-specific configuration prediction model is generated using a machine learning algorithm applied to the monitored local data;

receiving, by the configuration monitoring program on the user device, a global configuration prediction model, wherein the global configuration prediction model is generated remotely using global user data collected from a plurality of user devices;

defining, by the configuration monitoring program, a predicted device-specific configuration of the given application operating on the user device by:

generating, by the configuration monitoring program using the device-specific configuration prediction model, a local prediction of the device-specific configuration;

generating, by the configuration monitoring program using the global configuration prediction model, a global prediction of the device-specific configuration; and

generating, by the configuration monitoring program, the predicted device-specific configuration of the given application using the local prediction of the device-specific configuration and the global prediction of the device-specific configuration; and

updating the configuration of the given application using the predicted device-specific configuration.

2. The method of claim 1 , further comprising:

monitoring, by the configuration monitoring program, device activity of the user device;

identifying, by the configuration monitoring program, that configuration update criteria have been satisfied based on the device activity; and

updating the configuration of the given application using the predicted device-specific configuration, in response to identifying that the configuration update criteria have been satisfied.

3. The method of claim 2 , further comprising:

defining, by the configuration monitoring program, the predicted device-specific configuration in response to identifying that the configuration update criteria have been satisfied.

4. The method of claim 1 , wherein the global user data comprises anonymized aggregate data collected from a plurality of user devices while omitting personally identifiable information.

5. The method of claim 1 , wherein the configuration monitoring program is installed on a plurality of user devices, and the method further comprises:

transmitting a query to the plurality of user devices, wherein the query includes a request for aggregate local user data;

receiving, from the configuration monitoring program operating on each of the plurality of user devices, respective aggregate local user data generated locally by the configuration monitoring program on each user device from the local data stored on that user device; and

combining the aggregate local user data received from the plurality of user devices to generate global aggregate user data.

6. The method of claim 5 , wherein the configuration monitoring program on each user device is configured to generate model weights for the device-specific configuration prediction model, and the aggregate local user data received from the plurality of user devices comprises the model weights.

7. The method of claim 1 , further comprising:

monitoring, by the configuration monitoring program, a user feedback input corresponding to the configuration of the given application; and

updating the device-specific configuration prediction model using data corresponding to the user feedback input.

8. The method of claim 7 , further comprising:

determining, by the configuration monitoring program, a local model prediction metric using the local prediction of the device-specific configuration and the user feedback input.

9. The method of claim 8 , wherein the local model prediction metric is determined by the configuration monitoring program using historical metric results.

10. The method of claim 8 , wherein generating the predicted device-specific configuration of the given application comprises:

determining whether the local prediction metric is above a predetermined performance threshold; and

when the local prediction metric is above the predetermined performance threshold, generating the predicted device-specific configuration of the given application entirely from the local prediction and giving the global prediction no weight, otherwise generating the predicted device-specific configuration of the given application entirely from the global prediction and giving the local prediction no weight.

11. The method of claim 8 , wherein generating the predicted device-specific configuration of the given application comprises:

assigning a first bias weight to the local prediction, wherein the first bias weight is based on the local prediction metric;

assigning a second bias weight to the global prediction; and

generating the predicted device-specific configuration by combining the local prediction and the global prediction according to the first and second bias weights, respectively.

12. The method of claim 11 , further comprising:

determining whether the local prediction metric is above a predetermined performance threshold; and

generating the predicted device-specific configuration using only the global prediction if the local prediction metric is below the predetermined performance threshold, otherwise generating the predicted device-specific configuration by combining the local prediction and the global prediction weighted according to the first and second bias weights respectively.

13. The method of claim 1 , wherein the global data includes a plurality of default configured outcomes.

14. The method of claim 1 , wherein the configuration monitoring program automatically updates the configuration of the given application using the predicted device-specific configuration.

15. A system for automatically determining a device-specific configuration for a given application operating on a first user device, the system comprising:

a plurality of user devices including the first user device, each user device having a processor, a non-transitory memory and a configuration monitoring program stored in the non-transitory memory;

a server in communication with the plurality of user devices, wherein the server is configured to:

collect global user data from the plurality of user devices; and

generate a global configuration prediction model using the global user data; and

the first user device is configured by the configuration monitoring program to:

monitor local user data stored in the non-transitory memory of the first user device;

generate a device-specific configuration prediction model, wherein the device-specific configuration prediction model is generated using a machine learning algorithm using the monitored local data;

receive the global configuration prediction model from the server;

define a predicted device-specific configuration of the given application operating on the first user device by:

generating, using the device-specific configuration prediction model, a local prediction of the device-specific configuration;

generating, using the global configuration prediction model, a global prediction of the device-specific configuration; and

generating the predicted device-specific configuration of the given application using the local prediction of the device-specific configuration and the global prediction of the device-specific configuration; and

update the configuration of the given application using the predicted device-specific configuration.

16. The system of claim 15 , wherein the first user device is further configured by the configuration monitoring program to:

monitor device activity of the first user device;

identify that configuration update criteria have been satisfied based on the device activity; and

update the configuration of the given application using the predicted device-specific configuration, in response to identifying that the configuration update criteria have been satisfied.

17. The system of claim 16 , wherein the first user device is further configured by the configuration monitoring program to:

define the predicted device-specific configuration in response to identifying that the configuration update criteria have been satisfied.

18. The system of claim 15 , wherein the server is configured to collect the global user data as anonymized aggregate data that omits personally identifiable information.

19. The system of claim 15 , wherein the server is configured to:

transmit a query to the plurality of user devices, wherein the query includes a request for aggregate local user data;

receive, from the configuration monitoring program operating on each of the plurality of user devices, respective aggregate local user data generated locally by the configuration monitoring program on each user device from the local data stored on that user device; and

combine the aggregate local user data received from the plurality of user devices to generate the global user data as global aggregate user data.

20. The system of claim 19 , wherein the configuration monitoring program on each user device is configured to generate training weights for the device-specific configuration prediction model, and the aggregate local user data received from the plurality of user devices comprises the training weights.

21. The system of claim 15 , wherein the first user device is further configured by the configuration monitoring program to:

monitor a user feedback input corresponding to the configuration of the given application; and

update the device-specific configuration prediction model using data corresponding to the user feedback input.

22. The system of claim 21 , wherein the first user device is further configured by the configuration monitoring program to:

determine a local model prediction accuracy using the local prediction of the device-specific configuration and the user feedback input.

23. The system of claim 22 , wherein the local model prediction accuracy is determined by the configuration monitoring program on a rolling average basis.

24. The system of claim 22 , wherein generating the predicted device-specific configuration of the given application comprises:

determining whether the local prediction accuracy is above a predetermined performance threshold; and

when the local prediction accuracy is above the predetermined performance threshold, generating the predicted device-specific configuration of the given application entirely from the local prediction and giving the global prediction no weight, otherwise generating the predicted device-specific configuration of the given application entirely from the global prediction and giving the local prediction no weight.

25. The system of claim 22 , wherein generating the predicted device-specific configuration of the given application comprises:

assigning a first bias weight to the local prediction, wherein the first bias weight is based on the local prediction accuracy;

assigning a second bias weight to the global prediction; and

generating the predicted device-specific configuration by combining the local prediction and the global prediction according to the first and second bias weights, respectively.

26. The system of claim 25 , wherein the first user device is further configured by the configuration monitoring program to:

determine whether the local prediction accuracy is above a predetermined performance threshold; and

generate the predicted device-specific configuration using only the global prediction if the local prediction accuracy is below the predetermined performance threshold, otherwise generating the predicted device-specific configuration by combining the local prediction and the global prediction weighted according to the first and second bias weights respectively.

27. The system of claim 15 , wherein the global data includes a plurality of default data outcomes.

28. The system of claim 15 , wherein the configuration monitoring program automatically updates the configuration of the given application using the predicted device-specific configuration.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jan 12, 2026
From: NATIONAL BANK OF CANADA
To: TAPLYTICS INC.
Reel/Frame 073437/0584 →
SECURITY AGREEMENT Recorded Feb 4, 2025
From: TAPLYTICS INC.
To: NATIONAL BANK OF CANADA
Reel/Frame 070101/0965 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2020
From: GLAZER, AARON MOSHA; NORRIS, JONATHAN TAYLOR; WOOTTON, ADAM JAMES; UMAR, IMAAD AHMAD; VUCICEVICH, VICTOR NIKOLA
To: TAPLYTICS INC.
Reel/Frame 052284/0634 →
Continuity (2)
Provisional Application 62827885 · Apr 2, 2019
Related Publication 20200319877A1 · Oct 8, 2020