Open yinchunhui-ahu opened 6 years ago
感谢回复。 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的,但效果挺好,可惜计算慢。
不开源的论文,就不用较真了,我现在看得开了。本来就是一个很简单的方法,想试试看还行的话拿来做baseline,结果调了很久都不行。放弃了
发现了一点问题,论文里面的测试策略不怎么可靠,他是默认留一验证的时候正样本可以排到前100,而不去排序所有项目。明明用的数据集不大,非要argue time-consuming to rank every item. 真是尴尬。而且这篇文章竟然把1分的项目和5分的项目都作为训练集和测试集,通常做top-n的时候,5分制的评分数据集只会使用4分及其以上的评分。可以说这篇文章漏洞很多,实验设置错误,模型并无多大创新。IJCAI的IR track真是一年不如一年。
是的,我也注意到了,有的文章说,y^输出是具体评分,一般损失函数会设计成MSE/MAE,但他仍用交叉熵,我估计实验结果在全局上不好他才这样说的,这篇文章创新点就在损失函数和输入Embedding。 我现在想把它迁移到别的推荐领域,LOSS用MSE来预测评分,我看看效果怎么样
1.Embedding 我个人觉得应该是固定的 这样能够解释 但是实际中可能会让它Trainable,效果相对会好
- 我记得他的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,这个有点怪,你觉得呢
WWW的NeuCF是预测0-1二分类问题,所以选择二值交叉熵作为Loss,而DMF则是预测评分,也就是回归问题,为了使用原Loss而进行的归一化,我也觉得不合理
WWW的NeuCF是预测0-1二分类问题,所以选择二值交叉熵作为Loss,而DMF则是预测评分,也就是回归问题,为了使用原Loss而进行的归一化,我也觉得不合理
首先这个不是回归预测分数的问题吧 评价标准是HR 和 NDCG,是对一个电影的偏好 0-1的二值问题
在我加入正则化后消失了
你好,我也遇到了Nan的问题,你是怎么加的正则呢?
对网络的W权重加L2正则化。具体来说使用Tensorflow的tf.contrib.layers.l2_regularizer 和tf.add_to_collection。
@ChunhuiYin 这个项目代码里有参数正则的代码,不过注释掉了,是有什么问题?
regLoss = tf.add_n([tf.nn.l2_loss(v) for v in tf.trainable_variables()])
self.loss = loss + self.reg * regLoss
@ChunhuiYin 另外,加入正则以后你最好的效果可以到多少呀?
@w821881341 注释你得问问项目作者,效果并没有好太多,只是不会出现Nan。
感谢回复。 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收敛太慢了。
BPR我没有跑过。它是基准实验,既然有工作DMF(IJCAI)、NeuCF(WWW)都证明比BPR好,所以我认为没必要重复实验,甚至可以直接拿其数据来用。如果想实现它,代码可以参考NeuCF作者He et al.的仓库:https://github.com/hexiangnan/theano-BPR
@ChunhuiYin 我复现出来的BPR比NeuCF好(可能是我的NeuCF优化有一定问题),DMF是真的渣。Xiangnan He的Adversarial personalized ranking里面提出的APR是真的好
@ChunhuiYin Did you get response from the author regarding their code? Did you manage to get the official code of the paper?
Unfortunately, we asked the author's group to publicly release the source code, and the author refused to publicly release it on the grounds of server downtime.------------------ 原始邮件 ------------------ 发件人: "Saptaparnineogi"notifications@github.com 发送时间: 2019年6月10日(星期一) 下午5:30 收件人: "RuidongZ/Deep_Matrix_Factorization_Models"Deep_Matrix_Factorization_Models@noreply.github.com; 抄送: "Chun-hui Yin"yinchunhui.ahu@gmail.com;"Mention"mention@noreply.github.com; 主题: Re: [RuidongZ/Deep_Matrix_Factorization_Models] 从这个结果来看,好像并没有论文里那么好 (#3)
@ChunhuiYin Did you get response from the author regarding their code? Did you manage to get the official code of the paper?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
@ChunhuiYin So did you use this code or you came up with your own solution to reproduce the result of the paper?
发现了一点问题,论文里面的测试策略不怎么可靠,他是默认留一验证的时候正样本可以排到前100,而不去排序所有项目。明明用的数据集不大,非要argue time-consuming to rank every item. 真是尴尬。而且这篇文章竟然把1分的项目和5分的项目都作为训练集和测试集,通常做top-n的时候,5分制的评分数据集只会使用4分及其以上的评分。可以说这篇文章漏洞很多,实验设置错误,模型并无多大创新。IJCAI的IR track真是一年不如一年。
通常做top-n的时候,5分制的评分数据集只会使用4分及其以上的评分。-- 这种实验设定其实并不合理,因为实验目的并不是预测用户的下一个五分,而是用户的下一个点击,有可能点击的是一分的。
在我的电脑上跑15次迭代后HR和NDCG就=1,实验的结果也没有原文中那么好,想请问下原因
请问一下作者给的代码是单层吗,怎么调参变2层和3层的呢那个depth of layers in network
在我的电脑上跑15次迭代后HR和NDCG就=1,实验的结果也没有原文中那么好,想请问下原因