IP Library Granted Patent US 12,608,608
Granted Patent B2
US 12,608,608 · App. 18/414,195 · Granted Apr 21, 2026

Aggregated embeddings for a corpus graph

Inventors: Jurij Leskovec (Stanford, CA); Chantat Eksombatchai (Sunnyvale, CA); Kaifeng Chen (San Mateo, CA); Ruining He (Davis, CA); Rex Ying (Stanford, CA)
Assignee: Pinterest, Inc.
G06N3/08G06F16/182G06F16/2272G06F16/51G06F16/9024G06F16/9035G06F16/906G06F16/9535G06F16/9536G06F18/211G06F18/2148G06F18/24147G06N3/04G06N20/00G06V30/1988G06F9/3877
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 12,608,608
App. No.
18/414,195
Granted
Apr 21, 2026
Kind
B2
Abstract

Systems and methods for generating embeddings for nodes of a corpus graph are presented. More particularly, operations for generation of an aggregated embedding vector for a target node is efficiently divided among operations on a central processing unit and operations on a graphic processing unit. With regard to a target node within a corpus graph, processing by one or more central processing units (CPUs) is conducted to identify the target node's relevant neighborhood (of nodes) within the corpus graph. This information is prepared and passed to one or more graphic processing units (GPUs) that determines the aggregated embedding vector for the target node according to data of the relevant neighborhood of the target node.

Claims (65)

1 . A computer-implemented method, comprising:

determining, using a trained neural network, a target node embedding for a target node of a corpus graph maintained as a graph convolution network (GCN), wherein the target node is a node of a plurality of nodes of the corpus graph and the plurality of nodes are associated with a plurality of content items;

performing a plurality of random walks, beginning from the target node, to determine a relevant neighborhood of the target node within the corpus graph, wherein the neighborhood of the target node includes a plurality of neighbor nodes visited during a random walk of the plurality of random walks;

determining a respective importance value for the one or more neighbor nodes of the plurality of neighbor nodes, wherein determining the importance value for the one or more neighbor node comprises determining a count of visits to the respective neighbor nodes during the plurality of random walks;

selecting a subgroup of one or more nodes from the neighbor nodes based on the respective importance values;

generating aggregated neighborhood embedding information corresponding to the target node, the generating comprising:

applying a weight to the one or more neighbor nodes of the subgroup based on the count of visits to the respective neighbor nodes, and

selecting one or more embedding values from one or more of the one or more neighbor nodes of the subgroup, wherein the likelihood of selecting an embedding from a given neighbor node is based on the corresponding weight, to generate the aggregated neighborhood embedding information;

combining the target node embedding and the aggregated neighborhood embedding information to generate an aggregated embedding vector for the target node;

in response to a query corresponding to the target node, evaluating the aggregated embedding vector to identify a content item corresponding to a neighbor node using the aggregated neighborhood embedding information; and

providing the content item to a user device.

2 . The computer-implemented method of claim 1 , further comprising:

determining, for one or more nodes of the plurality of nodes, a corresponding embedding;

determining, for one or more nodes of the plurality of nodes, a corresponding aggregated neighborhood embedding information based at least in part on a respective relevant neighborhood; and

combining, for one or more nodes of the plurality of nodes, the corresponding embedding and the corresponding aggregated neighborhood embedding information to generate a corresponding aggregated embedding vector.

3 . The computer-implemented method of claim 1 , wherein the target embedding is determined by the trained neural network based at least in part on a first content item of the plurality of content items that is associated with the target node and metadata associated with the first content item.

4 . The computer-implemented method of claim 1 , wherein the relevant neighborhood is a subgraph of the corpus graph that represents a set of most relevant nodes from the plurality of nodes to the target node.

5 . The computer-implemented method of claim 1 , wherein the aggregated embedding vector for the target node is generated without processing one or more of the plurality of nodes.

6 . A computer-implemented method, comprising:

determining, for a target node from a plurality of nodes associated with a corpus graph, a target node embedding, wherein the nodes of the plurality of nodes are associated with a respective content item and a respective embedding vector that is representative of the respective content item and is generated by a deep neural network;

