All Projects → GentleZhu → HEER

GentleZhu / HEER

Licence: other
Easing Embedding Learning by Comprehensive Transcription of Heterogeneous Information Networks(KDD'18)

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to HEER

RHINE
Source code for AAAI 2019 paper "Relation Structure-Aware Heterogeneous Information Network Embedding"
Stars: ✭ 49 (-18.33%)
Mutual labels:  network-embedding, heterogeneous-information-networks
Friends-Recommender-In-Social-Network
Friends Recommendation and Link Prediction in Social Netowork
Stars: ✭ 33 (-45%)
Mutual labels:  network-embedding
ethereum-privacy
Profiling and Deanonymizing Ethereum Users
Stars: ✭ 37 (-38.33%)
Mutual labels:  network-embedding
FEATHER
The reference implementation of FEATHER from the CIKM '20 paper "Characteristic Functions on Graphs: Birds of a Feather, from Statistical Descriptors to Parametric Models".
Stars: ✭ 34 (-43.33%)
Mutual labels:  network-embedding
TriDNR
Tri-Party Deep Network Representation, IJCAI-16
Stars: ✭ 72 (+20%)
Mutual labels:  network-embedding
resolutions-2019
A list of data mining and machine learning papers that I implemented in 2019.
Stars: ✭ 19 (-68.33%)
Mutual labels:  network-embedding
REGAL
Representation learning-based graph alignment based on implicit matrix factorization and structural embeddings
Stars: ✭ 78 (+30%)
Mutual labels:  network-embedding
TransNet
Source code and datasets of IJCAI2017 paper "TransNet: Translation-Based Network Representation Learning for Social Relation Extraction".
Stars: ✭ 103 (+71.67%)
Mutual labels:  network-embedding
OpenANE
OpenANE: the first Open source framework specialized in Attributed Network Embedding. The related paper was accepted by Neurocomputing. https://doi.org/10.1016/j.neucom.2020.05.080
Stars: ✭ 39 (-35%)
Mutual labels:  network-embedding
MixGCF
MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems, KDD2021
Stars: ✭ 73 (+21.67%)
Mutual labels:  network-embedding
GNE
This repository contains the tensorflow implementation of "GNE: A deep learning framework for gene network inference by aggregating biological information"
Stars: ✭ 27 (-55%)
Mutual labels:  network-embedding
Euler
A distributed graph deep learning framework.
Stars: ✭ 2,701 (+4401.67%)
Mutual labels:  network-embedding
Nrlpapers
Must-read papers on network representation learning (NRL) / network embedding (NE)
Stars: ✭ 2,503 (+4071.67%)
Mutual labels:  network-embedding
Awesome Network Embedding
A curated list of network embedding techniques.
Stars: ✭ 2,379 (+3865%)
Mutual labels:  network-embedding
Openne
An Open-Source Package for Network Embedding (NE)
Stars: ✭ 1,527 (+2445%)
Mutual labels:  network-embedding
Awesome Graph Classification
A collection of important graph embedding, classification and representation learning papers with implementations.
Stars: ✭ 4,309 (+7081.67%)
Mutual labels:  network-embedding
NetEmb-Datasets
A collection of real-world networks/graphs for Network Embedding
Stars: ✭ 18 (-70%)
Mutual labels:  network-embedding
TADW
Network Representation Learning with Rich Text Information (IJCAI 2015)
Stars: ✭ 42 (-30%)
Mutual labels:  network-embedding
CIKM18-LCVA
Code for CIKM'18 paper, Linked Causal Variational Autoencoder for Inferring Paired Spillover Effects.
Stars: ✭ 13 (-78.33%)
Mutual labels:  network-embedding
FSCNMF
An implementation of "Fusing Structure and Content via Non-negative Matrix Factorization for Embedding Information Networks".
Stars: ✭ 16 (-73.33%)
Mutual labels:  network-embedding

HEER: Easing Embedding Learning by Comprehensive Transcription of Heterogeneous Information Networks

Source code and data for KDD'18 paper Easing Embedding Learning by Comprehensive Transcription of Heterogeneous Information Networks.

KDD promotional video Click Here!

Dependencies

Data

We use two publicly available real-world HIN datasets: DBLP and YAGO. We provide processed data links to reproduce our results.

  • DBLP (Tang et al., 2008): DBLP is a bibliographical network in the computer science domain. There are five types of nodes in the network: author, paper, key term, venue, and year. The edge types include authorship (aut.), term usage (term), publishing venue(ven.), and publishing year (year) of a paper, and the reference relationship from a paper to another (ref.). [download] [pretrained LINE embeddings]
  • YAGO (Suchanek et al., 2007): YAGO is a large-scale knowledge graph derived from Wikipedia, WordNet, and GeoNames. There are seven types of nodes in the network: person, location, organization, piece of work, prize, position, and event. A total of 24 edge types exist in the network, with five being directed and others being undirected. [download] [pretrained LINE embeddings]

Preparation

You will need to download zipped data and pretrained embedding via above links.

$ make

Please place unzipped pretrained embeddings under folder intermediate_data/ and network files under input_data/.

Train HEER

The hyperparameters for HEER are network name and epoch number. Regarding our proposed edge reconstruction task, the $network is formatted as "$data-name"_ko_"$ko-rate", e.g. yago_ko_0.4. You can find both DBLP and YAGO datasets with knock out rate from 0.1 to 0.9 in above link.

Example Usage

$ ./src/run.sh $network $epoch

Default Run & Parameters

Run HEER training on the YAGO dataset for 61 epochs, knock out rate is 0.4. We set the default model dump timer as 6, so you will have 10 models.

$ ./src/run.sh yago_ko_0.4 61

Evaluation

Similar with training, here we show how to evaluate HEER on the YAGO dataset, knock out rate is 0.4. Micro-MRR, Macro-MRR and MRR for each specific edge type can be found in evaluation result files under output/.

$ ./src/eval.sh yago_ko_0.4 61

Play with Your Own Data

We also provide tools to generate train and test data from any HINs. You can find detailed instructions under preprocessing/. In short, you need to prepare a formatted edge list and a data-specific config file. Then pre-train LINE embedding via pretrain/. Take yago.config for example,

[[0, 1], [0, 2], [0, 2], [0, 1], [0, 3], [0, 4], [4, 4], [0, 4], [0, 4], [0, 1], [0, 4], [0, 0], [0, 0], [0, 1], [0, 5], [0, 0], [2, 4], [0, 2], [0, 0], [6, 4], [0, 1], [0, 4], [0, 0], [4, 4]]
['PE', 'WO', 'AS', 'PR', 'AD', 'PO', 'EV']
['<created>:u', '<isAffiliatedTo>:u', '<playsFor>:u', '<actedIn>:u', '<hasWonPrize>:u', '<diedIn>:u', '<isPartOf>:d', '<isCitizenOf>:u', '<wasBornIn>:u', '<wroteMusicFor>:u', '<livesIn>:u', '<hasChild>:d', '<isMarriedTo>:u', '<directed>:u', '<holdsPosition>:u', '<influences>:d', '<isLocatedIn>:u', '<graduatedFrom>:u', '<isConnectedTo>:u', '<happenedIn>:u', '<edited>:u', '<isPoliticianOf>:u', '<isAdvisedBy>:d', '<hasCapital>:d']
[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1]

The first line describes left and right node types of a specific edge types, in which you need to index them in the node type list. The second line is the node type list. The third and fourth line describes edge types and directions. For example, <created>:u means created is an un-directed relation. Moreover, the first 0 in the fourth line indicates it is un-directed as well.

You can create your own train and evaluation file using command below, please refer preprocessing/ for more details:

$ python ./preprocessing/ko_hin.py --input-hin-file your-data --data-set-name preferred-network-name --path-output output-path --ko-rate 0.x
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].