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

从这个结果来看,好像并没有论文里那么好 #3

Open
yinchunhui-ahu opened this issue Sep 25, 2018 · 22 comments
Open

从这个结果来看,好像并没有论文里那么好 #3

yinchunhui-ahu opened this issue Sep 25, 2018 · 22 comments

Comments

@yinchunhui-ahu
Copy link

在我的电脑上跑15次迭代后HR和NDCG就=1,实验的结果也没有原文中那么好,想请问下原因

@yinchunhui-ahu
Copy link
Author

yinchunhui-ahu commented Oct 6, 2018 via email

@Coder-Yu
Copy link

Coder-Yu commented Oct 6, 2018

不开源的论文,就不用较真了,我现在看得开了。本来就是一个很简单的方法,想试试看还行的话拿来做baseline,结果调了很久都不行。放弃了

@Coder-Yu
Copy link

Coder-Yu commented Oct 6, 2018

发现了一点问题,论文里面的测试策略不怎么可靠,他是默认留一验证的时候正样本可以排到前100,而不去排序所有项目。明明用的数据集不大,非要argue time-consuming to rank every item. 真是尴尬。而且这篇文章竟然把1分的项目和5分的项目都作为训练集和测试集,通常做top-n的时候,5分制的评分数据集只会使用4分及其以上的评分。可以说这篇文章漏洞很多,实验设置错误,模型并无多大创新。IJCAI的IR track真是一年不如一年。

@yinchunhui-ahu
Copy link
Author

yinchunhui-ahu commented Oct 7, 2018 via email

@chenjindong
Copy link

chenjindong commented Oct 26, 2018

  1. 请问论文中的输入embedding矩阵是trainable的,还是固定的?
  2. 我觉得论文中的normalized cross entropy loss不合理,完全没法解释这个loss。 以movieLen数据集为例,Y=1或0的时候没什么问题,但Y=2,3,4的时候无法解释着个loss,感觉不合理。

@RuidongZ
Copy link
Owner

1.Embedding 我个人觉得应该是固定的 这样能够解释 但是实际中可能会让它Trainable,效果相对会好
2. 我记得他的Y会根据个人评分的最大值进行normalized 可能是针对用户的评分区间不一样做的个性化的一个归一化 最终的结果都是缩放到0-1

@chenjindong
Copy link

  1. 我记得他的Y会根据个人评分的最大值进行normalized 可能是针对用户的评分区间不一样做的个性化的一个归一化 最终的结果都是缩放到0-1
    这个我理解。传统二分类的交叉熵ylogy'+(1-y)log(1-y'),一般正样本时,后一项为0;负样本时,前一项为0,但是这篇paper中当Y=2,3,4(对应的normalized值为2/5,3/5,4/5),前后两项都不为0,这个有点怪,你觉得呢

@yinchunhui-ahu
Copy link
Author

WWW的NeuCF是预测0-1二分类问题,所以选择二值交叉熵作为Loss,而DMF则是预测评分,也就是回归问题,为了使用原Loss而进行的归一化,我也觉得不合理

@RuidongZ
Copy link
Owner

WWW的NeuCF是预测0-1二分类问题,所以选择二值交叉熵作为Loss,而DMF则是预测评分,也就是回归问题,为了使用原Loss而进行的归一化,我也觉得不合理

首先这个不是回归预测分数的问题吧 评价标准是HR 和 NDCG,是对一个电影的偏好 0-1的二值问题

@hongxin001
Copy link

在我加入正则化后消失了

你好,我也遇到了Nan的问题,你是怎么加的正则呢?

@yinchunhui-ahu
Copy link
Author

yinchunhui-ahu commented Dec 29, 2018 via email

@hongxin001
Copy link

@ChunhuiYin 这个项目代码里有参数正则的代码,不过注释掉了,是有什么问题?

        regLoss = tf.add_n([tf.nn.l2_loss(v) for v in tf.trainable_variables()])
        self.loss = loss + self.reg * regLoss