determining, for the target node, a plurality of neighbor nodes that form a relevant neighborhood of the target node, the determining comprising:

performing a plurality of random walks, beginning from the target node, to determine a neighborhood of the target node within the corpus graph, wherein the neighborhood of the target node includes a plurality of neighbor nodes visited during a random walk of the plurality of random walks;

selecting a relevant neighborhood of the target node from the neighborhood of the target node based on a count of visits to respective neighbor nodes during the plurality of random walks;

determining, based at least in part on the plurality of neighbor nodes, aggregated neighborhood embedding information, the determining comprising:

weighting one or more neighbor nodes of the relevant neighbor nodes based on the count of visits to respective neighbor nodes, and

selecting one or more embedding values for the aggregated neighborhood embedding information from embeddings for the relevant neighbor nodes, wherein the likelihood of selecting an embedding from a given relevant neighbor node is based on the respective weights of the relevant neighbor nodes;

combining the target node embedding and aggregated neighborhood information to generate an aggregated embedding vector for the target node;

in response to a query corresponding to the target node, evaluating the aggregated embedding vector to identify a content item corresponding to a neighbor node using the aggregated neighborhood information; and

providing the content item to a user device.

7 . The computer-implemented method of claim 6 , wherein determining the plurality of neighbor nodes that form the relevant neighborhood of the target node includes:

performing a random walk starting from the target node to the plurality of neighbor nodes.

8 . The computer-implemented method of claim 7 , wherein performing the random walk includes determining a respective number of visits to one or more of the plurality of neighbor nodes.

9 . The computer-implemented method of claim 8 , further comprising:

determining, based on the respective number of visits, a respective importance value for one or more neighbor node of the plurality of neighbor nodes; and

aggregating, based at least in part on the respective importance values, respective aggregated neighbor node embedding vectors associated with the plurality of neighbor nodes to generate the aggregated neighborhood embedding information.

10 . The computer-implemented method of claim 9 , wherein one or more of the aggregated neighbor node embedding vectors are determined based at least in part on a corresponding relevant neighborhood.

11 . The computer-implemented method of claim 9 , wherein aggregating the respective aggregated neighbor node embedding vectors associated with the plurality of neighbor nodes to generate the aggregated neighborhood embedding information includes normalizing the respective number of visits to one or more of the plurality of neighbor nodes.

12 . The computer-implemented method of claim 8 , wherein performing the random walk includes randomly selecting an option from a plurality of options to determine whether to reset the random walk to the target node.

13 . The computer-implemented method of claim 12 , further comprising: determining a ratio of the plurality of options corresponding to a number of the plurality of options that cause resetting of the random walk to the target node.

14 . The computer-implemented method of claim 8 , wherein the random walk is performed a predetermined number of iterations.

15 . The computer-implemented method of claim 6 , wherein the computer-implemented method is performed recursively.

16 . A computing system, comprising:

one or more processors; and

a memory storing program instructions that, when executed by the one or more processors, cause the one or more processors to at least:

determine a target node from a plurality of nodes associated with a corpus graph, wherein the nodes of the plurality of nodes are associated with a respective content item;

determine, for the target node, a plurality of relevant neighbor nodes of the target node comprising:

performing a plurality of random walks, beginning from the target node, to determine the plurality of relevant neighbor nodes associated with the target node, wherein performing the plurality of random walks includes performing a plurality of random traversals to a plurality of neighbor nodes and incrementing a count associated with each of the plurality of random traversals to the plurality of neighbor nodes;

determine the plurality of relevant neighbor nodes from the plurality of neighbor nodes based on the counts;

determine, based on the plurality of relevant neighbor nodes, aggregated neighborhood information, the determining comprising:

weighting one or more neighbor nodes of the relevant neighbor nodes based on a count of visits to respective neighbor nodes during the plurality of random walks, and

selecting one or more embedding values for the aggregated neighborhood information from embeddings for the relevant neighbor nodes, wherein the likelihood of selecting an embedding from a given relevant neighbor node is based on the respective weights of the relevant neighbor nodes; and

