User:Montanabernese/sandbox

Source: Wikipedia, the free encyclopedia.


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

  1. ^ "Graph Representation Learning and Graph Classification" (PDF). uoregon.edu. Retrieved 2018-06-14.
  2. ^ "Keynote Slides of Jure Leskovec from 4th IEEE BigData Conference, held in Boston in December 2017" (PDF). stanford.edu. Retrieved 2018-06-14.
  3. ^ 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)
  4. ^ Gasparini (2017). "Community Analysis Using Graph Representation Learning On Social Networks". {{cite journal}}: Cite journal requires |journal= (help)
  5. ^ Belkin and Niyogi (2003). "Laplacian eigenmaps for dimensionality reduction and data representation". Neural Computation. 15 (6): 1373–1396. doi:10.1162/089976603321780317. S2CID 14879317.
  6. ^ a b Maaten and Hinton (2008). "Visualizing data using t-SNE". Journal of Machine Learning Research. 9.
  7. ^ 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)
  8. ^ Grover and Leskovec (2016). "DeepWalk:Online Learning of Social Representations". ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD).
  9. ^ Wang; et al. (2016). "Structural deep network embedding". {{cite journal}}: Cite journal requires |journal= (help); Explicit use of et al. in: |author= (help)
  10. ^ 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)
  11. ^ 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)
  12. ^ 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)
  13. ^ 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)
  14. ^ 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)
  15. ^ 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)
  16. ^ 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)
  17. ^ Dooms, S. et al. "Movietweetings: a movie rating dataset collected from twitter, 2013. Available from https://github.com/sidooms/MovieTweeting."
  18. ^ "How Apache Hadoop 3 Adds Value Over Apache Hadoop 2". hortonworks.com. Retrieved 2018-06-11.
  19. ^ "PyTorch – About". pytorch.org. Retrieved 2018-06-11.
  20. ^ "An Introduction to PyTorch – A Simple yet Powerful Deep Learning Library". analyticsvidhya.com. Retrieved 2018-06-11.