@hongxin001
Copy link

@ChunhuiYin 另外,加入正则以后你最好的效果可以到多少呀?

@yinchunhui-ahu
Copy link
Author

@w821881341 注释你得问问项目作者,效果并没有好太多,只是不会出现Nan。

@yinyajun
Copy link

感谢回复。 1可能是我的过拟合了,在我加入正则化后消失了。​ 这篇DMF是在[He etc ]Neural collaborative filtering.WWW, 2017基础上改进得到的,个人认为存在很多问题 ,比如对于损失函数的选择。好像深度学习的性能与初始化有很大关系​,我模型中参数和论文中一样,效果还不如NeuCF,可能是预训练的原因吧,我还没有看过许多pair-wise的文章,我之后会往这个方向看点文章,到时候再交流一下 ------------------ 原始邮件 ------------------​ =1???怎么可能??我自己按论文实现的结果也很不好,调了很久参数也不行,跟浅层方法如BPR比都差的很远。老实说我有点怀疑论文结果,发了邮件给作者要代码也不回。难道作者有什么特殊的优化技巧???就两层网络,实在也看不出还能如何优化,dropout各类active function, batch size, step size, optimizer都试过了,差的很远。其实我觉得针对排序的算法如果不是pair-wise这种,效果比较难提高。WRMF虽然是point-wise的,但效果挺好,可惜计算慢。

你好,请问你做BPR的时候movielen1M的ndcg@10或者是hit@10能达到什么水平?我自己做的话,在mv-1m上,BPR的ndcg@10达到0.41左右,但是收敛很慢。而W-ALS(spark mllib)能有0.42左右。pair-wise还不如point-wise,有什么特殊的技巧吗?BPR收敛太慢了。

@yinchunhui-ahu
Copy link
Author

BPR我没有跑过。它是基准实验,既然有工作DMF(IJCAI)、NeuCF(WWW)都证明比BPR好,所以我认为没必要重复实验,甚至可以直接拿其数据来用。如果想实现它,代码可以参考NeuCF作者He et al.的仓库:https://github.com/hexiangnan/theano-BPR

@Coder-Yu
Copy link

Coder-Yu commented Apr 2, 2019

@ChunhuiYin 我复现出来的BPR比NeuCF好(可能是我的NeuCF优化有一定问题),DMF是真的渣。Xiangnan He的Adversarial personalized ranking里面提出的APR是真的好

@Saptaparnineogi
Copy link

@ChunhuiYin Did you get response from the author regarding their code? Did you manage to get the official code of the paper?

@yinchunhui-ahu
Copy link
Author

yinchunhui-ahu commented Jun 10, 2019 via email

@Saptaparnineogi
Copy link

@ChunhuiYin So did you use this code or you came up with your own solution to reproduce the result of the paper?

@KylinA1
Copy link

KylinA1 commented Dec 25, 2019

发现了一点问题,论文里面的测试策略不怎么可靠,他是默认留一验证的时候正样本可以排到前100,而不去排序所有项目。明明用的数据集不大,非要argue time-consuming to rank every item. 真是尴尬。而且这篇文章竟然把1分的项目和5分的项目都作为训练集和测试集,通常做top-n的时候,5分制的评分数据集只会使用4分及其以上的评分。可以说这篇文章漏洞很多,实验设置错误,模型并无多大创新。IJCAI的IR track真是一年不如一年。

通常做top-n的时候,5分制的评分数据集只会使用4分及其以上的评分。-- 这种实验设定其实并不合理,因为实验目的并不是预测用户的下一个五分,而是用户的下一个点击,有可能点击的是一分的。

@998898
Copy link

998898 commented Apr 14, 2022

在我的电脑上跑15次迭代后HR和NDCG就=1,实验的结果也没有原文中那么好,想请问下原因

请问一下作者给的代码是单层吗,怎么调参变2层和3层的呢那个depth of layers in network

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

9 participants