Scaling Stratiﬁed Stochastic Gradient Descent for Distributed Matrix Completion

—Stratiﬁed SGD (SSGD) is the primary approach for achieving serializable parallel SGD for matrix completion. State-of-the-art parallelizations of SSGD fail to scale due to large communication overhead. During an SGD epoch, these methods send data proportional to one of the dimensions of the rating matrix. We propose a framework for scalable SSGD through signiﬁcantly reducing the communication overhead via exchanging point-to-point messages utilizing the sparsity of the rating matrix. We provide formulas to represent the essential communication for correctly performing parallel SSGD and we propose a dynamic programming algorithm for efﬁciently computing them to establish the point-to-point message schedules. This scheme, however, signiﬁcantly increases the number of messages sent by a processor per epoch from O ( K ) to O ( K 2 ) for a K -processor system which might limit the scalability. To remedy this, we propose a Hold-and-Combine strategy to limit the upper-bound on the number of messages sent per processor to O ( K lg K ) . We also propose a hypergraph partitioning model that correctly encapsulates reducing the communication volume. Experimental results show that the framework successfully achieves a scalable distributed SSGD through signiﬁcantly reducing the communication overhead. Our code is publicly available at: github.com/nfabubaker/CESSGD