ComplEx

Introduction

[paper]

Title: Complex Embeddings for Simple Link Prediction

Authors: Théo Trouillon, Johannes Welbl, Sebastian Riedel, Éric Gaussier, Guillaume Bouchard

Abstract: ComplEx extends DistMult to complex-valued embeddings, enabling it to model asymmetric relations. By using complex numbers, the model can distinguish between (h, r, t) and (t, r, h), which DistMult cannot. The scoring function uses the real part of the Hermitian dot product.

Running with hopwise

Model Hyper-Parameters:

  • embedding_size (int) : The embedding size of entities and relations. Defaults to 64.

A Running Example:

Write the following code to a python file, such as run.py

from hopwise.quick_start import run_hopwise

run_hopwise(model='ComplEx', dataset='ml-100k')

And then:

python run.py

Tuning Hyper Parameters

If you want to use HyperTuning to tune hyper parameters of this model, you can copy the following settings and name it as hyper.test.

learning_rate choice [0.01,0.005,0.001,0.0005,0.0001]
embedding_size choice [32,64,128,256]

Note that we just provide these hyper parameter ranges for reference only, and we can not guarantee that they are the optimal range of this model.

Then, with the source code of hopwise (you can download it from GitHub), you can run the run_hyper.py to tuning:

hopwise tune --config_files=[config_files_path] --params_file=hyper.test

For more details about Parameter Tuning, refer to Parameter Tuning.