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 .
Claims 1-20 are pending.
Claims 1-4, 7, 8, 10, 19 and 20 are amended. No claims are added or cancelled.
Response to Arguments
Applicant's arguments filed March 19, 2026, with respect to Section 101 have been fully considered but they are not persuasive. Applicant argues that independent claims 3 and 19 do not even recite text. However, that is clearly incorrect as Claim 19 recites “input activity log in a textual data format”. Further, the claims are read in light of the specification, and paragraph [0076] of the specification states that “vector encoding model 406 may include natural language processing algorithms, such as word2vec or doc2vec, which enable conversion of words or sentences to vector space”. Claims dependent on claim 3 also recited text representations, such as claim 9 which recites “generating a plurality of textual representations, wherein each textual representation of the plurality of textual representations comprises a corresponding text string representing a corresponding voice communication of the plurality of voice communications; and storing the plurality of textual representations as the plurality of communications”, claim 12 which recites “receiving, from a user device associated with the input activity log, a first search query comprising a first text string; generating, based on the matching communication, a second text string associated with the input activity log; generating a second search query comprising the first text string and the second text string”, claim 15 which recite “a corresponding text string that represents a corresponding activity class for a corresponding user activity of the list of user activities”, and claim 16 which recites “generating a plurality of text labels corresponding to the plurality of fields, wherein each text label of the plurality of text labels comprises a corresponding field text string characterizing a corresponding field of the plurality of field”. As such, while claim 3 does not explicitly recite text, the claims remain directed to “Similarity Analysis for Communication Matching" which may be based on text data. As noted in the rejection, the claims are directed to a mental process because that claims are directed to the valuation of words and finding matching communications. The creation of representative valuations for communications is a mental process normally conducted by reading communications and making mental connections to previous communications. Such processed are included in the enumerated groupings of "Mental processes" as "concepts performed in the human mind (including an observation, evaluation, judgment, opinion)." Finally, Applicant’s reliance on Example 39 is conclusory and fails to provide any claim analysis. The claims in Example 39 did not recite any of the judicial exceptions, while the instant claims do recite an abstract idea.
Applicant also argues that the claims improve machine learning by generating vector encodings for activity logs and vector encodings for communications in the same vector space and training a contrastive machine learning model based on that. However, paragraph [0076] of the specification states that “vector encoding model 406 may include natural language processing algorithms, such as word2vec or doc2vec, which enable conversion of words or sentences to vector space”. That is, the claims use off the shelf technology such as word2vec that was invented by others, and apply that technology to the abstract idea of identifying matching communication of a communication dataset. See, for example, https://en.wikipedia.org/wiki/Word2vec. This is not the improvement of machine learning, but the application of machine learning. That is, the claims seeks “to automate "pen and paper methodologies" to conserve human resources and minimize errors.” Univ. of Fla. Research Found., Inc. v. Gen. Elec. Co., 916 F.3d 1363, 1367 (Fed. Cir. 2019). “This is a quintessential "do it on a computer" patent: it acknowledges that data … was previously collected, analyzed, manipulated, and displayed manually, and it simply proposes doing so with a computer.” Id. The benefits of such automation may be laudable, but do not render the claims any less abstract. Id. As such, the arguments are not persuasive.
Applicant's arguments with respect to Section 103 have been fully considered but they are not persuasive. Applicant argues that the cite art does not disclose "inputting each communication of the communication dataset into the vector encoding model to obtain, in the particular vector space of the vector encoding model that is same as the particular vector space in which the first plurality of vector encodings are obtained, a second plurality of vector encodings for the communication dataset" and "training, using the match array and based on the first plurality of vector encodings and the second plurality of vector encodings being obtained in the particular vector space of the vector encoding model, a contrastive machine learning model to generate a new vector encoding that represents an activity log or a user communication in the vector space, of the vector encoding model, to enable matching activity logs with user communications," as recited in claim 1. However, U.S. Patent Application Publication No. 20230161648 to Kulkarni et al. teaches using the same word2vec embedding as discussed in the instant specification (see Kulkarni et al., paragraph [0045], and paragraph [0111], “As a first example embedding approach for training this example of the natural language model 202, the user activity sequence system 104 utilizes an approach similar to word2vec where the user activity sequence system 104 adds an embedding layer to convert the one-hot encoded activity event vector into a dense layer. To analyze the sequence of activity event vectors, the user activity sequence system 104 determines the average of all embedding layers as the final embedded input layer for the artificial neural network model”), which creates a vector space as recited in the claims. See, for example, Word Embedding Explained — Word2Vec GloVe, FastText” by Neri Van Otten (“What is word embedding? Words with the same meaning are represented similarly in word embedding, a learned representation of text. One of the significant advances in deep learning for complex natural language processing problems is this method of representing words and documents. Individual words are represented as real-valued vectors in a predefined vector space in a technique known as “word embedding.” The method is frequently called “deep learning” because each word is assigned to a single vector, and the vector values are learned in a manner resembling a neural network.”).
The use of Word2vec creates a particular vector space. See, for example, https://en.wikipedia.org/wiki/Word2vec (“Word2vec is a group of related models that are used to produce word embeddings. These models are shallow, two-layer neural networks that are trained to reconstruct linguistic contexts of words. Word2vec takes as its input a large corpus of text and produces a mapping of the set of words to a vector space, typically of several hundred dimensions, with each unique word in the corpus being assigned a vector in the space.” and “After the model is trained, the learned word embeddings are positioned in the vector space such that words that share common contexts in the corpus — that is, words that are semantically and syntactically similar — are located close to one another in the space. More dissimilar words are located farther from one another in the space”). So while Kulkarni et al. does not use the exact word “vector space” explicitly, vector spaces are created based on a technical reading of the processes disclosed by Kulkarni et al. and cited in the underlying rejection. As such, the rejection is maintained.
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 is directed to an abstract idea without significantly more. Representative claim 3 recites “obtaining an input activity log, wherein the input activity log comprises a plurality of user activities; generating, based on the input activity log, an activity log transformation, wherein the activity log transformation represents the input activity log in a first data format, and wherein the activity log transformation preserves temporal order of activities; inputting the activity log transformation into a vector encoding model to obtain, in a particular vector space of the vector encoding model, a first output vector encoding; … obtain, in the particular vector space of the vector encoding model, a first matching vector encoding in the vector space, wherein the first matching vector encoding represents a first corresponding vector encoding for a matching communication of a communication dataset, and….; accessing a first plurality of vector encodings …., wherein each vector encoding of the first plurality of vector encodings represents a corresponding communication of a plurality of communications in the vector space of the vector encoding model; and based on comparing each vector encoding in the first plurality of vector encodings with the first matching vector encoding, generating, …, the matching communication”. Therefore, the claim as a whole is directed to “Similarity Analysis for Communication Matching”, which is an abstract idea because it is a mental process, including concepts performed in the human mind (including an observation, evaluation, judgment, opinion). “Similarity Analysis for Communication Matching” is considered to be is a mental process because that claims are directed to the valuation of words and finding matching communications. The claimed processes amount to mental processes because the steps involve the evaluation of words and applying values to those words in order to determine similarity between communications. Such determinations, including reading and analyzing communications, are mental processes that may be performed mentally, or with pen and paper. That is, the creation of representative valuations for communications is a mental process normally conducted by reading communications and making mental connections to previous communications. As such, the claim is directed to an abstract idea.
This judicial exception is not integrated into a practical application. In particular, claim 3 recites the following additional elements: inputting the first output vector encoding into a contrastive machine learning model to obtain a first matching vector encoding in the vector space, wherein the contrastive machine learning model has been trained based a first plurality of vector encodings within the particular vector space of the vector encoding model and based on a second plurality of vector encodings within the particular vector space of the vector encoding model, and accessing encodings from a communication database, and display on a user interface. These additional elements individually or in combination do not integrate the exception into a practical application. That is, the recitations of additional elements amount merely reciting the words ‘‘apply it’’ (or an equivalent) with the judicial exception, or merely including instructions to implement an abstract idea on a computer, or merely using a computer as a tool to perform an abstract idea (see MPEP 2106.05(f)). That is, the claimed processes are amount to using specific known methods of training a machine learning model cited at a high level of generality. That is, the use of general purpose, commercially available, computer components to perform comparison operations that may be performed mentally or with pen and paper does not integrate the abstract idea into a practical application. Those additional elements are not used to address any technical problem or provide any technical solution. These additional elements do no more than generally link the use of a judicial exception to a particular technological environment or field of use (see MPEP 2106.05(h)). Accordingly, these additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. Claim 3 is directed to an abstract idea.
Claim 3 does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements, individually and in combination are merely being used to apply the abstract idea to a technological environment. As noted above, the recited additional elements are not used to address any technical problem or provide any technical solution. Rather, they are merely used to perform basic analysis of text that is substantially similar to reading text and making comparisons. Accordingly, claim 3 is ineligible.
Claims 1 and 19 recite substantially similar features to those recited in representative claim 3 and are ineligible based on substantially the same reasons.
Dependent claims 2, 4-18 and 20 merely further limit the abstract idea and are thereby considered to be ineligible.
Dependent claim 2 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of receiving an input activity log, wherein the input activity log is associated with a user account and comprises a plurality of user activities, and wherein the plurality of user activities has a corresponding plurality of timestamps; generating, based on the input activity log, a user text representation, wherein the user text representation represents the input activity log and comprises a set of user text strings representing the plurality of user activities of the input activity log, and wherein the set of user text strings is in order of the corresponding plurality of timestamps; generating, by inputting the user text representation in the vector encoding model, a first output vector encoding, wherein the first output vector encoding represents the input activity log in the particular vector space of the vector encoding model; … obtain a matching vector encoding, wherein the matching vector encoding represents a corresponding vector encoding corresponding to a matching communication of the communication dataset; extracting, …, the second plurality of vector encodings; based on comparing each vector encoding in the second plurality of vector encodings with the matching vector encoding, generating the matching communication; and based on the matching communication, generating a prediction for a security-related user event corresponding to the user account, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 2 is also non-statutory subject matter.
Dependent claim 4 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of retrieving an activity dataset, wherein the activity dataset comprises a plurality of activity logs, and wherein each activity log is associated with a corresponding plurality of activities with associated timestamps; generating a plurality of activity log transformations, wherein each activity log transformation of the plurality of activity log transformations represents a corresponding activity log of the plurality of activity logs in the first data format and preserves an order of activities based on the associated timestamps; inputting each activity log transformation of the plurality of activity log transformations into the vector encoding model to obtain a second plurality of vector encodings for the activity dataset, wherein each vector encoding of the second plurality of vector encodings represents the corresponding activity log of the plurality of activity logs in the particular vector space; obtaining, …, the plurality of communications; inputting each communication of the plurality of communications into the vector encoding model to obtain the first plurality of vector encodings, wherein each vector encoding of the first plurality of vector encodings represents the corresponding communication of the plurality of communications in the particular vector space of the vector encoding model; generating a match array, wherein the match array comprises indicators of whether each communication of the communication dataset matches each activity log of the plurality of activity logs; and …., which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 4 is also non-statutory subject matter.
Dependent claim 5 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of determining, …, a first user identifier for a first communication in the plurality of communications; determining, using the activity dataset, a second user identifier for a first activity log in the plurality of activity logs; based on comparing the first user identifier and the second user identifier, generating an indication of a match; and generating the match array to include the indication of the match within an element of the match array that corresponds to the first communication and the first activity log, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 5 is also non-statutory subject matter.
Dependent claim 6 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of generating a first list of indices, wherein each index of the first list of indices labels the corresponding activity log of the plurality of activity logs; generating a second list of indices, wherein each index of the second list of indices labels the corresponding communication of the plurality of communications; and generating, as the match array, a match matrix comprising a plurality of elements, wherein each element of the plurality of elements is associated with a corresponding first index of the first list of indices and a corresponding second index of the second list of indices, and wherein each element of the plurality of elements indicates that the corresponding activity log of the corresponding first index matches the corresponding communication of the corresponding second index, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 6 is also non-statutory subject matter.
Dependent claim 7 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of determining a first vector encoding from the first plurality of vector encodings and a second vector encoding from the second plurality of vector encodings; determining, using the match array, a token indicating whether a first communication represented by the first vector encoding matches a first activity log represented by the second vector encoding; based on the token indicating a match, generating, within a training dataset, input data comprising the first vector encoding, and target data comprising the second vector encoding; and …., which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 7 is also non-statutory subject matter.
Dependent claim 8 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of determining a first vector encoding from the first plurality of vector encodings and a second vector encoding from the second plurality of vector encodings; determining, using the match array, a numerical value indicating whether a first communication represented by the first vector encoding matches a first activity log represented by the second vector encoding; generating, within a training dataset, input data and target data, wherein the input data comprises the first vector encoding and the second vector encoding, and wherein the target data comprises the numerical value; and…, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 8 is also non-statutory subject matter.
Dependent claim 9 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of receiving, …, a plurality of voice communications, wherein the plurality of voice communications comprises audio files including human speech; using a speech-to-text model, generating a plurality of textual representations, wherein each textual representation of the plurality of textual representations comprises a corresponding text string representing a corresponding voice communication of the plurality of voice communications; and storing the plurality of textual representations as the plurality of communications, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 9 is also non-statutory subject matter.
Dependent claim 10 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of receiving an input communication; generating, based on the input communication, a communication transformation, wherein the communication transformation represents the input communication in the first data format; inputting the input communication into the vector encoding model to obtain a second output vector encoding, wherein the second output vector encoding represents the input communication in the particular vector space of the vector encoding model; inputting the second output vector encoding into the contrastive machine learning model to obtain a second matching vector encoding, wherein the second matching vector encoding represents a second corresponding vector encoding within the particular vector space of the vector encoding model for a matching activity log of the activity dataset; accessing the second plurality of vector encodings …; and based on comparing each vector encoding in the second plurality of vector encodings with the second matching vector encoding, generating, for display the matching activity log on the user interface, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 10 is also non-statutory subject matter.
Dependent claim 11 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of determining a vector similarity metric, wherein the vector similarity metric indicates similarity between a first vector encoding of the first plurality of vector encodings and the first matching vector encoding; determining, based on the vector similarity metric, that the first vector encoding matches the first matching vector encoding; and based on determining that the first vector encoding matches the first matching vector encoding, generating, for display on the user interface, the matching communication, wherein the matching communication corresponds to the first vector encoding, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 11 is also non-statutory subject matter.
Dependent claim 12 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of receiving, …, a first search query comprising a first text string; generating, based on the matching communication, a second text string associated with the input activity log; generating a second search query comprising the first text string and the second text string; …; and causing the user device, to display the search results, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 12 is also non-statutory subject matter.
Dependent claim 13 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of generating a plurality of similarity metrics, wherein each similarity metric of the plurality of similarity metrics indicates a corresponding measure of similarity between a corresponding vector encoding of the first plurality of vector encodings and the first matching vector encoding; based on comparing each similarity metric of the plurality of similarity metrics with other similarity metrics of the plurality of similarity metrics, generating a similar vector encoding; and based on determining that the similar vector encoding corresponds to the first corresponding vector encoding for the matching communication, generating the matching communication, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 13 is also non-statutory subject matter.
Dependent claim 14 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of generating a plurality of tokens based on a list of user activities within the input activity log, wherein each token of the plurality of tokens comprises a corresponding alphanumeric identifier that represents a corresponding activity class for a corresponding user activity of the list of user activities, and wherein each corresponding alphanumeric identifier is determined based on one or more activity class rules, and wherein the one or more activity class rules indicate rules for classifying user activities into corresponding activity classes; and based on the plurality of tokens, generating, as the activity log transformation, a time-ordered sequence of tokens, wherein each token in the time-ordered sequence of tokens is ordered based on a corresponding activity timestamp associated with the corresponding user activity for each token, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 14 is also non-statutory subject matter.
Dependent claim 15 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of generating a plurality of tokens based on a list of user activities within the input activity log, wherein each token of the plurality of tokens comprises a corresponding text string that represents a corresponding activity class for a corresponding user activity of the list of user activities, and wherein each corresponding text string is determined based on one or more activity rules, and wherein the one or more activity rules indicate rules for representing user activities using text; and based on the plurality of tokens, generating, as the activity log transformation, a textual representation of the input activity log, wherein the textual representation of the input activity log comprises the plurality of tokens, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 15 is also non-statutory subject matter.
Dependent claim 16 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of determining, for a first activity of the input activity log, a plurality of fields and a plurality of corresponding values, wherein a corresponding value for each field of the plurality of fields characterizes the first activity; generating a plurality of text labels corresponding to the plurality of fields, wherein each text label of the plurality of text labels comprises a corresponding field text string characterizing a corresponding field of the plurality of fields; based on concatenating each text label of the plurality of text labels with the corresponding field text string, generating a first textual representation of the first activity; and generating the activity log transformation to include the first textual representation of the first activity, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 16 is also non-statutory subject matter.
Dependent claim 17 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of based on comparing the matching communication with an entry of the communication database, determining a reference user identifier corresponding to the matching communication; extracting, based on the reference user identifier, …, a reference activity log corresponding to the matching communication; and generating, based on the reference activity log, a prediction for an account event for a user corresponding to the input activity log, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 17 is also non-statutory subject matter.
Dependent claim 18 further limits the abstract idea of “Similarity Analysis for Communication Matching” by introducing the element of receiving a user activity log, wherein the user activity log comprises a plurality of activities, and wherein the plurality of activities has an associated plurality of timestamps; based on comparing each timestamp of the associated plurality of timestamps with a threshold timestamp, determining a subset of the associated plurality of timestamps; and generating the input activity log to include a subset of the plurality of activities, wherein each activity of the subset of the plurality of activities has a corresponding timestamp of the subset of the associated plurality of timestamps, which does not include an improvement to another technology or technical field, an improvement to the functioning of the computer itself, or meaningful limitations beyond generally linking the use of the abstract idea to a particular technological environment. Therefore, dependent claim 18 is also non-statutory subject matter.
Dependent claims 2, 3-18 and 20 also do not integrated into a practical application. The dependent claim 4 recites training, using the match array, the contrastive machine learning model to enable matching activity logs with user communications; claim 7 recites based on the input data and the target data, training the contrastive machine learning model to output a new vector encoding that represents an activity log or a user communication in the vector space to enable matching the activity logs with the user communications; claim 8 recites training the contrastive machine learning model using the training dataset to output a similarity metric between an encoded communication and an encoded activity log; claim 10 recites an activity database; claim 12 recites receiving, from a user device associated with the input activity log, a first search query and transmitting the second search query to a search engine, wherein the search engine provides search results based on the second search query; and claim 17 recites an activity database. These additional elements merely generally link the abstract idea to a particular technological environment or field of use. MPEP 2106.04(d)(I) indicates that generally linking an abstract idea to a particular technological environment or field of use cannot provide a practical application. Accordingly, even in combination, these additional elements do not integrate the abstract idea into a practical application. This has been re-evaluated under the “significantly more” analysis and has also been found insufficient to provide significantly more. MPEP 2106.05(A) indicates that generally linking an abstract idea to a particular technological environment or field of use cannot provide significantly more. Accordingly, dependent claims 2, 3-18 and 20 are also ineligible.
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.
Claims 1-11 and 13-20 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Patent Application Publication No. 20230161648 to Kulkarni et al. in view of U.S. Patent Application Publication No. 20240256881 to Park.
With regards to claim 1, Kulkarni et al. teaches:
one or more processors; and one or more non-transitory, computer-readable media storing instructions that, when executed by the one or more processors (paragraph [0129]), cause operations comprising:
receiving an activity dataset and a communication dataset, wherein the activity dataset comprises a plurality of activity logs (paragraph [0029], “For example, an activity event may include one or more accesses, additions, modifications, deletions, annotations, communications, etc. in relation to a digital content item accessible by a user account in a content management system.”; paragraph [0037], “In particular, the server(s) 102 may learn, generate, store, receive, and transmit electronic data, such as executable instructions for identifying a sequence of activity events, generating a sequence of activity event vectors and/or event tokens, generating a predicted activity event, and performing an action based on the predicted activity event.”), and wherein each activity log comprises, for a corresponding user, a corresponding plurality of activities with associated timestamps, and wherein the communication dataset comprises representations of communications associated with the plurality of activity logs (paragraph [0041], “Accordingly, the raw event data 210 a-210 n may include, for example, information regarding digital content item location, name (e.g., filename), size, extension, contents, access privileges (e.g., view/edit/comment privileges), author, group access, timestamps of activities, type of activity (i.e., which specific activity event), user IDs associated with the digital content item, user IDs associated with events corresponding to the digital content item, device IDs or device types associated with events, whether an action was taken on particular digital content item, etc. …In addition, raw event data can include information regarding communication between users, channels of communication (e.g., email or instant messaging), calendar items, task list management (e.g., creating tasks, reminding users of tasks, and completing tasks).”);
generating a plurality of representations, wherein each representation of the plurality of text representations comprises a set ordered by the associated timestamps and wherein each representation represents the corresponding plurality of activities of a corresponding activity log of the plurality of activity logs (paragraph [0021], “Specifically, the user activity sequence system can create an activity event vector (e.g., a feature vector) for each user activity event that includes various attributes of a given activity event, for example, a timestamp, action type, device type, filename, and other file metadata.”; paragraph [0051], “For example, utilizing the predicted activity event 206, the user activity sequence system 104 can generate a sequential workflow pattern to more accurately predict a user segment. In these or other embodiments, the user activity sequence system 104 generates a sequential workflow pattern by combining, in chronological order, a particular series of previous activity events followed by the predicted activity event 206.”);
inputting each representation of the plurality of representations into a vector encoding model to obtain, in a particular vector space of the vector encoding model, a first plurality of vector encodings for the activity dataset (paragraph [0021], “Specifically, the user activity sequence system can create an activity event vector (e.g., a feature vector) for each user activity event that includes various attributes of a given activity event, for example, a timestamp, action type, device type, filename, and other file metadata. The user activity sequence system can hash the activity event vector to create an event token representing the user activity event.”; paragraph [0042], “Based on the raw event data 210 a-210 n, the user activity sequence system 104 generates respective series of sequential tokens 204 for analysis at the natural language model 202. Generally, the user activity sequence system transforms raw event data by generating activity event vectors with feature embeddings and hashing activity event vectors to generate an event token.”),
wherein each vector encoding of the first plurality of vector encodings represents the corresponding activity log of the plurality of activity logs in the particular vector space of the vector encoding model (paragraph [0042], “Generally, the user activity sequence system transforms raw event data by generating activity event vectors with feature embeddings and hashing activity event vectors to generate an event token. The process of generating event tokens and event token sequences is described more below in relation to FIGS. 3-4 . The user activity sequence system provides event token sequences to the natural language model 202 to train the language model (as described in further detail below in relation to FIG. 5 ) to analyze and identify sequence patterns in series of sequential tokens 204.”);
inputting each communication of the communication dataset into the vector encoding model to obtain, in the particular vector space of the vector encoding model that is same as the particular vector space in which the first plurality of vector encodings are obtained, a second plurality of vector encodings for the communication dataset (paragraph [0073], “As shown in FIG. 3 , the user activity sequence system 104 at act 302 identifies an activity event. For clarity of illustration and discussion, the activity event identified at act 302 may be referred to as a single activity event corresponding to a user account. To identify the activity event at act 302, the user activity sequence system 104 receives and processes, from a client device associated with the user account, an indication of user input at the client device to perform an act on or within a digital content item accessible by the user account.”, paragraph [0077], “At act 306, the user activity sequence system 104 can generate a feature vector embedding for each feature extracted at act 304. In some embodiments, generating a feature vector embedding for a given feature comprises converting a format of the features into a vector format.”),
wherein each vector encoding of the second plurality of vector encodings represents of a corresponding communication in the particular vector space of the vector encoding model (paragraph [0079], “At act 308, the user activity sequence system 104 can concatenate feature vector embeddings to generate an activity event vector that corresponds to one activity event identified at act 302. For example, the user activity sequence system 104 may combine the feature embeddings from act 306 into a thirty-dimensional float vector (albeit other size dimensions and types of vectors are contemplated within the scope of the present disclosure). In another example, the activity event vector is a several-hundred-dimensional float vector (e.g., that accounts for a file-content embedding that represents actual digital content identified within one or more digital content items).”), but fails to explicitly teach training contrastive machine learning model. However Park teaches:
generating a match array, wherein the match array comprises indicators of whether each communication of the communication dataset matches each activity log of the plurality of activity logs (paragraph [0080], “In FIG. 3B, the description is focused on updating the parameters of the sequence encoder through contrastive learning according to whether the first label information of the first user and the second label information of the second user match. However, this is only for convenience of description, and the electronic apparatus 1000 may be configured to update the parameters of the sequence encoder through the contrastive learning according to whether the label information for one user matches.”); and
training, using the match array and based on the first plurality of vector encodings and the second plurality of vector encodings being obtained in the particular vector space of the vector encoding model (paragraph [0052], “Furthermore, the electronic apparatus 1000 may acquire a first projection embedding vector from the first hidden vector and a second projection embedding vector from the second hidden vector through the second projection layer (e.g., a layer in the form of a multi-layer perceptron (MLP)) configured to project a hidden vector on the first vector space to a projection embedding vector on a third vector space. Here, the projection embedding vector may serve as an anchor vector for contrastive learning.”), a contrastive machine learning model (paragraph [0080], “In FIG. 3B, the description is focused on updating the parameters of the sequence encoder through contrastive learning according to whether the first label information of the first user and the second label information of the second user match. However, this is only for convenience of description, and the electronic apparatus 1000 may be configured to update the parameters of the sequence encoder through the contrastive learning according to whether the label information for one user matches.”) to generate a new vector encoding that represents an activity log or a user communication in the vector space, of the vector encoding model, to enable matching activity logs with user communications (paragraph [0052], paragraph [0081], “Alternatively, when the correctness for the specific problem of the first user at the first point in time does not match the correctness for the specific problem of the first user at the second point in time, the electronic apparatus 1000 may be configured to update the parameters of the sequence encoder to output the first hidden vector and the second hidden vector such that the distance between the first reference vector of the first user and the second projection embedding vector of the first user increases.”; paragraph [0088], “In this case, the electronic apparatus 1000 may calculate a loss (Lmain in FIG. 2 ) related to the main task (e,g., a user's score prediction task, a problem recommendation task, and/or a dropout prediction task) using the user embedding vector, and train a model related to the main task based on the calculated loss. According to the present embodiment, by using a user embedding vector in which the sequential characteristic information of the user is reflected to train the model related to the main task, it is possible to increase the performance or accuracy of the main task.”).
This part of Park is applicable to the system of Kulkarni et al. as they both share characteristics and capabilities, namely, they are directed to vector data analysis. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the system of Kulkarni et al. to include the contrastive machine learning as taught by Park. One of ordinary skill in the art before the effective filing date of the claimed invention would have been motivated to modify Kulkarni et al. in order to improve the performance of user modeling using data log of data mining (see paragraph [0002] of Park).
With regards to claim 2, Kulkarni et al. teaches:
receiving an input activity log, wherein the input activity log is associated with a user account and comprises a plurality of user activities (paragraph [0037], “In particular, the server(s) 102 may learn, generate, store, receive, and transmit electronic data, such as executable instructions for identifying a sequence of activity events, generating a sequence of activity event vectors and/or event tokens, generating a predicted activity event, and performing an action based on the predicted activity event. For example, the server(s) 102 may receive or obtain raw event data from the events database 110 (e.g., that corresponds to activity events associated with user accounts).”), and wherein the plurality of user activities has a corresponding plurality of timestamps (paragraph [0041], “Accordingly, the raw event data 210 a-210 n may include, for example, information regarding digital content item location, name (e.g., filename), size, extension, contents, access privileges (e.g., view/edit/comment privileges), author, group access, timestamps of activities, type of activity (i.e., which specific activity event), user IDs associated with the digital content item, user IDs associated with events corresponding to the digital content item, device IDs or device types associated with events, whether an action was taken on particular digital content item, etc.”);
generating, based on the input activity log, a user text representation, wherein the user text representation represents the input activity log and comprises a set of user text strings representing the plurality of user activities of the input activity log, and wherein the set of user text strings is in order of the corresponding plurality of timestamps (paragraph [0041], “In addition, raw event data can include information regarding communication between users, channels of communication (e.g., email or instant messaging), calendar items, task list management (e.g., creating tasks, reminding users of tasks, and completing tasks). In essence, any event initiated by a user within the content management system, for example, can result in raw event data that includes descriptive features corresponding to the event.”);
generating, by inputting the user text representation in the vector encoding model, a first output vector encoding, wherein the first output vector encoding represents the input activity log in the particular vector space of the vector encoding model (paragraph [0022], “For example, and as will be discussed below in more detail, these features may include activity event data, such as a byte size, an action type, a filename, a file extension, a timestamp differential, whether an action was taken on a file or on a directory of files/folders, etc. The user activity sequence system can then convert (e.g., transform) these or other features for a given user activity event to vector embeddings. Accordingly, the user activity sequence system combines the vector embeddings into a string (e.g., an n-dimensional float vector) to generate an activity event vector corresponding to a particular user activity event.”);
inputting the first output vector encoding into the …. machine learning model to obtain a matching vector encoding, wherein the matching vector encoding represents a corresponding vector encoding corresponding to a matching communication of the communication dataset (paragraph [0047], “For example, the natural language model 202 can generate respective probability scores or rankings for candidate sequences (as described more below in relation to the following figures) that include various different candidate activity events. Using the respective probability scores or rankings, the user activity sequence system 104 can then determine predicted activity events 206 (e.g., as described more in relation to FIG. 4 based on a comparison of the probability scores or rankings to each other and/or to a predetermined threshold).”);
extracting, from a communication database, the second plurality of vector encodings (paragraph [0022], “As just mentioned, the user activity sequence system can generate activity event vectors based on feature information corresponding to previous activity events. In some embodiments, the previous activity events are limited to a particular duration and/or quantity (e.g., up to one hundred activity events within the past week). However, the previous activity events can broadly include activity events associated with any number of files, types of files, task lists, calendar items, user accounts and/or groups of user accounts of a content management system. To illustrate, the user activity sequence system can identify feature attributes (e.g., a subset of relevant features) of an activity event included within raw event data within a database.”); [and]
based on comparing each vector encoding in the second plurality of vector encodings with the matching vector encoding, generating the matching communication (paragraph [0047], “For example, the natural language model 202 can generate respective probability scores or rankings for candidate sequences (as described more below in relation to the following figures) that include various different candidate activity events. Using the respective probability scores or rankings, the user activity sequence system 104 can then determine predicted activity events 206 (e.g., as described more in relation to FIG. 4 based on a comparison of the probability scores or rankings to each other and/or to a predetermined threshold).”); and
based on the matching communication, generating a prediction for a security-related user event corresponding to the user account (paragraph [0052], “For example, as described more below in relation to FIG. 6 , the user activity sequence system 104 utilizes a user segmentation model trained to intelligently predict a user segment based on the predicted activity event 206 and a sequence of previous activity events as inputs. Alternatively, as described below, the user activity sequence system 104 may generate a user segment classification based on a workflow pattern for a user segment matching (or being chronologically similar to) the sequential workflow pattern generated with the predicted activity event 206.”), but fails to explicitly teach training contrastive machine learning model for such machine. However Park teaches:
inputting the first output vector encoding into the contrastive machine learning model to obtain a matching vector encoding (paragraph [0080], “In FIG. 3B, the description is focused on updating the parameters of the sequence encoder through contrastive learning according to whether the first label information of the first user and the second label information of the second user match. However, this is only for convenience of description, and the electronic apparatus 1000 may be configured to update the parameters of the sequence encoder through the contrastive learning according to whether the label information for one user matches.”).
This part of Park is applicable to the system of Kulkarni et al. as they both share characteristics and capabilities, namely, they are directed to vector data analysis. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the system of Kulkarni et al. to include the contrastive machine learning as taught by Park. One of ordinary skill in the art before the effective filing date of the claimed invention would have been motivated to modify Kulkarni et al. in order to improve the performance of user modeling using data log of data mining (see paragraph [0002] of Park).
With regards to claim 3 and 19, Kulkarni et al. teaches:
obtaining an input activity log, wherein the input activity log comprises a plurality of user activities (paragraph [0037], “In particular, the server(s) 102 may learn, generate, store, receive, and transmit electronic data, such as executable instructions for identifying a sequence of activity events, generating a sequence of activity event vectors and/or event tokens, generating a predicted activity event, and performing an action based on the predicted activity event. For example, the server(s) 102 may receive or obtain raw event data from the events database 110 (e.g., that corresponds to activity events associated with user accounts).”);
generating, based on the input activity log, an activity log transformation, wherein the activity log transformation represents the input activity log in a first data format, and wherein the activity log transformation preserves temporal order of activities (paragraph [0022], “For example, and as will be discussed below in more detail, these features may include activity event data, such as a byte size, an action type, a filename, a file extension, a timestamp differential, whether an action was taken on a file or on a directory of files/folders, etc. The user activity sequence system can then convert (e.g., transform) these or other features for a given user activity event to vector embeddings.”);
inputting the activity log transformation into a vector encoding model to obtain, in a particular vector space of the vector encoding model, a first output vector encoding (paragraph [0079], “At act 308, the user activity sequence system 104 can concatenate feature vector embeddings to generate an activity event vector that corresponds to one activity event identified at act 302. For example, the user activity sequence system 104 may combine the feature embeddings from act 306 into a thirty-dimensional float vector (albeit other size dimensions and types of vectors are contemplated within the scope of the present disclosure). In another example, the activity event vector is a several-hundred-dimensional float vector (e.g., that accounts for a file-content embedding that represents actual digital content identified within one or more digital content items).”);
inputting the first output vector encoding into a …. machine learning model to obtain, in the particular vector space of the vector encoding model, a first matching vector encoding, wherein the first matching vector encoding represents a first corresponding vector encoding for a matching communication of a communication dataset, and wherein the …. machine learning model has been trained based on a first plurality of vector encodings within the particular vector space of the vector encoding model and based on a second plurality of vector encodings within the particular vector space of the vector encoding model (paragraph [0047], “As further shown in FIG. 2 , based on the token sequence analysis of the trained natural language model 202, the natural language model 202 can determine a predicted activity event(s) 206. For example, the natural language model 202 can generate respective probability scores or rankings for candidate sequences (as described more below in relation to the following figures) that include various different candidate activity events. Using the respective probability scores or rankings, the user activity sequence system 104 can then determine predicted activity events 206 (e.g., as described more in relation to FIG. 4 based on a comparison of the probability scores or rankings to each other and/or to a predetermined threshold).”);
accessing a first plurality of vector encodings from a communication database, wherein each vector encoding of the first plurality of vector encodings represents a corresponding communication of a plurality of communications in the particular vector space of the vector encoding model (paragraph [0052], “For example, as described more below in relation to FIG. 6 , the user activity sequence system 104 utilizes a user segmentation model trained to intelligently predict a user segment based on the predicted activity event 206 and a sequence of previous activity events as inputs. Alternatively, as described below, the user activity sequence system 104 may generate a user segment classification based on a workflow pattern for a user segment matching (or being chronologically similar to) the sequential workflow pattern generated with the predicted activity event 206.”); and
based on comparing each vector encoding in the first plurality of vector encodings with the first matching vector encoding, generating, for display on a user interface, the matching communication (paragraph [0008], “Each candidate sequence of activity events includes an activity event representing a respective hypothetical (or next) user activity event within the sequence of activity events. In turn, the disclosed systems can select, as the predicted next user activity event, the most probable next user activity event represented in a candidate sequence of activity events. In accordance with the selected next user activity event, the disclosed systems can provide one or more suggestions for display within a graphical user interface of a client device or perform one or more recommended actions.”), but fails to explicitly teach training contrastive machine learning model for such machine. However Park teaches:
inputting the first output vector encoding into the contrastive machine learning model to obtain a matching vector encoding (paragraph [0080], “In FIG. 3B, the description is focused on updating the parameters of the sequence encoder through contrastive learning according to whether the first label information of the first user and the second label information of the second user match. However, this is only for convenience of description, and the electronic apparatus 1000 may be configured to update the parameters of the sequence encoder through the contrastive learning according to whether the label information for one user matches.”).
This part of Park is applicable to the system of Kulkarni et al. as they both share characteristics and capabilities, namely, they are directed to vector data analysis. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the system of Kulkarni et al. to include the contrastive machine learning as taught by Park. One of ordinary skill in the art before the effective filing date of the claimed invention would have been motivated to modify Kulkarni et al. in order to improve the performance of user modeling using data log of data mining (see paragraph [0002] of Park).
With regards to claim 4 and 20, Kulkarni et al. teaches:
retrieving an activity dataset, wherein the activity dataset comprises a plurality of activity logs, and wherein each activity log is associated with a corresponding plurality of activities with associated timestamps (paragraph [0037], “In particular, the server(s) 102 may learn, generate, store, receive, and transmit electronic data, such as executable instructions for identifying a sequence of activity events, generating a sequence of activity event vectors and/or event tokens, generating a predicted activity event, and performing an action based on the predicted activity event. For example, the server(s) 102 may receive or obtain raw event data from the events database 110 (e.g., that corresponds to activity events associated with user accounts).”);
generating a plurality of activity log transformations, wherein each activity log transformation of the plurality of activity log transformations represents a corresponding activity log of the plurality of activity logs in the first data format and preserves an order of activities based on the associated timestamps (paragraph [0041], “Accordingly, the raw event data 210 a-210 n may include, for example, information regarding digital content item location, name (e.g., filename), size, extension, contents, access privileges (e.g., view/edit/comment privileges), author, group access, timestamps of activities, type of activity (i.e., which specific activity event), user IDs associated with the digital content item, user IDs associated with events corresponding to the digital content item, device IDs or device types associated with events, whether an action was taken on particular digital content item, etc.”; paragraph [0042], “Based on the raw event data 210 a-210 n, the user activity sequence system 104 generates respective series of sequential tokens 204 for analysis at the natural language model 202. Generally, the user activity sequence system transforms raw event data by generating activity event vectors with feature embeddings and hashing activity event vectors to generate an event token.”);
inputting each activity log transformation of the plurality of activity log transformations into the vector encoding model to obtain a second plurality of vector encodings for the activity dataset, wherein each vector encoding of the second plurality of vector encodings represents the corresponding activity log of the plurality of activity logs in the particular vector space (paragraph [0073], “As shown in FIG. 3, the user activity sequence system 104 at act 302 identifies an activity event. For clarity of illustration and discussion, the activity event identified at act 302 may be referred to as a single activity event corresponding to a user account. To identify the activity event at act 302, the user activity sequence system 104 receives and processes, from a client device associated with the user account, an indication of user input at the client device to perform an act on or within a digital content item accessible by the user account.”, paragraph [0077], “At act 306, the user activity sequence system 104 can generate a feature vector embedding for each feature extracted at act 304. In some embodiments, generating a feature vector embedding for a given feature comprises converting a format of the features into a vector format.”);
obtaining, from the communication database, the plurality of communications (paragraph [0029], “In particular, an activity event can include any user action taken on a digital content item associated with a user's account and/or a group of user accounts. For example, an activity event may include one or more accesses, additions, modifications, deletions, annotations, communications, etc. in relation to a digital content item accessible by a user account in a content management system.”);
inputting each communication of the plurality of communications into the vector encoding model to obtain the first plurality of vector encodings, wherein each vector encoding of the first plurality of vector encodings represents the corresponding communication of the plurality of communications in the particular vector space of the vector encoding model (paragraph [0079], “For example, the user activity sequence system 104 may combine the feature embeddings from act 306 into a thirty-dimensional float vector (albeit other size dimensions and types of vectors are contemplated within the scope of the present disclosure). In another example, the activity event vector is a several-hundred-dimensional float vector (e.g., that accounts for a file-content embedding that represents actual digital content identified within one or more digital content items).”);
generating a match array, wherein the match array comprises indicators of whether each communication of the communication dataset matches each activity log of the plurality of activity logs (paragraph [0052], “For example, as described more below in relation to FIG. 6 , the user activity sequence system 104 utilizes a user segmentation model trained to intelligently predict a user segment based on the predicted activity event 206 and a sequence of previous activity events as inputs. Alternatively, as described below, the user activity sequence system 104 may generate a user segment classification based on a workflow pattern for a user segment matching (or being chronologically similar to) the sequential workflow pattern generated with the predicted activity event 206.”), but fails to explicitly teach training contrastive machine learning model for such machine. However Park teaches:
training, using the match array, the contrastive machine learning model to enable matching activity logs with user communications (paragraph [0080], “In FIG. 3B, the description is focused on updating the parameters of the sequence encoder through contrastive learning according to whether the first label information of the first user and the second label information of the second user match. However, this is only for convenience of description, and the electronic apparatus 1000 may be configured to update the parameters of the sequence encoder through the contrastive learning according to whether the label information for one user matches.”).
This part of Park is applicable to the system of Kulkarni et al. as they both share characteristics and capabilities, namely, they are directed to vector data analysis. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the system of Kulkarni et al. to include the contrastive machine learning as taught by Park. One of ordinary skill in the art before the effective filing date of the claimed invention would have been motivated to modify Kulkarni et al. in order to improve the performance of user modeling using data log of data mining (see paragraph [0002] of Park).
With regards to claim 5, Kulkarni et al. teaches: determining, using the communication database, a first user identifier for a first communication in the plurality of communications (paragraph [0021], “Specifically, the user activity sequence system can create an activity event vector (e.g., a feature vector) for each user activity event that includes various attributes of a given activity event, for example, a timestamp, action type, device type, filename, and other file metadata.”);
determining, using the activity dataset, a second user identifier for a first activity log in the plurality of activity logs (paragraph [0022], “In some embodiments, the previous activity events are limited to a particular duration and/or quantity (e.g., up to one hundred activity events within the past week). However, the previous activity events can broadly include activity events associated with any number of files, types of files, task lists, calendar items, user accounts and/or groups of user accounts of a content management system. To illustrate, the user activity sequence system can identify feature attributes (e.g., a subset of relevant features) of an activity event included within raw event data within a database. For example, and as will be discussed below in more detail, these features may include activity event data, such as a byte size, an action type, a filename, a file extension, a timestamp differential, whether an action was taken on a file or on a directory of files/folders, etc.”);
based on comparing the first user identifier and the second user identifier, generating an indication of a match (paragraph [0047], “For example, the natural language model 202 can generate respective probability scores or rankings for candidate sequences (as described more below in relation to the following figures) that include various different candidate activity events. Using the respective probability scores or rankings, the user activity sequence system 104 can then determine predicted activity events 206 (e.g., as described more in relation to FIG. 4 based on a comparison of the probability scores or rankings to each other and/or to a predetermined threshold).”); and
generating the match array to include the indication of the match within an element of the match array that corresponds to the first communication and the first activity log (paragraph [0052], “For example, as described more below in relation to FIG. 6 , the user activity sequence system 104 utilizes a user segmentation model trained to intelligently predict a user segment based on the predicted activity event 206 and a sequence of previous activity events as inputs. Alternatively, as described below, the user activity sequence system 104 may generate a user segment classification based on a workflow pattern for a user segment matching (or being chronologically similar to) the sequential workflow pattern generated with the predicted activity event 206.”).
With regards to claim 6, Kulkarni et al. teaches: generating a first list of indices, wherein each index of the first list of indices labels the corresponding activity log of the plurality of activity logs (paragraph [0021], “Specifically, the user activity sequence system can create an activity event vector (e.g., a feature vector) for each user activity event that includes various attributes of a given activity event, for example, a timestamp, action type, device type, filename, and other file metadata.”);
generating a second list of indices, wherein each index of the second list of indices labels the corresponding communication of the plurality of communications (paragraph [0022], “. However, the previous activity events can broadly include activity events associated with any number of files, types of files, task lists, calendar items, user accounts and/or groups of user accounts of a content management system. To illustrate, the user activity sequence system can identify feature attributes (e.g., a subset of relevant features) of an activity event included within raw event data within a database. For example, and as will be discussed below in more detail, these features may include activity event data, such as a byte size, an action type, a filename, a file extension, a timestamp differential, whether an action was taken on a file or on a directory of files/folders, etc.”); and
generating, as the match array, a match matrix comprising a plurality of elements, wherein each element of the plurality of elements is associated with a corresponding first index of the first list of indices and a corresponding second index of the second list of indices (paragraph [0047], “. However, the previous activity events can broadly include activity events associated with any number of files, types of files, task lists, calendar items, user accounts and/or groups of user accounts of a content management system. To illustrate, the user activity sequence system can identify feature attributes (e.g., a subset of relevant features) of an activity event included within raw event data within a database. For example, and as will be discussed below in more detail, these features may include activity event data, such as a byte size, an action type, a filename, a file extension, a timestamp differential, whether an action was taken on a file or on a directory of files/folders, etc.”), and wherein each element of the plurality of elements indicates that the corresponding activity log of the corresponding first index matches the corresponding communication of the corresponding second index (paragraph [0052], “For example, as described more below in relation to FIG. 6 , the user activity sequence system 104 utilizes a user segmentation model trained to intelligently predict a user segment based on the predicted activity event 206 and a sequence of previous activity events as inputs. Alternatively, as described below, the user activity sequence system 104 may generate a user segment classification based on a workflow pattern for a user segment matching (or being chronologically similar to) the sequential workflow pattern generated with the predicted activity event 206.”).
With regards to claim 7, Kulkarni et al. teaches:
training, using the match array, the … machine learning model comprises: determining a first vector encoding from the first plurality of vector encodings and a second vector encoding from the second plurality of vector encodings (paragraph [0047], “As further shown in FIG. 2 , based on the token sequence analysis of the trained natural language model 202, the natural language model 202 can determine a predicted activity event(s) 206. For example, the natural language model 202 can generate respective probability scores or rankings for candidate sequences (as described more below in relation to the following figures) that include various different candidate activity events. Using the respective probability scores or rankings, the user activity sequence system 104 can then determine predicted activity events 206 (e.g., as described more in relation to FIG. 4 based on a comparison of the probability scores or rankings to each other and/or to a predetermined threshold).”);
determining, using the match array, a token indicating whether a first communication represented by the first vector encoding matches a first activity log represented by the second vector encoding (paragraph [0074], “In one or more implementations, act 302 to identify an activity event may include the user activity sequence system 104 sending a request for or otherwise obtaining at least a portion of the raw event data for an activity event from an events database and/or from the client device. In these or other embodiments, the user activity sequence system 104 may limit the applicable activity events to a threshold time period (e.g., the past three days, seven days, thirty days, etc.) and/or to a threshold number of activity events (e.g., fifty, one hundred, one thousand, etc.).”);
based on the token indicating a match, generating, within a training dataset, input data comprising the first vector encoding, and target data comprising the second vector encoding (paragraph [0052], “Based on the comparison, the user activity sequence system 104 at act 208 can generate a user segment classification. For example, as described more below in relation to FIG. 6 , the user activity sequence system 104 utilizes a user segmentation model trained to intelligently predict a user segment based on the predicted activity event 206 and a sequence of previous activity events as inputs. Alternatively, as described below, the user activity sequence system 104 may generate a user segment classification based on a workflow pattern for a user segment matching (or being chronologically similar to) the sequential workflow pattern generated with the predicted activity event 206.”); and
based on the input data and the target data, training the … machine learning model to output a new vector encoding that represents an activity log or a user communication in the particular vector space to enable matching the activity logs with the user communications (paragraph [0057], “In some embodiments, to improve training and/or evaluation processes, the user activity sequence system 104 may apply a label to the raw event data and/or the series of sequential tokens 204 to indicate whether the automated workflow was actually implemented by the user account. By observing and tagging the raw event data and/or the series of sequential tokens 204, the user activity sequence system 104 can learn to better recognize cyclical/periodic patterns in user activity events for workflow automation. To do so, the user activity sequence system 104 can utilize the labels or tags (e.g., as part of a training process described below in relation to FIG. 5 ) in generating token sequences for populating the corpus of series of sequential tokens 510 to apply to the natural language model 202. Subsequently, in executing additional training iterations based on observed and tagged data as just described, the user activity sequence system 104 can further improve or fine-tune the natural language model 202.”), but fails to explicitly teach training contrastive machine learning model for such machine. However Park teaches:
training, using the match array, the contrastive machine learning model to enable matching activity logs with user communications (paragraph [0080], “In FIG. 3B, the description is focused on updating the parameters of the sequence encoder through contrastive learning according to whether the first label information of the first user and the second label information of the second user match. However, this is only for convenience of description, and the electronic apparatus 1000 may be configured to update the parameters of the sequence encoder through the contrastive learning according to whether the label information for one user matches.”).
This part of Park is applicable to the system of Kulkarni et al. as they both share characteristics and capabilities, namely, they are directed to vector data analysis. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the system of Kulkarni et al. to include the contrastive machine learning as taught by Park. One of ordinary skill in the art before the effective filing date of the claimed invention would have been motivated to modify Kulkarni et al. in order to improve the performance of user modeling using data log of data mining (see paragraph [0002] of Park).
With regards to claim 8, Kulkarni et al. teaches:
training, using the match array, the … machine learning model comprises: determining a first vector encoding from the first plurality of vector encodings and a second vector encoding from the second plurality of vector encodings (paragraph [0094], “At act 404, the user activity sequence system 104 can generate a sequence of activity event vectors. For example, as described above in relation to FIG. 3 , the user activity sequence system 104 can generate a feature vector embedding for each feature extracted in the raw data. In turn, the user activity sequence system 104 can concatenate feature vector embeddings to generate an activity event vector. The user activity sequence system 104 can, of course, perform the same steps with respect to consecutive activity events to generate a sequence of activity event vectors.”; paragraph [0099], “With the candidate sequences 410 a-410 n generated, the natural language model 202 can generate the corresponding LM scores 418 a-418 b. For example, based on learned parameters generated by training on a corpus of series of sequential tokens as described more below in relation to FIG. 5 , the user activity sequence system 104 can generate the LM scores 418 a-418 n as indicative of a likelihood that a candidate sequence is the correct sequence. For instance, the natural language model 202 generates the LM score 418 a of 92% for the candidate sequence 410 a, the LM score 418 b of 32% for the candidate sequence 410 b, and the LM score 418 n of 43% for the candidate sequence 410 n.”);
determining, using the match array, a numerical value indicating whether a first communication represented by the first vector encoding matches a first activity log represented by the second vector encoding (paragraph [0097], “Based on the input to the natural language model 202, the user activity sequence system 104 can generate LM scores 418 a-418 n (e.g., that range between 0% and 100%, or in some cases above or below this range) for candidate sequences 410 a-410 n. To do so, the user activity sequence system 104 generates the candidate sequences 410 a-410 n.”);
generating, within a training dataset, input data and target data, wherein the input data comprises the first vector encoding and the second vector encoding, and wherein the target data comprises the numerical value (paragraph [0099], “For instance, the natural language model 202 generates the LM score 418 a of 92% for the candidate sequence 410 a, the LM score 418 b of 32% for the candidate sequence 410 b, and the LM score 418 n of 43% for the candidate sequence 410 n. In these or other embodiments, the user activity sequence system 104 can rank the LM scores 418 a-418 n, analyze a distribution of the LM scores 418 a-418 n, among myriad other processes. Moreover, the user activity sequence system 104 can select, as the most probable correct sequence, the candidate sequence associated with the highest LM score (in this case, the LM score 418 a of 92%).”); and
training the … machine learning model using the training dataset to output a similarity metric between an encoded communication and an encoded activity log (paragraph [0110], “In particular, the loss function (e.g., as part of a back-propagation process for a neural network) can return such loss data to the natural language model 202 where the user activity sequence system 104 can adjust the learned parameters 512 to improve the quality of predictions (by narrowing the difference between predicted activity events and the ground truth). Moreover, the training/learning iteration just described can be an iterative process, as shown by the return arrow between act 514 and the natural language model 202 such that the user activity sequence system 104 can continually adjust the learned parameters 512 over learning cycles.”), but fails to explicitly teach training contrastive machine learning model for such machine. However Park teaches:
training, using the match array, the contrastive machine learning model to enable matching activity logs with user communications (paragraph [0080], “In FIG. 3B, the description is focused on updating the parameters of the sequence encoder through contrastive learning according to whether the first label information of the first user and the second label information of the second user match. However, this is only for convenience of description, and the electronic apparatus 1000 may be configured to update the parameters of the sequence encoder through the contrastive learning according to whether the label information for one user matches.”).
This part of Park is applicable to the system of Kulkarni et al. as they both share characteristics and capabilities, namely, they are directed to vector data analysis. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the system of Kulkarni et al. to include the contrastive machine learning as taught by Park. One of ordinary skill in the art before the effective filing date of the claimed invention would have been motivated to modify Kulkarni et al. in order to improve the performance of user modeling using data log of data mining (see paragraph [0002] of Park).
With regards to claim 9, Kulkarni et al. teaches:
receiving, from the communication database, a plurality of voice communications, wherein the plurality of voice communications comprises audio files including human speech (paragraph [0030], “For example, a digital content item can include documents, shared files, individual or team (e.g., shared) workspaces, text files (e.g., PDF files, word processing files), audio files, image files, video files, template files, webpages, executable files, binaries, zip files, playlists, albums, email communications, instant messaging communications, social media posts, calendar items, etc.”);
using a speech-to-text model, generating a plurality of textual representations, wherein each textual representation of the plurality of textual representations comprises a corresponding text string representing a corresponding voice communication of the plurality of voice communications (paragraph [0043], “In one or more embodiments, the natural language model 202 comprises a statistical model. As an example of a statistical model, the natural language model 202 in some embodiments is an n-grams model (e.g., as described in Daniel Jurafsky and James H. Martin, N-gram Language Models, In SPEECH AND LANGUAGE PROCESSING, CHAPTER 3 (Oct. 2, 2019), archived at web.stanford.edu/-jurafsky/slp3/3 .pdf, hereafter “Jurafsky,” the entire contents of which are expressly incorporated herein by reference).”); and
storing the plurality of textual representations as the plurality of communications (paragraph [0030], “For example, a digital content item can include documents, shared files, individual or team (e.g., shared) workspaces, text files (e.g., PDF files, word processing files), audio files, image files, video files, template files, webpages, executable files, binaries, zip files, playlists, albums, email communications, instant messaging communications, social media posts, calendar items, etc.”).
With regards to claim 10, Kulkarni et al. teaches:
receiving an input communication (paragraph [0029], “For example, an activity event may include one or more accesses, additions, modifications, deletions, annotations, communications, etc. in relation to a digital content item accessible by a user account in a content management system.”);
generating, based on the input communication, a communication transformation, wherein the communication transformation represents the input communication in the first data format (paragraph [0041], “Accordingly, the raw event data 210 a-210 n may include, for example, information regarding digital content item location, name (e.g., filename), size, extension, contents, access privileges (e.g., view/edit/comment privileges), author, group access, timestamps of activities, type of activity (i.e., which specific activity event), user IDs associated with the digital content item, user IDs associated with events corresponding to the digital content item, device IDs or device types associated with events, whether an action was taken on particular digital content item, etc.”);
inputting the input communication into the vector encoding model to obtain a second output vector encoding, wherein the second output vector encoding represents the input communication in the particular vector space of the vector encoding model (paragraph [0042], “Generally, the user activity sequence system transforms raw event data by generating activity event vectors with feature embeddings and hashing activity event vectors to generate an event token. The process of generating event tokens and event token sequences is described more below in relation to FIGS. 3-4.”);
inputting the second output vector encoding into the … machine learning model to obtain a second matching vector encoding, wherein the second matching vector encoding represents a second corresponding vector encoding within the particular vector space of the vector encoding model for a matching activity log of the activity dataset (paragraph [0052], “For example, as described more below in relation to FIG. 6 , the user activity sequence system 104 utilizes a user segmentation model trained to intelligently predict a user segment based on the predicted activity event 206 and a sequence of previous activity events as inputs. Alternatively, as described below, the user activity sequence system 104 may generate a user segment classification based on a workflow pattern for a user segment matching (or being chronologically similar to) the sequential workflow pattern generated with the predicted activity event 206.”);
accessing the second plurality of vector encodings from an activity database (paragraph [0027], “For example, the user activity sequence system increases accuracy of predicted activity events by leveraging sequence prediction capabilities of NLM to create a user activity sequence model that analyzes a sequence of previous activity events to predict a next event.”; paragraph [0052], “By generating a sequential workflow pattern that includes the predicted activity event 206, the user activity sequence system 104 can compare the sequential workflow pattern to workflow patterns or activity event sequences associated with specific user segments. Based on the comparison, the user activity sequence system 104 at act 208 can generate a user segment classification. For example, as described more below in relation to FIG. 6 , the user activity sequence system 104 utilizes a user segmentation model trained to intelligently predict a user segment based on the predicted activity event 206 and a sequence of previous activity events as inputs”); and
based on comparing each vector encoding in the second plurality of vector encodings with the second matching vector encoding, generating, for display the matching activity log on the user interface (paragraph [0052], “For example, as described more below in relation to FIG. 6 , the user activity sequence system 104 utilizes a user segmentation model trained to intelligently predict a user segment based on the predicted activity event 206 and a sequence of previous activity events as inputs. Alternatively, as described below, the user activity sequence system 104 may generate a user segment classification based on a workflow pattern for a user segment matching (or being chronologically similar to) the sequential workflow pattern generated with the predicted activity event 206.”), but fails to explicitly teach training contrastive machine learning model for such machine. However Park teaches:
inputting the second output vector encoding into the contrastive machine learning model to obtain a second matching vector encoding (paragraph [0080], “In FIG. 3B, the description is focused on updating the parameters of the sequence encoder through contrastive learning according to whether the first label information of the first user and the second label information of the second user match. However, this is only for convenience of description, and the electronic apparatus 1000 may be configured to update the parameters of the sequence encoder through the contrastive learning according to whether the label information for one user matches.”).
This part of Park is applicable to the system of Kulkarni et al. as they both share characteristics and capabilities, namely, they are directed to vector data analysis. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the system of Kulkarni et al. to include the contrastive machine learning as taught by Park. One of ordinary skill in the art before the effective filing date of the claimed invention would have been motivated to modify Kulkarni et al. in order to improve the performance of user modeling using data log of data mining (see paragraph [0002] of Park).
With regards to claim 11, Kulkarni et al. teaches:
determining a vector similarity metric, wherein the vector similarity metric indicates similarity between a first vector encoding of the first plurality of vector encodings and the first matching vector encoding (paragraph [0047], “Using the respective probability scores or rankings, the user activity sequence system 104 can then determine predicted activity events 206 (e.g., as described more in relation to FIG. 4 based on a comparison of the probability scores or rankings to each other and/or to a predetermined threshold).”);;
determining, based on the vector similarity metric, that the first vector encoding matches the first matching vector encoding (paragraph [0047], “Using the respective probability scores or rankings, the user activity sequence system 104 can then determine predicted activity events 206 (e.g., as described more in relation to FIG. 4 based on a comparison of the probability scores or rankings to each other and/or to a predetermined threshold).”); and
based on determining that the first vector encoding matches the first matching vector encoding, generating, for display on the user interface, the matching communication, wherein the matching communication corresponds to the first vector encoding (paragraph [0052], “For example, as described more below in relation to FIG. 6 , the user activity sequence system 104 utilizes a user segmentation model trained to intelligently predict a user segment based on the predicted activity event 206 and a sequence of previous activity events as inputs. Alternatively, as described below, the user activity sequence system 104 may generate a user segment classification based on a workflow pattern for a user segment matching (or being chronologically similar to) the sequential workflow pattern generated with the predicted activity event 206.”).
With regards to claim 13, Kulkarni et al. teaches: based on comparing each vector encoding in the first plurality of vector encodings with the first matching vector encoding, generating the matching communication comprises:
generating a plurality of similarity metrics, wherein each similarity metric of the plurality of similarity metrics indicates a corresponding measure of similarity between a corresponding vector encoding of the first plurality of vector encodings and the first matching vector encoding (paragraph [0047], “For example, the natural language model 202 can generate respective probability scores or rankings for candidate sequences (as described more below in relation to the following figures) that include various different candidate activity events. Using the respective probability scores or rankings, the user activity sequence system 104 can then determine predicted activity events 206 (e.g., as described more in relation to FIG. 4 based on a comparison of the probability scores or rankings to each other and/or to a predetermined threshold).”);
based on comparing each similarity metric of the plurality of similarity metrics with other similarity metrics of the plurality of similarity metrics, generating a similar vector encoding (paragraph [0047], “For example, the natural language model 202 can generate respective probability scores or rankings for candidate sequences (as described more below in relation to the following figures) that include various different candidate activity events. Using the respective probability scores or rankings, the user activity sequence system 104 can then determine predicted activity events 206 (e.g., as described more in relation to FIG. 4 based on a comparison of the probability scores or rankings to each other and/or to a predetermined threshold).”); and
based on determining that the similar vector encoding corresponds to the first corresponding vector encoding for the matching communication, generating the matching communication (paragraph [0052], “For example, as described more below in relation to FIG. 6 , the user activity sequence system 104 utilizes a user segmentation model trained to intelligently predict a user segment based on the predicted activity event 206 and a sequence of previous activity events as inputs. Alternatively, as described below, the user activity sequence system 104 may generate a user segment classification based on a workflow pattern for a user segment matching (or being chronologically similar to) the sequential workflow pattern generated with the predicted activity event 206.”).
With regards to claim 14, Kulkarni et al. teaches:
generating a plurality of tokens based on a list of user activities within the input activity log, wherein each token of the plurality of tokens comprises a corresponding alphanumeric identifier that represents a corresponding activity class for a corresponding user activity of the list of user activities, and wherein each corresponding alphanumeric identifier is determined based on one or more activity class rules, and wherein the one or more activity class rules indicate rules for classifying user activities into corresponding activity classes (paragraph [0021], “Specifically, the user activity sequence system can create an activity event vector (e.g., a feature vector) for each user activity event that includes various attributes of a given activity event, for example, a timestamp, action type, device type, filename, and other file metadata.”); and
based on the plurality of tokens, generating, as the activity log transformation, a time-ordered sequence of tokens, wherein each token in the time-ordered sequence of tokens is ordered based on a corresponding activity timestamp associated with the corresponding user activity for each token (paragraph [0022], “However, the previous activity events can broadly include activity events associated with any number of files, types of files, task lists, calendar items, user accounts and/or groups of user accounts of a content management system. To illustrate, the user activity sequence system can identify feature attributes (e.g., a subset of relevant features) of an activity event included within raw event data within a database. For example, and as will be discussed below in more detail, these features may include activity event data, such as a byte size, an action type, a filename, a file extension, a timestamp differential, whether an action was taken on a file or on a directory of files/folders, etc. The user activity sequence system can then convert (e.g., transform) these or other features for a given user activity event to vector embeddings.”).
With regards to claim 15, Kulkarni et al. teaches:
generating a plurality of tokens based on a list of user activities within the input activity log, wherein each token of the plurality of tokens comprises a corresponding text string that represents a corresponding activity class for a corresponding user activity of the list of user activities, and wherein each corresponding text string is determined based on one or more activity rules, and wherein the one or more activity rules indicate rules for representing user activities using text (paragraph [0021], “Specifically, the user activity sequence system can create an activity event vector (e.g., a feature vector) for each user activity event that includes various attributes of a given activity event, for example, a timestamp, action type, device type, filename, and other file metadata. The user activity sequence system can hash the activity event vector to create an event token representing the user activity event.”); and
based on the plurality of tokens, generating, as the activity log transformation, a textual representation of the input activity log, wherein the textual representation of the input activity log comprises the plurality of tokens (paragraph [0022], “However, the previous activity events can broadly include activity events associated with any number of files, types of files, task lists, calendar items, user accounts and/or groups of user accounts of a content management system. To illustrate, the user activity sequence system can identify feature attributes (e.g., a subset of relevant features) of an activity event included within raw event data within a database. For example, and as will be discussed below in more detail, these features may include activity event data, such as a byte size, an action type, a filename, a file extension, a timestamp differential, whether an action was taken on a file or on a directory of files/folders, etc. The user activity sequence system can then convert (e.g., transform) these or other features for a given user activity event to vector embeddings.”).
With regards to claim 16, Kulkarni et al. teaches:
determining, for a first activity of the input activity log, a plurality of fields and a plurality of corresponding values, wherein a corresponding value for each field of the plurality of fields characterizes the first activity (paragraph [0021], “Specifically, the user activity sequence system can create an activity event vector (e.g., a feature vector) for each user activity event that includes various attributes of a given activity event, for example, a timestamp, action type, device type, filename, and other file metadata. The user activity sequence system can hash the activity event vector to create an event token representing the user activity event.”);
generating a plurality of text labels corresponding to the plurality of fields, wherein each text label of the plurality of text labels comprises a corresponding field text string characterizing a corresponding field of the plurality of fields (paragraph [0041], “As used herein, the term “raw event data” refers to digital information associated with an activity event. Accordingly, the raw event data 210 a-210 n may include, for example, information regarding digital content item location, name (e.g., filename), size, extension, contents, access privileges (e.g., view/edit/comment privileges), author, group access, timestamps of activities, type of activity (i.e., which specific activity event), user IDs associated with the digital content item, user IDs associated with events corresponding to the digital content item, device IDs or device types associated with events, whether an action was taken on particular digital content item, etc. Raw event data can be in the form of metadata associated with a digital content item (e.g., a file or folder).”);
based on concatenating each text label of the plurality of text labels with the corresponding field text string, generating a first textual representation of the first activity (paragraph [0022], “To illustrate, the user activity sequence system can identify feature attributes (e.g., a subset of relevant features) of an activity event included within raw event data within a database. For example, and as will be discussed below in more detail, these features may include activity event data, such as a byte size, an action type, a filename, a file extension, a timestamp differential, whether an action was taken on a file or on a directory of files/folders, etc. The user activity sequence system can then convert (e.g., transform) these or other features for a given user activity event to vector embeddings.”); and
generating the activity log transformation to include the first textual representation of the first activity (paragraph [0042], “Based on the raw event data 210 a-210 n, the user activity sequence system 104 generates respective series of sequential tokens 204 for analysis at the natural language model 202. Generally, the user activity sequence system transforms raw event data by generating activity event vectors with feature embeddings and hashing activity event vectors to generate an event token.”).
With regards to claim 17, Kulkarni et al. teaches:
based on comparing the matching communication with an entry of the communication database, determining a reference user identifier corresponding to the matching communication (paragraph [0022], “As just mentioned, the user activity sequence system can generate activity event vectors based on feature information corresponding to previous activity events. In some embodiments, the previous activity events are limited to a particular duration and/or quantity (e.g., up to one hundred activity events within the past week). However, the previous activity events can broadly include activity events associated with any number of files, types of files, task lists, calendar items, user accounts and/or groups of user accounts of a content management system.”);
extracting, based on the reference user identifier, from an activity database, a reference activity log corresponding to the matching communication (paragraph [0022], “However, the previous activity events can broadly include activity events associated with any number of files, types of files, task lists, calendar items, user accounts and/or groups of user accounts of a content management system. To illustrate, the user activity sequence system can identify feature attributes (e.g., a subset of relevant features) of an activity event included within raw event data within a database.”); and
generating, based on the reference activity log, a prediction for an account event for a user corresponding to the input activity log (paragraph [0027], “For example, the user activity sequence system increases accuracy of predicted activity events by leveraging sequence prediction capabilities of NLM to create a user activity sequence model that analyzes a sequence of previous activity events to predict a next event. While conventional systems are not capable of accurately analyzing a vast number of user actions to predict a vast number of potential recommendations or suggestions, the user activity sequence system efficiently accounts for the greater amount of contextual information. Indeed, where the sequence of previous activity events can include activity events related to multiple files and/or multiple user accounts (e.g., a group or enterprise of user accounts), the user activity sequence system can account for significantly greater amounts of context compared to conventional systems.”).
With regards to claim 18, Kulkarni et al. teaches:
receiving a user activity log, wherein the user activity log comprises a plurality of activities, and wherein the plurality of activities has an associated plurality of timestamps (paragraph [0021], “Specifically, the user activity sequence system can create an activity event vector (e.g., a feature vector) for each user activity event that includes various attributes of a given activity event, for example, a timestamp, action type, device type, filename, and other file metadata. The user activity sequence system can hash the activity event vector to create an event token representing the user activity event.”);
based on comparing each timestamp of the associated plurality of timestamps with a threshold timestamp, determining a subset of the associated plurality of timestamps (paragraph [0075], “For example, based on the extracted raw event data at act 304, the user activity sequence system 104 can determine various applicable features of the raw event data, such as a user account identifier, a computing device identifier (or a source identifier), a device type, a byte size, an action type, a digital content item name, a digital content item extension, a timestamp differential, an absolute timestamp, a ranking, content or type of content within a digital content item, whether an action was taken on a digital content item, other file metadata, a number of collaborators, a number of interacting collaborators, a number of digital content items that an action was taken on, etc.”); and
generating the input activity log to include a subset of the plurality of activities, wherein each activity of the subset of the plurality of activities has a corresponding timestamp of the subset of the associated plurality of timestamps (paragraph [0041], “Accordingly, the raw event data 210 a-210 n may include, for example, information regarding digital content item location, name (e.g., filename), size, extension, contents, access privileges (e.g., view/edit/comment privileges), author, group access, timestamps of activities, type of activity (i.e., which specific activity event), user IDs associated with the digital content item, user IDs associated with events corresponding to the digital content item, device IDs or device types associated with events, whether an action was taken on particular digital content item, etc.”).
Claim 12 is rejected under 35 U.S.C. 103 as being unpatentable over U.S. Patent Application Publication No. 20230161648 to Kulkarni et al. in view of U.S. Patent Application Publication No. 20240256881 to Park as applied to claims 1-11 and 13-20 above, further in view of U.S. Patent Application Publication No. 20080033970 to Jones et al.
With regards to claim 12, Kulkarni et al. teaches causing the user device, to display the search results (paragraph [0008], “In accordance with the selected next user activity event, the disclosed systems can provide one or more suggestions for display within a graphical user interface of a client device or perform one or more recommended actions.”), but fails to explicitly teach transmitting a query to a search engine. However, Jones et al. teaches:
receiving, from a user device associated with the input activity log, a first search query comprising a first text string (paragraph [0112], “In operation 715, a command is received and parsed by the server 118 (FIG. 1). For example, a request might be received to return queries, search results, and resources associated with the keyword “NBA Basketball” which are sorted in order of ranking.”);
generating, based on the matching communication, a second text string associated with the input activity log (paragraph [0115], “Alternatively, the received text can be compared to text in the keyword field of each entry of the previous search results log in an attempt to identify a keyword most pertinent to information relating to Kenyan coffee, that is, matching or partially matching the received text.”; paragraph [0116], “In operation 720 records matching the selection criteria in the request received in operation 710 are retrieved from the previous search results log 280 (FIG. 2B). The records selected may then be sorted according to a sorting criteria contained in the request.”);
generating a second search query comprising the first text string and the second text string (paragraph [0116], “In operation 720 records matching the selection criteria in the request received in operation 710 are retrieved from the previous search results log 280 (FIG. 2B). The records selected may then be sorted according to a sorting criteria contained in the request. The data of the records is formatted according the viewing format contained in the request, and the results are returned to the requester system. Control is passed to operation 722 and method 700 continues.”);
transmitting the second search query to a search engine, wherein the search engine provides search results based on the second search query (paragraph [0117], “In operation 722, the information from operation 720 is received by the requesting system (e.g., the user computer system 102 (FIG. 1)) and a pop-up window may be displayed on the same page that includes the text of the webpage on the user's device. In at least one embodiment, a hyperlink to the first entry located by operation 720 (FIG. 7) is displayed in the pop-up window, along with other hyperlinks corresponding to information sent by the system in operation 720 in response to the request received in operation 710.”); and
This part of Jones et al. is applicable to the system of Kulkarni et al. as they both share characteristics and capabilities, namely, they are directed to vector data analysis. It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the system of Kulkarni et al. to include the search engine data matching as taught by Jones et al. One of ordinary skill in the art before the effective filing date of the claimed invention would have been motivated to modify Kulkarni et al. in order to increase efficiency by matching search strategies of previously conducted work (see paragraphs [0005]-[0007] of Jones et al.).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
U. Word Embedding Explained — Word2Vec GloVe, FastText” by Neri Van Otten discusses various types of word embedding as used in natural language processing (NLP) to describe how words are represented for text analysis, and the expected output is that words close to one another in the vector space will have similar meanings.
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Joshua D Schneider whose telephone number is (571)270-7120. The examiner can normally be reached on Monday - Friday, 9am-5pm.
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, Jessica Lemieux can be reached on (571)270-3445. 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.
/J.D.S./Examiner, Art Unit 3626
/JESSICA LEMIEUX/Supervisory Patent Examiner, Art Unit 3626