An example system includes a memory store of aggregate definitions. Each aggregate definition specifies a key value, an output store, a feature, a half-life value, and an aggregate operation metric to apply to a cross of the feature and the half-life value to generate aggregate metrics. The system also includes an aggregation engine that generates aggregate feature records from the input source based on the aggregate definitions and stores the aggregate feature records in the output store. An aggregate feature record includes an aggregate of the metric for the feature decayed over time using the half-life. The system also includes a query service that identifies, using the aggregate definitions, responsive aggregate feature records that satisfy parameters of a received request, applies the half-life to the responsive feature records, and provides the responsive feature records to a requester, the requester using the responsive feature records as input for a neural network.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A system comprising: at least one processor; memory storing aggregate definitions, each aggregate definition specifying: a key, an output store, a feature, a half-life value, and an aggregate operation to apply to a cross of the feature and the half-life value to generate aggregate metrics; and memory storing an aggregation engine configured to generate aggregate feature records from the input source based on the aggregate definitions and store the aggregate feature records in the output store, an aggregate feature record including an aggregate metric for the feature decayed over time using the half-life value; and memory storing a query service configured to: receive a request having parameters, identify, using the aggregate definitions, responsive aggregate feature records that satisfy the parameters, apply the half-life to the responsive feature records, and provide the responsive feature records to a requester, the requester using the responsive feature records as input for a neural network. 2. The system of claim 1, wherein the feature is a binary field or a continuous field found in the input source. 3. The system of claim 2, wherein at least some aggregate definitions further specify a label, the label being a binary field found in the input source, and the aggregation engine applies the aggregate operation to a full cross of the feature and the label and the half-life value. 4. The system of claim 1, wherein at least one aggregate definition includes two half-life values and the aggregate feature records generated from the at least one aggregate definition includes the aggregate operation applied to a cross of the feature and each of the two half-life values. 5. The system of claim 1, wherein the aggregation engine and query service continue to operate when a second feature is added to an aggregate definition. 6. The system of claim 1, wherein each aggregate feature record includes a version. 7. The system of claim 1, wherein at least some aggregate definitions also specify a transformation engine for translating data in the input source to a common input format used by the aggregation engine. 8. The system of claim 1, wherein the aggregate feature record includes a total count of records regardless of feature. 9. The system of claim 1, wherein the aggregation engine generates aggregate feature records in a batch mode and each aggregate feature record is associated with a batch number and the query service is configured to apply the half-life to a first aggregate feature record based on an end time for the batch number and a last update date associated with the first aggregate feature record. 10. A method comprising: reading a new record from an input source; accessing a plurality of aggregate definitions, each of the plurality of aggregate definitions specifying: a key, an output store indicating a location for aggregate records generated from the aggregate definition, a feature set indicating one or more information fields from the input source, a half-life value set indicating one or more time periods, and a set of aggregate operations to apply to a cross of the feature set and half-life value set to generate a set of aggregate metrics; determining, based on the accessing, a respective input key value for each of the aggregate definitions, wherein the respective input key value is determined based on the key for the aggregate definition and a corresponding value from the new record; identifying first aggregate feature records in output stores associated with the plurality of aggregate definitions, each first aggregate feature record having a value for the key that matches the respective input key value for the aggregate definition and wherein each first aggregate feature record includes one or more aggregate metrics, the plurality representing a cross of the feature set, the half-life value set, and the aggregate operation set specified in the aggregate definition; for each of the first aggregate feature records, updating the aggregate metrics using the record from the input source and a half-life decay applied to the aggregate metrics; and using the aggregate feature records as input to a neural network. 11. The method of claim 10, wherein updating the aggregate metrics includes, for each of the first aggregate feature records: computing current aggregate metrics for the record from the input source; and combining the current aggregate metrics with decayed aggregate metrics of the first aggregate feature record. 12. The method of claim 11, wherein the combining the current aggregate metrics with decayed aggregate metrics is accomplished according to Y + X * 2  ( t old - t new ) H , where: X is a prior aggregate metric; told is a timestamp associated with X; Y is the current aggregate metric; tnew is a timestamp associated with Y; and H is the half-life value. 13. The method of claim 10, wherein using the aggregate feature records as input to a neural network includes: receiving a query specifying parameters; obtaining responsive aggregate feature records that match the parameters using the plurality of aggregate definitions; and providing the responsive aggregate feature records to the neural network. 14. The method of claim 10, wherein at least one of the aggregate definitions further specifies a transformation routine and the method further includes performing the transformation routine on the input record before identifying the first aggregate records. 15. The method of claim 10, wherein at least one of the plurality of aggregate definitions further specifies a label set, wherein the aggregate operation set is applied to the cross of the feature set, the label set, and half-life value set. 16. A method comprising: receiving a query parameter; determining, from a plurality of aggregate definitions, responsive aggregate definitions that are responsive to the parameter, each of the plurality of aggregate definitions specifying: a key, an output store indicating a location for aggregate records generated from the aggregate definition, a feature set indicating one or more information fields from the input source, a half-life value set indicating one or more time periods, and a set of aggregate operations identifying one or more aggregate operators to apply to a cross of the feature set and half-life value set; obtaining responsive aggregate feature records that are responsive to the parameter from output stores specified in the responsive aggregate definitions; applying a half-life decay to each responsive aggregate feature record, the half-life decay for a particular aggregate feature record being based on a timestamp associated with the particular aggregate feature record and a last-update timestamp; and providing the responsive aggregate feature records as input to a neural network. 17. The method of claim 16, wherein at least some of the output stores are from an online source and at least some of the output stores are from a batch source. 18. The method of claim 16, wherein the query parameter specifies a key-value pair and the responsive aggregate definitions have a key that matches the key of the key-value pair. 19. The method of claim 18, wherein the query parameter represents a user identifier the key and providing the responsive aggregate feature records as input to the neural network increases the accuracy of a prediction by the neural network for the user. 20. The method of claim 16, wherein the query parameter is a record having a same format as the aggregate feature records and the responsive aggregate definitions have a key that matches the key of the key-value pair. 21. The method of claim 16, wherein the query parameter is a record having a same format as the aggregate feature records and the responsive aggregate definitions are the plurality of aggregate definitions and the responsive aggregate feature records are aggregate feature records with an associated respective key value that matches the value of a field in the record corresponding to the key of the respective aggregate definition for the aggregate feature record.