GRAPH-BASED RECOMMENDATIONS SERVICE SYSTEMS AND METHODS
First Claim
1. A recommendations-device-implemented method for providing recommendations, the method comprising:
- obtaining, by said recommendations device, a compact graph representation representing a recommendations graph comprising a multiplicity of nodes and a multiplicity of weighted edges, each node of said multiplicity of nodes being associated with type metadata indicating that each node represents one of a multiplicity of recommendable items or one of a multiplicity of non-recommendable items, each weighted edge of said multiplicity of weighted edges joining a source node of said multiplicity of nodes to a target node of said multiplicity of nodes, each weighted edge being associated with edge-weight metadata;
storing said compact graph representation in a primary memory of said recommendations-server device;
receiving, by said recommendations device, a multiplicity of recommendation requests, each request requesting a recommendation of at least one recommendable item for a remote user based at least in part on request-context metadata associated with each request;
processing, by said recommendations device, each request of said multiplicity of recommendation requests, including performing at least the following steps for each request;
selecting an entry node of said multiplicity of nodes based at least in part on said request-context metadata;
traversing, via said compact graph representation in said primary memory, only a highly-weighted portion of said recommendations directed-graph that is proximate to said entry node to select a multiplicity of paths leading respectively to a multiplicity of potential recommendation nodes, each of which represents a recommendable item of said multiplicity of recommendable items, said multiplicity of paths being selected based at least in part on weighted-edge-weights of weighted edges making up a given path;
computing a multiplicity of cumulative node scores corresponding respectively to said multiplicity of potential recommendation nodes, including computing each cumulative node score based at least in part on said weighted-edge-weights of each path of said multiplicity of paths that lead to a given node;
selecting a recommendation node based at least in part on said multiplicity of cumulative node scores; and
providing in response to each request an identifier identifying a recommendable item represented by said selected recommendation node.
2 Assignments
0 Petitions
Accused Products
Abstract
A recommendation engine may provide recommendations by obtaining a compact graph representation representing a recommendations graph comprising of nodes and weighted edges. Each node is associated with type metadata indicating that it represents a recommendable item or a non-recommendable item. Each weighted edge is associated with edge-weight metadata. The compact graph representation can be stored in primary memory. When servicing a request for an item recommendation, the recommendation engine selects an entry node based at least in part on context metadata associated with the request, and traverses only a highly-weighted portion of the compact graph representation that is proximate to an entry node to select paths leading respectively to potential recommendation nodes. Each path is scored based on the edge-weight metadata of all segments, and at least one recommendation node is selected based at least in part on the path scores.
-
Citations
21 Claims
-
1. A recommendations-device-implemented method for providing recommendations, the method comprising:
-
obtaining, by said recommendations device, a compact graph representation representing a recommendations graph comprising a multiplicity of nodes and a multiplicity of weighted edges, each node of said multiplicity of nodes being associated with type metadata indicating that each node represents one of a multiplicity of recommendable items or one of a multiplicity of non-recommendable items, each weighted edge of said multiplicity of weighted edges joining a source node of said multiplicity of nodes to a target node of said multiplicity of nodes, each weighted edge being associated with edge-weight metadata; storing said compact graph representation in a primary memory of said recommendations-server device; receiving, by said recommendations device, a multiplicity of recommendation requests, each request requesting a recommendation of at least one recommendable item for a remote user based at least in part on request-context metadata associated with each request; processing, by said recommendations device, each request of said multiplicity of recommendation requests, including performing at least the following steps for each request; selecting an entry node of said multiplicity of nodes based at least in part on said request-context metadata; traversing, via said compact graph representation in said primary memory, only a highly-weighted portion of said recommendations directed-graph that is proximate to said entry node to select a multiplicity of paths leading respectively to a multiplicity of potential recommendation nodes, each of which represents a recommendable item of said multiplicity of recommendable items, said multiplicity of paths being selected based at least in part on weighted-edge-weights of weighted edges making up a given path; computing a multiplicity of cumulative node scores corresponding respectively to said multiplicity of potential recommendation nodes, including computing each cumulative node score based at least in part on said weighted-edge-weights of each path of said multiplicity of paths that lead to a given node; selecting a recommendation node based at least in part on said multiplicity of cumulative node scores; and providing in response to each request an identifier identifying a recommendable item represented by said selected recommendation node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computing apparatus for providing recommendations, the apparatus comprising a processor and a memory storing instructions that, when executed by the processor, configure the apparatus to:
-
obtain a compact graph representation representing a recommendations directed-graph comprising a multiplicity of nodes and a multiplicity of weighted edges, each node of said multiplicity of nodes being associated with type metadata indicating that each node represents one of a multiplicity of recommendable items or one of a multiplicity of non-recommendable items, each weighted edge of said multiplicity of weighted edges joining a source node of said multiplicity of nodes to a target node of said multiplicity of nodes, each weighted edge being associated with edge-weight metadata; store said compact graph representation in a primary memory of the computing apparatus; receive a multiplicity of recommendation requests, each request requesting a recommendation of at least one recommendable item for a remote user based at least in part on request-context metadata associated with each request; process each request of said multiplicity of recommendation requests, including performing at least the following steps for each request; selecting an entry node of said multiplicity of nodes based at least in part on said request-context metadata; traversing, via said compact graph representation in said primary memory, only a highly-weighted portion of said recommendations-graph that is proximate to said entry node to select a multiplicity of paths leading respectively to a multiplicity of potential recommendation nodes, each of which represents a recommendable item of said multiplicity of recommendable items, said multiplicity of paths being selected based at least in part on weighted-edge-weights of weighted edges making up a given path; computing a multiplicity of cumulative node scores corresponding respectively to said multiplicity of potential recommendation nodes, including computing each cumulative node score based at least in part on said weighted-edge-weights of each path of said multiplicity of paths that lead to a given node; selecting a recommendation node based at least in part on said multiplicity of cumulative node scores; and providing in response to each request an identifier identifying a recommendable item represented by said selected recommendation node. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed by a processor, configure the processor to:
-
obtain a compact graph representation representing a recommendations directed-graph comprising a multiplicity of nodes and a multiplicity of weighted edges, each node of said multiplicity of nodes being associated with type metadata indicating that each node represents one of a multiplicity of recommendable items or one of a multiplicity of non-recommendable items, each weighted edge of said multiplicity of weighted edges joining a source node of said multiplicity of nodes to a target node of said multiplicity of nodes, each weighted edge being associated with edge-weight metadata; store said compact graph representation in a primary memory of the processor; receive a multiplicity of recommendation requests, each request requesting a recommendation of at least one recommendable item for a remote user based at least in part on request-context metadata associated with each request; process each request of said multiplicity of recommendation requests, including performing at least the following steps for each request; selecting an entry node of said multiplicity of nodes based at least in part on said request-context metadata; traversing, via said compact graph representation in said primary memory, only a highly-weighted portion of said recommendations directed-graph that is proximate to said entry node to select a multiplicity of paths leading respectively to a multiplicity of potential recommendation nodes, each of which represents a recommendable item of said multiplicity of recommendable items, said multiplicity of paths being selected based at least in part on weighted-edge-weights of weighted edges making up a given path; computing a multiplicity of cumulative node scores corresponding respectively to said multiplicity of potential recommendation nodes, including computing each cumulative node score based at least in part on said weighted-edge-weights of each path of said multiplicity of paths that lead to a given node; selecting a recommendation node based at least in part on said multiplicity of cumulative node scores; and providing in response to each request an identifier identifying a recommendable item represented by said selected recommendation node. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification