DETAILED ACTION
This non-final office action is in response to claims filed on 08/30/2024.
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 08/30/2024 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention, “Machine Learning Ensemble for Processing Divergent Input Domains for Automated Scheduling Systems”, is directed to an abstract idea, specifically Mental Processes and Mathematical Concepts, without significantly more. The claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception because the additional elements individually or in combination provide mere instructions to implement the abstract idea on a computer.
Step 1: Claims 1-20 are directed to a statutory category, namely a process (claims 1-10) and a machine (claims 11-20).
Step 2A (1): Independent claims 1 and 11 are directed to an abstract idea of Mental Processes and Mathematical Concepts , based on the following claim limitations: “receiving a dataset of click-through information for a plurality of links contained in a corresponding plurality of past emails transmitted on a plurality of days within a plurality of years; selecting first training data comprising a first subset of the click-through information for the dataset, wherein selecting comprises selecting ones of the click-through information that are associated with a first application executing on a first domain comprising a first ontologically defined grouping of entities; selecting second training data comprising a second subset of the click-through information for the dataset, wherein selecting comprises selecting ones of the click-through information that are associated with a second application executing on a second domain comprising a second ontologically defined grouping of entities, wherein: the first domain is divergent from the second domain such that when the first training data and the second training data are merged and used to train a single…model, then distinguishing hidden patterns in the first subset and the second subset are not detected by the single…model; storing, as a first vector data structure, the first training data; storing, as a second vector data structure, the second training data; training, on the first vector data structure, a first autoregressive integrated moving average…model (a first ARIMA), wherein: training the first ARIMA comprises inputting the first vector data structure to the first ARIMA, generating a first test output, generating a first loss function responsive to the first test output failing to achieve a first convergence, and updating a first parameter of the first ARIMA using the first loss function, training the first ARIMA continues until the first convergence, training the first ARIMA generates a first trained ARIMA, and the first trained ARIMA is trained on the first domain; training, on the second vector data structure, a second autoregressive integrated moving average…model (a second ARIMA), wherein: training the second ARIMA comprises inputting the second vector data structure to the second ARIMA, generating a second test output, generating a second loss function responsive to the second test output failing to achieve a second convergence, and updating a second parameter of the second ARIMA using the second loss function, training the second ARIMA continues until the second convergence, training the second ARIMA generates a second trained ARIMA, and the second trained ARIMA is trained on the second domain; and deploying the first trained ARIMA and the second trained ARIMA (claim 1); “ …storing: a dataset of click-through information for a plurality of links contained in a corresponding plurality of past emails transmitted on a plurality of days within a plurality of years, first training data comprising a first subset of the click-through information for the dataset, second training data comprising a second subset of the click-through information for the dataset, … a first domain comprising a first ontologically defined grouping of entities, … a second domain comprising a second ontologically defined grouping of entities, wherein the first domain is divergent from the second domain such that when the first training data and the second training data are merged and used to train a single…model, then distinguishing hidden patterns in the first subset and the second subset are not detected by the single…model, a first vector data structure storing the first training data, and a second vector data structure storing the second training data; a first autoregressive integrated moving average…model (a first ARIMA)…; a second autoregressive integrated moving average…model (a second ARIMA) …; receiving the dataset, selecting the first training data from the dataset, wherein selecting comprises selecting ones of the click-through information that are associated with a first application executing on the first domain, identifying the second training data from the dataset, wherein selecting comprises selecting ones of the click-through information that are associated with a second application executing on the second domain, storing the first training data in the first vector data structure, storing the second training data in the second vector data structure, training the first ARIMA by inputting the first vector data structure to the first ARIMA, generating a first test output, generating a first loss function responsive to the first test output failing to achieve a first convergence, and updating a first parameter of the first ARIMA using the first loss function, wherein: training the first ARIMA continues until the first convergence, training the first ARIMA generates a first trained ARIMA, and the first trained ARIMA is trained on the first domain, and training the second ARIMA by inputting the second vector data structure to the second ARIMA, generating a second test output, generating a second loss function responsive to the second test output failing to achieve a second convergence, and updating a second parameter of the second ARIMA using the second loss function, wherein: training the second ARIMA continues until the second convergence, training the second ARIMA generates a second trained ARIMA, and the second trained ARIMA is trained on the second domain; …deploys the first trained ARIMA and the second trained ARIMA (claim 11)”. These claims describe a process of training, testing, and deploying ARIMA (i.e. statistical) models. Training, testing, and deploying models can practically be performed in the human mind with pen and paper via mathematical evaluation (e.g. moving average, loss function, convergence). Training is a computational process which involves fitting a particular mathematical model to a dataset and learning patterns within the data set. Dependent claims 2-10 and 12-20 further describe input and output of the ARIMA model and the use of the output (e.g. predicted click-through rates) to generate a schedule for email transmissions. Devising a schedule that includes calendar days, times, and color-coding can also be done mentally with pen and paper. Therefore, these limitations, under the broadest reasonable interpretation, fall within the abstract groupings of Mental Processes which include concepts performed in the human mind such as observations, evaluations, judgments, and opinions and Mathematical Concepts which encompasses mathematical relationships, mathematical formulas or equations, and mathematical calculations. Mental Processes include claims directed to collecting information, analyzing it, and displaying certain results of the collection and analysis even if they are claimed as being performed on a computer. The courts have found claims requiring a generic computer or nominally reciting a generic computer may still recite a mental process even though the claim limitations are not performed entirely in the human mind. Therefore, claims 1-20 are directed to an abstract idea and are not patent eligible.
Step 2A (2): This judicial exception is not integrated into a practical application. In particular, claims 1-4, 9, and 11-14 recite additional elements of “a first application executing…, a second application executing…, machine learning (claims 1 and 11), email comprising a new link; transmitting the new email containing the new link (claims 2 and 12); presenting, on a display..; transmitting the new email (claims 3 and 13); wherein transmitting the new email comprises automatically send the email (claims 4 and 14); transmitting, automatically, the new email…(claims 9 and 19); a system comprising: a processor; a network interface in communication with the processor; a data repository in communication with the processor, the data repository storing; a first…machine learning model executable by the processor; a second…machine learning model executable by the processor; a training controller which, when executed by the processor, perform a computer-implemented method (claim 11)”. These additional elements do not integrate the abstract idea into a practical application because the claims do not recite (a) an improvement to another technology or technical field and (b) an improvement to the functioning of the computer itself and (c) implementing the abstract idea with or by use of a particular machine, (d) effecting a particular transformation or reduction of an article, or (e) applying the judicial exception in some other meaningful way beyond generally linking the use of an abstract idea to a particular technological environment. These additional elements are viewed as computing and display devices that are used to perform the abstract process highlighted in Step 2A(1). The use of the machine learning and trained models are considered instructions to apply or implement a model on a computer. Limitations that recite mere instructions to implement an abstract idea on a computer or merely uses a computer as a tool to perform an abstract idea are not indicative of integration into a practical application (see MPEP 2106.05(f)). Also, limitations that amount to merely indicating a field of use or technological environment (e.g. marketing/machine learning) in which to apply a judicial exception do not amount to significantly more than the exception itself, and cannot integrate a judicial exception into a practical application (see MPEP 2106.05(h)). Therefore, claims 1-20 do not include individual or a combination of additional elements that integrate the judicial exception into a practical application and thus are not patent eligible.
Step 2B: The claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. Claims 1-4, 9, and 11-14 recite additional elements of “a first application executing…, a second application executing…, machine learning (claims 1 and 11), email comprising a new link; transmitting the new email containing the new link (claims 2 and 12); presenting, on a display..; transmitting the new email (claims 3 and 13); wherein transmitting the new email comprises automatically send the email (claims 4 and 14); transmitting, automatically, the new email…(claims 9 and 19); a system comprising: a processor; a network interface in communication with the processor; a data repository in communication with the processor, the data repository storing; a first…machine learning model executable by the processor; a second…machine learning model executable by the processor; a training controller which, when executed by the processor, perform a computer-implemented method (claim 11)”. As per the Applicant’s specification, the machine learning model is a computer program that has been trained to recognize certain types of pattern and may be a time-series model, such as ARIMA PLUS model ([0039] and [0067]); an email program is a computer program [0047]; a link embedded in the email is a hyperlink [0088]; a network can be a LAN, WAN, etc. [00107]; the system is a computing system (Fig. 5A and [00106]); a processor may be one or more cores or micro-cores and may include a CPU, GPU, TPU, etc. [00106]; network interface is one or more hardware components or software programs that operate together that permit the server to communicate with distributed components of the server [0037]; a data repository may be a type of storage unit or device [0019]; the training controller is application specific hardware or software and a training algorithm, implemented as software or application specific hardware ([0043] and [0050]);. These additional elements are viewed as mere instructions to apply or implement the abstract idea on a computer. Applying an abstract idea on a computer does not integrate a judicial exception into a practical application or provide an inventive concept (see MPEP 2106.05(f)). Therefore, claims 1-20 do not include individual or a combination of additional elements that are sufficient to amount to significantly more than the judicial exception and thus are not patent eligible.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1, 5, 11, and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Longo et al. (US 2021/0374801 A1) in view of Samadi (US 2019/0379592 A1) and in further view of Hao et al. (US 2020/0381125 A1).
As per claim 1, Longo teaches a method comprising (Longo e.g. Methods, systems, and computer programs for the determination of optimal communication scheduling [0023]. Fig. 6 illustrates the training and use of a MLP. MLPs, also referred to as ML algorithms or tools , are utilized to build models that determine communication send-time, preferred frequency, preferred channel, and score the user engagement [0084].) :
Longo teaches receiving a dataset of click-through information for a plurality of links contained in a corresponding plurality of past emails transmitted on a plurality of days within a plurality of years; (Longo e.g. FIG. 7 is a flowchart of method 700 for send-time optimization, according to some example embodiments [0098]. At operation 702, engagement data is collected, where the engagement data includes, at least, past communications sent to recipients and the level of engagement of these recipients in response to the past communications [0099]. In one example, the responses of users to previous communications include an indication if the users read the previous communications and an indication if the users selected a link in the previous communications [0148]. In one example, the communications are one of an email message or a Short Message Service (SMS) message [0154]. The event manager is used for managing events that are stored in the event database. The events are collected by the ICS from multiple sources and relate to the interactions of customers 202 with the ICS or other online services [0040]. When a customer 202 responds to an ad (shown on display 206), the corresponding ad channel obtains the customer 202′s information (e.g., first name, last name, and email address) and forwards the information to the ad system 210. Additionally, the communications channels 204 may communicate other types of events captured for the customer 202, such as clicking on an ad, liking an ad or some other communication, and so forth [0043]. Communications channels 203-205 include email channels 204 (e.g., Facebook, Instagram, Google Ads), SMS channels 203, phone channels 205, and so forth [0037]. Training data may include emails sent by the email sender for a year. In some embodiments the data is sub-sampled (e.g., filtered) to reduce the training set. For example, only the data for a period of 90 days or 180 days is used [0077].)
Longo teaches selecting first training data comprising a first subset of the click-through information for the dataset, wherein selecting comprises selecting ones of the click-through information that are associated with a first application executing on a first domain comprising a first ontologically defined grouping of entities; (Longo e.g. One general aspect includes a method that includes an operation for training a machine-learning program to generate a send-time model that determines a time for sending communications to users. The training utilizes training data defined by features related to user information and responses of users to previous communications to the users [0027]. Another general aspect includes a method that includes an operation for training a machine-learning program to generate a frequency model that determines a frequency for sending communications to users. The training utilizes training data defined by features related to user information and responses of users to previous communications to the users [0028]. The features used for training 308 include one or more of email data, body of email, subject of the email, user engagement in response to an email, such as Internet Protocol address of the recipient, data and time of the email and the engagement, email address associated with the engagement, user response (e.g., click a link, delete email, unsubscribe from future communications), and the like. Although the features are described with reference to email communications, the same features are also available from other types of communications, such as SMS communications [0055]. In one example embodiment, the features 302 may be of different types and may include one or more of email data 603, email body 604, email subject 605, recipient Internet Protocol address 606, communications read by the recipient 607, clicks on a communication received by the recipient 608, unsubscribes to communications by the recipient 609, times when the recipient engaged with the communication 610, frequency of communication with the user 611, and so forth [0092]. From operation 702, the method 700 flows to operation 704 where the data for the training set is selected (e.g., filtering some of the available data) [0100]. The user data 402 is used to create the training sets, as described above, for the different models. Each model uses different features, with the corresponding values in the user data 402, to train the corresponding model [0119].)
Longo teaches selecting second training data comprising a second subset of the click-through information for the dataset, wherein selecting comprises selecting ones of the click-through information that are associated with a second application executing on a second domain comprising a second ontologically defined grouping of entities, wherein (Longo e.g. The training utilizes training data defined by features related to user information and responses of users to previous communications to the users [0027]. Training data is a dataset used as input to a training algorithm that generates the model (e.g., historical engagement data from email messages) [0047]. At a high level, the ML models 310 process historical engagement data from previous communications to discover patterns between variables and outcomes that can then be used to make insightful predictions that result in positive outcomes [0054]. Features include data and time of the email and engagement, user response, historical engagement times etc. (Fig. 6, [0055], [0066],and [0092]). The features used for training 308 include one or more of email data, body of email, subject of the email, user engagement in response to an email, such as Internet Protocol address of the recipient, data and time of the email and the engagement, email address associated with the engagement, user response (e.g., click a link, delete email, unsubscribe from future communications), and the like [0055]. For example, the model 310 may be used to predict the best time to send a communication to a user using the user's profile data and history, and the best time may be specified as the time window for sending the communication [0060]. In some example embodiments, the user history may include a plurality of records with communications sent to the user and the response of the user: 1) email sent at 201910060600 from CompA.com, not opened; 2) email sent at 201910070630 from CompB.com, read; 3) email sent at 201910070635 from CompC.com, read and linked in email clicked; and so forth (i.e. training data) [0060]. The user data 402 is used to create the training sets, as described above, for the different models. Each model uses different features, with the corresponding values in the user data 402, to train the corresponding model [0119]. The training data 304 comprises examples of values for the features 302. In some example embodiments, the training data comprises labeled data with examples of values for the features 302 and labels indicating the outcome, such as recipient read the email [0091]. FIG. 8 is a flowchart of method 800 for transmission-frequency optimization [0105]. At operation 802, engagement data is collected, where the engagement data includes, at least, past communications sent to recipients and the level of engagement of these recipients in response to the past communications [0106]. From operation 802, the method 800 flows to operation 804 where the data for the training set is selected (e.g., filtering some of the available data) [0107]. FIG. 9 is a flowchart of method 900 for channel optimization [0112]. At operation 902, engagement data is collected, where the engagement data includes, at least, past communications sent to recipients and the level of engagement of these recipients in response to the past communications [0113]. From operation 902, the method 900 flows to operation 904 where the data for the training set is selected (e.g., filtering some of the available data). In some example embodiments, the training set includes data regarding user responses to communications throughout different channels, which means that channel of communication is one of the features used in the channel model [0114]. FIG. 11 is a flowchart of method 1100 for calculating an engagement scoring model, according to some example embodiments [0134]. At operation 1102, engagement data is collected, where the engagement data includes, at least, past communications sent to recipients and the level of engagement of these recipients in response to the past communications [0135]. From operation 1102, the method 1100 flows to operation 1104 where the data for the training set is selected (e.g., filtering some of the available data) [0136].):
Longo teaches the first domain is divergent from the second domain… (Longo teaches data categories (i.e. domains) such as types of users/customers ([0038] and [0081]), types of communications (e.g. promotional or transactional) ([0055]-[0056] and [0133]), types of channels ([0056], [0066], [0090], [0118]), and types of events (e.g. new purchases, clicking, liking, interactions of customers with ICS or other online services) ([0030], [0040] and [0043]). Communications channels 203-205 include email channels 204 (e.g., Facebook, Instagram, Google Ads), SMS channels 203, phone channels 205, and so forth [0037]. Features may be of different types, such as numeric features, strings, and graphs [0091]. In one example embodiment, the features 302 may be of different types and may include one or more of email data 603, email body 604, email subject 605, recipient Internet Protocol address 606, communications read by the recipient 607, clicks on a communication received by the recipient 608, unsubscribes to communications by the recipient 609, times when the recipient engaged with the communication 610, frequency of communication with the user 611, and so forth [0092].)
Longo teaches storing, as a first vector data structure, the first training data; (Longo e.g. The data may be represented in vectors or matrices of two or more dimensions, which is referred to as embedding [0086]. At operation 706, the data of the training set is embedded. In some example embodiments, embedding the data includes creating a vector for each recipient where the values of the vector correspond to the data for that particular recipient for the identified features [0101].)
Longo teaches storing, as a second vector data structure, the second training data; (Longo e.g. The data may be represented in vectors or matrices of two or more dimensions, which is referred to as embedding [0086]. At operation 806, the data of the training set is embedded. In some example embodiments, embedding the data includes creating a vector for each recipient where the values of the vector correspond to the data for that particular recipient [0108]. At operation 906, the data of the training set is embedded. In some example embodiments, embedding the data includes creating a vector for each recipient where the values of the vector correspond to the data for that particular recipient [0115]. At operation 1106, the data of the training set is embedded. In some example embodiments, embedding the data includes creating a vector for each recipient where the values of the vector correspond to the data for that particular recipient [0137].)
Longo teaches training, on the first vector data structure, a first … machine learning model, (Longo e.g. From operation 706, the method 700 flows to operation 708 where the ML algorithm is trained to obtain the send-time model [0102].)
Longo teaches training the first machine learning model comprises inputting the first vector data structure to the first machine learning model, generating a first…output (Longo e.g. At operation 710, a recipient of the communication is selected (e.g., a user of the email service selects one of the customers), and at operation 712, the send-time model is used, for the selected recipient, by inputting the data of the selected recipient to the send-time model [0103]. The send-time model generates recommendations, at operation 714, for the best time, or times, to send the communication to the selected recipient [0104].)
Longo teaches training the first machine learning model generates a first trained machine learning model, and the first trained machine learning model is trained on the first domain; (Longo e.g. From operation 706, the method 700 flows to operation 708 where the ML algorithm is trained to obtain the send-time model [0102].)
Longo teaches training, on the second vector data structure, a second … machine learning model, wherein (Longo e.g. From operation 806, the method 800 flows to operation 808 where the ML algorithm is trained to obtain the frequency model [0109]. From operation 906, the method 900 flows to operation 908 where the ML algorithm is trained to obtain the channel model [0116]. From operation 1106, the method 1100 flows to operation 1108 where the ML algorithm is trained to obtain the engagement-scoring model [0138].):
Longo teaches training the second machine learning model comprises inputting the second vector data structure to the second machine learning model, generating a second…output (Longo e.g. At operation 810, a recipient of the communication is selected (e.g., a user of the email service selects one of the customers), and at operation 812, the frequency model is used for the selected recipient by inputting the data of the selected recipient to the frequency model [0110]. The frequency model generates recommendations, at operation 814, for the best frequency to send communications to the selected recipient (e.g., 3 times a week, 5 times a month, every Monday) [0111]. At operation 910, a recipient of the communication is selected (e.g., a user of the email service selects one of the customers), and at operation 912, the channel model is used for the selected recipient by inputting the data of the selected recipient to the channel model [0117]. The channel model generates recommendations, at operation 914, for the best channel, or channels (e.g., email, SMS, phone, WhatsApp), to send communications to the selected recipient [0118]. At operation 1110, a recipient of the communication is selected (e.g., a user of the email service selects one of the customers), and at operation 1112, the engagement-scoring model is used for the selected recipient by inputting the data of the selected recipient to the engagement-scoring model [0139]. The send-time model generates recommendations, at operation 1114, for the predicted engagement score for the recipient based on a possible communication. In some example embodiments, the engagement score is a real number between 0 and 1 which indicates the probability that the user engages with the communication. In some example embodiments, different engagement scores may be provided, such as a first engagement score for reading the communication and a second engagement score for responding to the communication (e.g., clicking on a web link) [0140].)
Longo teaches training the second machine learning model generates a second trained machine learning model, and the second trained machine learning model is trained on the second domain; and (Longo e.g. From operation 806, the method 800 flows to operation 808 where the ML algorithm is trained to obtain the frequency model [0109]. From operation 906, the method 900 flows to operation 908 where the ML algorithm is trained to obtain the channel model [0116]. From operation 1106, the method 1100 flows to operation 1108 where the ML algorithm is trained to obtain the engagement-scoring model [0138].)
Longo teaches deploying the first trained machine learning model and the second trained machine learning model. (Longo e.g. FIG. 6 illustrates the training and use of a MLP, according to some example embodiments. MLPs, also referred to as ML algorithms or tools, are utilized to build models that determine communication send-time, preferred frequency, preferred channel, and score the user engagement [0084]. FIG. 10A illustrates the building of a communication strategy for a user based on a plurality of models, according to some example embodiments [0119]. After the training processes, three models are built: the send-time model 1002, the frequency model 1004, and the channel model 1006. Given a communication for a user Uj 404, the send-time model 1002 determines the best time 1008, or times, to send the communication to U1. Further, the frequency model 1004 determines the best frequency of communications for Uj, and the channel model 1006 determines the best channel 1012, or channels, for U1 [0120].)
---------
Longo does not explicitly teach, however, Samadi teaches the first domain is divergent from the second domain such that when the first training data and the second training data are merged and used to train a single machine learning model, then distinguishing hidden patterns in the first subset and the second subset are not detected by the single machine learning model; (Samadi e.g. Samadi teaches a prediction and optimization platform that combines a knowledge base (e.g. an autonomous machine learning model) with customer and domain-specific data to perform high accuracy prediction across various business verticals or domains. The platform leverages a collection/set or "portfolio” of trained machine learning models configured to perform spatial and temporal predictions over any domain that is impacted by population location and activity. The platform can identify correlations among multiple different business resource demands, external phenomena, and future trends, and can respond to anomalous behaviors/event that could not be predicted/forecasted using a machine learning model for a single business domain alone ([0020] and [0021]). The multiple different domain-specific predictive models can be combined with locally-stored location data and/or activity data to perform prediction across domains for behavior that otherwise would seem anomalous and unpredictable from within each isolated domain [0037]. In other words, sudden changes in population movement that may be classified as anomalous by a machine learning algorithm trained within a specific industry domain alone, may instead be recognized as expected (e.g., seasonal) by a composite/combined statistical model generated based on models for each of a plurality of different business/industry verticals (or domains), such as transportation and networking [0037].)
The Examiner submits that before the effective filing date, it would have been obvious to one of ordinary skill in the art to combine Longo’s machine learning training process with Samadi’s domain specific modeling process in order to provide an improved-accuracy, flexible prediction model (Samadi e.g. [0014]).
Longo nor Samadi explicitly teach, however, Hao teaches the following:
Hao teaches training... a first and second autoregressive integrated moving average machine learning model (a first ARIMA and a second ARIMA), wherein (Hao e.g. In some embodiments, the estimation model may be generated by a processing including obtaining a plurality of first training samples and generating the estimation model by training a first machine learning model using the first plurality of training samples [0020]. In some embodiments, the estimation model may be a trained machine learning model, e.g., a trained sequence model. The trained sequence model may include a trained recurrent neural network (RNN) (e.g., a trained Long Short-Term Memory (LSTM) model), a trained autoregressive (AR) model, a trained moving average (MA) model, a trained autoregressive moving average (ARMA) model, a trained autoregressive integrated moving average (ARIMA) model, a trained vector autoregression (VAR) model, a trained structural VAR (SVAR) model, or the like, or any combination thereof [0086]. FIG. 6 is a flowchart illustrating an exemplary process for generating an estimation model according to some embodiments of the present disclosure; ([0031] and [0112]). In 603, the processing device 120B (e.g., the training module 406) may generate the estimation model by training a first machine learning model using the plurality of first training samples [0117]. The first machine learning model may include an RNN model (e.g., an LSTM model), an AR model, an MA model, an ARMA model, an ARIMA model, a VAR model, an SVAR model, or the like, or any combination thereof [0118]. In some embodiments, the processing device 120B may train a plurality of second machine learning models 900 corresponding to different states of a sample subject, different environments where sample scans are taken, different ranges of the heart rate of a sample subject, etc. Each of trained second machine learning models 900 may be designated as an estimation model [0124]. The training of a plurality of second machine learning models 900 can improve the training speed, the accuracy and/or the stability of the estimation model [0124]. In some embodiments, the storage device may store a plurality of estimation models, e.g., corresponding to different genders, different ages, different types of disease, different breath states, different environmental conditions, or the like, or any combination thereof [0111].)
Hao teaches training the first and second ARIMA comprises inputting the first and second vector data structure to the first and second ARIMA, generating a first and second test output generating a first and second loss function responsive to the first and second test output failing to achieve a first and second convergence, and updating a first and second parameter of the first and second ARIMA using the first and second loss function, training the first and second ARIMA continues until the first and second convergence, (Hao e.g. The training module 406 may be configured to generate a trained model (e.g., the estimation model and/or the recommendation model). For example, the training module 406 may generate the estimation model by training the first machine learning model using the plurality of first training samples. As another example, the training module 406 may generate the recommendation model by training the second machine learning model using the plurality of second training samples [0074]. In some embodiments, the first machine learning model 700 may include one or more model parameters. Exemplary model parameters of the first machine learning model 700 may include the number (count) of the plurality of sequentially connected neural networks, a loss function, the matrix W, the matrix U, the matrix V, a training parameter of the first machine learning model 700, or the like, or any combination thereof [0119]. In some embodiments, the training of the first machine learning model 700 may include one or more iterations. The processing device 120B may determine a first assessment result which indicates an accuracy and/or efficiency of the updated first machine learning model 700 [0120]. In some embodiments, the first assessment result may be associated with a difference between predict_HRscan and HRscan. For example, the processing device 120B may determine a loss function to measure the difference [0121]. In some embodiments, the first assessment result may include a determination of whether a termination condition is satisfied in the current iteration. For example, the termination condition may be deemed satisfied if a value of the loss function is minimal or smaller than a threshold (e.g., a constant). As another example, the termination condition may be deemed satisfied if the value of the loss function converges. In some embodiments, convergence may be deemed to have occurred if, for example, the variation of values of loss functions in two or more consecutive iterations is equal to or smaller than a threshold (e.g., a constant) [0121]. In some embodiments, in response to determining that the termination condition is satisfied in the current iteration, the processing device 120B may designate the updated first machine learning model 700 as the estimation model [0122]. As another example, after the estimation model is generated, the processing device 120B may further test the estimation model using a set of testing samples [0123]. The input of the second machine learning model 900 may be denoted as an input vector including elements such as x1, x2, . . . , Xn [0131]. In some embodiments, the training of the second machine learning model 900 may include one or more iterations. Further, the processing device 120B may determine a second assessment result which indicates an accuracy and/or efficiency of the updated second machine learning model 900 [0133]. In some embodiments, the second assessment result may be associated with a difference between the at least one predicted scan parameter and the at least one sample scan parameter. For example, the processing device 120B may determine a loss function to measure the difference [0134]. The termination condition may be deemed satisfied if a value of the loss function is minimal or smaller than a threshold (e.g., a constant). As another example, the termination condition may be deemed satisfied if the value of the loss function converges. In some embodiments, convergence may be deemed to have occurred if, for example, the variation of values of loss functions in two or more consecutive iterations is equal to or smaller than a threshold (e.g., a constant) [0134]. In response to determining that the termination condition is not satisfied, the processing device 120B may update, based on the second assessment result, parameter value(s) (e.g., a value of a connected weight, a value of a bias vector) of the updated second machine learning model 900 to be used in a next iteration [0135].)
Hao teaches training the first ARIMA generates a first trained ARIMA, and the first trained ARIMA is trained on the first domain (Hao e.g. As shown in FIG. 4B, the processing device 120B may include an obtaining module 405 and a training module 406 [0072]. The obtaining module 405 may be configured to obtain data/information used for model training. For example, the obtaining module 405 may obtain a plurality of first training samples used for generating an estimation model. As another example, the obtaining model 405 may obtain a plurality of second training samples used for generating a recommendation model [0073]. As still another example, the obtaining module 405 may obtain a first machine learning model used for generating the estimation model. As a further example, the obtaining module 405 may obtain a second machine learning model used for generating the recommendation model [0073]. The training module 406 may be configured to generate a trained model (e.g., the estimation model and/or the recommendation model). For example, the training module 406 may generate the estimation model by training the first machine learning model using the plurality of first training samples. As another example, the training module 406 may generate the recommendation model by training the second machine learning model using the plurality of second training samples [0074].)
Hao teaches training the second ARIMA generates a second trained ARIMA, and the second trained ARIMA is trained on the second domain (Hao e.g. The training module 406 may be configured to generate a trained model (e.g., the estimation model and/or the recommendation model). For example, the training module 406 may generate the estimation model by training the first machine learning model using the plurality of first training samples. As another example, the training module 406 may generate the recommendation model by training the second machine learning model using the plurality of second training samples [0074]. In some embodiments, in response to determining that the termination condition is satisfied, the processing device 120B may designate the updated second machine learning model as the recommendation model [0135].)
Hao teaches deploying the first trained ARIMA and the second trained ARIMA. (Hao e.g. According to some embodiments of the present disclosure, the determination of various parameters including, e.g., the second parameter set of the subject, the scan parameters, may be automated using an estimation model and/or a recommendation model [0043]. As another example, the processing device 120 may determine at least one scan parameter for a scan based at least in part on the second parameter set and a recommendation model [0047]. In some embodiments, the prediction module 402 may predict the second parameter set of the subject by inputting the first parameter set into the estimation model [0069]. In some embodiments, the recommendation module 403 may determine the at least one scan parameter for the scan based at least in part on the second parameter set of the subject using the recommendation model [0070]. In some embodiments, the estimation model may be a trained machine learning model, e.g., a trained sequence model. The trained sequence model may include a trained recurrent neural network (RNN) (e.g., a trained Long Short-Term Memory (LSTM) model), a trained autoregressive (AR) model, a trained moving average (MA) model, a trained autoregressive moving average (ARMA) model, a trained autoregressive integrated moving average (ARIMA) model, a trained vector autoregression (VAR) model, a trained structural VAR (SVAR) model, or the like, or any combination thereof [0086]. The recommendation model may be a statistical model or a machine learning model. In some embodiments, a model structure of the recommendation model may be the same as or different from that of the estimation model [0099].)
The Examiner submits that before the effective filing date, it would have been obvious to one of ordinary skill in the art to modify Longo in view of Samadi’s machine learning models to include ARIMA as taught by Hao in order to improve the training speed, the accuracy and/or the stability of the model ([0124] and [0144]).
As per claim 11, Longo teaches a system comprising (Longo e.g. (Longo e.g. Methods, systems, and computer programs for the determination of optimal communication scheduling [0023]. Fig. 14 machine 1400 upon which one or more example process may be implemented or controlled may be a server machine, a client machine, or both in server-client network environments [0174].): a processor (Longo e.g. Fig. 14, The machine 1400 may include a hardware processor 1402 [0176].); a network interface in communication with the processor (Longo e.g. Fig. 14, the machine (e.g. computer system) 1400 may include a network interface device 1420. Some or all of the machine 1400 components may communicate with each other via an interlink (e.g. bus) 1408 [0176].); a data repository in communication with the processor, the data repository storing (Longo e.g. Fig. 14, the machine may include a main memory 1404, a static memory 1406, and a mass storage device (e.g. drive unit) [0176]. The mass storage device 1416 may include a machine-readable medium 1422 on which is stored one or more sets of data structures or instructions 1424 (e.g., software) embodying or utilized by any one or more of the techniques or functions described herein [0177]. Some or all of the machine 1400 components may communicate with each other via an interlink (e.g. bus) 1408 [0176].)
Longo teaches a dataset of click-through information for a plurality of links contained in a corresponding plurality of past emails transmitted on a plurality of days within a plurality of years, first training data comprising a first subset of the click-through information for the dataset, second training data comprising a second subset of the click-through information for the dataset, a first application executing on a first domain comprising a first ontologically defined grouping of entities, a second application executing on a second domain comprising a second ontologically defined grouping of entities, (See claim 1 response.)
Longo teaches a first vector data structure storing the first training data, and a second vector data structure storing the second training data; (See claim 1 response)
Longo teaches a training controller which, when executed by the processor, perform a computer-implemented method comprising (Longo e.g. FIG. 3 illustrates the architecture for optimizing data communications, according to some example embodiments [0044]. Training is a computational process to generate the model by discovering patterns in the training data [0048]. An ML algorithm 306 is used during training 308 to generate the model 310 [0058]. ML algorithms include Logistic Regression (LR), Naive-Bayes, Random Forest (RF), neural networks (NN), deep neural networks (DNN), matrix factorization, and Support Vector Machines (SVM), but other ML algorithms may also be used [0058]. Fig. 6 illustrates the training and use of a MLP. MLPs, also referred to as ML algorithms or tools, are utilized to build models that determine communication send-time, preferred frequency, preferred channel, and score the user engagement [0084].)
Longo teaches receiving the dataset, selecting the first training data from the dataset, wherein selecting comprises selecting ones of the click-through information that are associated with a first application executing on the first domain, identifying the second training data from the dataset, wherein selecting comprises selecting ones of the click-through information that are associated with a second application executing on the second domain, storing the first training data in the first vector data structure, storing the second training data in the second vector data structure, (See claim 1 response.)
Longo in view of Samadi teaches wherein the first domain is divergent from the second domain such that when the first training data and the second training data are merged and used to train a single machine learning model, then distinguishing hidden patterns in the first subset and the second subset are not detected by the single machine learning model (See claim 1 response.)
Longo in view of Samadi and Hao teach a first autoregressive integrated moving average machine learning model (a first ARIMA) executable by the processor; a second autoregressive integrated moving average machine learning model (a second ARIMA) executable by the processor (See claim 1 response).:
Longo in view of Samadi and Hao teaches training the first ARIMA by inputting the first vector data structure to the first ARIMA, generating a first test output, generating a first loss function responsive to the first test output failing to achieve a first convergence, and updating a first parameter of the first ARIMA using the first loss function, wherein: training the first ARIMA continues until the first convergence, training the first ARIMA generates a first trained ARIMA, and the first trained ARIMA is trained on the first domain, and training the second ARIMA by inputting the second vector data structure to the second ARIMA, generating a second test output, generating a second loss function responsive to the second test output failing to achieve a second convergence, and updating a second parameter of the second ARIMA using the second loss function, wherein: training the second ARIMA continues until the second convergence, training the second ARIMA generates a second trained ARIMA, and the second trained ARIMA is trained on the second domain; and a server controller which, when executed by the processor, deploys the first trained ARIMA and the second trained ARIMA. (See claim 1 response.)
As per claims 5 and 15, Longo in view of Samadi and Hao teach the method of claim 1, Longo does not explicitly teach, however, Samadi teaches wherein the first domain comprises data regarding a first type of business, wherein the second domain comprises data regarding a second type of business. (Samadi e.g. Embodiments set forth herein include a prediction and optimization platform that combines a knowledge base (e.g., including population location and activity data) with customer and domain-specific data to perform high accuracy prediction across various business verticals or domains [0020]. A system for generating predictions/forecasts (e.g., of resource demand) includes multiple supervised machine learning models each configured to generate predictions/forecasts for an associated business / industry vertical or domain [0038]. Examples of industry verticals include transportation (such as ride hailing and public transportation), mobile telecommunications, mobile internet, food and beverage, emergency services (such as police, firefighter, paramedics, ambulance, and public safety services), and retail (e.g., sale of merchandise) [0017]. Each business application can have numerical and implementation attributes that differ from the numerical and implementation attributes of other business applications [0039]. Depending on the particular business application and attributes of that business application, a machine learning model can be selected and implemented, for example based on associated measures of fitness to the real-world situation and/or accuracy (which may be informed by historical data) [0040].)
The Examiner submits that before the effective filing date, it would have been obvious to one of ordinary skill in the art to modify Longo’s data sets/features (i.e. domains) to include types of businesses as taught by Samadi in order to combine customer and domain-specific data to perform high accuracy prediction across various business verticals or domains (Samadi e.g. [0020]).
Claims 2-4, 6, 12-14, and 16 are rejected under 35 U.S.C. 103 as being unpatentable over Longo et al. (US 2021/0374801 A1) in view of Samadi (US 2019/0379592 A1), in further view of Hao et al. (US 2020/0381125 A1), and in further view of Wu (US 2019/0164082 A1).
As per claims 2 and 12, Longo in view of Samadi and Hao teach the method of claim 1, further comprising:
Longo teaches receiving a new email comprising a new link; selecting, for the new email, a selected domain selected from among the first domain and the second domain; selecting, based on the selected domain, a selected machine learning model, wherein: the selected machine learning model comprises the first machine learning model when the selected domain is the first domain, (Longo e.g. At operation 710, a recipient of the communication is selected (e.g. , a user of the email service selects one of the customers), and at operation 712, the send-time model is used, for the selected recipient, by inputting the data of the selected recipient to the send-time model [0103]. Send Time Optimization (STO) uses machine learning (ML) to recommend a personalized send time based on a recipient’s past engagement patterns. The send time recommended by the model is the time at which the model believes the recipient will be most likely to engage with the message, such as clicking or opening [0024]. The send-time model for email communications may generate a suggestion and the system will determine when to send the email based on the suggestion and the state of the queueing system for transmitting emails [0062]. In some embodiments, an example ML model 310, using new data 618, provides a selected send time for a given communication to an identified person (e.g., send Monday at 8:00 AM) [0090].) and the selected machine learning model comprises the second machine learning model when the selected domain is the second domain; (Longo e.g. Machine learning models 310 includes send-time optimization ML model, frequency optimization ML model, channel optimization ML model, and engagement scoring ML model (i.e. plurality of ML models) [0025]. The ML models 310 process historical engagement data from previous communications to discover patterns between variables and outcomes that can then be used to make insightful predictions that result in positive outcomes [0054]. Yet another ML model 310 provides a predicted score based on the engagement of a person for a received communication (e.g., score of 0.95 when the recipient reads an email and clicks on a web link) [0090]. FIG. 11 is a flowchart of method 1100 for calculating an engagement scoring model, according to some example embodiments [0134]. From operation 1106, the method 1100 flows to operation 1108 where the ML algorithm is trained to obtain the engagement-scoring model [0138]. At operation 1110, a recipient of the communication is selected (e.g., a user of the email service selects one of the customers), and at operation 1112, the engagement-scoring model is used for the selected recipient by inputting the data of the selected recipient to the engagement-scoring model [0139]. The send-time model generates recommendations, at operation 1114, for the predicted engagement score for the recipient based on a possible communication. In some example embodiments, the engagement score is a real number between 0 and 1 which indicates the probability that the user engages with the communication. In some example embodiments, different engagement scores may be provided, such as a first engagement score for reading the communication and a second engagement score for responding to the communication (e.g., clicking on a web link) [0140].)
Longo teaches executing the selected machine learning model on the new email to generate a plurality of predicted engagements for the new link over a selected time period; generating, using the plurality of predicted engagements, a schedule for transmitting the new email containing the new link; and transmitting, according to the schedule, the new email (Longo e.g. Send Time Optimization (STO) uses machine learning ( ML ) to recommend a personalized send time based on a recipient’s past engagement patterns (Abstract) and [0024]. The send time recommended by the model is the time at which the model believes the recipient will be most likely to engage with the message, such as clicking or opening [0024]. Factors that influence engagement is the times when messages from a company are sent to a recipient, the frequency at which the recipient has been receiving the messages, the channel on which the messages are sent , and the content of the messages [0025]. The model 310 is used to make inferences 314, which take as input values of user data 312 associated with one or more of features 302. For example , the model 310 may be used to predict the best time to send a communication to a user using the user's profile data and history, and the best time may be specified as the time window for sending the communication [0060]. The time window (i.e. schedule) to send the communication indicates the best time or times for sending the communication. The time window (i.e. schedule) may include a specific time (e.g., Tuesday at 5:15 AM), or a range of possible times to send the communication (e.g., Thursday between 4:00 AM and 5:30 AM). The range of possible times may include non-continuous sub-ranges, such as in different days of the week (e.g., Thursday or Friday between 4:00 AM and 5:30 AM). Further, the result may indicate if the communication is to be sent one time or multiple times (e.g., Tuesday and Thursday before noon) [0061]. The send-time model for email communications may generate a suggestion and the system will determine when to send the email based on the suggestion and the state of the queueing system for transmitting emails. The system will propose dates and times for sending communications and the user will validate or modify the suggestions as desired [0062]. In some embodiments, an example ML model 310, using new data 618, provides a selected send time for a given communication to an identified person (e.g., send Monday at 8:00 AM) [0090]. The send-time model generates recommendations, at operation 1114, for the predicted engagement score for the recipient based on a possible communication. In some example embodiments, the engagement score is a real number between 0 and 1 which indicates the probability that the user engages with the communication. In some example embodiments, different engagement scores may be provided, such as a first engagement score for reading the communication and a second engagement score for responding to the communication (e.g., clicking on a web link) [0140].)
Longo nor Samadi teach, however, Hao teaches do not explicitly teach selecting, based on the selected domain, a selected ARIMA, wherein: the selected ARIMA comprises the first ARIMA when the selected domain is the first domain and the selected ARIMA comprises the second ARIMA when the selected domain is the second domain; and executing the selected ARIMA to generate a plurality of predicted parameters (Hao e.g. In some embodiments, the storage device may store a plurality of estimation models, e.g., corresponding to different genders, different ages, different types of disease, different breath states, different environmental conditions, or the like, or any combination thereof. The processing device 120A may select an estimation model from the storage device as the estimation model described in operation 503 [0111]. In some embodiments, the estimation model may be a trained machine learning model, e.g., a trained sequence model. The trained sequence model may include a trained recurrent neural network (RNN) (e.g., a trained Long Short-Term Memory (LSTM) model), a trained autoregressive (AR) model, a trained moving average (MA) model, a trained autoregressive moving average (ARMA) model, a trained autoregressive integrated moving average (ARIMA) model, a trained vector autoregression (VAR) model, a trained structural VAR (SVAR) model, or the like, or any combination thereof [0086]. Trained model A may be designated as an estimation model corresponding to the specific environment. A trained model B may be designated as an estimation model corresponding to the specific state. A trained model C may be designated as an estimation model corresponding to the specific range of the hearth rate [0124]. The systems and methods may predict, based on the first parameter set and an estimation model, a second parameter set of the subject [0042].)
The Examiner submits that before the effective filing date, it would have been obvious to one of ordinary skill in the art to modify Longo in view of Samadi’s machine learning models to include ARIMA as taught by Hao in order to improve the training speed, the accuracy and/or the stability of the model ([0124] and [0144]).
Longo, Samadi, nor Hao explicitly teach, however, Wu teaches a predicted click-through rate (Wu e.g. Wu teaches systems, methods, and non-transitory computer readable media for providing digital content to users by applying a machine learning model based on composite utility scores reflecting multiple events categories (Abstract). An event category can include types of user actions (e.g. events) performed over a certain period of time such as a frequency of clicks [0045]. An event category score can include a numerical representation of a number of events that a user (e.g., user 116a) has performed within an event category (e.g., a number of purchases, a number of clicks, etc.) [0046]. A publisher can select a time period over which to determine the frequency of events from the event category. The composite utility score distribution system determines a corresponding frequency in accordance with the selected time period [0076].)
The Examiner submits that before the effective filing date, it would have been obvious to one of ordinary skill in the art to modify Longo in view of Samadi and Hao’s send-time and engagement scoring ARIMA ML models to include determining predicted click-through rates of users as taught by Wu in order to optimize a digital content campaign by determining the relative value of various event categories (Wu e.g. [0034]).
As per claims 3 and 13, Longo in view of Samadi, Hao, and Wu teach the method of claim 2, Longo teaches wherein generating the schedule comprises: presenting, on a display, proposed times to send the new email; and receiving, as user input, a selected time from the selected time period, wherein transmitting comprises transmitting the new email at the selected time. (Longo e.g. The model 310 may be used to predict the best time to send a communication to a user using the user's profile data and history, and the best time may be specified as the time window for sending the communication [0060]. In some embodiments, the system decides when to send the message based on the inference from the model. For example, the send-time model for email communications may generate a suggestion and the system will determine when to send the email based on the suggestion and the state of the queueing system for transmitting emails. Via a configuration utility, the user may enable or disable the automatic sending of communications without requiring user validation of the recommendations. When enabled, the system will select the best time to send the communication. When disabled, the system will propose dates and times for sending communications and the user will validate or modify the suggestions as desired [0062].)
As per claims 4 and 14, Longo in view of Samadi, Hao, and Wu teach the method of claim 2, Longo teaches wherein transmitting the new email comprises automatically sending the email at a time on the schedule. (Longo e.g. The communication platform, referred to as an Intelligence Platform, includes an engagement Application Programming Interface (API) that enables developers to programmatically send a number of messages to each recipient through preferred channels, at determined optimal time and with determined optimal cadence [0026]. Via a configuration utility, the user may enable or disable the automatic sending of communications without requiring user validation of the recommendations. When enabled, the system will select the best time to send the communication. The system decides when to send the message based on the inference from the model. For example, the send-time model for email communications may generate a suggestion and the system will determine when to send the email based on the suggestion and the state of the queueing system for transmitting emails [0062].)
As per claims 6 and 16, Longo in view of Samadi, Hao, and Wu teach the method of claim 2, Longo teaches wherein the selected time period comprises different days within the plurality of years. (Longo e.g. The range of possible times may include non-continuous sub-ranges, such as in different days of the week (e.g., Thursday or Friday between 4:00 AM and 5:30 AM ) [0061]. In one example, the time for sending the communication is defined as one or more of a specific time, a range of possible times, a day of the week, a weekday, and a weekend [0149].)
Claims 7-10 and 17-20 are rejected under 35 U.S.C. 103 as being unpatentable over Longo et al. (US 2021/0374801 A1) in view of Samadi (US 2019/0379592 A1), in further view of Hao et al. (US 2020/0381125 A1), in further view of Wu (US 2019/0164082 A1), and in further view of Setteboun et al. (US 2020/0274726 A1).
As per claims 7 and 17, Longo in view of Samadi, Hao, and Wu teach the method of claim 2, wherein the selected time period comprises different days, and wherein generating the schedule comprises: generating the schedule as a calendar of days…according to ranges of predicted engagement score (Longo e.g. At a high level, the ML models 310 process historical engagement data from previous communications to discover patterns between variables and outcomes that can then be used to make insightful predictions that result in positive outcomes [0054]. For example, the model 310 may be used to predict the best time to send a communication to a user using the user's profile data and history, and the best time may be specified as the time window for sending the communication [0060]. The range of possible times may include non-continuous sub-ranges, such as in different days of the week (e.g., Thursday or Friday between 4:00 AM and 5:30 AM ) [0061]. In one example, the time for sending the communication is defined as one or more of a specific time, a range of possible times, a day of the week, a weekday, and a weekend [0149]. Once the scores are determined, the send-time model 1002 provides the best send time based on the engagement score (and other metrics, such as user characteristics) [0127]. The send-time model generates recommendations, at operation 1114, for the predicted engagement score for the recipient based on a possible communication. In some example embodiments, the engagement score is a real number between 0 and 1 which indicates the probability that the user engages with the communication. In some example embodiments, different engagement scores may be provided, such as a first engagement score for reading the communication and a second engagement score for responding to the communication (e.g., clicking on a web link) [0140].)
Longo, Samadi, or Hao do not explicitly teach, however, Wu teaches predicting click-through rates (Wu e.g. Wu teaches systems, methods, and non-transitory computer readable media for providing digital content to users by applying a machine learning model based on composite utility scores reflecting multiple events categories (Abstract). An event category can include types of user actions (e.g. events) performed over a certain period of time such as a frequency of clicks [0045]. An event category score can include a numerical representation of a number of events that a user (e.g., user 116a) has performed within an event category (e.g., a number of purchases, a number of clicks, etc.) [0046]. A publisher can select a time period over which to determine the frequency of events from the event category. The composite utility score distribution system determines a corresponding frequency in accordance with the selected time period [0076].)
The Examiner submits that before the effective filing date, it would have been obvious to one of ordinary skill in the art to modify Longo in view of Samadi and Hao’s send-time and engagement scoring ARIMA ML models to include determining predicted click-through rates of users as taught by Wu in order to optimize a digital content campaign by determining the relative value of various event categories (Wu e.g. [0034]).
Longo, Samadi, Hao, or Wu do not explicitly teach, however, Setteboun teaches generating a schedule as a calendar of days highlighted according to a predicted outcome (Setteboun e.g. Setteboun teaches a method of scheduling a meeting with a graphical user interface (GUI) [0004]. The classifier may be trained, for example, on a training dataset of time slots, locations, and associated relative ranking scores, and a ground truth of the historical meetings that were designated and an indication of attendance at the meeting. The classifier may include one or more components. For example, one component that predicts time slots and/or locations for the meeting that the invited user credentials are likely to attend, for example, using a machine learning model [0125]. The optimal time slots and optimal locations are presented within a calendar in the GUI presenting a summary of scheduled meetings and/or events for the plurality of predefined groups [0010]. Color coding indicative of likelihood of attendance of the meeting scheduled at the single time slot and the single location by each of the user credentials may be presented in the GUI. For example, red denotes low likelihood of attendance, green denotes high likelihood of attendance, and yellow denotes mid-range likelihood of attendance [0061]. In Fig. 26, the right part of GUI 2602 presents a (optional color) coding indicative of likelihood of attendance of the event scheduled at the single time slot by each of the user credentials [0238].)
The Examiner submits that before the effective filing date, it would have been obvious to one of ordinary skill in the art to modify Longo in view of Samadi, Hao, and Wu’s send-time communication scheduling based on click-through rates to include highlighting the calendar days according to a predicted outcome as taught by Setteboun in order to improve speed and/or efficiency of organizing a meeting (i.e. event) (Setteboun e.g. [0070]).
As per claims 8 and 18, Longo in view of Samadi, Hao, Wu, and Setteboun teach the method of claim 7, Longo in view of Samadi, Hao, Wu, and Setteboun teach wherein presenting the schedule comprises displaying the calendar of days highlighted according to the ranges of predicted click-through rates. (See claim 7 response.)
As per claims 9 and 19, Longo in view of Samadi, Hao, Wu, and Setteboun teach the method of claim 7, Longo teaches wherein transmitting comprises: transmitting, automatically, the new email on a selected day of the calendar of days, (Longo e.g. The communication platform, referred to as an Intelligence Platform, includes an engagement Application Programming Interface (API) that enables developers to programmatically send a number of messages to each recipient through preferred channels, at determined optimal time and with determined optimal cadence [0026]. Via a configuration utility, the user may enable or disable the automatic sending of communications without requiring user validation of the recommendations. When enabled, the system will select the best time to send the communication. The system decides when to send the message based on the inference from the model. For example, the send-time model for email communications may generate a suggestion and the system will determine when to send the email based on the suggestion and the state of the queueing system for transmitting emails [0062]. The time for sending the communication is defined as one or more of a specific time, a range of possible times, a day of the week, a weekday, and a weekend [0149]. Fig. 10C table 1034 shows the output of the send-time model. For each user, the send-time model provides the time to send the selected type of communication. For example, for Brendon, the send time model has selected 12pm on July 14 to send an email message [0133].) , wherein the selected day corresponds to an engagement score (Longo e.g. The p (engage) score is used to rank engagement scoring while considering how components like send time affect the recipient's likelihood to engage with a message [0066]. The engagement-scoring model 1020 provides a score that measures the probability that the user will engage (e.g., click on a link in the message) with the message [0125]. The engagement score is a real number between 0 and 1 which indicates the probability that the user engages with the communication [0140]. For each user, the engagement-scoring model provides the engagement score for the SMS message and for the email message (Fig. 10C and [0131]). In Fig. 1C table 1032, the user Ganesh has an SMS engagement score of 0.84 and an email engagement score of 0.5 [0132]. Once the scores are determined, the send-time model 1002 provides the best send time based on the engagement score (and other metrics, such as user characteristics) [0127]. For user Ganesh, the selection is to send an SMS message at 5pm on July 14 [0133].)
Longo, Samadi, nor Hao explicitly teach, however Wu teach a click-through rate that is above a threshold value (Wu e.g. Wu teaches systems, methods, and non-transitory computer readable media for providing digital content to users by applying a machine learning model based on composite utility scores reflecting multiple events categories (Abstract). The systems disclosed herein can identify a number of different event categories (e.g., purchases, clicks, etc.) that a user can perform together with a corresponding significance of each event category [0006]. An event category can include types of user actions (e.g. events) performed over a certain period of time such as a frequency of clicks [0045]. An event category can include, but is not necessarily limited to, purchases, add-to-cart events, installs, clicks, shares, likes, a frequency of an event, and/or a recency of an event [0072]. The composite utility score distribution system identifies a significance of each of a number of event categories (e.g., purchases, clicks, etc.) that a user can perform [0027]. The composite utility score distribution system generates a composite utility score that represents a total value for a training user for a particular advertising campaign [0029]. The composite utility score distribution system 106 can predict which users of a given set of users (e.g., within the set of subscribers of a social networking system) will have a given composite utility score (e.g., a composite utility score above a particular threshold). Based on this prediction, the composite utility score distribution system 106 can suggest a target audience and/or provide digital content to client devices of additional users ([0065] and [0134]).)
The Examiner submits that before the effective filing date, it would have been obvious to one of ordinary skill in the art to modify Longo in view of Samadi and Hao’s send-time and engagement scoring ARIMA ML models to include determining click-through rates of users above a threshold value as taught by Wu in order to optimize a digital content campaign by determining the relative value of various event categories (Wu e.g. [0034]).
As per claims 10 and 20, Longo in view of Samadi, Hao, Wu, and Setteboun teach the method of claim 7, Longo in view of Samadi, Hao, Wu, and Setteboun teach wherein: generating the schedule further comprises generating the schedule according to a pre-defined color coding key associated with the ranges of predicted click-through rates (See claim 7 response.); and Longo, Samadi, Hao, nor Wu explicitly teach, however, Setteboun teaches the pre-defined color coding key labels days on the schedule between at least “good” days and “best” days. (Setteboun e.g. Setteboun teaches a method of scheduling a meeting with a graphical user interface (GUI). The method includes color coding indicative of likelihood of attendance at the single time slot and the single location by each user credential [0004]. For example, red denotes low likelihood of attendance, green denotes high likelihood of attendance, and yellow denotes mid-range likelihood of attendance [0061]. In Fig. 26, the right part of GUI 2602 presents a (optional color) coding indicative of likelihood of attendance of the event scheduled at the single time slot by each of the user credentials [0238]. The Examiner submits that the color coding of red, yellow, and green are equivalent to the labels of good, better, and best.)
The Examiner submits that before the effective filing date, it would have been obvious to one of ordinary skill in the art to modify Longo in view of Samadi, Hao, and Wu’s send-time communication scheduling based on click-through rates to include highlighting the calendar days according to a predicted outcome as taught by Setteboun in order to improve speed and/or efficiency of organizing a meeting (i.e. event) (Setteboun e.g. [0070]).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure include FOR: Mai, Hong-kun (CN-104794549-B) "A Kind of Method of Load Forecast and Prediction Result Evaluation based on ARIMA Models" and NPL: A. Aljamel, T. Osman, G. Acampora, A. Vitiello and Z. Zhang, "Smart Information Retrieval: Domain Knowledge Centric Optimization Approach," in IEEE Access, vol. 7, pp. 4167-4183, 2019.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Ayanna Minor whose telephone number is (571)272-3605. The examiner can normally be reached M-F 9am-5 pm.
Examiner interviews are available via telephone, in-person, 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, Jerry O'Connor can be reached at 571-272-6787. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/A.M./Examiner, Art Unit 3624
/Jerry O'Connor/Supervisory Patent Examiner,Group Art Unit 3624