-
Notifications
You must be signed in to change notification settings - Fork 985
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SimplE model definition not correct? #151
Comments
the implementation reference https://github.com/Mehran-k/SimplE/blob/master/simplE_avg.py. In simpleE_avg.py h_i = t_j , t_k = h_j |
As you can see in the following line of original source code there are
|
@dschaehi was there a reason for closing? I think this issue is still present in the OpenKE implementation. In the original implementation the embedding for an entity depends on the position in the triple: |
@dfdazac: No, I closed it because there didn't seemed to be a response. I can reopen it. |
Hi all, I'm the main author of the SimplE paper. I have received emails asking me if the OpenKE implementation of SimplE is correct or not so I thought I post a public response here. I can confirm that the OpenKE implementation is indeed incorrect and there are two issues (one major, one minor) in it: For a correct pytorch implementation of SimplE, I recommend this repo: https://github.com/baharefatemi/SimplE/blob/master/SimplE.py |
Hi, as far as I know, SimplE defines for each entity two different embeddings: one for head and one for tail. So for a triple (i, j, k) you need to average h_i * r_j * t_k and h_j * r^{-1}_j * t_i. It seem that this is not reflected in your code. The model in your code seems to be symmetric, where as SimplE is not symmetric.
OpenKE/models/SimplE.py
Lines 23 to 24 in 2380e9d
The text was updated successfully, but these errors were encountered: