HazyResearch / hgcn

Hyperbolic Graph Convolutional Networks in PyTorch.
602 stars 109 forks source link

hyperboloid.py is missing. #4

Closed ukaznil closed 4 years ago

ukaznil commented 4 years ago

Hi. I appreciate this wonderful repository.

When I clone this and tried to operate, I found the "hyperboloid.py" is missing in HEAD, since it has been removed at the previous commit.

Could you please add the latest hyperboloid manifold into this repo?

nm-narasimha commented 4 years ago

Any update on hyperboloid.py please? We are very eager to use this library and test ...

vascobailao commented 4 years ago

The problem is with the forward method of class HyperbolicGraphConvolution(nn.Module). For some reason that I'm trying to figure out, when I add the bias term, the resulting tensor of h, is full of nan values.

python train.py --task lp --dataset cora --model HyperGCN --lr 0.01 --dim 16 --num-layers 2 --act relu --bias 1 --dropout 0.5 --weight-decay 0.001 --manifold Hyperboloid --log-freq 5

Using the config above, I'm able to optimize the network until early stopping is triggered. Otherwise, if fails on the first epoch.

vascobailao commented 4 years ago

The function I'm referring to is:

def forward(self, input):
        x, adj = input
        h = self.linear.forward(x)
        if self.bias:
           h = self.bias_add.forward(h)
        h = self.agg.forward(h, adj)
        h = self.hyp_act.forward(h)
        output = h, adj
        return output

If you comment the following code:

        if self.bias:
           h = self.bias_add.forward(h)

works, but then you don't have bias term, what results in worse training performance.

vascobailao commented 4 years ago

@ines-chami

ukaznil commented 4 years ago

@vascobailao Hi, nice to meet you. What you pointed out seems different from this issue, which is mentioning just about the absence of hyperboloid.py in this repository.

I suggest that you create a new issue, how about?

vascobailao commented 4 years ago

I think its very related. The fact that the hyperboloid.py file is not available is because its not working.

ukaznil commented 4 years ago

Thanks for your reply, I got it! Sorry for my immature comment.

vascobailao commented 4 years ago

I found some problems with specific operations in the transformation from the hyperbolic manifold to the tangent plane. I still have to find some time to go over the differences between the two manifolds.

ines-chami commented 4 years ago

We will be posting code for the hyperboloid manifold shortly. You should be able to obtain similar results on the benchmarks with the PoincareBall model.

vascobailao commented 4 years ago

@ines-chami can you confirm the problem is in the mobius addition and multiplication? Any news on when the code will be available?

ines-chami commented 4 years ago

Added.