Skip to content
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

Where does the proj(x, c) function in "hyperboloid" come from? #34

Open
hujilin1229 opened this issue Oct 13, 2021 · 1 comment
Open

Comments

@hujilin1229
Copy link

Hi,

Thanks for sharing the code for your paper. I have read your paper and code, but the implementation of proj(x, c) function in "hyperboloid" confuses me. As far as I understanding from your paper of Eq. 5, the point is already being projected to the Hyperboloid space when you do the "expmap0" operation. But why do you need to do twice "proj" operations after the operation of Eq. 5? And Where does this "proj" operation come from? I can find a similar equation in your appendix, which is Eq. 16, but this is from Euclidean space to Hyperboloid space, right?

Kind Regards,
Jilin

@ruilialice
Copy link

ruilialice commented Nov 21, 2021

Hi, you could read the paper here. Formula (6) in this paper says that if x has (n+1) dimension, and x is in hyperboloid manifold, then x has the constraint of (6).
The "proj" operation in hyperboloid only make sure that x satisfies the above constraint. Eq. 16 in the appendix of Hyperbolic Graph Convolutional Neural Networks actually refers to the same thing. Eq. 16 means that x is a vector that has (d+1) dimensions, and we can project x on the d dimensional hyperboloid manifold through Eq. 16. It doesn't mean that x is in Euclidean space with d+1 dimensions, and we use Eq. 16 to project x from the Euclidean space to Hyperboloid space. The R^{d+1} only means the dimension is (d+1), it doesn't mean that x is in Euclidean space. The "R" here is a little bit misleading.

By the way, although "proj" operation is called twice, I feel that the result is the same. Comparing with the result that proj is called only once, the result is the same if proj is called twice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants