Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DOCUMENT RECOMMENDATIONS BASED ON CONTEXT-AWARE EMBEDDINGS
Document Type and Number:
WIPO Patent Application WO/2023/154882
Kind Code:
A1
Abstract:
A method for providing document category recommendations may include training a machine learning algorithm; receiving, from a user, a selection of an anchor document; retrieving a user co-viewing sequence; generating, via the trained machine learning algorithm, a sequence embeddings set based on the anchor document and the user co-viewing sequence; comparing the generated embeddings set to respective embeddings for a plurality of candidate sets; determining the candidate set closest to the generated embeddings; and presenting at least one category from the closest candidate set.

Inventors:
JAVARI AMIN (US)
LIU HAOCHEN (US)
CUI XIQUAN (US)
Application Number:
PCT/US2023/062411
Publication Date:
August 17, 2023
Filing Date:
February 10, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HOME DEPOT INT INC (US)
International Classes:
G06F16/906; G06F16/9535; G06N3/08
Foreign References:
US20210390609A12021-12-16
US20190065606A12019-02-28
US20170091320A12017-03-30
US20120191716A12012-07-26
Attorney, Agent or Firm:
EASTER, Jonathan B. et al. (US)
Download PDF:
Claims:
Claims

What is Claimed:

1. A method for providing document category recommendations in an electronic user interface, the method comprising: determining, for each category of a plurality of categories of documents accessible through the electronic user interface, a co-viewing relationship with each other category according to user activity on the interface; determining, according to the co-viewing relationships, one or more clusters, each cluster comprising two or more of the plurality of categories; receiving, from a user through the interface, a selection of an anchor document, the document being within an anchor category of the plurality of categories; and in response to receiving the user selection of the anchor document, presenting at least one other category that is in a cluster that includes the anchor category.

2. The method of claim 1, wherein determining, for each category of a plurality of categories of documents accessible through the electronic user interface, a co-viewing relationship with each other category, comprises: receiving data indicative of a plurality of document co-viewing sequences of the user activity; determining, with a machine learning algorithm, respective embeddings for each category, wherein the machine learning algorithm is trained according to the sequences; determining distances between the embeddings; and clustering categories that have embeddings that are within a threshold distance of each other.

3. The method of claim 2, wherein training the machine learning algorithm comprises: determining at least one of the plurality of document co-viewing sequences that includes a transaction; deriving one or more sub-sequences from the co-viewing sequences; and determining a set of training relationships based on the sub-sequences. The method of claim 3, wherein the training relationships comprise a plurality of sessions, each with at least one randomly masked document view, further wherein training the machine learning algorithm comprises predicting each randomly masked document view with the machine learning algorithm. The method of claim 1, the method further comprising: receiving, from the user, a selection of a second anchor document, the second anchor document in a second anchor category; and in response to receiving the user selection of the second anchor document, presenting at least one other category that is in a cluster that includes the anchor category and the second anchor category. The method of claim 5, wherein presenting the at least one other category comprises: determining, with a machine learning algorithm, an embeddings vector representative of a sequence of user inputs, the sequence of user inputs comprising an order of the user selection of the anchor document, the user selection of the second anchor document, and one or more additional user selections; matching the sequence embeddings vector with an embeddings vector from a set of cluster embeddings; and presenting at least one category from a cluster associated with the matched embeddings vector. The method of claim 6, wherein the set of cluster embeddings are determined offline from the one or more clusters prior to receiving the user selection of the anchor document. A system for providing document category recommendations in an electronic user interface, the system comprising: a non-transitory, computer-readable medium storing instructions; and a processor configured to execute the instructions to: determine, for each category of a plurality of categories of documents accessible through the electronic user interface, a co-viewing relationship with each other category according to user activity on the interface; determine, according to the co-viewing relationships, one or more clusters, each cluster comprising two or more of the plurality of categories; receive, from a user through the interface, a selection of an anchor document, the document being within an anchor category of the plurality of categories; and in response to receiving the user selection of the anchor document, presenting at least one other category that is in a cluster that includes the anchor category. The system of claim 8, wherein determining, for each category of a plurality of categories of documents accessible through the electronic user interface, a co-viewing relationship with each other category, comprises: receive data indicative of a plurality of document co-viewing sequences of the user activity; determine, with a machine learning algorithm, respective embeddings for each category, wherein the machine learning algorithm is trained according to the sequences; and determine distances between the embeddings; and cluster categories that have embeddings that are within a threshold distance ofeach other. The system of claim 9, wherein training the machine learning algorithm comprises: determine at least one of the plurality of document co-viewing sequences that includes a transaction; derive one or more sub-sequences from the co-viewing sequences; and determine a set of training relationships based on the sub-sequences. The system of claim 8, wherein the processor is further configured to: receive, from the user, a selection of a second anchor document, the second anchor document in a second anchor category; and in response to receiving the user selection of the second anchor document, present, via the electronic user interface, at least one other category that is in a cluster that includes the anchor category and the second anchor category. The system of claim 11, wherein presenting the at least one other category comprises: encode a sequence of user inputs, the sequence of user inputs comprising an order of the user selection of the anchor document, the user selection of the second anchor document, and additional user selections; match the encoded sequences with a cluster from a set of encoded clusters; and present, via the electronic user interface, at least one category from the matched cluster. The system of claim 12, wherein the set of encoded clusters are encoded offline prior to receiving the user selection of the anchor document. The system of claim 8, wherein each document is in a single category. A method for providing document category recommendations in an electronic user interface, the method comprising: receiving, from a user through the interface, a selection of an anchor document, the anchor document being within an anchor category of a plurality of categories; accessing a selection history of the user prior to the selection of the anchor document; determining, via a machine learning algorithm, an anchor embeddings vector for a sequence comprising the anchor category and the selection history; matching the anchor embeddings vector to at least one of a plurality of cluster embeddings, each cluster embedding determined from a cluster of two or more of the plurality of categories; and in response to receiving the user selection of the anchor document, presenting at least one other category that is in the cluster associated with the matched at least one cluster embeddings. The method of claim 15, further comprising: receiving, from the user through the interface, a selection of a second anchor document, the second anchor document being within a second anchor category of the plurality of categories; updating the sequence to include the second anchor category; and determining, via the machine learning algorithm, an updated anchor embeddings vector for the sequence. The method of claim 15, wherein the cluster of two or more of the plurality of categories is determined based on co-viewing relationships among categories according to user activity on the interface. The method of claim 15, wherein each document is in a single category. The method of claim 15, wherein each document within a category is related to every other document in a category. The method of claim 15, wherein the machine learning algorithm is trained by: receiving data indicative of a plurality of document co-viewing sequences that include a transaction; deriving one or more sub-sequences from the co-viewing sequences; and determining a set of training relationships based on the sub-sequences. A method for providing document category recommendations, the method comprising: training a machine learning algorithm by: retrieving, from a database, one or more document co-viewing sequences; deriving one or more subsets from the one or more document co-viewing sequences; comparing the one or more subsets to a plurality of candidate sets, each candidate set comprising one or more categories of documents; based on the comparison, determining at least one candidate set related to each subset; and associating a respective subsequence of each subset with the at least one candidate set, the respective subsequence comprising a portion of the document co-viewing sequence not included in the derived subset; receiving, from a user, a selection of an anchor document; retrieving a user co-viewing sequence; generating, via the trained machine learning algorithm, a sequence embeddings set based on the anchor document and the user co-viewing sequence; comparing the generated embeddings set to respective embeddings for a plurality of candidate sets; determining the candidate set closest to the generated embeddings; and presenting at least one category from the closest candidate set. The method of claim 21, wherein training the machine learning algorithm further comprises negatively associating the respective subsequence with at least one negative set generated by adding noise to the at least one of the plurality of candidate sets related to each subset. The method of claim 21, wherein generating the sequence embeddings set based on the anchor document and the user co-viewing sequence comprises: generating, via the trained machine learning algorithm, document embeddings for each document; encoding the document embeddings with positional encoding to generate a sequence embeddings; and aggregating, via the trained machine learning algorithm, the sequence embeddings with a respective embedding for a candidate set of the plurality of candidate sets to generate the sequence embeddings set. A method for providing document category recommendations in an electronic user interface, the method comprising: receiving, from a user through the interface, a selection of an anchor document; retrieving, from a database, a user sequence of interactions prior to the selection of the anchor document, the user sequence comprising an ordered set of selected documents; generating, via a machine learning algorithm, a first embeddings set for an anchor sequence, the anchor sequence comprising the anchor document and the user sequence; generating, via the machine learning algorithm, a second embeddings set for a candidate set, the candidate set comprising at least one document; determining a relevance value based on the first and second embeddings sets; and in response to the relevance value exceeding a threshold value, presenting the at least one document of the candidate set to the user through the interface. The method of claim 24, further comprising: determining an anchor embeddings set by aggregating the first embeddings set with the second embeddings set; determining a candidate embeddings set by aggregating the second embeddings set with the first embeddings set; wherein the relevance value is determined based on the anchor embeddings set and the candidate embeddings set. The method of claim 25, wherein the aggregations use a multi-layer attention model comprises that applies an attention function to the first embeddings set and to the second embeddings set. The method of claim 24, wherein the determining the relevance value comprises: retrieving a plurality of candidate sets, each candidate set comprising one or more documents; generating an embeddings set for each of the plurality of candidate sets; determining, by the machine learning algorithm, a relevance value for the first embeddings set relative to each candidate embeddings set; and determining a predicted set as the candidate set corresponding to the candidate embeddings set with a highest relevance value. The method of claim 27, further comprising determining respective embeddings for each candidate set, wherein the relevance value is a determined distance between the second embeddings set and the respective embeddings for each candidate set. The method of claim 24, wherein the machine learning algorithm is trained based on coviewing sequences from a plurality of users. The method of claim 29, wherein training the machine learning algorithm comprises: deriving a subset of documents from a co-viewing sequence; retrieving a plurality of candidate sets, each candidate set comprising one or more documents; determining a relevance value for the subset relative to each of the plurality of candidate sets; determining at least one of the plurality of candidate sets with the relevance value above a threshold; and associating the at least one of the plurality of candidate sets with a sub-sequence of documents, the subsequence of documents comprising documents from the coviewing sequence not included in the derived subset. The method of claim 30, wherein training the machine learning algorithm further comprises negative sampling. The method of claim 31, wherein negative sampling comprises negatively associating the subsequence with at least one negative set generated by adding noise to the at least one of the plurality of candidate set with the relevance value above the threshold. The method of claim 32, wherein an amount of added noise is based on an accuracy of the machine learning algorithm. The method of claim 24, wherein the at least one presented document comprises all documents in the candidate set. The method of claim 24, wherein the at least one presented document comprises all documents in the candidate set, excluding the documents that are included in the anchor set. The method of claim 24, wherein: the anchor document is within an anchor category; and the at least one presented document comprises all documents in the candidate set, excluding the documents that are within the anchor category. The method of claim 24, wherein the candidate set is one a plurality of candidate sets determined by: receiving data indicative of a plurality of document co-viewing sequences, each document in each document co-viewing sequence belonging to a category; determining, with a second machine learning algorithm, respective embeddings for each category, wherein the machine learning algorithm is trained according to the co-viewing sequences; determining distances between the embeddings; and generating the plurality of candidate sets as clusters of categories that have embeddings that are within a threshold distance of each other. A system for providing document category recommendations in an electronic user interface, the system comprising: a processor; and a non-transitory, computer-readable medium storing instructions that, when executed by the processor, cause the system to: retrieve a document co-viewing sequence of a user; generate, via a machine learning algorithm, respective embeddings of each document in the document co-viewing sequence; generate a sequence embeddings by aggregating the document embeddings of the document co-viewing sequence; compare the sequence embeddings to respective embeddings of one or more candidate sets; and based on the comparison, present at least one document of the candidate set with a respective embedding closest to the sequence embeddings. The system of claim 38, wherein the machine learning algorithm is trained using training data based on document co-viewing sequences and document candidate sets. The system of claim 39, wherein the machine learning algorithm is further trained using set-based negative sampling.

Description:
DOCUMENT RECOMMENDATIONS BASED ON CONTEXT-AWARE EMBEDDINGS

CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application claims the benefit of priority to US provisional application no. 63/308,662, filed on February 10, 2022, the entirety of which is hereby incorporated by reference.

TECHNICAL FIELD

[0002] This disclosure generally relates to presentation of one or more recommended documents on an electronic interface, the documents recommended based on context-aware embeddings.

BACKGROUND

[0003] Existing session-based recommender models are focused on recommending individual items based on user activity. However, in some real-world applications, the goal for recommender models is to recommend sets of entities. For example, it can be helpful to recommend sets of products (e.g., bundles, collections, projects, etc.) in response to a user viewing individual products. In another example, for a music recommendation platform, recommending albums or playlists, as opposed to a discrete song, is desirable.

BRIEF DESCRIPTION OF THE DRAWINGS

[0004] FIG. l is a diagrammatic view of an example system for providing a document recommendation to a user based on clusters of document categories.

[0005] FIG. 2 is a flow chart illustrating an example method of providing a document recommendation to a user based on clusters of document categories.

[0006] FIG. 3 is a flow chart illustrating an example method of determining clusters of document categories based on document co-viewing sequences.

[0007] FIG. 4 is an example map of categories nodes plotted and connected according to similarity.

[0008] FIG. 5 is a diagrammatic and flow chart view of an example machine learning model and a method of training the machine learning model.

[0009] FIG. 6 is a flow chart illustrating an example method of providing a dynamic document recommendation to a user based on a sequence of user activity. [0010] FIG. 7 is a diagrammatic view of an example system for providing a document recommendation to a user based on user activity and stored document data.

[0011] FIG. 8 is a block diagram illustrating an example architecture of a machine learning model for providing a document set recommendation based on user activity. [0012] FIG. 9 is a flow chart illustrating an example method of providing a document recommendation to a user based on user activity.

[0013] FIG. 10 is a flow chart illustrating an example method of training a machine learning algorithm to generate context-aware embeddings for document sets.

[0014] FIG. 11 is a flow chart illustrating an example method of providing document category recommendations to a user based on an anchor product and sequence of user activity.

[0015] FIG. 12 is a flow chart illustrating an example method of providing document category recommendations to a user based on an anchor product and sequence of user activity.

[0016] FIG. 13 is a diagrammatic view of an example embodiment of a user computing environment.

DETAILED DESCRIPTION

[0017] Known recommendation systems do not adequately utilize substantive information about the subjects of user behavior (i.e., documents and their contents or subjects), relying on simple co-purchase data or on human-curated project guides. A novel recommendation system according to the present disclosure may improve upon known systems and methods by clustering document categories and by utilizing data regarding viewing sequences of documents, as well as by providing recommendations based on both the set of documents viewed by a user and on the sequence with which the documents were viewed, which provides context for a particular document, to generate more relevant document recommendations.

[0018] Referring now to the drawings, wherein like numerals refer to the same or similar features in the various views, FIG. 1 is a diagrammatic view of an example system 100 for providing a document recommendation to a user based on clusters of document categories. The system 100 may include a source of document data 110 and a document recommendation system 120 that may include one or more functional modules 122, 124, and 126 embodied in hardware and/or software. In an embodiment, the functional modules 122, 124, and 126 of the document recommendation system 120 may be embodied in a processor and a memory (i.e., a non-transitory, computer-readable medium) storing instructions that, when executed by the processor, cause the processor to perform the functionality of one or more of the functional modules and/or other functionality of this disclosure.

[0019] The document data 110 may include a set of documents 112 and a set of coviewing sequences 114. In some embodiments, the documents 112 may be documents specific to or otherwise accessible through a particular electronic user interface, such as a website or mobile application. Each document may belong to one or more categories, and the documents 112 may collectively comprise a plurality of categories, with each document in a category being similar to the other documents in the same category. The co-viewing sequences 114 may be orders of actions taken by users on the electronic user interface, such as user navigations to the documents, user selections of the subjects of the documents, user transactions regarding the documents, etc. For example, in some embodiments, the documents 112 may be respective of products and services offered through an e-commerce website (e.g., where each documents is respective of a given product or service), and the coviewing sequences 114 may be a particular order of user interactions with the documents themselves (e.g., user navigations to, clicks on, or examinations of the documents), and/or user interactions with the products and services that are the subjects of those documents (e.g., purchases, additions to cart, etc.).

[0020] In addition to receiving data from the document recommendation system 120, the document recommendation system 120 may update the document data 110. For example, the document recommendation system 120 may transmit newly-received co-viewing sequences to be included within the co-viewing sequences 114, or the document recommendation system 120 may tag the particular sequences in the co-viewing sequences 114 that are used by the document recommendation system 120 (e.g., to train a machine learning algorithm, etc.)

[0021] The functional modules 122, 124, and 126 of the document recommendation system 120 may include a clustering module 122 that is configured to receive document data 110 (e.g., documents 112, co-viewing sequences 114), determine categories of documents that are related based on the co-viewing sequences, and cluster those related categories. In some embodiments, the clustering module 122 may include a machine learning algorithm that, once trained, can encode embeddings for each category of documents, which can then be used to determine relatedness.

[0022] The functional modules 122, 124, and 126 of the document recommendation system 120 may also include a training module 124 configured to train the machine learning algorithm of the clustering module. The training module 124 may use the co-vi ewing sequences 114 to train the machine learning algorithm. In some embodiments, the training module 124 may isolate those co-vi ewing sequences in which a user interacted with the products and services that are the subjects of documents (e.g., additions to cart) as examples of target or desired user activity patterns. Based on the training data examples, the training module 124 may train the machine learning algorithm to predict one or more documents in a co-viewing sequence, and/or the characteristics of such a predicted document.

[0023] The functional modules 122, 124, and 126 of the document recommendation system 120 may also include a sequencing module 126 configured to recommend a next category of documents for a user based on the user’s particular pattern of activity. The sequencing module 126 may receive a user’s sequence of document selections and generate embeddings respective of that sequence (e.g., via the machine learning algorithm discussed in the clustering module 122). The sequencing module may then compare the generated embeddings to a set of cluster embeddings (e.g., embeddings of the category clusters from the clustering module 122), and present, to the user, the category corresponding to the closest- matching cluster embeddings. In some embodiments, the cluster embeddings may be determined offline prior to a user accessing the system 100, such that the cluster embeddings may be provided by a third party or determined separately from the embeddings of user selections.

[0024] The system 100 may further include a server 130 in electronic communication with the document recommendation system 120 and with a plurality of user computing devices 140a, 140b, and 140c. The server 130 may provide a website, data for a mobile application, or other interface through which the users of the user computing devices 140 may navigate and otherwise interact with the products associated with document data 110. In some embodiments, the server 130 may receive, in response to a user selection, an indication of a recommended next category of document from the document recommendation system 120, and present one or more documents from the next category to the user (e.g., through the interface).

