With the rapid development of cloud computing services, resource-constrained clients can outsource their expensive computation tasks, such as scientific computations, to untrusted cloud servers. Furthermore, it is essential for these clients to protect their sensitive data and verify the validity of the returned computation results. In this paper, we focus on outsourcing protocol of non-negative matrix factorisation, which is an expensive computation task and has been widely applied to image processing, face recognition, text analysis, and so on. The permutation technique is employed to transform the original problem into a new one in our proposed protocol so as to protect the privacy, and the matrix 1-norm technique is utilised to verify the result returned from the cloud server in order to reduce the verification cost. Based on these two techniques, we construct a secure and verifiable outsourcing protocol for non-negative matrix factorisation. Moreover, the theoretical analysis and the experimental results show that our proposed protocol brings great computation savings for resource-constrained clients and fulfills the goals of correctness, security, verifiability and high efficiency.