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


Reply via email to