[0025] FIG. 2 is a flow chart illustrating an example method 200 of providing a document recommendation to a user based on clusters of document categories. The method 200, or one or more portions of the method 200, may be performed by the system 100, and more particularly by the document recommendation system 120, in some embodiments.

[0026] The method 200 may include, at block 210, determining co-viewing relationships between categories of documents and, at block 220, determining clusters for the categories based on the co-vi ewing relationships. Details of blocks 210 and 220 can be found in method 300 of FIG. 3. In some embodiments, a relationship between two categories is determined according to equation (1) below:

#Co_Purchase(A,B) 1 .

Expected welgtit( A, B) V 4- 7 in which A is a first category, B is a second category, #Co_Purchase(A,B) is a number of instances in which A and B are purchased in the same transaction, and Expected_weight(A,B) is determined according to equation (2) below: in which Deg(A) is a number of times that A is purchased, Deg(B) is a number of times that B is purchased, and Total Purchases is a total number of purchases made on the interface. [0027] In other embodiments, co-viewing sequence data (e.g., co-viewing sequences 114) may first be received or accessed to train a machine learning algorithm. From there, embeddings for each category of documents may be determined using the trained machine learning algorithm. Distances between each embeddings vector may then be determined according to a cosine similarity, Euclidean distance, or other appropriate multi-dimensional distance calculation. In some embodiments, the relative distance of each embeddings vector may be determined relative to every other embeddings vector, and pairs of embeddings vectors that are closer to each other than a threshold value may be assigned to a common cluster. In these embodiments, each cluster may comprise embeddings vectors that each are within a threshold distance to every other embeddings vector in the cluster, such that the cluster includes related categories. Each category may be in multiple clusters (e.g., if each cluster is analogous to home improvement project, then a category may be included in multiple clusters if that subject matter of documents in that category would be used in multiple home improvement projects).

[0028] The method 200 may further include, at block 230, receiving a user selection of an anchor document. The user selection may be made on the user device 140 and received via the server 130. In some embodiments, the user selection may be a user navigation to the anchor document, and in other embodiments, the user selection may be a selection of the subject of the anchor document or a user transaction regarding the anchor document. The category that includes the anchor document may be referred to as an anchor category.

[0029] The method 200 may further include, at block 240, presenting a category of documents that are included in the same cluster as the anchor category. Presenting a category of documents may entail presenting a document that belongs to the category. In those embodiments in which the anchor category belongs to a single cluster, one or more of the other categories from that single cluster may be presented. In those embodiments in which the anchor category belongs to multiple clusters, one or more of the other categories from each of the multiple clusters may be presented.

[0030] FIG. 3 is a flow chart illustrating an example method 300 of determining clusters of document categories based on document co-viewing sequences. The method 300, or one or more portions of the method 300, may be performed by the system 100, and more particularly by the clustering module 122 of the document recommendation system 120, in some embodiments.

[0031] The method 300 may include, at block 310, receiving data indicative of a user’s document co-viewing sequences. These data may be the co-viewing sequences 114, and may include an order of user interactions with documents. The co-viewing sequences 114 may be the order of documents without information regarding the type of interaction (e.g., viewing, transacting, etc.), or the co-viewing sequences 114 include the order of documents with the associated type of interaction. As described with reference to the training module 124, these co-viewing sequences may be used to train a machine learning algorithm.

[0032] The method 300 may also include, at block 320, training a machine learning algorithm. Details of block 320 can be found in method 500 of FIG. 5. In some embodiments, the machine learning algorithm may be trained by the co-viewing sequences 114 received in block 310 of the method 300.

[0033] The method 300 may also include, at block 330, determining embeddings vectors for each category using the machine learning algorithm trained at block 320, and, at block 340, determining distances between each of the determined embeddings. Because the machine learning algorithm may be trained using co-viewing sequences, the embeddings vector for each category is indicative of each category’s position within or relationship to sequences of user activity. The distances may be calculated according to a cosine similarity, Euclidean distance, or other appropriate multi-dimensional distance calculation, and the distances between embeddings vectors are indicative of similarity. As such, a relatively short distance between two embeddings vectors indicates that the two embeddings may often be in shared sequences. In some embodiments, the distances between all pairs of embeddings vectors may be determined, while in other embodiments, the distances between each embeddings vector and other embeddings may be determined until a distance below a threshold value is determined (e.g., distances are determined until a particularly close pair of embeddings is determined). [0034] The method 300 may further include, at block 350, clustering categories based on the determined distances. Pairs of embeddings that are closer to each other than a threshold value may be assigned to a common cluster. In these embodiments, each cluster may comprise embeddings that each are within a threshold distance to every other embeddings vector in the cluster. This threshold value may be pre-determined, or may be based on a silhouette score, such that a threshold value is chosen to maximize the silhouette score. Embeddings may be grouped by selecting an initial embeddings vector and grouping all embeddings that are similar to the initial embeddings vector. This process may then be repeated for all remaining embeddings, with a new initial embeddings selected from the remaining embeddings. Because a category may be in multiple clusters, when a category is assigned to or grouped with a cluster, that category is not removed from a theoretical pool of possible categories for clustering. For example, if category A is within a threshold distance of categories B and C, but category B is not within a threshold distance of category C, clustering category A with category B does not exclude also clustering category A with category B. [0035] In some embodiments, the categories are clustered using a Graph Neural Network (GNN), which plots each category as a node. The nodes may then be connected based on the determined distances between the respective embeddings. In some embodiments, all nodes may be connected to each other, with a line weight for the connection assigned based on the determined distance. In other embodiments, only those nodes with respective embeddings vector distances below a threshold value may be connected, such that each connection is indicative of related or associated categories. Once the nodes and connections are mapped, clusters are determined based on the map. In those embodiments in which all connections are mapped with line weights, a cluster may be comprised of a set of all nodes that are connected to each other with line weights above a threshold value. In those embodiments in which the only connections are between nodes with relatively low respective embeddings differences, a cluster may be comprised of a set of nodes that are each connected to every other node in the set.

[0036] FIG. 4 is an example map 400 of categories nodes plotted and connected according to similarity. As shown in FIG. 4, if Node A is connected to Nodes B, C, and D, Node B is connected to Nodes A and D, Node C is connected to Node A, and Node D is connected to Nodes A and B, then a cluster may be Nodes A, B, and D, as those three nodes are each connected to the other nodes in the cluster.

[0037] FIG. 5 is a diagrammatic and flow chart view illustrating an example method 500 of training a machine learning algorithm, The method 500, or one or more portions of the method 500, may be performed by the system 100, and more particularly by the training module 124, in some embodiments.

[0038] A goal of the method 500 may be to train a GNN to reconstruct a pairwise graph of category relationships and session data, while generating between-category weights that more accurately predict user behavior than equations (1) and (2) above. The method may therefore involve iteratively training the GNN such that a graph produced from the GNN provides improved prediction.

[0039] The method 500 may include, at block 510, receiving data regarding one or more (e.g., a plurality of) sessions of user activity. This session data may be a set of co-viewing sequences (e.g., co-viewing sequences 114), such that block 510 may be similar to block 310 of method 300. Each co-viewing sequence may include an order of documents that were viewed by a user during a session with the respective interface. The particular order of documents may be the elements of the sequence, such that each element is a different document (or category of document).

[0040] The method 500 may also include, at block 520, inputting the session data into the machine learning algorithm (e.g., a GNN) that generates embeddings vectors as output and, at block 530, generating embeddings vectors with the GNN based on the session data. In some embodiments, a determined embeddings vector may be respective of a session, while in other embodiments, a determined embeddings vector may be respective of a category of documents that was viewed as part of the session data. In these embodiments, the embeddings vector is reflects context provided by the session data.

[0041] The method 500 may further include, at block 540, building a graph based on the embeddings vectors. An example graph is shown in FIG. 4. As discussed with reference to FIG. 4, the graph may be built by plotting each category as a node, and connecting the nodes based on a distance between embeddings vectors associated with the respective categories. [0042] The method 500 may include two forms of comparison of the predictions of the GNN. First, at block 550, the method may include performing a random walk and negative sampling in which, at each iteration of training, positive and negative examples of session data are generated, with the negative examples generated at random, and a first loss Li may be calculated based on the predictive quality of the GNN as to those positive and negative examples at block 560.

[0043] Second, the method 500 may further include, at block 555, masking one or more datapoints (e.g., documents in a co-viewing sequence) from the session data received at block 510, and, at block 565, inputting the co-viewing sequences with masked datapoints into a Continuous Bag of Words (CBOW) model to determine a second loss L2, which may be calculated as a cross-entropy loss. In some embodiments, a single session (e.g., a single coviewing sequence) may be selected from the session data, and a single datapoint may be masked (e.g., temporarily hidden) in the session. Embeddings may be determined for each of the unmasked datapoints, and may be input into a Deep Neural Network (DNN) utilizing the CBOW model. The CBOW model may output an estimate value for the masked datapoint, which may be compared to the actual masked datapoint.

[0044] The method 500 may further include, at block 570, determining an overall loss L based on the first and second loss factors, and the GNN may be trained to minimize the loss L.

[0045] FIG. 6 is a flow chart illustrating an example method 600 of providing a dynamic document recommendation to a user based on a sequence of user activity. The method 600, or one or more portions of the method 600, may be performed by the system 100, and more particularly by the document recommendation system 120, in some embodiments.

