- Get data (Hopefully a lot)
- Preprocess (aka clean up) the data
- Find/create an architecture
- Train the model using the data(1) and the architecture(3). This step is done once. And then periodically updated as the data changes over time. Keep this in mind.
- Push the model out to n users
- Collect data about how well the model did. (Bye bye privacy)
- Send this data back to the main model.
7 (#new). Find the difference between the original model and the personalized one’s parameters. Do this for multiple users. Remove identifiable information.
7.1 (#new). Aggregate (eg. average) the information and then send that to the main model
- Retrain the model on new data