https://github.com/compnet/swge

Signed Whole Graph Embeddings

https://github.com/compnet/swge

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 15 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.1%) to scientific vocabulary

Keywords

graph-classification graph-embeddings signed-graphs whole-graphs
Last synced: 5 months ago · JSON representation

Repository

Signed Whole Graph Embeddings

Basic Info
  • Host: GitHub
  • Owner: CompNet
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 3.45 MB
Statistics
  • Stars: 0
  • Watchers: 3
  • Forks: 0
  • Open Issues: 0
  • Releases: 3
Topics
graph-classification graph-embeddings signed-graphs whole-graphs
Created over 2 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

SWGE

Signed Whole-Graph Embedding methods

  • Copyright 2020-2024 Noé Cécillon et al.

SWGE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. For source availability and license information see licence.txt


If you use this source code or the associated dataset, please cite reference [CLDA'24]: bibtex @Article{Cecillon2023, author = {Cécillon, Noé and Labatut, Vincent and Dufour, Richard and Arınık, Nejat}, title = {Whole-Graph Representation Learning For the Classification of Signed Networks}, journal = {IEEE Access}, year = {2024}, volume = {12}, pages = {151303-151316}, doi = {10.1109/ACCESS.2024.3472474}, }

Description

This set of scripts primarily implements the two signed whole graph embedding methods presented in our paper [CLDA'24]: SG2V (Signed Graph2vec) and WSGCN (Whole Signed Graph Convolutional Networks). It can be used to: * Learn the representations of whole signed graphs. * Perform classification tasks based on the embeddings extracted with our method.

In addition, these scripts reproduce the experiments described in our paper [CLDA'24]. In particular, they compare the performance of our method with three alternatives from the literature: * SiNE [WTAC'17]: this method handles signed graphs, but only to represent individual vertices, and not the whole graph. * Graph2vec [NCVC'17]: this method handle whole-graphs, but only for unsigned graphs. * SGCN [DMT'18]: as for SiNE, this method handles signed graphs, but only to represent individual vertices, and not the whole graph.

Data

The scripts are meant to be applied to a corpus of three datasets constituted of signed networks annotated for graph classification. Because of GitHub's file size limit, we include only a few graphs from each dataset in the data folder. The full datasets can be downloaded from Zenodo. Place the downloaded graphs directly into the corresponding folders in data.

Organization

This repository is composed of the following elements: * Folder data: input signed networks. * Folder out: files produced by the scripts. * Folder SG2V: implementation of our signed version of the Graph2vec method. * Folder SGCN: implementation of the standard Signed Graph Convolutional Network method, taken from repository SGCN. * Folder SiNE: implementation of the standard Signed Network Embeddings method. * Folder WSGCN: implementation of our whole-graph variant of the SGCN method. * File requirements.txt: list of Python packages used by the scripts. * The main scripts are: * main.py: learns the graph representations. * evaluation.py: Performs the classification task.

Installation

  • Install Python (tested with Python v3.6.9)
  • Install dependencies using the following command: pip install -r requirements.txt
  • Retrieve the data from Zenodo and place them into the data folder (as nexplained in section Data).

How to use

In order to learn Graph2Vec-based representations, run the file SG2V.py. You can configure the model_type between the 3 versions proposed in our paper: g2v, sg2vn or sg2vsb. To learn representations SGCN-based representations, run the file run_sgcn.py. These scripts will export the learned representations into the out folder.

After running the previous scripts, you can perform the classification by running evaluation.py. You can configure the path_emb and path_label variables to change the dataset used. The main.py file can be used to run all the experiment with a single script.

References

  • [CLDA'24] N. Cécillon, V. Labatut, R. Dufour, N. Arınık: Whole-Graph Representation Learning For the Classification of Signed Networks, IEEE Access 12:151303-151316, 2024. DOI: 10.1109/ACCESS.2024.3472474 ⟨hal-04712854⟩
  • [NCVC'17] A. Narayanan, M. Chandramohan, R. Venkatesan, L. Chen, Y. Liu, and S. Jaiswal: graph2vec: Learning distributed representations of graphs, International Workshop on Mining and Learning with Graphs, 2017. URL: [http://www.mlgworkshop.org/2017/paper/MLG2017paper21.pdf]
  • [DMT'18] T. Derr, Y. Ma, and J. Tang: Signed graph convolutional network, 18th International Conference on Data Mining, 2018, p.929-934. DOI: 10.1109/ICDM.2018.00113.
  • [WTAC'17] S. Wang, J. Tang, C. Aggarwal, Y. Chang, and H. Liu. Signed network embedding in social media. 17th SIAM International Conference on Data Mining, 2017, p.327-335. DOI: 10.1137/1.9781611974973.37.

Owner

  • Name: Complex Networks
  • Login: CompNet
  • Kind: organization
  • Location: Avignon, France

GitHub Events

Total
  • Release event: 1
  • Watch event: 1
  • Push event: 4
  • Create event: 1
Last Year
  • Release event: 1
  • Watch event: 1
  • Push event: 4
  • Create event: 1

Dependencies

requirements.txt pypi
  • Pillow ==8.4.0
  • cached-property ==1.5.2
  • certifi ==2023.5.7
  • charset-normalizer ==2.0.12
  • cycler ==0.11.0
  • dataclasses ==0.8
  • decorator ==5.1.1
  • future ==0.18.3
  • googledrivedownloader ==0.4
  • h5py ==3.1.0
  • idna ==3.4
  • isodate ==0.6.1
  • kiwisolver ==1.3.1
  • matplotlib ==3.3.4
  • networkx ==2.4
  • numpy ==1.19.5
  • pandas ==0.23.4
  • pkg_resources ==0.0.0
  • plyfile ==0.8
  • pyparsing ==3.0.9
  • python-dateutil ==2.8.2
  • pytz ==2023.3
  • rdflib ==5.0.0
  • requests ==2.27.1
  • scikit-learn ==0.20.0
  • scipy ==1.1.0
  • six ==1.16.0
  • texttable ==1.5.0
  • torch ==1.10.1
  • torch-cluster ==1.5.9
  • torch-geometric ==1.3.2
  • torch-scatter ==2.0.9
  • torch-sparse ==0.6.12
  • torchvision ==0.11.2
  • tqdm ==4.28.1
  • typing_extensions ==4.1.1
  • urllib3 ==1.26.15