[0046] The method 600 may include, at block 610, receiving a user selection of an anchor document. Similarly to block 230 of method 200, the user selection may be made on the user device 140 and received via the server 130. In some embodiments, the user selection may be a user navigation to the anchor document, and in other embodiments, the user selection may be a selection of the subject of the anchor document or a user transaction regarding the anchor document. The category that includes the anchor document may be referred to as an anchor category.

[0047] The method 600 may also include, at block 620, accessing the user’s selection history. The user’s selection history may be stored with the co-viewing sequences 114, and may include the user’s particular order of interactions with the documents themselves (e.g., user navigations to, clicks on, or examinations of the documents), and/or interactions with the products and services that are the subjects of those documents (e.g., purchases, additions to cart, etc.). The selection history, as used for block 620, may be limited to the selection history of this particular user, and may exclude selection histories (or co-viewing sequences) of other users. In some embodiments, the user’s selection history is limited to a current session (e.g., the current period of time in which the user is accessing the interface that began when the user first accessed the interface on the current day), while in other embodiments, the user’s selection history may include all sessions in which the user accessed the interface.

[0048] The method 600 may further include, at block 630, determining an anchor embeddings vector for the user’s sequence. The user’s sequence here is selection of the anchor product within context provided by the user’s selection history. In some embodiments, the user’s sequence may be the order of all documents with which the user interacted (inclusive of the anchor product), while in other embodiments, the user’s sequence may be the order of those documents only viewed by the user (inclusive of the anchor product). In further embodiments, the user’s sequence may be the anchor product and the order of those documents with whose subjects the user previously transacted. Similarly to block 320 of method 300, the anchor embeddings vector (e.g., the embeddings of the user’s sequence based on the anchor product) may be encoded used the trained machine learning algorithm. [0049] The method 600 may further include, at block 640, matching the anchor embeddings vector with at least one embeddings vector of a category cluster. The cluster embeddings may be determined by encoding the clusters that result from block 340 of method 300 using the trained machine learning model. Matching the anchor embeddings vector may involve determining a relative distance (e.g., cosine similarity, Euclidean distance) between the anchor embeddings vector and each cluster embedding. In some embodiments in which only a single matched cluster is desired, the matched cluster may be determined as the cluster with the respective embeddings vector that is the closest to the anchor embeddings vector. In other embodiments in which multiple matched clusters are acceptable, the matched cluster(s) may be those clusters with respective embeddings that are within a threshold distance of the anchor embeddings vector.

[0050] The method 600 may further include, at block 650, presenting, to the user, a category from the matched cluster. This presentation may be done similarly to block 240 of method 200, such that presenting a category may entail presenting a document that belongs to the category. In those embodiments in which a single cluster is matched, one or more (or all) of the other categories from that single cluster may be presented. In those embodiments in which multiple clusters are matched, one or more of the other categories from each of the multiple clusters may be presented.

[0051] Clustering categories of documents based on clustering according to methods 200, 300, and 600 may provide numerous benefits over existing recommendation methods. First, by utilizing context (e.g., the user’s sequence) around a user’s selection to inform the recommendation, the system 100 provides a more accurate and relevant recommendation. Second, because the recommendation is revised and refined throughout a user’s session by continuously updating the context used to determine the recommendation, the system 100 operates in a more dynamic and responsive manner than existing methods. Third, the system 100 utilizes a trained machine-learning algorithm, the human element is removed from recommendations, in contrast to existing recommendation methods that rely on human- curated lists and guides. Fourth, the recommendations made by the system 100 are at the category-level, which provides a more thorough and accessible recommendation to a user than existing recommendation systems that provide recommendations at the document-level, which restrict users into a single selection. Fifth, by improving and streamlining the users’ experiences on the website, the processing strain on the server 130 is reduced, and overall performance of the server 130 (e.g., loading webpages, loading content, processing interactions) is improved. In particular, because document recommendations that are dynamic and based on a user’s current session, the recommendation is more tailored to the user and more likely to be relevant. As such, the user is likely to spend less time browsing and searching through the website, reducing their length of stay without losing a sale.

[0052] FIG. 7 is a diagrammatic view of an example system 700 for providing a document recommendation to a user based on user activity and stored document data. The system 700 may include a source of document data 710, a source of user data 720, and a document recommendation system 730 that may include one or more functional modules 732, 734, and 736 embodied in hardware and/or software. In an embodiment, the functional modules 732, 734, and 736 of the document recommendation system 730 may be embodied in a processor and a memory (i.e., a non-transitory, computer-readable medium) storing instructions that, when executed by the processor, cause the processor to perform the functionality of one or more of the functional modules and/or other functionality of this disclosure.

[0053] The document data 710 may include a set of documents 712, a set of co-vi ewing sequences 714, and candidate set 716. In some embodiments, the documents 712 may be documents specific to or otherwise accessible through a particular electronic user interface, such as a website or mobile application. Each document may belong to one or more categories, and the documents 712 may collectively comprise a plurality of categories, with each document in a category being similar to the other documents in the same category. The co-vi ewing sequences 714 may be orders of actions taken by users on the electronic user interface, such as user navigations to the documents, user selections of the subjects of the documents, user transactions regarding the documents, etc. For example, in some embodiments, the documents 712 may be respective of products and services offered through an e-commerce website (e.g., where each documents is respective of a given product or service), and the co-vi ewing sequences 714 may be a particular order of user interactions with the documents themselves (e.g., user navigations to, clicks on, or examinations of the documents), and/or user interactions with the products and services that are the subjects of those documents (e.g., purchases, additions to cart, etc.). The candidate sets 716 may be clusters of documents or document categories that are associated with each other and/or are often co-viewed in a single session. In some embodiments, the candidate sets 716 may be generated by the document recommendation system 120.

[0054] In addition to receiving data from the document data 110, the document recommendation system 730 may update the document data 710. For example, the document recommendation system 730 may cause (e.g., transmit for storage) newly-received coviewing sequences to be stored within the co-vi ewing sequences 714, or the document recommendation system 730 may tag the particular sequences in the co-vi ewing sequences 714 that are used by the document recommendation system 730 (e.g., to train a machine learning algorithm, etc.)

[0055] The user data 720 may include an anchor document 722 and a user co-viewing sequence 724. The anchor document 722 may be a document (or documents) selected by a user from the set of documents 712, such that the anchor document may similarly be a document specific to or otherwise accessible through a particular electronic user interface, such as a website or mobile application. The selection of the anchor document 722 may be received from a user device 140. The user co-viewing sequence 724, similarly to the coviewing sequences 714, may be an order of actions taken by a user on the electronic user interface (e.g., via the user device 140), such as user navigations to the documents, user selections of the subjects of the documents, user transactions regarding the documents, etc. For example, the anchor document 722 may be a document selected by the user, and the user co-viewing sequence 724 may be an order or sequence of documents the user navigated to or interacted with prior to selecting the anchor document 722.

[0056] The functional modules 732, 734, and 736 of the document recommendation system 730 may include a training module 732 that is configured to receive document data 710 (e.g., documents 712, co-viewing sequences 714), to determine (e.g., derive or compile) training data from the document data 710, and to train a machine learning algorithm that, once trained, can encode embeddings for each category of documents, which can then be used to determine relatedness of a document (or set of documents) to another document (or set of documents). In particular, the training module 734 may split a single co-viewing sequence into a subset and a subsequence, and may determine one or more candidate sets 716 that are similar to the subset. The subset may be the first " number of documents in the coviewing sequence, or the subset may be the first of documents in the co-viewing sequence, such that the subset may include some (but not all) of the elements in the co- viewing sequence, with the remaining (e.g., not-included) elements used to generate a subsequence. In contrast to the subset, the subsequence may be generated with sequential coding based on the original co-viewing sequence in order to maintain the same order of elements in the sub-sequence as in the co-viewing sequence. The training module 734 may associate each of those one or more similar candidate sets 716 to the subsequence.

[0057] In some embodiments, the training module 734 may utilize both positive sampling and negative sampling to train the model. Positive sampling may include positively associating the subset with a candidate set similar to the respective subsequence. Negative sampling may include first adding noise to the respective subsequence, and then negatively associating the subset with a candidate set similar to the noise-altered subsequence.

[0058] The functional modules 732, 734, and 736 of the document recommendation system 730 may also include an embeddings module 734 configured to utilize the trained machine learning algorithm to encode embeddings based on the user data 720 (e.g., anchor document 722, user co-viewing sequence 724). The embeddings module 734 may treat the anchor document 722 and the user co-viewing sequence 724 as a single anchor sequence, in which each document from the anchor document 722 and the user co-viewing sequence 724 may be ordered in the anchor sequence based on the order in the user co-viewing sequence 724 . The embeddings module 734 may also treat the anchor document 722 and the user coviewing sequence 724 as a single anchor set, in which each document of the anchor document 722 and the user co-viewing sequence 724 may be combined in a set, regardless of order. [0059] The embeddings module 734 may separately encode embeddings sets for the anchor sequence and the candidate sets 716 to which the anchor sequence may be compared. The embeddings set for the anchor sequence may include embeddings encoded for each element (e.g., document) in the anchor sequence based, in part, on the order of elements in the anchor sequence, as well as on the content of the other elements in the anchor sequence. The embeddings set for the anchor sequence may be input into a multi-layer attention model that aggregates the embeddings of each element into a single anchor embeddings set by applying an attention value based on the embeddings set for the candidate set 716. By utilizing the separate embeddings sets and the multi-layer attention model to generate the anchor embeddings set within the context of the candidate set 716, the embeddings module 734 applies a context-aware aggregation model that results in an embeddings set in which the representation of an input sequence accounts for the context of each document within the sequence. [0060] Similarly, the embeddings module 734 may generate embeddings for each of the candidate sets 716. In some embodiments, these embeddings may be context-aware, such that the embeddings for each element in the candidate set 716 may be encoded based on content of other elements in the same candidate set 716. In some embodiments, which are described in greater depth with reference to FIG. 8, the generated embeddings set for the candidate set 716 may be input into a multi-layer attention model that aggregates the embeddings of each element into an ultimate candidate set embeddings set by applying an attention value based on the embeddings set for the anchor sequence being encoded in parallel. As such, the ultimate candidate set 716 embeddings set may be encoded within the context of the other elements of the candidate set 716 as well as of the anchor sequence to which the candidate set 716 may be compared for relevancy.

