abegehr / ComE_BGMM

Implementation of the ComE algorithm using a Bayesian Gaussian mixture model and variational inference (BGMM+VI) for community embedding instead of a non-Bayesian Gaussian mixture model and expectation maximization (GMM+EM). The advantage of BGMM+VI over GMM+EM is that the hyper-parameter number of communities K acts as an upper bound and unused communities are discarded using the trade-off hyper-parameter weight concentration prior.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ComE_BGMM

Master Thesis Community Embeddings with Bayesian Gaussian Mixture Model and Variational Inference by Anton Begehr, 2020, HSE Moscow and University Passau, Germany.

Based on implementation of the paper Learning Community Embedding with Community Detection and Node Embedding on Graphs by Cavallari et.al., 2017, Singapor. The original ComE from andompesta/ComE was altered by taking a Bayesian-approach to community embedding.

Animation

Animation of ComE BGMM+VI on Karate Club dataset:

Animation of ComE BGMM+VI on Karate Club dataset

Conda Environment BICE

The core algorithm is written in Cython, so a miniconda environment file is provided to run our code.

To create the BICE conda environment from environment.yml, run conda env create -f environment.yml and activate with conda activate BICE.

More details on conda environments here: https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-from-an-environment-yml-file

GMM => BGMM

Using sklearn.mixture.BayesianGaussianMixture for community embeddings.

About

Implementation of the ComE algorithm using a Bayesian Gaussian mixture model and variational inference (BGMM+VI) for community embedding instead of a non-Bayesian Gaussian mixture model and expectation maximization (GMM+EM). The advantage of BGMM+VI over GMM+EM is that the hyper-parameter number of communities K acts as an upper bound and unused communities are discarded using the trade-off hyper-parameter weight concentration prior.


Languages

Language:Roff 99.2%Language:Jupyter Notebook 0.7%Language:Python 0.1%Language:Cython 0.0%Language:C 0.0%