After training by the default args, the result isn't good
Excuse me, after training by the default arguments, I get the recall and NDCG score, but the result isn't as good as the report in the paper. Here is my result after 500 epochs:
recall@50, ndcg@50
0.0912251655629139 0.04411650302936786
recall@100, ndcg@100
0.28807947019867547 0.08591003366756622
recall@200, ndcg@200
0.43559602649006623 0.10980291110041669
Why is the result of pretty lower than the report of the paper?
Emma, I think that may because: parser.add_argument('--dropout', type=float, default=0.5, help='dropout keep_prob') should be set to 0.7 for Movielens dataset, and parser.add_argument('--topK', nargs='?', type=int, default=[50,100,200], help='topK for hr/ndcg') to get the reported results of our paper.
By using the above settings, you will get a better result like us, (dropout is an important parameter, our code has been updated to the latest version).
recall@50, ndcg@50 0.31026490066225165 0.09599689344574573 recall@100, ndcg@100 0.45397350993377483 0.11925239149771916 recall@200, ndcg@200 0.6041390728476821 0.14029391165062766
Thanks, it works!
還想再請教另外一個問題,在training時,我發現到 loss 會往負數的方向不斷下降,變到負的兩三萬以上,請問這樣是否代表 loss 不會收斂呢? 因為似乎可以永無止盡地降下去
不是這樣的,因為我們的loss在優化時把常數項(正,但是無梯度)去掉了,你可以看一下論文,所以我們的loss會是負的。但是還是會降到一定程度就收斂的,而且收斂很快(相比於採樣的方法)。
hello,请问一下,我跑ENSFM,loss依然为负,确实还在下降但是epoch 501 hr指标 还是0啊(555