Source: Innovations in Graph Representation Learning from Google Research

Posted by Alessandro Epasto, Senior Research Scientist and Bryan Perozzi, Senior Research Scientist, Graph Mining Team

Relational data representing relationships between entities is ubiquitous on the Web (e.g., online social networks) and in the physical world (e.g., in protein interaction networks). Such data can be represented as a *graph *with* nodes* (e.g., users, proteins), and *edges* connecting them (e.g., friendship relations, protein interactions). Given the widespread prevalence of graphs, graph analysis plays a fundamental role in machine learning, with applications in clustering, link prediction, privacy, and others. To apply machine learning methods to graphs (e.g., predicting new friendships, or discovering unknown protein interactions) one needs to *learn* a representation of the graph that is amenable to be used in ML algorithms*. *

However, graphs are inherently combinatorial structures made of discrete parts like nodes and edges, while many common ML methods, like neural networks, favor continuous structures, in particular vector representations.* *Vector representations are particularly important in neural networks, as they can be directly used as input layers. To get around the difficulties in using discrete graph representations in ML,* *graph embedding methods learn a continuous vector space for the graph, assigning each node (and/or edge) in the graph to a specific position in a vector space. A popular approach in this area is that of random-walk-based representation learning, as introduced in DeepWalk.

Left: The well-known Karate graph representing a social network. Right: A continuous space embedding of the nodes in the graph using DeepWalk. |

Here we present the results of two recent papers on graph embedding: “Is a Single Embedding Enough? Learning Node Representations that Capture Multiple Social Contexts” presented at WWW’19 and “Watch Your Step: Learning Node Embeddings via Graph Attention” at NeurIPS’18. The first paper introduces a novel technique to learn multiple embeddings per node, enabling a better characterization of networks with overlapping communities. The second addresses the fundamental problem of hyperparameter tuning in graph embeddings, allowing one to easily deploy graph embeddings methods with less effort. We are also happy to announce that we have released the code for both papers in the Google Research github repository for graph embeddings.

**Learning Node Representations that Capture Multiple Social Contexts**

In virtually all cases, the crucial assumption of standard graph embedding methods is that a *single* embedding has to be learned for each node. Thus, the embedding method can be said to seek to identify the *single* role or position that characterizes each node in the geometry of the graph. Recent work observed, however, that nodes in real networks belong to multiple *overlapping* communities and play *multiple *roles—think about your social network where you participate in both your family and in your work community. This observation motivates the following research question: is it possible to develop methods where nodes are embedded in multiple vectors, representing their participation in overlapping communities?

In our WWW’19 paper, we developed *Splitter*, an unsupervised embedding method that allows the nodes in a graph to have multiple embeddings to better encode their participation in multiple communities. Our method is based on recent innovations in overlapping clustering based on ego-network analysis, using the persona graph concept, in particular. This method takes a graph *G*, and creates a new graph *P* (called the *persona graph*), where each node in *G* is represented by a series of replicas called the *persona* nodes. Each persona of a node represents an instantiation of the node in a local community to which it belongs. For each node U in the graph, we analyze the ego-network of the node (i.e., the graph connecting the node to its neighbors, in this example A, B, C, D) to discover local communities to which the node belongs. For instance, in the figure below, node U belongs to two communities: Cluster 1 (with the friends A and B, say U’s family members) and Cluster 2 (with C and D, say U’s colleagues).

Ego-net of node U |

Then, we use this information to “split” node U into its two *personas* U1 (the family persona) and U2 (the work persona). This disentangles the two communities, so that they no longer overlap.

The ego-splitting method separating the U nodes in 2 personas. |

This technique has been used to improve the state-of-the-art results in graph embedding methods, showing up to 90% reduction in link prediction (i.e., predicting which link will form in the future) error on a variety of graphs. The key reason for this improvement is the ability of the method to disambiguate highly overlapping communities found in social networks and other real-world graphs. We further validate this result with an in-depth analysis of co-authorship graphs where authors belong to overlapping research communities (e.g., machine learning and data mining).

