Skip to content
Knowledge Embedding Framework Powered by XiaoHan.
C++
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
MultiChannelEmbedding
.gitignore
.tfignore
Embedding_old.sln
KGE.zip
README.md

README.md

Embedding

This Project is contributed by Xiao Han in Tsinghua University.

Datasets

  • KGE.zip

Supported Papers

Citation

Conventionally, if this project helps you, please cite our paper, corresponddingly.

  • Han Xiao, Minlie Huang, Xiaoyan Zhu. From One Point to A Manifold: Orbit Models for Knowledge Graph Embedding. The 25th International Joint Conference on Artificial Intelligence (IJCAI'16).
  • Han Xiao, Minlie Huang, Xiaoyan Zhu. TransG: A Generative Mixture Model for Knowledge Graph Embedding. The 54th Annual Meeting of the Association for Computational Linguistics (ACL'2016).
  • Han Xiao, Minlie Huang, Lian Meng, Xiaoyan Zhu. SSP: Semantic Space Projection for Knowledge Graph Embedding with Text Descriptions. The Thirty-First AAAI Conference on Artificial Intelligence (AAAI'17).

BibTex

@article{Xiao2015From,
  title={From One Point to A Manifold: Orbit Models for Knowledge Graph Embedding},
  author={Xiao, Han and Huang, Minlie and Hao, Yu and Zhu, Xiaoyan},
  journal={Computer Science},
  year={2015},
}

@article{Xiao2016TransG,
  title={TransG : A Generative Mixture Model for Knowledge Graph Embedding},
  author={Xiao, Han and Huang, Minlie and Hao, Yu and Zhu, Xiaoyan},
  journal={Computer Science},
  year={2016},
}

@article{Xiao2016SSP,
  title={SSP: Semantic Space Projection for Knowledge Graph Embedding with Text Descriptions},
  author={Xiao, Han and Huang, Minlie and Zhu, Xiaoyan},
  year={2016},
}

Dependency

  • Armadillo
    • Armadillo is a high quality linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use
    • I bet you could master it, just by scanning the examples.
    • Download URL: http://arma.sourceforge.net/download.html
    • What all you should do is to copy the headers into your environment.
  • Boost
    • C++ Standard Extensive Library.
    • Download URL:http://www.boost.org/users/download/
    • What all you should do is to copy the headers into your environment. Certainly, you could compile the code just as explained in the website.
  • MKL
    • Not Necessary, but I strongly suggest you could take advantage of your devices.

Basic Configuration

  • Windows

    • This project is naturally built on Visual Studio 2013 with Intel C++ Compiler 2016. If we share the same development perference, I guess you could start your work, right now.
    • When you decide to compile it with MSC, there is a little trouble, because you shoud adjust your configuration.
  • Linux / MAC

    • I also apply the Intel C++ Compiler, which could be substituted by GCC, theoretically.
    • icc -std=c++11 -O3 -xHost -qopenmp -m32 Embedding.cpp

Start

  • To justify your data source, please modify the MultiChannelEmbedding\DetailedConfig.hpp.

  • To explore the correspondding method, just fill the template in MultiChannelEmbedding\Embedding.cpp with hyper-parameters.

    • model = new MFactorE(FB15K, LinkPredictionTail, report_path, 10, 0.01, 0.1, 0.01, 10);
    • model->run(10000);
    • model->test();
    • delete model;
  • Notably, our code needs a little more turns to converge, we suggest 10,000 rounds for each experiment. This is a critical trick for repeating our experiments.

Alias

  • OrbitE = ManifoldE
  • MFactorE = KSR

Code Structures

  • Import.hpp imports the headers of project.
  • DataModel.hpp specifies the data structure of knowledge graph.
  • Model.hpp specifies the training and testing process of knowledge embedding model.
  • DetailedConfig.hpp specifies the detailed configuration of project, such as file path.
  • Embedding.cpp is the main source file.
  • GeometricModel.hpp implements TransE, TransH and TransR.
  • OrbitModel.hpp implements ManifoldE.
  • SemanticModel.hpp implements SSP.
  • LatentModel.hpp implements KSR.
You can’t perform that action at this time.