IP Library › Granted Patent US 11,645,695
Granted Patent B2
US 11,645,695 · App. 16/817,380 · Granted May 9, 2023

Computing personalized recommendations by modeling interactions as a bipartite graph

Inventors: Vijay Manikandan Janakiraman (San Jose, CA); Arjun Sripathy (Mountain View, CA)
Assignee: Intuit Inc.
G06Q30/0631G06F17/16G06N5/045G06N20/00G06Q30/0623
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,645,695
App. No.
16/817,380
Granted
May 9, 2023
Kind
B2
Abstract

A method may include obtaining interactions between users and items, and calculating, for each edge in a bipartite graph, an edge weight using an inverse of the degree of a user node connected to the edge and an inverse of the degree of an item node connected to the edge. The bipartite graph includes user nodes corresponding to the users and item nodes corresponding to the items. The method may further include identifying paths each including an edge connecting the target user node and a common item node, an edge connecting a neighboring user node and the common item node, and an edge connecting the neighboring user node and a neighboring item node. The method may further include calculating, using the edge weights calculated for the edges, scores for the paths, and recommending, to the target user and using the scores for the paths, a recommended item.

Claims (120)

1. A method comprising:

obtaining a plurality of interactions between a plurality of users and a plurality of items, wherein the plurality of users comprises a target user;

calculating, for each edge of a plurality of edges in a bipartite graph, an edge weight using an inverse of the degree of a user node connected to the edge and an inverse of the degree of an item node connected to the edge,

wherein the bipartite graph comprises:

a plurality of user nodes corresponding to the plurality of users, and

a plurality of item nodes corresponding to the plurality of items, and

wherein the plurality of user nodes comprises a target user node corresponding to the target user;

identifying, in the bipartite graph, a plurality of paths each comprising:

an edge connecting the target user node and a common item node of the plurality of item nodes,

an edge connecting a neighboring user node of the plurality of user nodes and the common item node, and

an edge connecting the neighboring user node and a neighboring item node of the plurality of item nodes,

wherein the target user node is not directly connected to the neighboring item node by a single edge;

calculating, using the edge weights calculated for the plurality of edges, a plurality of scores for the plurality of paths;

de-biasing each score of the plurality of scores by dividing the score by a de-biasing factor comprising:

a first maximum score corresponding to the neighboring user node, and

a second maximum score corresponding to the common item node; and

recommending, to the target user and using the plurality of scores for the plurality of paths, a recommended item of the plurality of items.

2. The method of claim 1 , wherein the recommended item corresponds to a neighboring item node in one or more paths of the plurality of paths, the method further comprising:

identifying one or more common item nodes in the one or more paths; and

generating an explanation for recommending the recommended item to the target user, wherein the explanation comprises a subset of the plurality of items corresponding to the one or more common item nodes.

3. The method of claim 1 , wherein the plurality of scores is calculated by a trained machine learning model.

4. The method of claim 1 ,

wherein the first maximum score is a maximum score calculated for any path in the bipartite graph that comprises the neighboring user node as an endpoint, and

wherein the second maximum score is a maximum score calculated for any path in the bipartite graph that comprises the common item node as an endpoint.

5. The method of claim 1 ,

wherein each of the plurality of users corresponds to one or more user features,

wherein each of the plurality of items corresponds to one or more item features,

wherein the neighboring user node corresponds to a neighboring user of the plurality of users, and

wherein calculating the plurality of scores further comprises:

calculating, for each path of the plurality of paths:

a user feature correlation between the one or more user features of the target user and the one or more user features of the neighboring user, and

an item feature correlation between the one or more item features of the common item and the one or more item features of the recommended item,

wherein the score corresponding to the path is further based on the user feature correlation and the item feature correlation.

6. The method of claim 5 , wherein the user feature correlation and the item feature correlation are calculated by a trained machine learning model.

7. The method of claim 1 , further comprising:

initiating, for the target user, an action to acquire the recommended item.

8. A system comprising:

a computer processor;

a repository storing:

a plurality of interactions between a plurality of users and a plurality of items, wherein the plurality of users comprises a target user, and

a bipartite graph comprising:

a plurality of user nodes corresponding to the plurality of users,

a plurality of item nodes corresponding to the plurality of items, and

a plurality of edges each connecting a user node of the plurality of user nodes and an item node of the plurality of item nodes,

wherein the plurality of user nodes comprises a target user node corresponding to the target user; and

a recommendation engine executing on the computer processor and configured to:

calculate, for each edge of the plurality of edges, an edge weight using an inverse of the degree of a user node connected to the edge and an inverse of the degree of an item node connected to the edge,

identify, in the bipartite graph, a plurality of paths each comprising:

an edge connecting the target user node and a common item node of the plurality of item nodes,

an edge connecting a neighboring user node of the plurality of user nodes and the common item node, and

an edge connecting the neighboring user node and a neighboring item node of the plurality of item nodes,

wherein the target user node is not directly connected to the neighboring item node by a single edge,

calculate, using the edge weights calculated for the plurality of edges, a plurality of scores for the plurality of paths,

de-bias each score of the plurality of scores by dividing the score by a de-biasing factor comprising:

a first maximum score corresponding to the neighboring user node, and

a second maximum score corresponding to the common item node; and

recommend, to the target user and using the plurality of scores for the plurality of paths, a recommended item of the plurality of items.

