# US 12,118,372 B2 · App usage models with privacy protection

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,118,372 B2
- Document ID: US12118372B2
- Status: Granted
- Kind: B2
- Application number: 17/948,942
- Filed: 2022-09-20
- Published: 2024-03-21
- Granted: 2024-10-15
- Earliest claimed: 2022-09-20
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Dhruv Joshi; David William Brown; Dolly Sobhani; Brian Eugene Kihneman
- Web page: https://patentgrep.com/patent/US12118372B2

## CPC

- G06F 9/453: {Help systems}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 21/6245: {Protecting personal data, e.g. for financial or medical purposes}
- G06F 21/6254: {by anonymising data, e.g. decorrelating personal data from the owner's identification}
- G06N 3/0442: characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
- G06N 3/098: Distributed learning, e.g. federated learning
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Methods, systems, and computer programs are presented for generating a usage model for predicting user commands in an app. One method includes receiving model information from client devices. The model is obtained at each client device by training a machine-learning program with app usage data. The server generates synthetic data using the models from the client devices. A machine-learning program is trained using the synthetic data to obtain a global model, which receives as input information about recent commands entered on the app and generates an output with a prediction for the next command expected to be received by the app. The information of the global model is transmitted to a first client device, and the app provides at least one command option in the app user interface based on a prediction, generated by the global model, of the next command expected.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving, at a server, model information from a plurality of client devices, the model information being for a model obtained at each client device by training a machine-learning program with app usage data obtained at the client device;
generating, at the server, synthetic data generated using the models from the plurality of client devices;
training a machine-learning program using the synthetic data to obtain a global model, the global model receiving as input information about at least one recent command entered on the app and generating an output comprising at least one prediction for the next command expected to be received by the app, wherein the training is based on features comprising a command identifier (ID), a timestamp, a context of use in the app, information about a user interacting with the app, and information about the client device; and
transmitting information of the global model to a first client device from the plurality of client devices, wherein the global model executing on the first client device generates the prediction for the next command expected, wherein the app executing on the first client device provides at least one command option in an app user interface comprising the next command expected.

### Claim 2 (depends on 1)

The method as recited in claim 1, wherein the model of each client device is configured for input comprising recent commands entered on the app and producing an output of at least one predicted command to be entered in the app.

### Claim 3 (depends on 1)

The method as recited in claim 1, wherein generating the synthetic data comprises:
using a random input for one of the models; and
generating an output that comprises a simulated command entered in the app.

### Claim 4 (depends on 1)

The method as recited in claim 1, wherein the synthetic data comprises data generated by the model that simulates usage of the app.

### Claim 5 (depends on 1)

The method as recited in claim 1, wherein the global model is generated with models from client devices in a plurality of regions, wherein actual usage data from the users is not transmitted to the server.

### Claim 6 (depends on 1)

The method as recited in claim 1, wherein the at least one command option in the app user interface includes a shortcut to the next command expected to be received by the app.

### Claim 7 (depends on 1)

The method as recited in claim 1, further comprising:
generating synthetic data for a cohort of users to simulate utilization of the app; and
generating, using the synthetic data corresponding to a cohort of users, a cohort model for making predictions for the cohort of users utilizing the app, wherein a cohort refers to a group of users that share one or more characteristics.

### Claim 8 (depends on 1)

The method as recited in claim 1, further comprising:
utilizing the global model for making predictions for a server-based version of the app.

### Claim 9 (depends on 1)

The method as recited in claim 1, further comprising:
generating, by the server, a federated model using federated learning and the model information from the plurality of client devices.

### Claim 10 (depends on 1)

The method as recited in claim 1, wherein the global model is used for a specific cohort without collecting user-specific metadata resulting in a reduction of bias.

### Claim 11

A server comprising:
a memory comprising instructions; and
one or more computer processors, wherein the instructions, when executed by the one or more computer processors, cause the server to perform operations comprising:
receiving model information from a plurality of client devices, the model information being for a model obtained at each client device by training a machine-learning program with app usage data obtained at the client device;
generating synthetic data generated using the models from the plurality of client devices;
training a machine-learning program using the synthetic data to obtain a global model, the global model receiving as input information about at least one recent command entered on the app and generating an output comprising at least one prediction for the next command expected to be received by the app, wherein the training is based on features comprising a command identifier (ID), a timestamp, a context of use in the app, information about a user interacting with the app, and information about the client device; and
transmitting information of the global model to a first client device from the plurality of client devices, wherein the global model executing on the first client device generates the prediction for the next command expected, wherein the app executing on the first client device provides at least one command option in an app user interface comprising the next command expected.

### Claim 12 (depends on 11)

The server as recited in claim 11, wherein the model of each client device is configured for input comprising recent commands entered on the app and producing an output of at least one predicted command to be entered in the app.

### Claim 13 (depends on 11)

The server as recited in claim 11, wherein generating the synthetic data comprises:
using a random input for one of the models; and
generating an output that comprises a simulated command entered in the app.

### Claim 14 (depends on 11)

The server as recited in claim 11, wherein the synthetic data comprises data generated by the model that simulates usage of the app.

### Claim 15 (depends on 11)

The server as recited in claim 11, wherein the instructions further cause the one or more computer processors to perform operations comprising:
generating synthetic data for a cohort of users to simulate utilization of the app; and
generating, using the synthetic data corresponding to a cohort of users, a cohort model for making predictions for the cohort of users utilizing the app, wherein a cohort refers to a group of users that share one or more characteristics.

### Claim 16

A tangible machine-readable storage medium including instructions that, when executed by a machine, cause the machine to perform operations comprising:
receiving, at a server, synthetic data generated at a plurality of client devices using models executing at the plurality of client devices, each model being obtained at each client device by training a machine-learning program with app usage data obtained at the client device;
training a machine-learning program using the synthetic data to obtain a global model, the global model receiving as input information about at least one recent command entered on the app and generating an output comprising at least one prediction for the next command expected to be received by the app; and
transmitting information of the global model to a first client device from the plurality of client devices, wherein the global model executing on the first client device generates the prediction for the next command expected, wherein the app executing on the first client device provides at least one command option in an app user interface comprising the next command expected.

### Claim 17 (depends on 16)

The tangible machine-readable storage medium as recited in claim 16, wherein the model of each client device is configured for input comprising recent commands entered on the app and producing an output of at least one predicted command to be entered in the app.

### Claim 18 (depends on 16)

The tangible machine-readable storage medium as recited in claim 16, wherein the training is based on features comprising a command identifier (ID), a timestamp, a context of use in the app, information about a user interacting with the app, and information about the client device.

### Claim 19 (depends on 16)

The tangible machine-readable storage medium as recited in claim 16, wherein the synthetic data is generated by:
using a random input for one of the models; and
generating an output that comprises a simulated command entered in the app.

### Claim 20 (depends on 16)

The tangible machine-readable storage medium as recited in claim 16, wherein the synthetic data comprises data generated by the model that simulates usage of the app.
