An implementation of the model found in https://arxiv.org/abs/1803.02879. We use deep learning to model interactions across sets of objects, such as user-movie ratings. The canonical representation of such interactions is a matrix with an exchangeability property: the encoding's meaning is not changed by permuting rows or columns. Models should hence be Permutation Equivariant (PE): constrained to make the same predictions across such permutations. We implement a parameter-sharing scheme that could not be made any more expressive without violating PE.
Python 3
TensorFlow
MovieLens-100k or MovieLens-1M dataset: retrieved from https://grouplens.org/datasets/movielens/
We include sparse implementations of two distinct models (see paper linked above for details):
run with:
sparse_self_supervised.py
run with:
sparse_factorized_autoencoder.py