deutschmn opened a new pull request #925: URL: https://github.com/apache/systemml/pull/925
This pull request adds an implementation of Neural Collaborative Filtering (NCF) using the SystemDS NN library. The concept is based on [this paper ](https://dl.acm.org/doi/abs/10.1145/3038912.3052569) and implements a fixed architecture – details are described in the `README.md` of the examples for the NN library. The implementation includes: - `NCF.dml`: train, predict and evaluate an NCF model - `ncf-dummy-data.dml` train the model with synthetic data (fast) - `ncf-real-data.dml` train the model with the MovieLens data set (takes some time) - `Example - Neural Collaborative Filtering.ipynb`: a Jupyter notebook to download the data, prepare it, call the training scripts and plot the training history Some remarks: - This implementation has a fixed network architecture for three dense layers. I was thinking about making it dynamic, but this would require all weights and biases to be stored in untyped lists, which I feared would kill performance. - For now the implementation does not add any tests, as it's rather a demonstration of how SystemDS can be used and not a part that can easily be reused for a different use case. Also, I wasn't sure what to test against, since the network doesn't have any clear expected output. - I now implemented it as a script file rather than as a built-in functions, as built-ins would cross-reference each other and also make use of the NN-library, which itself isn't a built-in. If these issues are resolved, it could, however, be ported over to a built-in. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org