An algorithmic framework for decentralised matrix factorisation