neural_graph_collaborative_filtering
neural_graph_collaborative_filtering copied to clipboard
adj_type and _create_ngcf_embed
hi, there is not a adj_type named "ngcf" in the code, only has "norm"、“plain” and “gcmc”. The default setting of adj_type is "norm", but the method of calculate the laplacian matrix seems not same as what description in your paper when adj_type is setted as "norm". I found in the function "_create_ngcf_embed", when calculate the embedding of ngcf, the identity matrix in Equation(7) seems not participate in the calculation, is this a bug? Looking forward to your reply!
Hi, thanks for your interest. Please check the code in line 341 in NGCF.py carefully. Thanks.
I saw it, but the method of calculate mean_adj is also not same as the pui description in Equation(3). And even use the "mean_adj + sp.eye(mean_adj.shape[0])" as "norm_adj" feed to the function "_create_ngcf_embed",there is still some doubt because the identity matrix should not participate the calculation of "bi_embeddings" (line 207-210 in NGCF.py). Thank you for your reply!
Hi, Thanks for your valuable comments. When cleaning and reorganizing our codes, we found that, if all the bi-interactions between any two members within ego networks are considered, the performance will be better, that is, treating 'mean_adj+sp.eye' as the input of function '_create_ngcf_embed'. Indeed, the code is slightly different from the equation. Please try it and let me know whether your findings are consistent with ours. Thanks again.
I saw it, but the method of calculate mean_adj is also not same as the pui description in Equation(3). And even use the "mean_adj + sp.eye(mean_adj.shape[0])" as "norm_adj" feed to the function "_create_ngcf_embed",there is still some doubt because the identity matrix should not participate the calculation of "bi_embeddings" (line 207-210 in NGCF.py). Thank you for your reply!
I can understand what you mean because I have the same problem with you now. I wonder if you have understood why the two parts' input Laplacian matrix is the same. Thank you very much!
I saw it, but the method of calculate mean_adj is also not same as the pui description in Equation(3). And even use the "mean_adj + sp.eye(mean_adj.shape[0])" as "norm_adj" feed to the function "_create_ngcf_embed",there is still some doubt because the identity matrix should not participate the calculation of "bi_embeddings" (line 207-210 in NGCF.py). Thank you for your reply!
same concern here, I believe it's a bug. what's more, I also think that separately calculating "transformed sum messages of neighbors" and "transformed bi messages of neighbors" and add them together is a wrong way to implement equation (7) because LeakyRELU is not a linear function, how could we calculate two part separately and add them up? @xiangwang1223
it will be very nice of yo if you could give us an explanation about this two points.