[0061] The functional modules 732, 734, and 736 of the document recommendation system 730 may also include a relevance module 736 configured to recommend a document or category of documents for a user based on the user’s particular pattern of activity (e.g., the anchor document 722 and user co-vi ewing sequence 724). The relevance module 736 may receive the anchor embeddings set from the embeddings module 734, and may compare the anchor embeddings set to embeddings generated (e.g., by the embeddings module 734 using the trained machine learning algorithm, as described above) for each of the candidate sets 716. Based on the comparison, the relevance module 736 may present one or more documents (or document categories) from the candidate set most associated (e.g., having a closest embeddings) with the anchor embeddings set.

[0062] The system 700 may further include the server 130 in electronic communication with the document recommendation system 730 and the user computing device 140. The server 130 may provide a website, data for a mobile application, or other interface through which the user of the user computing device 140 may navigate and otherwise interact with the products associated with document data 710 (e.g., to select the anchor document 722, etc.). In some embodiments, the server 130 may receive, in response to a user selection, an indication of a recommended next category of document from the document recommendation system 730, and present one or more documents from the next category to the user (e.g., through the interface).

[0063] FIG. 8 is a block diagram illustrating an example architecture of a machine learning model 800 for providing a document set recommendation based on user activity. The model 800 may include or may subsume the embeddings module 734 and/or the relevance module 736, in some embodiments. Accordingly, the model 800, or one or more portions of the model 800, may be implemented by the document recommendation system 730, in some embodiments.

[0064] The model 800 may include, at blocks 811 and 812, the receipt of an input sequence 811 and a candidate set 812. The input sequence 811 may include the anchor document 722 and user co-vi ewing sequence 724, with the input sequence 811 being coded in the order of the anchor document 722 and user co-viewing sequence 724. The candidate set 812 may include a candidate set of documents (e.g., candidate set 716, documents from a candidate category, etc.), which candidate documents may have some or no overlap with the anchor document 722 and/or co-viewing sequence 724.

[0065] The model 800 may also include a lookup table 820. The lookup table 820 may be used for retrieving category embeddings for each of the input sequence 811 and the candidate set 812. These category embeddings may be pre-determined and stored in the lookup table 820, and may be assigned to the input sequence 811 and the candidate set 812 based on a category of each element in the respective sequence/set. For example, given an input sequence T t , a candidate set Cj, and a lookup function for category embeddings E where d is the latent dimensionality, each element in the input sequence 811 may be given as and, each element in the input set 812 may be given as E Ci = e e 1 G R d may be the one-hot embedding of and where e^' G R d ( . may be the one-hot embedding of v 0 1 . To maintain the sequential pattern of the input sequence 811, positional encoding may be added to E Ti . In some embodiments, a single lookup table may be shared for both the sequence encoder (e.g., sequence encoder 830) and the set encoder (e.g., set encoder 840) because both the input sequence 811 and the candidate set 812 may have elements from the same pool of documents.

[0066] The model 800 may further include a sequence encoder 830 for generating an embeddings vector based on the category embeddings from lookup table 820 associated with the input sequence 811. The sequence encoder 830 may be a transformer encoder configured to determine the embeddings of the input sequence 811 with respect to other elements in the input sequence 811, which may include the added positional encoding. The output of the sequence encoder 830 may be given as H Ti = h^.|], with h^ 1 G R d as the context- aware embedding of v Q l , in some embodiments.

[0067] The model 800 may also include a set encoder 840 for generating an embeddings vector based on the category embeddings from lookup table 820 associated with the candidate set 812. The sequence encoder 830 may be a transformer encoder configured to obtain the embeddings of the candidate set 812 with respect to other elements in the candidate set 812, without any positional encoding. The output of the set encoder 840 may be C ■ ' with h 0 7 6 R d as the context-aware embedding of v 0 J , in some embodiments. The sequence encoder 830 and set encoder 840 may operate in parallel, in some embodiments.

[0068] The model 800 may include a set aggregator 860 for generating attention-weighted embeddings of the encoded candidate set 812. In some embodiments, the sequence aggregator 850 may be configured as a multi-layer Interactive Attention-based Pooling (IAP) Model.

[0069] The model 800 may include a sequence aggregator 850 for generating attention- weighted embeddings of the encoded input sequence 811. In some embodiments, the set aggregator 860 may be configured as a multi-layer IAP Model.

[0070] Because the context of the input sequence 811 may inform the embeddings of the input set 812 (and vice versa), the sequence aggregator 850 and the set aggregator 860 may be in communication. For example, the output from one layer of the sequence aggregator 850 may be the input for one layer of the set aggregator 860. For example, if the output for a layer l of the sequence aggregator 850 is denoted as l , the input to layer I may be the output of the sequence encoder 830 (e.g., H Ti ) and the output of layer /- 1 of the set aggregator 860 (e.g., Pj i)- Similarly, if the output for a layer I of the set aggregator 860 is denoted as p t 1 , the input to layer I may be the output of the set encoder 840 (e.g., H c i) and the output of layer / - 1 of the sequence aggregator 850 (e.g., Pil- . For the first layer of each aggregator 850,

860, because there is no / - 1 layer, the input may be defined as the mean pool of the other or opposite (e.g., set for sequence, sequence for set, etc.) element embeddings. In particular, the first layer for the set aggregator 860 may be the mean pool of the sequence embeddings given as p 0 Ti = an the first layer for the sequence aggregator 850 may be the mean pool of the set embeddings given as p o c i The output of each of the multi- r , ( ■ layer IAP models (e.g., p t 1 and p t 7 ) may then be weighted using an attention function that may determine an attention value for each.

[0071] In some embodiments, the sequence aggregator 850 and the set aggregator 860 may each include an attention mechanism defined as Attention Q, K, 7) = / QK 1 \ softmax I -j= V I, where Q may be the query, K may represent the key vector, and V may \V d-k /

T- represent the value vector. This attention mechanism may define p t 1 as MultiHead(Q,K, V), which may in turn be defined as Concat(head , head 2 , ..., head h yw 0 , where headi =

Attention QW , KW , VW^), h may be the number of heads,

[0072] The model 800 may further include a relevance predictor 870 for determining a predicted relevance of the candidate set 812 to the input sequence 811. The relevance predictor 870 may receive the attention-weighted outputs for the input sequence 811 from the sequence aggregator 850 and for the candidate set 812 from the set aggregator 860, and may concatenate the outputs in order to utilize a multi-layer perceptron (MLP). From there, the relevance predictor 870 may utilize a suitable relevance function (e.g., Sigmoid) on the MLP output to determine a predicted degree of relevance between the input sequence 811 and the input set 812. For example, the function may be given as y T . c . = Sigmoid MEP h 1 II h c i), where yr^Cj may be the relevance score (e.g., how similar the candidate set 812 is to the input sequence 811), and II may represent the concatenation function performed by the sequence aggregator and the set aggregator 860.

[0073] The model 800 may be repeated for multiple candidate sets 812 with the same input sequence 811, such that the relevance score (e.g., the output of the relevance predictor 870) may be compared for multiple candidate sets 812 in order to find the candidate set(s) 812 most relevant (e.g., most similar to) the input sequence 811 at-issue. In some embodiments, the model 800 may be repeated for a pre-determined number of candidate sets 812 (e.g., 10 candidate sets). In some embodiments, the model 800 may be repeated until a candidate set 812 returns a relevance score above a threshold value (e.g., the candidate set 812 is sufficiently similar). In some embodiments, the model 800 may be repeated for a group of candidate sets 812 initially determined (e.g., triaged) as possibly relevant based on candidate categories. For example, if the input sequence 811 includes documents belonging to a particular category of documents, the model 800 may only process candidate sets 812 associated with that particular category.

[0074] FIG. 9 is a flow chart illustrating an example method 900 of providing document category recommendations to a user based on an anchor product and sequence of user activity. The method 900, or one or more portions of the method 900, may be performed by the system 700, and more particularly by the document recommendation system 730, in some embodiments.

[0075] The method 900 may include, at block 910, training a machine learning algorithm. As discussed above with reference to the training module 732, training the machine learning algorithm may include deriving training data from stored data regarding previous user activity (e.g., document data 710). The training process is described in further detail in FIG. 9.

[0076] The method 900 may also include, at block 920, receiving selection of an anchor document from a user. As discussed above with reference to the anchor document 722, the selection of the anchor document may be a selection of a document or category of document made by the user via an electronic interface on the user device (e.g., user device 140), received by the server 740, and communicated to the document recommendation system 730. The method may further include, at block 930, retrieving a user co-vi ewing sequence. As discussed above with reference to the user co-viewing sequence 724, the co-viewing sequence may be an order of actions taken by a user on the electronic user interface prior to the selection of the anchor document. The user co-viewing sequence may be retrieved from a database (e.g., user data 720) connected to the document recommendation system 730.

[0077] The method 900 may also include, at block 940, generating a sequence embeddings set based on the anchor document and the user co-viewing sequence. As discussed above with regard to the embeddings module 734, the sequence embeddings set may be generated using the trained machine learning algorithm from block 910. In some embodiments, the sequence embeddings may be generated by encoding the combination of anchor document and user co-viewing sequence as a sequence (e.g., the input sequence 811) in parallel with a candidate set (e.g., the candidate set 812) to which the anchor document and user co-viewing sequence may be compared. As such, each element (e.g., document) of the combination may be encoded as part of a sequence (e.g., via the sequence encoder 830) and with relation to the candidate set (e.g., via the sequence aggregator 850), in parallel with the candidate set being encoded as part of a set (e.g., via the set encoder 840) and with relation to the input sequence (e.g., via the set aggregator 860). The sequence embeddings set may be generated by inputting the document embeddings encoded as part of a sequence into a multilayer attention model that concatenates and aggregates the sequence embeddings with the candidate set embeddings encoded as part of a set. By generating the embeddings set in this two-step manner, two types of context may be considered for each element in the user input sequence: 1) the other elements within the sequence; and 2) the elements in the candidate set. Basing the attention value on the document embeddings encoded as part of the set may enable the multi-layer attention model to set how much each element may contribute to the sequence embeddings set based on the set.

[0078] The method 900 may further include, at block 950, comparing the generated sequence embeddings set to candidate sets of documents (or document categories). As discussed above with regard to the candidate sets 716, the candidate sets may be clusters of documents or document categories that are associated with each other and/or are often coviewed in a single session. These candidate sets may be pre-set and stored in memory, or may be dynamically determined based on document data 710 (e.g., via the document recommendation system 120). In some embodiments, an embeddings vector may be generated for each candidate set using the trained machine learning algorithm. In these embodiments, comparing the candidate sets to the sequence embeddings set means determining a relevance between each candidate set embeddings and the sequence embeddings set.

[0079] The method 900 may also include, at block 960, determining which candidate set (or candidate sets) is closest to the sequence embeddings set. The most-relevant candidate set (e.g., candidate set with a highest relevance) may be determined as the candidate set with a respective embeddings with the greatest relevance to the sequence embeddings set. In some embodiments, a single candidate set is determined as the most relevant, and in other embodiments, all candidate sets within a threshold relevancy from the sequence embeddings set are determined as the most relevant.

[0080] The method 900 may further include, at block 970, presenting, to the user, a category from the closest candidate set. Presenting a category may entail presenting a document that belongs to the category. In those embodiments in which a single candidate set is most relevant, one or more of the other categories from that single candidate set may be presented. In those embodiments in which multiple candidate sets are matched, one or more categories from each of the multiple candidate sets may be presented. In some embodiments, all categories in the candidate set may be presented, while in other embodiments, all categories in the candidate set except for the category to which the anchor document belongs are presented.

[0081] FIG. 10 is a flow chart illustrating an example method 1000 of training a machine learning algorithm to generate context-aware embeddings for document sets. The method 1000, or one or more portions of the method 1000, may be performed by the system 700, and more particularly by the training module 732, in some embodiments. [0082] The method 1000 may include, at block 1010, retrieving a document co-vi ewing sequence from a stored database (e.g., co-viewing sequences 714 in the document data 710). As discussed above with regard to the co-viewing sequences 714, each document co-viewing sequence may be an order of actions taken by a user on the electronic user interface, such as user navigations to the documents, user selections of the subjects of the documents, user transactions regarding the documents, etc. The method 1000 may also include, at block 1020, deriving a subset of documents from the retrieved document co-viewing sequence. In some embodiments, the derived subset may be the first A number of documents in the co-viewing sequence. In some embodiments, the derived subset may be the first A% of documents in the co-viewing sequence. In further embodiments, two subsets of documents may be derived from the retrieved document co-viewing sequence, with the first subset being treated similarly to the single derived subset in the other embodiments (e.g., for positive training), and with the second subset being utilized to generate a negative set for negative training.

[0083] The method 1000 may also include, at block 1030, comparing the derived subset (or the first of two derived subsets) to stored candidate sets, and, at block 1040, determining at least one candidate set related to the derived subset. The comparison of the subset and candidate sets may be based on a comparison of each element in the subset to each element of each candidate set. The related candidate set may be the candidate set having the highest number of intersection (e.g., overlap) with the subset. In some embodiments, all candidate sets with an amount of intersection above a threshold may be determined as related to the subset.

[0084] The method 1000 may further include, at block 1050, associating a respective subsequence with the related candidate set(s). The respective subsequence may be the elements of the co-viewing sequence that are not included in the derived subset, such that the subsequence may be directly related to the subset. By associating the subsequence with the candidate set(s) determined to be related to the derived subset, the machine learning model may be trained to associate that particular subset with the subsequence. Blocks 1010-1050 may be repeated as desired.

[0085] In some embodiments, noise may be introduced to the respective subsequence prior to associating the respective subsequence with the related candidate set(s). In some of these embodiments, the noise may be introduced to the second of the two derived subsets at block 1020. In these embodiments, the respective subsequence is negatively associated with the related candidate set(s) to provide set-based negative sampling. Noise may be added by replacing a number of documents (or categories of documents) in the subsequence with an equal number of different documents (or categories of documents), by adding a number of documents not already in the subsequence, and/or by removing a number of documents in the set without replacing the removed documents. The amount of noise (e.g., number of documents replaced, added, or removed) may be based on an accuracy of the machinelearning algorithm, with more noise being added to a less accurate model to more drastically train the algorithm at early stages of training.

[0086] FIG. 11 is a flow chart illustrating an example method 1100 of providing document category recommendations to a user based on an anchor product and sequence of user activity. The method 1100, or one or more portions of the method 1100, may be performed by the system 700, and more particularly by the document recommendation system 730, in some embodiments.

[0087] The method 1100 includes, at block 1110, receiving selection of an anchor document. Similar to block 920 of method 900, the selection of the anchor document may be a selection of a document or category of document made by the user via an electronic interface on the user device (e.g., user device 140), received by the server 130, and communicated to the document recommendation system 730. The method may further include, at block 1120, retrieving a user sequence of interactions prior to the selection of the anchor document. The sequence of interactions may be the user co-viewing sequence 724, which may be retrieved from a database (e.g., user data 720) connected to the document recommendation system 730.

[0088] The method 1100 may also include, at block 1130, generating a first embeddings set for an anchor sequence. The elements of the anchor sequence may be the anchor document and each document in the retrieved user sequence, with positional encoding based on the documents’ order in the retrieved user sequence. The first embeddings set may be generated by a trained machine learning algorithm (e.g., from the training module 732), which may include a transformer encoder denoted as a sequence encoder. The method 1100 may further include, at block 1140, generating a second embeddings set for a candidate set. The elements of the candidate set may be documents in a candidate set 716, without positional encoding. The second embeddings set may be generated by a trained machine learning algorithm (e.g., from the training module 732), which may include a transformer encoder denoted as a set encoder.

[0089] The method 1100 may also include, at block 1150, determining a predicted set of documents (or document categories) based on the embeddings sets from blocks 1130 and 1140. In some embodiments, the predicted set may be one or more of the candidate sets 716. The predicted set may be determined as a set of documents corresponding to the second embeddings set that is most related to the first embeddings set, which may, in turn, be determined based on a relevance of a respective second embeddings set to the first embeddings set. In some embodiments, aggregated embeddings sets for both the first and second embeddings sets may be generated via a multi-layer attention model that takes the first and second embeddings sets as inputs. In these embodiments, an attention value based on the first embeddings set (e.g., the anchor sequence-based embeddings set) may be applied to the second embeddings set (e.g., the candidate set-based embeddings set), and an attention value based on the second embeddings set may be applied to the first embeddings set, to generate embeddings sets that are context-aware for both the anchor sequence and the candidate set.

[0090] The method 1100 may further include, at block 1160, presenting at least one document from the predicted set. The at least one document may be a document from the predicted set, or may be a document from a category in the predicted set. In some embodiments, a single document may be presented, and in other embodiments, multiple documents may be presented. The document(s) presented may be the document(s) in the predicted set that are not in the anchor set/sequence, such that the document being presented is not one with which the user previously interacted.

[0091] FIG. 12 is a flow chart illustrating an example method 1200 of providing document category recommendations to a user based on an anchor product and sequence of user activity. The method 1200, or one or more portions of the method 1100, may be performed by the system 700, and more particularly by the document recommendation system 730, in some embodiments.

[0092] The method may include, at block 1210, retrieving a user sequence of interactions prior to the selection of the anchor document. The sequence of interactions may be the user co-viewing sequence 724, which may be retrieved from a database (e.g., user data 720) connected to the document recommendation system 730.

[0093] The method may also include, at block 1220, generating embeddings of each document in the retrieved sequence. As described above with reference to the sequence encoder 830, each embeddings may be encoded based not only on the content of the respective document but also on the relative position (e.g., positional or sequential encoding) of the document within the sequence.

[0094] The method may also include, at block 1230, generating an embeddings set for the retrieved sequence by aggregating the document embeddings from block 1220. As described above with reference to the sequence aggregator 850 (and set aggregator 860), the aggregation may include input based on embeddings sets generated for one or more candidate sets to which the retrieved sequence may be compared.