Top Left: A typical graphs with highly overlapping communities. Top Right: A traditional embedding of the graph on the left using node2vec. Bottom Left: A persona graph of the graph above. Bottom Right: The Splitter embedding of the persona graph. Notice how the persona graph clearly disentangles the overlapping communities of the original graph and Splitter outputs well-separated embeddings. |

**Automatic hyper-parameter tuning via graph attention.**

Graph embedding methods have shown outstanding performance on various ML-based applications, such as link prediction and node classification, but they have a number of hyper-parameters that must be manually set. For example, are nearby nodes more important to capture when learning embeddings than nodes that are further away? Even though experts may be able to fine tune these hyper-parameters, one must do so independently for each graph. To obviate such manual work, in our second paper, we proposed a method to learn the optimal hyper-parameters automatically*.*

Specifically, many graph embedding methods, like DeepWalk, employ random walks to explore the context around a given node (i.e. the direct neighbors, the neighbors of the neighbors, etc). Such random walks can have many hyper-parameters that allow tuning of the local exploration of the graph, thus regulating the attention given by the embeddings to nearby nodes. Different graphs may present different optimal attention patterns and hence different optimal hyperparameters (see the picture below, where we show two different attention distributions). Watch Your Step formulates a model for the performance of the embedding methods based on the above mentioned hyper-parameters. Then we optimize the hyper-parameters to maximize the performance predicted by the model, using standard backpropagation. We found that the values learned by backpropagation agree with the optimal hyper-parameters obtained by grid search.

This work falls under the growing family of AutoML, where we want to alleviate the burden of optimizing the hyperparameters—a common problem in practical machine learning. Many AutoML methods use *neural architecture search*. This paper instead shows a variant, where we use the mathematical connection between the hyperparameters in the embeddings and graph-theoretic matrix formulations. The “Auto” portion corresponds to learning the graph hyperparameters by backpropagation.

We believe that our contributions will further advance the state of the research in graph embedding in various directions. Our method for learning multiple node embeddings draws a connection between the rich and well-studied field of overlapping community detection, and the more recent one of graph embedding which we believe may result in fruitful future research. An open problem in this area is the use of multiple-embedding methods for classification. Furthermore, our contribution on learning hyperparameters will foster graph embedding adoption by reducing the need for expensive manual tuning. We hope the release of these papers and code will help the research community pursue these directions.

**Acknowledgements***We thank Sami Abu-el-Haija who contributed to this work and is now a Ph.D. student at USC.*

除非特别声明，此文章内容采用知识共享署名 3.0许可，代码示例采用Apache 2.0许可。更多细节请查看我们的服务条款。

Tags:
Develop

- IoT × AI : 家電製品の作動状況を機械学習でリアルタイム予測
- Chrome 78 Beta: a new Houdini API, native file system access and more
- New! Android Kotlin codelab courses are here
- From Code to Community: Why developers call DevFest home
- How to deploy a Windows container on Google Compute Engine
- Cloud Build named a Leader for Continuous Integration in the Forrester Wave
- Building a document understanding pipeline with Google Cloud
- Container-native load balancing on GKE now generally available
- Moving a publishing workflow to BigQuery for new data insights
- DACH businesses embrace Google Cloud for digital transformation

- 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion (23,883)
- 谷歌招聘软件工程师 (22,078)
- Google 推出的 31 套在线课程 (21,917)
- Seti UI 主题: 让你编辑器焕然一新 (13,621)
- Android Studio 2.0 稳定版 (9,273)
- Android N 最初预览版：开发者 API 和工具 (8,004)
- 像 Sublime Text 一样使用 Chrome DevTools (6,222)
- 用 Google Cloud 打造你的私有免费 Git 仓库 (5,953)
- Google I/O 2016: Android 演讲视频汇总 (5,573)
- 面向普通开发者的机器学习应用方案 (5,449)
- 生还是死？Android 进程优先级详解 (5,163)
- 面向 Web 开发者的 Sublime Text 插件 (4,290)
- 适配 Android N 多窗口特性的 5 个要诀 (4,270)
- 参加 Google I/O Extended，观看 I/O 直播，线下聚会！ (3,595)

© 2019 中国谷歌开发者社区 - ChinaGDG