1. A computer-implemented data processing system having non-transitory computer readable media that stores executable instructions executed by a processor, comprising: a matrix component that represents a sparse matrix of dyadic data as tuples distributed across a cluster of machines; a partitioning component that partitions a non-negative matrix along a short dimension into key-value pairs, in order to maximize parallelism and data locality, the non-negative matrix factored from the sparse matrix according to a probabilistic non-negative matrix factorization (NMF); a distribution component that distributes the key-value pairs across the cluster of machines, to scale up NMF to a distributed NMF (DNMF); and a microprocessor that executes computer-executable instructions in a memory.