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

About Contrastive Learning Loss #21

Open
zwb29 opened this issue Dec 7, 2021 · 3 comments
Open

About Contrastive Learning Loss #21

zwb29 opened this issue Dec 7, 2021 · 3 comments

Comments

@zwb29
Copy link

zwb29 commented Dec 7, 2021

Hi, thank you for your awesome work, the experiment results of the code are quite consistent with the paper.
I have some question about the role of contrastive learning in SGL, I notice that in the training process, the loss of contrastive learning(in the function of calc_ssl_loss_v2) is not keep falling.
Actually, after 7 or 8 epochs (yelp2018 for example), when the bpr loss falling rapidly and indicators like Recall increase rapidly, the SSL loss is a little bit increasing, I'm quite confused about it.
Introducing Contrastive learning as a auxiliary task indeed accelerate convergence, but that doesn't show up in the loss. I would like to know what do you think of this, thank you!

大佬你好,谢谢您的工作,这份代码能够完美复现文章中的结果,非常佩服。
我有一点关于对比学习在SGL中的作用的问题。与其他几个图对比学习预训练任务(比如图分类)不同,SGL中对比学习损失作为一个辅助损失,在训练过程中不是持续下降的。
比如在yelp2018数据集中,在Recall等指标上升最快的阶段,对比损失反而是有一点小增加的。作为一个辅助损失,对比学习确实加快了收敛,也提升了模型的效果,但是这一点并没有体现在对比损失的减小上,这让我有点困惑,请问您怎么看待这个问题?
谢谢!

@wujcan
Copy link
Owner

wujcan commented Dec 8, 2021

这是个好问题,我们目前也没有明确的答案。可能的原因是:
(1)整个训练过程对比loss的scale变化不大,而且对比loss的正负样本比例是1:N,导致负样本的选取会极大的影响loss的值,出现小幅上升是有可能的;
(2)推荐task所采用的BPR跟representation learning的对比loss优化的目标是有区别的,联合优化相当于对两者做了trade off,如果单纯的优化对比loss应该不会出现loss scales上升的情况吧;
(3)而且有意思的一点是,从paper中的figure 5可以看到在BPR下降前recall就已经开始有明显的提升了,说明BPR其实跟推荐的metric还是存在一定的gap的。这一阶段的提升应该主要有对比学习带来的。
这个问题我觉得还是值得深究的。

@zwb29
Copy link
Author

zwb29 commented Dec 8, 2021

感谢回复!
我在您这份代码的基础上做过一些实验。
(1)在只使用contrastive loss和正则项,也就是文章中pretrain的情况下,contrastive loss会很快收敛,和graph classification等任务中的contrastive learning loss曲线类似,最初快速下降最终稳定在一个水平。
(2)在只使用BPR loss和正则项,也就是LightGCN的情况下,BPR loss会以很均匀的速度下降,recall等指标也是随着BPR loss的降低而慢慢提高。

而且有意思的一点是,从paper中的figure 5可以看到在BPR下降前recall就已经开始有明显的提升了,说明BPR其实跟推荐的metric还是存在一定的gap的。这一阶段的提升应该主要有对比学习带来的。

这一点您文章中提到了,我也注意到了。模型效果最佳的时候,BPR loss并没有充分收敛,甚至可以说BPR loss还很大的时候就已经达到了LightGCN的效果。所以我比较赞同您说的BPR跟推荐的metric是存在一定的gap的。
谢谢!

@xiqxin1
Copy link

xiqxin1 commented Mar 28, 2022

感谢大佬的分享和讨论,我最近也在做对比学习相关的工作。实验中我发现正样本对最终结果的影响非常大,如果训练时随机生成一些noise正样本,则结果会变得很糟糕。请问其中的原因可能是什么?目前我们只使用了dropout做数据增强,是否可以有其他思路做数据增强,来消除noise positive label 的影响呢?
再次感谢各位大佬的回复。

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

3 participants