[0095] The method may also include, at block 1240, comparing the generated sequence embeddings set to one or more candidate embeddings set(s). The candidate embeddings set(s) may be generated based on the retrieved sequence embeddings set, such that each set may be encoded with the context of the other.

[0096] The method 1200 may further include, at block 1250, presenting at least one document from the candidate set. The at least one document may be a document from the candidate set, or may be a document from a category in the candidate set. In some embodiments, a single document may be presented, and in other embodiments, multiple documents may be presented. The document(s) presented may be the document(s) in the candidate set that are not in the retrieved sequence, such that the document being presented is not one with which the user previously interacted.

[0097] Presenting documents according to methods 900, 1000, 1100, and 1200 may provide numerous benefits over existing recommendation methods. First, by utilizing context (e.g., the user’s sequence) around a user’s selection to inform the recommendation, the system 700 provides a more accurate and relevant recommendation. Second, because the recommendation takes into account the context provided both by the set of user actions and the sequence of user actions, the recommendation avoids the pitfalls of systems that focus on one context to the detriment the other. Third, the system 700 utilizes a trained machinelearning algorithm, the human element is removed from recommendations, in contrast to existing recommendation methods that rely on human-curated lists and guides. Fourth, the system 700 provides for set-based negative sampling, which provides a more comprehensively-trained machine learning algorithm without sacrificing the set-based approach with an element-based training. Fifth, by improving and streamlining the users’ experiences on the website, the processing strain on the server 130 is reduced, and overall performance of the server 130 (e.g., loading webpages, loading content, processing interactions) is improved. In particular, because document recommendations are dynamic and based on a user’s current session, the recommendation is more tailored to the user and more likely to be relevant. As such, the user is likely to spend less time browsing and searching through the website, reducing their length of stay without losing a sale.

[0098] FIG. 13 is a diagrammatic view of an example embodiment of a user computing environment that includes a computing system environment 1300, such as a desktop computer, laptop, smartphone, tablet, or any other such device having the ability to execute instructions, such as those stored within a non-transient, computer-readable medium. Furthermore, while described and illustrated in the context of a single computing system, those skilled in the art will also appreciate that the various tasks described hereinafter may be practiced in a distributed environment having multiple computing systems linked via a local or wide-area network in which the executable instructions may be associated with and/or executed by one or more of multiple computing systems.

[0099] In its most basic configuration, computing system environment 1300 typically includes at least one processing unit 1302 and at least one memory 1304, which may be linked via a bus. Depending on the exact configuration and type of computing system environment, memory 1304 may be volatile (such as RAM 1310), non-volatile (such as ROM 1308, flash memory, etc.) or some combination of the two. Computing system environment 1300 may have additional features and/or functionality. For example, computing system environment 1300 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks, tape drives and/or flash drives. Such additional memory devices may be made accessible to the computing system environment 1300 by means of, for example, a hard disk drive interface 1312, a magnetic disk drive interface 1314, and/or an optical disk drive interface 1316. As will be understood, these devices, which would be linked to the system bus, respectively, allow for reading from and writing to a hard disk 1318, reading from or writing to a removable magnetic disk 1320, and/or for reading from or writing to a removable optical disk 1322, such as a CD/DVD ROM or other optical media. The drive interfaces and their associated computer-readable media allow for the nonvolatile storage of computer readable instructions, data structures, program modules and other data for the computing system environment 1300. Those skilled in the art will further appreciate that other types of computer readable media that can store data may be used for this same purpose. Examples of such media devices include, but are not limited to, magnetic cassettes, flash memory cards, digital videodisks, Bernoulli cartridges, random access memories, nano-drives, memory sticks, other read/write and/or read-only memories and/or any other method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Any such computer storage media may be part of computing system environment 1300.

[00100] A number of program modules may be stored in one or more of the memory/media devices. For example, a basic input/output system (BIOS) 1324, containing the basic routines that help to transfer information between elements within the computing system environment 1300, such as during start-up, may be stored in ROM 1308. Similarly, RAM 1310, hard disk 1318, and/or peripheral memory devices may be used to store computer executable instructions comprising an operating system 1326, one or more applications programs 1328 (which may include the functionality of the document recommendation system 730 of FIG. 7 or one or more of its functional modules 1306, 1308, for example), other program modules 1330, and/or program data 1332. Still further, computer-executable instructions may be downloaded to the computing environment 1300 as needed, for example, via a network connection.

[00101] An end-user may enter commands and information into the computing system environment 1300 through input devices such as a keyboard 1334 and/or a pointing device 1336. While not illustrated, other input devices may include a microphone, a joystick, a game pad, a scanner, etc. These and other input devices would typically be connected to the processing unit 1302 by means of a peripheral interface 1338 which, in turn, would be coupled to bus. Input devices may be directly or indirectly connected to processor 1302 via interfaces such as, for example, a parallel port, game port, firewire, or a universal serial bus (USB). To view information from the computing system environment 1300, a monitor 1340 or other type of display device may also be connected to bus via an interface, such as via video adapter 1342. In addition to the monitor 1340, the computing system environment 1300 may also include other peripheral output devices, not shown, such as speakers and printers.

[00102] The computing system environment 1300 may also utilize logical connections to one or more computing system environments. Communications between the computing system environment 1300 and the remote computing system environment may be exchanged via a further processing device, such a network router 1342, that is responsible for network routing. Communications with the network router 1342 may be performed via a network interface component 1344. Thus, within such a networked environment, e.g., the Internet, World Wide Web, LAN, or other like type of wired or wireless network, it will be appreciated that program modules depicted relative to the computing system environment 1300, or portions thereof, may be stored in the memory storage device(s) of the computing system environment 1300.

[00103] The computing system environment 1300 may also include localization hardware 1356 for determining a location of the computing system environment 1300. In embodiments, the localization hardware 1356 may include, for example only, a GPS antenna, an RFID chip or reader, a WiFi antenna, or other computing hardware that may be used to capture or transmit signals that may be used to determine the location of the computing system environment 1300.

[00104] The computing environment 1300, or portions thereof, may comprise one or more components of the system 700 of FIG. 7, in embodiments.

[00105] In some embodiments, a method for providing document category recommendations in an electronic user interface may include determining, for each category of a plurality of categories of documents accessible through the electronic user interface, a co-viewing relationship with each other category according to user activity on the interface, determining, according to the co-viewing relationships, one or more clusters, each cluster comprising two or more of the plurality of categories, receiving, from a user through the interface, a selection of an anchor document, the document being within an anchor category of the plurality of categories, and in response to receiving the user selection of the anchor document, presenting at least one other category that is in a cluster that includes the anchor category.

[00106] In some of these embodiments, the determination may include, for each category of a plurality of categories of documents accessible through the electronic user interface, a co-viewing relationship with each other category receiving data indicative of a plurality of document co-viewing sequences of the user activity, determining, with a machine learning algorithm, respective embeddings for each category, wherein the machine learning algorithm is trained according to the sequences, determining distances between the embeddings, and clustering categories that have embeddings that are within a threshold distance of each other. [00107] In some of these embodiments, training the machine learning algorithm may include determining at least one of the plurality of document co-viewing sequences that includes a transaction, deriving one or more sub-sequences from the co-viewing sequences, and determining a set of training relationships based on the sub-sequences.

[00108] In some of these embodiments, the training relationships may include a plurality of sessions, each with at least one randomly masked document view, further wherein training the machine learning algorithm may include predicting each randomly masked document view with the machine learning algorithm.

[00109] In some of these embodiments, the method may further include receiving, from the user, a selection of a second anchor document, the second anchor document in a second anchor category, and in response to receiving the user selection of the second anchor document, presenting at least one other category that is in a cluster that includes the anchor category and the second anchor category. [00110] In some of these embodiments, presenting the at least one other category may include determining, with a machine learning algorithm, an embeddings vector representative of a sequence of user inputs. The sequence of user inputs may include an order of the user selection of the anchor document, the user selection of the second anchor document, and one or more additional user selections. The presenting may further include matching the sequence embeddings vector with an embeddings vector from a set of cluster embeddings, and presenting at least one category from a cluster associated with the matched embeddings vector.

[00111] In some of these embodiments, the set of cluster embeddings may be determined offline from the one or more clusters prior to receiving the user selection of the anchor document.

[00112] In some embodiments, a system for providing document category recommendations in an electronic user interface may include a non-transitory, computer- readable medium storing instructions, and a processor configured to execute the instructions to determine, for each category of a plurality of categories of documents accessible through the electronic user interface, a co-viewing relationship with each other category according to user activity on the interface, determine, according to the co-viewing relationships, one or more clusters, each cluster comprising two or more of the plurality of categories, receive, from a user through the interface, a selection of an anchor document, the document being within an anchor category of the plurality of categories, and in response to receiving the user selection of the anchor document, presenting at least one other category that is in a cluster that includes the anchor category.

[00113] In some of these embodiments, determining, for each category of a plurality of categories of documents accessible through the electronic user interface, a co-viewing relationship with each other category, may include receiving data indicative of a plurality of document co-viewing sequences of the user activity, determining, with a machine learning algorithm, respective embeddings for each category, determining distances between the embeddings, and clustering categories that have embeddings that are within a threshold distance of each other. The machine learning algorithm may be trained according to the sequences.

