In those files where you added your code, please add your name to the (c) notice.
Variable names in GSVDPlusPlus:
Can you change nAttributes to n_attributes or even better, num_attributes for consistency with the existing code?
genre_id could be called attribute_id (more generic)
The empty lines 129 and 130 could be removed in GSVDPlusPlus.cs
You can remove the comments " // TODO better name than x" and "// TODO vectorize".
Can you replace "if(" by "if (" (same with "foreach"), and make sure that curly braces for if-else start in a new line?
This is for consistency with the rest of the code, I do not say that one way is better than the other.
Are you sure that ImplicitFeedbackKNN will scale well?
In particular the matrices c and w, and the 2d arrays rkiu and nkiu are worrying me.
On which dataset have you tested it?
I am not so comfortable with this line in ImplicitFeedbackKNN: "if (this is IntegratedSVDPlusPlusKNN)":
It implements child class behavior in the parent class, which can be very confusing to people who read the code.
It is also confusing that ImplicitFeedbackKNN inherits from SVDPlusPlus and has ItemKNN as a member.
Wouldn't it be rather that we should have IFKNN inherit from ItemKNN, and then inherit ISVDPPKNN from
SVDPlusPlus, and compose ItemKNN into it?
Also, is ImplicitFeedbackKNN supposed to be used by itself?
I know, this is a lot of stuff ;-)
I think we can make this easier for us if we do separate pull requests for the different recommenders.
The best would be 3 distinct pull requests, starting with GSVDPlusPlus.
This would make it much easier to discuss the changes.
Hi Marcelo,
thank you very much for the pull request. It is quite large ;-)
I have several remarks:
I know, this is a lot of stuff ;-) I think we can make this easier for us if we do separate pull requests for the different recommenders. The best would be 3 distinct pull requests, starting with GSVDPlusPlus. This would make it much easier to discuss the changes.
What do you think?