DETAILED ACTION
This action is in response to the application filed 1 March 2024.
Claims 1 – 20 are pending and have been examined.
This action is Non-Final.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 6 August 2025 has been considered by the examiner.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 5, 6, 7, 8, 14, 15, 16, and 17 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor, or for pre-AIA the applicant regards as the invention.
Claim 5 recites the limitation of wherein the context includes one or more contextual elements, and a sub-context of the plurality of distinct sub-contexts includes a combination of the one or more of contextual elements included in the context; however, this limitation is indefinite as it is unclear how there can be a combination of a single (i.e., one) contextual element. In other words, since the claim allows for a single contextual element in the context, there is nothing to combine. Clarity or correction is requested.
Claims 6 – 8 depend from claim 5, and have the same deficiencies under 35 USC 112(b).
Claim 14 recites the same limitation as in claim 5, and has the same deficiencies under 35 USC 112(b), and is rejected using the same rationale.
Claims 15 – 17 depend from claim 14, and have the same deficiencies under 35 USC 112(b).
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1 – 20 are rejected under 35 U.S.C. 102(a)(1) as being disclosed by Bonaci et al. (U.S. 2023/0359930, hereinafter Bonaci).
In respect to claim 1, Bonaci discloses a computer-implemented method for assigning values to machine learning features, the computer-implemented method comprising (FIG. 1, [0046] System 100 is configured to ingest event data from one or more sources 101, 102 of data. In some configurations, a data source includes historical data, e.g., from historical data source 101. In that case, the data includes data that was received and/or stored within a historic time period, i.e. not real-time. The historical data is typically indicative of events that occurred within a previous time period. For example, the historic time period may be a prior year or a prior two years, e.g., relative to a current time, etc. Historical data source 101 may be stored in and/or retrieved from one or more files, one or more databases, an offline source, and the like or may be streamed from an external source. The historical data ingested by system 100 may be associated with a user of system 100, such as a data scientist, that wants to train and implement a model using features generated from the data. System 100 may ingest the data from one or more sources 101,102 and use it to compute features.) :
receiving, from a requesting entity, a machine learning feature and a context1 ([0035] ... if the user of system '100 wants to train a model to predict how much homes will sell for in Seattle, the user of system 100 may instruct system 100 to choose houses in Seattle as the entities that should be included in the feature vectors and/or examples. in conjunction with paragraph [0037]: Feature engineering system 100 may receive selection configuration from the user and generate the desired features; … [0063] and [0068]: As discussed above, a user of system 100 may be responsible for defining the features used to train or implement a mode! and for configuring example selection (i.e., instructing system 100 on what entities to select, what times feature values should be computed at, and how to sample examples)…);
generating a plurality of distinct sub-contexts2 based on the context ([0070]: In an embodiment, computing each feature includes zero or more temporal aggregations. As described above, temporal aggregations produce a value at each point in time corresponding to the aggregation of events happening at or before that point in time…);
assigning each of the plurality of distinct sub-contexts to a different feature value engine of a plurality of feature value engines (Fig. 1, 103; [0051]: In an embodiment, system 100 includes a feature engine 103. Feature engine 103 is operable on one or more computing nodes which may be servers, virtual machines, or other computing devices... Feature engine 103 is configured to implement a number of the functions and techniques described herein; [0124] … System 802 includes an API Server 808, one or more compute nodes 814, metadata storage 810, event data storage 816, staged data storage 806, prepared data storage 812, and result data storage 818. The event data storage 816, the staged data storage 806, and/or the prepared data storage 812 may utilize an external storage system, such as Amazon S3 or any other external storage system. The compute nodes 814 may be, for example, a feature engine, such as one of the feature engines described above; [0166] Thus, a system for federated learning may include a plurality of local nodes that each run a feature engine [i.e., different feature value engine]. Each of the plurality of local nodes may contain a local dataset that includes data indicative of events associated with a subset of a plurality of entities. For example, each of the feature engines may be responsible for a subset of the entities and may work in collaboration with each other to train a machine learning model. Such a system may support specific mechanisms for exchanging information between the local nodes, as needed to provide certain functionality);
assigning, via parallel operation of the plurality of feature value engines, intermediate values based on the plurality of distinct sub-contexts ([0076] If feature computation layer 106 is configured to operate over all of the input events for both the primary entity and the foreign entity, feature computation layer 106 could simultaneously compute all the necessary aggregations…[0069] ... feature computation layer 106 is configured to compute event-based features by performing temporal aggregations across events associated with an entity … To perform temporal aggregations, feature computation layer 106 produces a feature value at every time, aggregating all of the events that happened up to that particular time…);
receiving, from the plurality of feature value engines, the intermediate values ([0061] … system 100 can quickly access the data in the one or more related events stores 105, use it to compute feature values for one or more selected entities, and combine the feature values [Examiner noting that if values are combined, then the values prior to the combining were separate] to create the desired examples);
aggregating the intermediate values to generate a value for the machine learning feature ([0061]… system 100 can quickly access the data in the one or more related events stores 105, use it to compute feature values for one or more selected entities, and combine the feature values to create the desired examples); and
transmitting the generated machine learning feature value to the requesting entity ([0088] Regardless of the evaluation order that is used, the resulting row containing the values of al! features for a given entity and point in time may be sent to whatever sink is being employed (whether it is collecting statistics for visualization or writing to a file for an export)…).
In respect to claim 2, Bonaci discloses the computer-implemented method of claim 1, wherein the requesting entity comprises an upstream software application ([0047] In another aspect of example feature engineering system 100, the data source includes a stream of data 102, e.g., indicative of events that occur in real-time. For example, stream of data 102 may be sent and/or received contemporaneous with and/or in response to events occurring. In an embodiment, data stream 102 includes an online source, for example, an event stream that is transmitted over a network such as the Internet. Data stream 102 may come from a server and/or another computing device that collects, processes, and transmits the data and which may be external to the feature engineering system) [Examiner noting that the source of the request does not affect the performance of the method]. .
In respect to claim 3, Bonaci discloses the computer-implemented method of claim 1, further comprising: receiving an event, wherein the event includes one or more contextual elements and one or more values associated with the contextual elements; generating a random event ID associated with the event; transmitting the event ID and the one or more contextual elements to each of the plurality of feature value engines; and associating the assigned intermediate values received from the plurality of feature value engines with the unique ID ([0054] According to another aspect of the disclosed subject matter, event ingestion module 104 is configured to assign events arrival timestamps, such as based on ingesting the data indicating the events. Additionally, event ingestion module 104 may be configured to assign the arrival timestamps using a distributed timestamp assignment algorithm. In an embodiment, the distributed timestamp algorithm assigns timestamps comprising a plurality of parts. For example, a part of a timestamp may have a time component. According to an aspect, the time component indicates an approximate comparison between machines, such as an approximate comparison between a time that data source 101, 102 sent the data and a time that feature engine 103 ingested the data. According to another aspect, the timestamp may have a unique machine identification (ID) that prevents duplicate timestamps among other things. According to yet another aspect, the timestamp has a sequence number. An aspect of the sequence number allows multiple timestamps to be generated. The timestamps may be used to indicate a total order across all events. If events from data stream 102 are a partitioned stream, e.g., a Kafka stream, a Kinesis stream, etc., the timestamps indicate a total order across all events and indicate an order of the events within each partition. The timestamps facilitate approximate comparisons between events from different partitions) .
In respect to claim 4, Bonaci discloses the computer-implemented method of claim 3, further comprising repeatedly updating the value for the machine learning feature based on one or more additional received events ([0083] According to an aspect, feature computation layer 106 is configured to continuously determine features, such as when feature engine 103 ingests new data from data stream 102. Determining features may include updating features and/or feature vectors, such as based on ingesting new data from data stream 102. The feature computation layer 106 may be configured to compute the features and/or update the features at a speed that supports iteration and exploration of potential features to determine good features for a model. As events continue to be produced and/or ingested the size of the raw data set (e.g., saved to the event store 105) increases over time. As a result of the system's 100 feature determination and updating function, the work needed to compute features does not increase over time and/or as the size of the raw data set increases. The continuous computation of features provides for a more efficient feature engine 103 and enables use of more recent feature values when applying the model).
In respect to claim 5, Bonaci discloses the computer-implemented method of claim 1, wherein the context includes one or more contextual elements, and a sub-context of the plurality of distinct sub-contexts includes a combination of the one or more of contextual elements included in the context ([0035] ... if the user of system '100 wants to train a model to predict how much homes will sell for in Seattle, the user of system 100 may instruct system 100 to choose houses in Seattle as the entities that should be included in the feature vectors and/or examples… and [0037] Feature engineering system 100 may receive selection configuration from the user and generate the desired features; … [0063] and [0068] As discussed above, a user of system 100 may be responsible for defining the features used to train or implement a mode! and for configuring example selection (i.e., instructing system 100 on what entities to select, what times feature values should be computed at, and how to sample examples)…).
In respect to claim 6, Bonaci discloses the computer-implemented method of claim 5, wherein the contextual elements include at least one of a user's location, a user's profile, a time of day, an identification number associated with a user's device, or a user's current Internet Protocol (IP) address ([0054] According to another aspect of the disclosed subject matter, event ingestion module 104 is configured to assign events arrival timestamps, such as based on ingesting the data indicating the events. Additionally, event ingestion module 104 may be configured to assign the arrival timestamps using a distributed timestamp assignment algorithm. In an embodiment, the distributed timestamp algorithm assigns timestamps comprising a plurality of parts. For example, a part of a timestamp may have a time component. According to an aspect, the time component indicates an approximate comparison between machines, such as an approximate comparison between a time that data source 101, 102 sent the data and a time that feature engine 103 ingested the data. According to another aspect, the timestamp may have a unique machine identification (ID) that prevents duplicate timestamps among other things. According to yet another aspect, the timestamp has a sequence number. An aspect of the sequence number allows multiple timestamps to be generated. The timestamps may be used to indicate a total order across all events. If events from data stream 102 are a partitioned stream, e.g., a Kafka stream, a Kinesis stream, etc., the timestamps indicate a total order across all events and indicate an order of the events within each partition. The timestamps facilitate approximate comparisons between events from different partitions).
In respect to claim 7, Bonaci discloses the computer-implemented method of claim 5, wherein generating the plurality of sub-contexts further comprises: identifying a plurality of contextual elements included in the context; determining intermediate values necessary to calculate a value for the machine learning feature; determining one or more distinct combinations of contextual elements, wherein each distinct combination includes one or more contextual elements necessary to calculate one or more of the intermediate values; and identifying each of the one or more distinct combinations of contextual elements as a distinct sub-context ([0063]; [0068], As discussed above, a user of system 100 may be responsible for defining the features used to train or implement a model and for configuring example selection (i.e. instructing system 100 on what entities to select, what times feature values should be computed at, and how to sample examples). The user of system 100 may be a data scientist that wants to generate event-based features to train an event-based model. Because the user of system 100, such as a data scientist, understands its own data and the problem that needs to be solved, the user of system 100 may be best equipped to define useful features for training or implementing the model; [0070] In an embodiment, computing each feature includes zero or more temporal aggregations. As described above, temporal aggregations produce a value at each point in time corresponding to the aggregation of events happening at or before that point in time…).
In respect to claim 8, Bonaci discloses the computer-implemented method of claim 7, wherein a particular feature value engine assigns intermediate values based on data stored in one or more feature data sets ([0075] In an embodiment, in addition to aggregations over related events, computing each feature includes zero or more lookups of values computed over other sets of events. For example, if the features are computed over events performed by user entities it may be useful to lookup properties computed from events relating to specific videos. In this case, the features computed from events related to users are "lookup" values computed from events related to videos. This "lookup" operation provides similar capabilities to a join operation. [0076] If feature computation layer 106 is configured to operate over all of the input events for both the primary entity and the foreign entity, feature computation layer 106 could simultaneously compute all the necessary aggregations. While this is conceptually how temporal aggregations with lookups behave, feature computation layer 106 performs this in a partitioned and potentially distributed manner. Without lookups, temporal aggregations may be executed entirely partitioned by entity. When executing temporal joins across multiple partitions, any lookup may request data from any other entity, and therefore any other partition, thus requiring some mechanism for cross-partition communication.
In respect to claim 9, Bonaci discloses the computer-implemented method of claim 1, wherein the plurality of feature value engines are implemented as virtual machines (VMs) ([0051] In an embodiment, system 100 includes a feature engine 103. Feature engine 103 is operable on one or more computing nodes which may be servers, virtual machines, or other computing devices. The computing devices may be a distributed computing network, such as a cloud computing system or provider network. Feature engine 103 is configured to implement a number of the functions and techniques described herein.).
Claims 10 – 18 recite a non-transitory computer-readable media, and claims 19 and 20 recite a method performing the same steps as found in claims 1, 2, and 3 – 9, and are rejected using the same rationale.
Conclusion
The prior art made of record and not relied upon considered pertinent to Applicant’s disclosure.
Wu; Chih-Wei et al. US 20210350820 A1 Techniques For Computing Perceived Audio Quality Based On A Trained Multitask Learning Model
Fogelson; Benjamin Marc Feder et al. US 20220027795 A1 Techniques For Training A Classifier To Detect Executional Artifacts In Microwell Plates
Helgeson, Chris et al. US 20020049749 A1 Method and apparatus for a business applications server management system platform
Bonaci; Davor et al. US 20220156254 A1 Feature Engineering System
Saha; Rudra et al. US 20250005335 A1 Automated Content Creation For Collaboration Platforms Using Prompt Modules
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ALAN S MILLER whose telephone number is (571)270-5288. The examiner can normally be reached on M-F 10am-6pm. Examiner’s fax phone number is (571) 270-6288.
Examiner interviews are available via telephone and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Beth Boswell can be reached at (571) 272-6737. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/ALAN S MILLER/Primary Examiner, Art Unit 3625
1 Noting ¶¶ [0032], [0034], [0041] of Applicant’s disclosure. As such, context is interpreted to mean one or more contextual elements relevant to the machine learning feature.
2 Noting ¶ [0042] of Applicant’s disclosure. As such, the term sub-context has therefore been interpreted as a subset of the context including one or more of the contextual elements.