[00114] In some of these embodiments, training the machine learning algorithm may include determine at least one of the plurality of document co-viewing sequences that includes a transaction, derive one or more sub-sequences from the co-viewing sequences, and determine a set of training relationships based on the sub-sequences. [00115] In some of these embodiments, the processor may be further configured to receive, from the user, a selection of a second anchor document, the second anchor document in a second anchor category, and in response to receiving the user selection of the second anchor document, present, via the electronic user interface, at least one other category that is in a cluster that includes the anchor category and the second anchor category.

[00116] In some of these embodiments, presenting the at least one other category may include encode a sequence of user inputs, the sequence of user inputs comprising an order of the user selection of the anchor document, the user selection of the second anchor document, and additional user selections, match the encoded sequences with a cluster from a set of encoded clusters, and present, via the electronic user interface, at least one category from the matched cluster.

[00117] In some of these embodiments, the set of encoded clusters may be encoded offline prior to receiving the user selection of the anchor document.

[00118] In some of these embodiments, each document may be in a single category.

[00119] In some embodiments, a method for providing document category recommendations in an electronic user interface may include receiving, from a user through the interface, a selection of an anchor document, the anchor document being within an anchor category of a plurality of categories, accessing a selection history of the user prior to the selection of the anchor document, determining, via a machine learning algorithm, an anchor embeddings vector for a sequence comprising the anchor category and the selection history, matching the anchor embeddings vector to at least one of a plurality of cluster embeddings, each cluster embedding determined from a cluster of two or more of the plurality of categories, and in response to receiving the user selection of the anchor document, presenting at least one other category that is in the cluster associated with the matched at least one cluster embeddings.

[00120] In some of these embodiments, the method may further include receiving, from the user through the interface, a selection of a second anchor document, the second anchor document being within a second anchor category of the plurality of categories, updating the sequence to include the second anchor category, and determining, via the machine learning algorithm, an updated anchor embeddings vector for the sequence.

[00121] In some of these embodiments, the cluster of two or more of the plurality of categories may be determined based on co-viewing relationships among categories according to user activity on the interface.

[00122] In some of these embodiments, each document is in a single category. [00123] In some of these embodiments, each document within a category may be related to every other document in a category.

[00124] In some of these embodiments, the machine learning algorithm may be trained by receiving data indicative of a plurality of document co-viewing sequences that include a transaction, deriving one or more sub-sequences from the co-viewing sequences, and determining a set of training relationships based on the sub-sequences.

[00125] In some embodiments, a method for providing document category recommendations may include training a machine learning algorithm by retrieving, from a database, one or more document co-viewing sequences, deriving one or more subsets from the one or more document co-viewing sequences, comparing the one or more subsets to a plurality of candidate sets, each candidate set comprising one or more categories of documents, based on the comparison, determining at least one candidate set related to each subset, and associating a respective subsequence of each subset with the at least one candidate set, the respective subsequence comprising a portion of the document co-viewing sequence not included in the derived subset. The method may further include receiving, from a user, a selection of an anchor document, retrieving a user co-viewing sequence, generating, via the trained machine learning algorithm, a sequence embeddings set based on the anchor document and the user co-viewing sequence, comparing the generated embeddings set to respective embeddings for a plurality of candidate sets, determining the candidate set closest to the generated embeddings, and presenting at least one category from the closest candidate set.

[00126] In some of these embodiments, training the machine learning algorithm may further include negatively associating the respective subsequence with at least one negative set generated by adding noise to the at least one of the plurality of candidate sets related to each subset.

[00127] In some of these embodiments, generating the sequence embeddings set based on the anchor document and the user co-viewing sequence may include generating, via the trained machine learning algorithm, document embeddings for each document, encoding the document embeddings with positional encoding to generate a sequence embeddings, and aggregating, via the trained machine learning algorithm, the sequence embeddings with a respective embedding for a candidate set of the plurality of candidate sets to generate the sequence embeddings set.

[00128] In some embodiments, a method for providing document category recommendations in an electronic user interface may include receiving, from a user through the interface, a selection of an anchor document, retrieving, from a database, a user sequence of interactions prior to the selection of the anchor document, the user sequence comprising an ordered set of selected documents, generating, via a machine learning algorithm, a first embeddings set for an anchor sequence, the anchor sequence comprising the anchor document and the user sequence, generating, via the machine learning algorithm, a second embeddings set for a candidate set, the candidate set comprising at least one document, determining a relevance value based on the first and second embeddings sets, and in response to the relevance value exceeding a threshold value, presenting the at least one document of the candidate set to the user through the interface.

[00129] In some of these embodiments, the method may further include determining an anchor embeddings set by aggregating the first embeddings set with the second embeddings set. determining a candidate embeddings set by aggregating the second embeddings set with the first embeddings set. The relevance value may be determined based on the anchor embeddings set and the candidate embeddings set.

[00130] In some of these embodiments, the aggregations may use a multi-layer attention model comprises that applies an attention function to the first embeddings set and to the second embeddings set.

[00131] In some of these embodiments, the determining the relevance value may include retrieving a plurality of candidate sets, each candidate set comprising one or more documents, generating an embeddings set for each of the plurality of candidate sets, determining, by the machine learning algorithm, a relevance value for the first embeddings set relative to each candidate embeddings set. and determining a predicted set as the candidate set corresponding to the candidate embeddings set with a highest relevance value.

[00132] In some of these embodiments, the method may further include determining respective embeddings for each candidate set. The relevance value may be a determined distance between the second embeddings set and the respective embeddings for each candidate set.

[00133] In some of these embodiments, the machine learning algorithm may be trained based on co-viewing sequences from a plurality of users.

[00134] In some of these embodiments, training the machine learning algorithm may include deriving a subset of documents from a co-viewing sequence, retrieving a plurality of candidate sets, each candidate set comprising one or more documents, determining a relevance value for the subset relative to each of the plurality of candidate sets, determining at least one of the plurality of candidate sets with the relevance value above a threshold, and associating the at least one of the plurality of candidate sets with a sub-sequence of documents, the subsequence of documents comprising documents from the co-viewing sequence not included in the derived subset.

[00135] In some of these embodiments, training the machine learning algorithm may further include negative sampling.

[00136] In some of these embodiments, negative sampling may include negatively associating the subsequence with at least one negative set generated by adding noise to the at least one of the plurality of candidate set with the relevance value above the threshold.

[00137] In some of these embodiments, an amount of added noise may be based on an accuracy of the machine learning algorithm.

[00138] In some of these embodiments, the at least one presented document may include all documents in the candidate set.

[00139] In some of these embodiments, the at least one presented document may include all documents in the candidate set, excluding the documents that are included in the anchor set. [00140] In some of these embodiments, the anchor document may be within an anchor category, and the at least one presented document may include all documents in the candidate set, excluding the documents that are within the anchor category.

[00141] In some of these embodiments, the candidate set may be one a plurality of candidate sets determined by receiving data indicative of a plurality of document co-viewing sequences, each document in each document co-viewing sequence belonging to a category, determining, with a second machine learning algorithm, respective embeddings for each category, wherein the machine learning algorithm may be trained according to the co-viewing sequences, determining distances between the embeddings, and generating the plurality of candidate sets as clusters of categories that have embeddings that are within a threshold distance of each other.

[00142] In some embodiments, a system for providing document category recommendations in an electronic user interface may include a processor, and a non- transitory, computer-readable medium storing instructions that, when executed by the processor, cause the system to retrieve a document co-viewing sequence of a user, generate, via a machine learning algorithm, respective embeddings of each document in the document co-viewing sequence, generate a sequence embeddings by aggregating the document embeddings of the document co-viewing sequence, compare the sequence embeddings to respective embeddings of one or more candidate sets, and based on the comparison, present at least one document of the candidate set with a respective embedding closest to the sequence embeddings.

[00143] In some of these embodiments, the machine learning algorithm may be trained using training data based on document co-viewing sequences and document candidate sets. [00144] In some of these embodiments, the machine learning algorithm may be further trained using set-based negative sampling.

[00145] While this disclosure has described certain embodiments, it will be understood that the claims are not intended to be limited to these embodiments except as explicitly recited in the claims. On the contrary, the instant disclosure may be intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the disclosure. Furthermore, in the detailed description of the present disclosure, numerous specific details are set forth in order to provide a thorough understanding of the disclosed embodiments. However, it will be obvious to one of ordinary skill in the art that systems and methods consistent with this disclosure may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure various aspects of the present disclosure. [00146] Some portions of the detailed descriptions of this disclosure have been presented in terms of procedures, logic blocks, processing, and other symbolic representations of operations on data bits within a computer or digital system memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, logic block, process, etc., is herein, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these physical manipulations take the form of electrical or magnetic data capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system or similar electronic computing device. For reasons of convenience, and with reference to common usage, such data is referred to as bits, values, elements, symbols, characters, terms, numbers, or the like, with reference to various presently disclosed embodiments. It should be borne in mind, however, that these terms are to be interpreted as referencing physical manipulations and quantities and are merely convenient labels that should be interpreted further in view of terms commonly used in the art. Unless specifically stated otherwise, as apparent from the discussion herein, it is understood that throughout discussions of the present embodiment, discussions utilizing terms such as “determining” or “outputting” or “transmitting” or “recording” or “locating” or “storing” or “displaying” or “receiving” or “recognizing” or “utilizing” or “generating” or “providing” or “accessing” or “checking” or “notifying” or “delivering” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data. The data is represented as physical (electronic) quantities within the computer system’s registers and memories and is transformed into other data similarly represented as physical quantities within the computer system memories or registers, or other such information storage, transmission, or display devices as described herein or otherwise understood to one of ordinary skill in the art.