PyGCL / PyGCL

PyGCL: A PyTorch Library for Graph Contrastive Learning

Home Page:https://PyGCL.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于Negative Sampling Strategies

Heihaierr opened this issue · comments

您好,我正在尝试给GRACE.py加上一些负采样策略,直接使用GCL.losses.DebiasedInfoNCE或GCL.losses.HardnessInfoNCE都会报错,检查后发现是图中80行dim的问题,我将80行修改为81行能够跑通,但是测试f1特别低,为0.2,0.3的样子,请问我修改的是否有问题?以为对于其他负采样,ring,hardmixing的使用有没有更详细的说明文档?
image

ring和hardmixing接上都正常了,但是GCL.losses.DebiasedInfoNCE或GCL.losses.HardnessInfoNCE还是很低,很奇怪

readme里提到的model.ring和hardmixing不在了啊,是迁到loss文件里了吗?

ring和hardmixing接上都正常了,但是GCL.losses.DebiasedInfoNCE或GCL.losses.HardnessInfoNCE还是很低,很奇怪

readme里提到的model.ring和hardmixing不在了啊,是迁到loss文件里了吗?

ring和hardmixing接上都正常了,但是GCL.losses.DebiasedInfoNCE或GCL.losses.HardnessInfoNCE还是很低,很奇怪

是的,在loss里面,你这边GCL.losses.DebiasedInfoNCE或GCL.losses.HardnessInfoNCE跑正常吗?

@Heihaierr
ringloss为啥输入有Y啊 那不就引入标签信息了?还有那个hardmixing里有个projection, 那其输入的z1,z2还需要projection吗?
Debiased 和hardness的我还没跑,在看原论文的伪代码和github,能调正常的话再跟你说一下哈

ringloss的y没有参与采样,相关的代码注释掉就可以了;hardmixing就把encoder的project传进去就行

ringloss的y没有参与采样,相关的代码注释掉就可以了;hardmixing就把encoder的project传进去就行

image
是这样吗,这个ring的实现好像没有退火,ring的原论文中是说退火可能会涨几个点=.=

hardmixing我也是那样搞的~

我发现debiasedloss那个num_neg有问题,应该是在dim=1上求和?

ringloss的y没有参与采样,相关的代码注释掉就可以了;hardmixing就把encoder的project传进去就行

image 是这样吗,这个ring的实现好像没有退火,ring的原论文中是说退火可能会涨几个点=.=

hardmixing我也是那样搞的~

我发现debiasedloss那个num_neg有问题,应该是在dim=1上求和?
debiasedloss 你按我81行改能跑通,我看了好多遍也觉得没问题

@Heihaierr 我纯GRACE在wikics能跑出79.3+(标准划分20次平均),请问这正常吗。。。

@Heihaierr 我纯GRACE在wikics能跑出79.3+(标准划分20次平均),请问这正常吗。。。

我跑出来只有72,,你加上dcl后呢?

@Heihaierr 我纯GRACE在wikics能跑出79.3+(标准划分20次平均),请问这正常吗。。。

我跑出来只有72,,你加上dcl后呢?

为什么差这么多。。加dcl略有提升,你把那个num_neg按我说的改了试试。

@Heihaierr GCA和proGCL在wikics你跑过吗,为啥都只有32+,看半天看不出哪有问题。。

你能不能把你修改后的dcl部分代码截图发我一下,我把num_neg改了还是很低。我GCA和proGCL在wikics上跑都挺正常的 @sunisfighting

@Heihaierr
留个邮箱我们私聊吧哈哈

感谢关注。如果方便的话可以把修改好的配置文件发出来,我们merge到repository里。