User:Montanabernese/sandbox
Graph Representation Learning
Graph Representation Learning is an extended version of Representation Learning for the graph type data structures. It is also known as Network Embedding. The main goal of Graph Representation Learning is to learn latent vectorial representations of nodes (vertices) that reflect the graph's structure and attributes. [1]
Graph structures are mainly used for Machine Learning tasks including node classification, link prediction, community detection and network similarity. In traditional Machine Learning approach, there is need to build specific features that describe the graph structure, such as node degree, PageRank score, degree of neighbors, PageRank of neighbors. However, the feature selection is one of the most difficult and challenging part of a Machine learning task. As a solution to this problem, Graph Representation Learning enables the learning part automatically, without requiring feature extraction and selection. [2]
Modeling Approaches
Graph representation learning methods can be classified into three categories: Generative models that learn the underlying connectivity distribution in the graph, Discriminative models that predict the probability of edge existence between a pair of vertices, and finally the joint usage of Generative and Discriminative models. [3]
Generative Models
Generative graph representation learning models assume that, for each vertex , there exists an underlying true connectivity distribution true which implies 's connectivity preference (or relevance distribution) over all other vertices in the graph. The edges in the graph can thus be viewed as observed samples generated by these conditional distributions, and these generative models learn vertex embeddings by maximizing the likelihood of edges in the graph.[3]
Discriminative Models
Different from generative models, Discriminative graph representation learning models do not treat edges as generated from an underlying conditional distribution, but aim to learn a classifier for predicting the existence of edges directly. Typically, discriminative models consider two vertices and , jointly as features, and predict the probability of an edge existing between the two vertices, i.e., , based on the training data in the graph.[3]
Joint Models
Although generative and discriminative models are generally two disjoint classes of graph representation learning methods, there exist many studies that are jointly used.
Algorithmic Approaches
Most of the Graph Representation algorithms are unsupervised and they are mainly divided into two main categories: matrix factorization and random walk based. [4]
Matrix Factorization
Matrix factorization is inspired by classic techniques for dimensionality reduction, which optimize loss function of the form
where is a matrix containing proximity measures and is the matrix of node embeddings. The goal of Matrix factorization based methods is to learn embeddings for each node such that the inner product between the learned embedding vectors approximates some deterministic measure of graph proximity. While Singular Value Decomposition (SVD) is applicable to solve linear cases, Laplacian Eigenmaps are used for the non-linear structures.[5]
Random Walk
On the other hand, random walk tries to define embeddings such that nodes have similar vectors if they co-occur on short random walks over the graph and this results in a flexible, stochastic measure of graph proximity. The basic idea is to compute the probability of visiting a node on a length- random walk starting at , with usually . This leads to minimize the cross-entropy loss
Example Algorithms
Example Research Areas
- Link prediction[12]
- Node classification[13]
- Recommendation[14]
- Visualization[6]
- Knowledge graph representation[15]
- Clustering[16]
- Text embedding[9]
- Social network analysis[17]
Article Improvement: List of datasets for machine learning research
Target page: https://en.wikipedia.org/wiki/List_of_datasets_for_machine_learning_research#Twitter_and_tweets
Dataset Name | Brief Description | Preprocessing | Instances | Format | Default Task | Created (updated) | Reference | Creator |
---|---|---|---|---|---|---|---|---|
MovieTweetings | Movie rating dataset based on public and well-structured tweets | None. | Text | 709K | Classification, regression | 2018 | [18] | S. Dooms |
Article Improvement: Difference between Hadoop 2 and Hadoop 3
Target page: https://en.wikipedia.org/wiki/Apache_Hadoop
There are important features provided by Hadoop 3. While there is one single namenode in Hadoop 2, Hadoop 3 enables having multiple name nodes, which prevents single point of failure.
In Hadoop 3, there are containers working in principle of Docker, which reduces time spent to application development.
One of the biggest changes is that, Hadoop 3 decreases storage overhead with erasure coding.
Also, Hadoop 3 permits usage of GPU hardware within the cluster, which is a very substantial benefit to execute Deep Learning algorithms on a Hadoop cluster.[19]
Article Improvement: PyTorch
Target page: https://en.wikipedia.org/wiki/PyTorch
PyTorch that provides two high-level features: [20]
- Tensor computation (like numpy) with strong GPU acceleration
- Deep Neural Networks built on a tape-based autodiff system
The main elements of PyTorch are [21]
- PyTorch Tensors
- Autograd module
- Optim module
- nn module
PyTorch Tensors
Tensors are nothing but multidimensional arrays. Tensors in PyTorch are similar to numpy arrays, with the addition being that Tensors can also be used on a GPU. PyTorch supports various types of Tensors.
Autograd Module
PyTorch uses a technique called automatic differentiation. A recorder records what operations have performed, and then it replays it backward to compute our gradients. This technique is especially powerful when building neural networks in order to save time on one epoch by calculating differentiation of the parameters at the forward pass itself.
Optim Module
torch.optim is a module that implements various optimization algorithms used for building neural networks. Most of the commonly used methods are already supported, so there is no need to build them from scratch
nn Module
PyTorch autograd makes it easy to define computational graphs and take gradients, but raw autograd can be a bit too low-level for defining complex neural networks. This is where the nn module can help.
Reference
- ^ "Graph Representation Learning and Graph Classification" (PDF). uoregon.edu. Retrieved 2018-06-14.
- ^ "Keynote Slides of Jure Leskovec from 4th IEEE BigData Conference, held in Boston in December 2017" (PDF). stanford.edu. Retrieved 2018-06-14.
- ^ a b c Wang; et al. (2017). "GraphGAN: Graph Representation Learning with Generative Adversarial Nets".
{{cite journal}}
: Cite journal requires|journal=
(help); Explicit use of et al. in:|author=
(help) - ^ Gasparini (2017). "Community Analysis Using Graph Representation Learning On Social Networks".
{{cite journal}}
: Cite journal requires|journal=
(help) - ^ Belkin and Niyogi (2003). "Laplacian eigenmaps for dimensionality reduction and data representation". Neural Computation. 15 (6): 1373–1396. doi:10.1162/089976603321780317. S2CID 14879317.
- ^ a b Maaten and Hinton (2008). "Visualizing data using t-SNE". Journal of Machine Learning Research. 9.
- ^ Perozzi, Bryan ; Al-Rfou, Rami ; Skiena, Steven (2014). "DeepWalk:Online Learning of Social Representations". CoRR. arXiv:1403.6652. doi:10.1145/2623330.2623732. S2CID 3051291.
{{cite journal}}
: CS1 maint: multiple names: authors list (link) - ^ Grover and Leskovec (2016). "DeepWalk:Online Learning of Social Representations". ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD).
- ^ a b Tang; et al. (2015). "Line: Large-scale information network embedding". Proceedings of the 24th International Conference on World Wide Web ACM: 1067–1077. arXiv:1503.03578. doi:10.1145/2736277.2741093. S2CID 8399404.
{{cite journal}}
: Explicit use of et al. in:|author=
(help) - ^ Wang; et al. (2016). "Structural deep network embedding".
{{cite journal}}
: Cite journal requires|journal=
(help); Explicit use of et al. in:|author=
(help) - ^ Li; et al. (2017). "Ppne: Property preserving network embedding". International Conference on Database Systems for Advanced Applications: 163–179.
{{cite journal}}
: Explicit use of et al. in:|author=
(help) - ^ Gao; et al. (2011). "Temporal link prediction by integrating content and structure information".
{{cite journal}}
: Cite journal requires|journal=
(help); Explicit use of et al. in:|author=
(help) - ^ Tang; et al. (2016). "Node classification in signed social networks".
{{cite journal}}
: Cite journal requires|journal=
(help); Explicit use of et al. in:|author=
(help) - ^ Yung; et al. (2014). "Personalized entity recommendation: A heterogeneous information network approach".
{{cite journal}}
: Cite journal requires|journal=
(help); Explicit use of et al. in:|author=
(help) - ^ Lin; et al. (2015). "Learning entity and relation embeddings for knowledge graph completion".
{{cite journal}}
: Cite journal requires|journal=
(help); Explicit use of et al. in:|author=
(help) - ^ Lian; et al. (2014). "Learning deep representations for graph clustering".
{{cite journal}}
: Cite journal requires|journal=
(help); Explicit use of et al. in:|author=
(help) - ^ Liu; et al. (2016). "Aligning users across social networks using network embedding".
{{cite journal}}
: Cite journal requires|journal=
(help); Explicit use of et al. in:|author=
(help) - ^ Dooms, S. et al. "Movietweetings: a movie rating dataset collected from twitter, 2013. Available from https://github.com/sidooms/MovieTweeting."
- ^ "How Apache Hadoop 3 Adds Value Over Apache Hadoop 2". hortonworks.com. Retrieved 2018-06-11.
- ^ "PyTorch – About". pytorch.org. Retrieved 2018-06-11.
- ^ "An Introduction to PyTorch – A Simple yet Powerful Deep Learning Library". analyticsvidhya.com. Retrieved 2018-06-11.