generate, based at least in part on the aggregated neighborhood information and a target embedding associated with the target node, an aggregated embedding for the target node;

in response to a query corresponding to the target node, evaluating the aggregated embedding to identify a content item corresponding to a neighbor node using the aggregated neighborhood information; and

providing the content item to a user device.

17 . The computing system of claim 16 , wherein:

the program instruction that, when executed by the one or more processors, further cause the one or more processors to at least determine an importance value for one or more neighbor nodes of the plurality of relevant neighbor nodes based at least in part on the counts; and

the target embedding associated with the target node is generated based at least in part on the importance values.

18 . The computing system of claim 16 , wherein the program instruction that, when executed by the one or more processors, further cause the one or more processors to at least:

determine an aggregated embedding vector for one or more neighbor nodes of the plurality of relevant neighbor nodes;

aggregate the aggregated embedding vector for the one or more neighbor nodes of the plurality of relevant neighbor nodes to generate aggregated neighborhood embedding information associated with the plurality of relevant neighbor nodes; and

combine the aggregated neighborhood embedding information with a target node embedding associated with the target node to generate the aggregated embedding for the target node.

19 . The computing system of claim 16 , wherein:

the one or more processors includes at least one central processing unit (CPU) and at least one graphical processing unit (GPU); and

the computing system further comprises:

a coordination component configured to allocate tasks between the at least one CPU and the at least one GPU.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2024
From: LESKOVEC, JURIJ; EKSOMBATCHAI, CHANTAT; CHEN, KAIFENG; HE, RUINING; YING, REX
To: PINTEREST, INC.
Reel/Frame 066218/0338 →
Continuity (4)
Continuation 17577187 · Jan 17, 2022
Continuation 16273939 · Feb 12, 2019
Provisional Application 62642527 · Mar 13, 2018
Related Publication 20240152754A1 · May 9, 2024
References Cited (89)
US 9177225B1 · Cordova-Diba et al. · 2015 [cited by applicant]
US 9419854B1 · Wang et al. · 2016 [cited by applicant]
US 9558265B1 · Tacchi et al. · 2017 [cited by applicant]
US 9710544B1 · Smith et al. · 2017 [cited by applicant]
US 10592732B1 · Sather et al. · 2020 [cited by applicant]
US 10671672B1 · Eksombatchai et al. · 2020 [cited by applicant]
US 10805316B2 · Aditham et al. · 2020 [cited by applicant]
US 10860924B2 · Burger · 2020 [cited by applicant]
US 11232152B2 · Leskovec et al. · 2022 [cited by applicant]
US 20030014735A1 · Achlioptas et al. · 2003 [cited by applicant]
US 20040208562A1 · Ufongene · 2004 [cited by applicant]
US 20060122998A1 · Bar-Yossef et al. · 2006 [cited by applicant]
US 20060184464A1 · Tseng et al. · 2006 [cited by applicant]
US 20080275861A1 · Baluja et al. · 2008 [cited by applicant]
US 20100228731A1 · Gollapudi · 2010 [cited by examiner]
US 20100241647A1 · Ntoulas et al. · 2010 [cited by applicant]
US 20100262576A1 · Stockwell et al. · 2010 [cited by applicant]
US 20110145261A1 · Jamjoom et al. · 2011 [cited by applicant]
US 20110191374A1 · Bengio et al. · 2011 [cited by applicant]
US 20110264649A1 · Hsiao et al. · 2011 [cited by applicant]
US 20120330864A1 · Chakrabarti et al. · 2012 [cited by applicant]
US 20130275429A1 · York et al. · 2013 [cited by applicant]
US 20140324864A1 · Choe et al. · 2014 [cited by applicant]
US 20140354649A1 · Aksu et al. · 2014 [cited by applicant]
US 20150146603A1 · Wu et al. · 2015 [cited by applicant]
US 20160070817A1 · Aggarwal · 2016 [cited by applicant]
US 20160248794A1 · Cam · 2016 [cited by examiner]
US 20170032580A1 · Hemani et al. · 2017 [cited by applicant]
US 20170046520A1 · Ohrimenko et al. · 2017 [cited by applicant]
US 20170255621A1 · Kenthapadi · 2017 [cited by examiner]
US 20170278135A1 · Majumdar et al. · 2017 [cited by applicant]
US 20170357896A1 · Tsatsin et al. · 2017 [cited by applicant]
US 20170364450A1 · Struttmann · 2017 [cited by applicant]
US 20180103052A1 · Choudhury et al. · 2018 [cited by applicant]
US 20180247224A1 · Garcia Duran · 2018 [cited by examiner]
US 20180336457A1 · Pal et al. · 2018 [cited by applicant]
US 20180336472A1 · Ravi · 2018 [cited by applicant]
US 20180341720A1 · Bhatia · 2018 [cited by examiner]
US 20180349501A1 · Ramanath et al. · 2018 [cited by applicant]
US 20180373701A1 · McAteer et al. · 2018 [cited by applicant]
US 20190005400A1 · Liu et al. · 2019 [cited by applicant]
US 20190026697A1 · Burton et al. · 2019 [cited by applicant]
US 20190057303A1 · Burger · 2019 [cited by applicant]
US 20190080204A1 · Schroff et al. · 2019 [cited by applicant]
US 20190089720A1 · Aditham et al. · 2019 [cited by applicant]
US 20190095806A1 · Martinez Canedo · 2019 [cited by examiner]
US 20190114362A1 · Subbian · 2019 [cited by examiner]
US 20190114373A1 · Subbian et al. · 2019 [cited by applicant]
US 20190130264A1 · Rossi et al. · 2019 [cited by applicant]
US 20190130305A1 · Sivertson · 2019 [cited by applicant]
JP 2013519138A · 2013 [cited by applicant]
WO 2017168125A1 · 2017 [cited by applicant]
Abadi, M. et al., “Tensorflow: Large-Scale Machine Learning on Heterogeneous Distributed Systems,” arXiv preprint arXiv:1603.04467, Mar. 16, 2016, 19 pages. [cited by applicant]
Andoni, A. and Indyk, P., “Near-Optimal Hashing Algorithms for Approximate Nearest Neighbor in High Dimensions,” FOCS, 2006, 6 pages. [cited by applicant]
Bagci, H., et al., “Context-Aware Friend Recommendation for Location Based Social Networks using Random Walk”, 2016, WWW'16 Companion, pp. 531-536. (Year: 2016). [cited by applicant]
Bansal et al., “Ask the GRU: Multi-Task Learning for Deep Text Recommendations,” RecSys. ACM, Sep. 9, 2016, 8 pages. [cited by applicant]
Bengio et al., “Curriculum Learning,” ICML, 2009, 8 pages. [cited by applicant]
Bojchevski, A., et al., “Deep Gaussian Embedding of Attributed Graphs: Unsupervised Inductive Learning via Ranking”, Jul. 12, 2017, arXiv:1707.03815v1, pp. 1-10. (Year: 2017). [cited by applicant]
Broder et al., “Efficient Query Evaluation Using a Two-Level Retrieval Process,” CIKM, 2003, 9 pages. [cited by applicant]
Bronstein et al., “Geometric Deep Learning: Going Beyond Euclidean Data,” IEEE Signal Processing Magazine, vol. 34(4), 2017, 25 pages. [cited by applicant]
Bruna et al., “Spectral Networks and Deep Locally Connected Networks on Graphs,” ICLR, 2014, 14 pages. [cited by applicant]
Cao, S., “Graph-Based Learning from Large Image Collections”, Cornell University (Year: 2015), 112 pages. [cited by applicant]
Chandra Bhagavatula et al., “Content Based Citation Recommendation”, ARXIV.org, Cornell University Library, 201 Olin Library, Cornell University, Ithaca, NY 14853, Feb. 22, 2018. [cited by applicant]
Chen et al., “FastGCN: Fast Learning with Graph Convolutional Networks via Importance Sampling,” In ICLR, 2018, 15 pages. [cited by applicant]
Covington et al., “Deep Neural Networks for YouTube Recommendations,” RecSys. ACM, 2016, 8 pages. [cited by applicant]
Dai et al., “Discriminative Embeddings of Latent Variable Models for Structured Data,” ICML, 2016, 10 pages. [cited by applicant]
Defferrard et al., “Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering,” NIPS, 2016, 9 pages. [cited by applicant]
Duvenaud et al., “Convolutional Networks on Graphs for Learning Molecular Fingerprints,” NIPS, 2015, 9 pages. [cited by applicant]
Eksombatchai et al., “Pixie: A System for Recommending 3+ Billion Items to 200+ Million Users in Real-Time,” arXiv preprint arXiv:1711.07601, 2017, 10 pages. [cited by applicant]
Gori et al., “A New Model for Learning in Graph Domains,” IEEE International Joint Conference on Neural Networks, 2005, 6 pages. [cited by applicant]
Goyal et al, “Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour,” arXiv preprint arXiv:1706.02677, 2017, 12 pages. [cited by applicant]
Grover, A. and Leskovec, J., “node2vec: Scalable Feature Learning for Networks,” KDD, 2016, 10 pages. [cited by applicant]
Hamilton et al., “Inductive Representation Learning on Large Graphs”, Jun. 7, 2017, arXiv:1706.02216v1, pp. 1-18. (Year: 2017). [cited by applicant]
Hamilton et al., “Inductive Representation Learning on Large Graphs,” NIPS, 2017, 19 pages. [cited by applicant]
Hamilton et al., “Representation Learning on Graphs: Methods and Applications,” IEEE Data Engineering Bulletin, 2017, 23 pages. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2019/021932, dated Jun. 14, 2019. [cited by applicant]
Kearnes et al., “Molecular Graph Convolutions: Moving Beyond Fingerprints,” CAMD, vol. 30, Issue 8, 2016, 25 pages. [cited by applicant]
Kipf, T.N. and Welling, M., “Semi-Supervised Classification with Graph Convolutional Networks,” ICLR, 2017, 14 pages. [cited by applicant]
Li et al., “Gated Graph Sequence Neural Networks,” ICLR, 2015, 19 pages. [cited by applicant]
Mikolov et al., “Distributed Representations of Words and Phrases and Their Compositionality,” NIPS, 2013, 9 pages. [cited by applicant]
Monti et al., “Geometric Matrix Completion with Recurrent Multi-Graph Neural Networks,” NIPS, 2017, 9 pages. [cited by applicant]
Omar M. Parkhi et al., “Deep Face Recognition”, Proceedings of the British Machine Vision Conference, Jan. 1, 2015, pp. 41.1-41.12. [cited by applicant]
OpenMP Architecture Review Board, OpenMP Application Programming Interface Version 4.5., 2015, 368 pages. [cited by applicant]
Perozzi et al., “DeepWalk: Online Learning of Social Representations,” KDD, 2014, 10 pages. [cited by applicant]
Scarselli et al., “The Graph Neural Network Model,” IEEE Transactions on Neural Networks vol. 20, No. 1, 2009, pp. 61-80 . . . . [cited by applicant]
Simonyan, K. and Zisserman, A., “Very Deep Convolutional Networks for Large-Scale Image Recognition,” arXiv preprint arXiv:1409.1556, 2014, 13 pages. [cited by applicant]
Van den Berg et al., “Graph Convolutional Matrix Completion,” arXiv preprint arXiv:1706.02263, 2017, 9 pages. [cited by applicant]
Van den Oord, A., Dieleman, S., and Schrauwen, B., “Deep Content-Based Music Recommendation,” NIPS, 2013, 9 pages. [cited by applicant]
Xiaofan Zhang et al., “Embedded Label Structures for Fine-Grained Feature Representation”, 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), IEEE, Jun. 27, 2016, pp. 1114-1123, [retrieved Dec. 9, 2… [cited by applicant]