TransE[NeurIPS 2013]
Basic Idea
- Entities and relations are embedded in a continuous low dimensional vector space.
- Judge whether triplet (entities, relationships, entities) can be considered as a fact by similarity based on distance.
- L1 or L2 normal form is used as the similarity calculation method, and the formula is as follows:
$$
f(\textbf{h},\textbf{r},\textbf{t}) = | \textbf{h}+\textbf{r}-\textbf{t} |_{1/2}
$$
- The negative samples are constructed by destroying the fact triples to train the model.
$$
S' = \left { (h',r,t) \right |h'\in E } \cup \left { (h,r,t') \right |t'\in E }
$$
- The loss calculation method is as follows:
$$
Loss = \sum_{(\textbf{h},\textbf{r},\textbf{t}) \in S}\sum_{(\textbf{h}',\textbf{r},\textbf{t}') \in S'}[\gamma - f(\textbf{h},\textbf{r},\textbf{t}) + f(\textbf{h}',\textbf{r},\textbf{t}')]_{+}
$$
- Finally, use BP to update the model.
How to run
-
Clone the Openhgnn-DGL
# For link prediction task
python main.py -m TransE -t link_prediction -d FB15k -g 0 --use_best_config
If you do not have gpu, set -gpu -1.
Supported dataset
Performance
Task: Link Prediction
Evaluation metric: mrr
Dataset |
Mean Rank |
Hits@10 |
FB15k(raw) |
188 |
49.8 |
FB15k(filt.) |
68 |
66.9 |
WN18(raw) |
319 |
50.3 |
WN18(filt.) |
303 |
57.8 |
Hyper-parameter specific to the model
You can modify the parameters[TransE] in openhgnn/config.ini
More
Contirbutor
Xiaoke Yang
If you have any questions
Submit an issue or email to x.k.yang@qq.com.