Coordinated feature engineering system
A system for federated learning comprises a first computing node comprising a first database configured to store data indicative of events associated with a particular subset of a plurality of entities. The first computing node may be configured at least to receive a second set of machine learning features from a second computing node comprising machine learning features generated by data indicative of events associated with a different particular subset of a plurality of entities stored by the second computing node. The first computing node may be configured to generate a first set of machine learning features using the data indicative of events stored in the first database combined with the second set of machine learning features. The first computing node may be configured to cause a machine learning model associated with the first computing node to be trained with the first set of machine learning features.
1 . A machine learning system, the system comprising:
a first data store configured to store data indicative of events associated with a first plurality of entities; and
a first computing node having stored thereon computer-readable instructions that upon execution configure the first node at least to:
receive, from a second computing node, information for use in constructing a machine learning model, the information comprising computed machine learning features, the information being based on data indicative of events associated with a second plurality of entities and inaccessible to the first node;
generate, by the first computing node, a first set of machine learning features using the data indicative of events stored in the first data store in combination with the information received from the second computing node, wherein generating comprises temporal aggregations at one or more prediction time(s) and corresponding label times separated by a gap, and performing a temporally correct join across entities when composing those features;
train a first machine learning model associated with the first computing node with the first set of machine learning features; and
materialize, to a feature store, latest values for each key associated with the first set of machine learning features, and update the latest values via resumable queries using resume tokens.
2 . The machine learning system as recited in claim 1 wherein training the first machine learning model associated with the first computing node comprises constructing a model based on the information received from the second computing node and retraining the constructed machine learning model.
3 . The machine learning system as recited in claim 2 wherein the information for use in constructing a machine learning model comprises learned structure and weight of a first machine learning model.
4 . The machine learning system as recited in claim 2 wherein the information for use in constructing a machine learning model comprises information derived from data indicative of events associated with a second plurality of entities and inaccessible to the first node wherein the information is used to generate machine learning features on the first node.
5 . The machine learning system as recited in claim 4 wherein the information derived from data indicative of events associated with a second plurality of entities and inaccessible to the first node are computed machine learning features for the second set of entities.
6 . The machine learning system as recited in claim 1 wherein generating a first set of machine learning features comprises receiving a plurality of machine learning feature definitions.
7 . A non-transitory computer-readable storage medium having stored thereon computer-readable instructions that upon execution on one or more computing nodes at least cause the one or more computing nodes to:
receive, from a second computing node, information for use in constructing a machine learning model, the information comprising computed machine learning features, the information being based on data indicative of events associated with a second plurality of entities and inaccessible to the one or more computing nodes;
generate, by the one or more computing nodes, a first set of machine learning features using data indicative of events stored in a first data store associated with the one or more computing nodes in combination with the information received from the second computing node, wherein generating comprises temporal aggregations at one or more prediction time(s) and corresponding label times separated by a gap, and performing a temporally correct join across entities when composing those features;
train a first machine learning model associated with the one or more computing nodes with the first set of machine learning features; and
materialize, to a feature store, latest values for each key associated with the first set of machine learning features, and update the latest values via resumable queries using resume tokens.
8 . The computer-readable storage medium as recited in claim 7 , wherein the computer-readable instructions, upon execution on one or more computing nodes, at least cause the one or more computing nodes to cause a machine learning model associated with the one or more computing nodes to be trained with the information received from the second computing node for use in constructing a machine learning model, and wherein the computer-readable instructions, upon execution, construct a model based on the information and retrain the constructed machine learning model.
9 . The computer-readable storage medium as recited in claim 8 wherein the information for use in constructing a machine learning model comprises learned structure and weight of a first machine learning model.
10 . The computer-readable storage medium as recited in claim 8 wherein the information for use in constructing a machine learning model comprises information derived from data indicative of events associated with a second plurality of entities and inaccessible to the first node wherein the information is used to generate machine learning features on the first node.
11 . The computer-readable storage medium as recited in claim 10 wherein the information derived from data indicative of events associated with a second plurality of entities and inaccessible to the first node are computed machine learning features for the second plurality of entities.
12 . The computer-readable storage medium as recited in claim 7 wherein the one or more computing nodes comprise one of mobile devices or computing nodes in a network different from the second computing node.
13 . A computer-implemented method, the method comprising:
receiving, from a second computing node, information for use in constructing a machine learning model, the information comprising computed machine learning features, the information being based on data indicative of events associated with a second plurality of entities and inaccessible to a first computing node;
generating, by the first computing node, a first set of machine learning features using the data indicative of events stored in a first data store in combination with the information received from the second computing node, wherein generating comprises temporal aggregations at one or more prediction time(s) and corresponding label times separated by a gap, and performing a temporally correct join across entities when composing those features;
training a first machine learning model with the first set of machine learning features; and
materializing, to a feature store, latest values for each key associated with the first set of machine learning features, and updating the latest values via resumable queries using resume tokens.
14 . The computer-implemented method as recited in claim 13 wherein the information for use in constructing a machine learning model comprises a second set of machine learning features wherein the second set of machine learning features were generated based on the data indicative of events inaccessible to the first computing node.
15 . The computer-implemented method as recited in claim 13 wherein training a machine learning model with the information received from the second computing node for use in constructing a machine learning model comprises constructing a model based on the information and retraining the constructed machine learning model.
16 . The computer-implemented method as recited in claim 15 wherein the information for use in constructing a machine learning model comprises learned structure and weight of a first machine learning model.
17 . The computer-implemented method as recited in claim 15 wherein the information for use in constructing a machine learning model comprises information derived from data indicative of events associated with a second plurality of entities and inaccessible to the first node wherein the information is used to generate machine learning features on the first node.
18 . The computer-implemented method as recited in claim 17 wherein the information derived from data indicative of events associated with a second plurality of entities and inaccessible to the first node are computed machine learning features for the second plurality of entities.