Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
mnqu committed Mar 4, 2018
0 parents commit dc1601a
Show file tree
Hide file tree
Showing 8 changed files with 942 additions and 0 deletions.
46 changes: 46 additions & 0 deletions README.md
@@ -0,0 +1,46 @@
# MVE
This is an implementation of the MVE model for multi-view network embedding [(An Attention-based Collaboration Framework for Multi-View Network Representation Learning)](https://arxiv.org/abs/1709.06636).

## Install
Our codes rely on two external packages, which are the Eigen package and the GSL package.

#### Eigen
The [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page) package is used for matrix operations. To run our codes, users need to download the Eigen package and modify the package path in the makefile.

#### GSL
The [GSL](https://www.gnu.org/software/gsl/) package is used to generate random numbers. After installing the package, users also need to modify the package path in the makefile.

## Compile
After installing the two packages and modifying the package paths, users may go to the "MVE" folder and use the makefile to compile the codes.

## Data
The MVE model receives a multi-view network and a set of labeled nodes as input.

Each view of the multi-view network is described by a single file. The files of different views should have the same prefix, and the indices should start from 0 to K-1, where K is the number of views. For example, users may describe a multi-view network with three files, "view_0", "view_1", "view_2", where the prefix is "view_" and the number of views is 3. Each view file contains several lines, with each line representing an edge in that view. The format of each line is "<u> <v> <w>", meaning that there is an edge from node <u> to node <v> and the weight is <w>.

The labeled nodes are listed in another file. This file contains several lines, where each line gives the labels of a node. The format of a line is "<node name> <label name 1> <label name 2>...", which starts with the name of the node, followed by the names of different labels the node has.

A toy dataset is provided in the "data/toy/" folder, and we will upload the dataset used in the paper later.

## Running
To run the MVE model, users may directly use the example script (run.sh) we provide.

## Contact:
If you have any questions about the codes and data, please feel free to contact us.
```
Meng Qu, qumn123@gmail.com
```

## Citation
```
@inproceedings{qu2018curriculum,
title={Curriculum Learning for Heterogeneous Star Network Embedding via Deep Reinforcement Learning},
author={Qu, Meng and Tang, Jian and Han, Jiawei},
booktitle={Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining},
pages={468--476},
year={2018},
organization={ACM}
}
}
```

2 changes: 2 additions & 0 deletions data/toy/label.txt
@@ -0,0 +1,2 @@
a label_0 label_1
b label_2
4 changes: 4 additions & 0 deletions data/toy/view_0
@@ -0,0 +1,4 @@
a b 3
a c 5
a d 4
b c 2
4 changes: 4 additions & 0 deletions data/toy/view_1
@@ -0,0 +1,4 @@
b c 3
b d 5
b a 4
c a 2
4 changes: 4 additions & 0 deletions data/toy/view_2
@@ -0,0 +1,4 @@
d a 3
d b 5
d c 4
d d 2
8 changes: 8 additions & 0 deletions mve/makefile
@@ -0,0 +1,8 @@
CC = g++
CFLAGS = -lm -pthread -Ofast -march=native -Wall -funroll-loops -Wno-unused-result -lgsl -lm -lgslcblas
INCLUDES = -I<gsl path> -I<eigen path>
LIBS = -L<gsl path>

mve : model.cpp
$(CC) $(CFLAGS) model.cpp -o mve $(INCLUDES) $(LIBS) -lgsl -lm -lgslcblas

0 comments on commit dc1601a

Please sign in to comment.