9. The system of claim 8 , wherein the recommended item corresponds to a neighboring item node in one or more paths of the plurality of paths, and wherein the recommendation engine is further configured to:

identify one or more common item nodes in the one or more paths, and

generate an explanation for recommending the recommended item to the target user, wherein the explanation comprises a subset of the plurality of items corresponding to the one or more common item nodes.

10. The system of claim 8 , further comprising a trained machine learning model, wherein the plurality of scores is calculated by the trained machine learning model.

11. The system of claim 8 ,

wherein the first maximum score is a maximum score calculated for any path in the bipartite graph that comprises the neighboring user node as an endpoint, and

wherein the second maximum score is a maximum score calculated for any path in the bipartite graph that comprises the common item node as an endpoint.

12. The system of claim 8 ,

wherein each of the plurality of users corresponds to one or more user features,

wherein each of the plurality of items corresponds to one or more item features,

wherein the neighboring user node corresponds to a neighboring user of the plurality of users, and

wherein calculating the plurality of scores further comprises:

calculating, for each path of the plurality of paths:

a user feature correlation between the one or more user features of the target user and the one or more user features of the neighboring user, and

an item feature correlation between the one or more item features of the common item and the one or more item features of the recommended item,

wherein the score corresponding to the path is further based on the user feature correlation and the item feature correlation.

13. The system of claim 12 , further comprising a trained machine learning model, wherein the user feature correlation and the item feature correlation are calculated by the trained machine learning model.

14. The system of claim 8 , wherein the recommendation engine is further configured to:

initiate, for the target user, an action to acquire the recommended item.

15. A method comprising:

obtaining a plurality of interactions between a plurality of users and a plurality of items, the plurality of users comprising a target user;

calculating, for each edge of a plurality of edges in a bipartite graph, an edge weight using an inverse of the degree of a user node connected to the edge and an inverse of the degree of an item node connected to the edge,

wherein the bipartite graph comprises:

a plurality of user nodes corresponding to the plurality of users, and

a plurality of item nodes corresponding to the plurality of items, and

wherein the plurality of user nodes comprises a target user node corresponding to the target user;

identifying, in the bipartite graph, a plurality of paths each comprising:

an edge connecting the target user node and a common item node of the plurality of item nodes,

an edge connecting a neighboring user node of the plurality of user nodes and the common item node, and

an edge connecting the neighboring user node and a neighboring item node of the plurality of item nodes,

wherein the target user node is not directly connected to the neighboring item node by a single edge;

calculating, using the edge weights calculated for the plurality of edges, a plurality of scores for the plurality of paths, wherein calculating the plurality of scores comprises multiplying a first matrix, a transpose of the first matrix, and the first matrix,

wherein the first matrix comprises a row of cells corresponding to the plurality of user nodes,

wherein the first matrix comprises a column of cells corresponding to the plurality of item nodes, and

wherein each cell of the first matrix comprises the edge weight calculated for the edge connecting the user node corresponding to the cell and the item node corresponding to the cell;

de-biasing each score of the plurality of scores by dividing the score by a de-biasing factor comprising:

a first maximum score corresponding to the neighboring user node, and

a second maximum score corresponding to the common item node; and

recommending, to the target user and using the plurality of scores for the plurality of paths, a recommended item of the plurality of items.

16. The method of claim 15 , wherein the recommended item corresponds to a neighboring item node in one or more paths of the plurality of paths, the method further comprising:

identifying one or more common item nodes in the one or more paths; and

generating an explanation for recommending the recommended item to the target user,

wherein the explanation comprises a subset of the plurality of items corresponding to the one or more common item nodes,

wherein generating the explanation comprises calculating a dot product between the row of the first matrix corresponding to the target user node and the column of a second matrix corresponding to the recommended item node, and

wherein the second matrix is the result of multiplying the transpose of the first matrix by the first matrix.

17. The method of claim 15 ,

wherein each of the plurality of users corresponds to one or more user features, and

wherein calculating the plurality of scores further comprises:

calculating, for each pair of users in a plurality of pairs of users, a user feature correlation between the one or more user features of each user in the pair, and

multiplying the first matrix by a second matrix and a transpose of the second matrix,

wherein the second matrix comprises a plurality of cells each corresponding to a user feature correlation of a pair of users.

18. The method of claim 17 , further comprising:

wherein each of the plurality of items corresponds to one or more item features, and

wherein calculating the plurality of scores further comprises:

calculating, for each pair of items in a plurality of pairs of items, an item feature correlation between the one or more item features of each item in the pair,

multiplying the first matrix by a third matrix and a transpose of the third matrix, and

wherein the third matrix comprises a plurality of cells each corresponding to an item feature correlation of a pair of items, and

combining the second matrix and the third matrix.

19. The method of claim 18 , further comprising:

combining the second matrix and the third matrix.

20. The method of claim 15 ,

wherein the first maximum score is a maximum score calculated for any path in the bipartite graph that comprises the neighboring user node as an endpoint, and

wherein the second maximum score is a maximum score calculated for any path in the bipartite graph that comprises the common item node as an endpoint.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2020
From: JANAKIRAMAN, VIJAY MANIKANDAN; SRIPATHY, ARJUN
To: INTUIT INC.
Reel/Frame 052843/0360 →
Continuity (1)
Related Publication 20210287273A1 · Sep 16, 2021