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, the non-negative matrix factored from the sparse matrix according to a probabilistic non-negative matrix factorization (NMF); and a distribution component that distributes the key-value pairs across the cluster of machines.