  Matrix completion, where we wish to recover a low rank matrix by observing a
few entries from it, is a widely studied problem in both theory and practice
with wide applications. Most of the provable algorithms so far on this problem
have been restricted to the offline setting where they provide an estimate of
the unknown matrix using all observations simultaneously. However, in many
applications, the online version, where we observe one entry at a time and
dynamically update our estimate, is more appealing. While existing algorithms
are efficient for the offline setting, they could be highly inefficient for the
online setting.
  In this paper, we propose the first provable, efficient online algorithm for
matrix completion. Our algorithm starts from an initial estimate of the matrix
and then performs non-convex stochastic gradient descent (SGD). After every
observation, it performs a fast update involving only one row of two tall
matrices, giving near linear total runtime. Our algorithm can be naturally used
in the offline setting as well, where it gives competitive sample complexity
and runtime to state of the art algorithms. Our proofs introduce a general
framework to show that SGD updates tend to stay away from saddle surfaces and
could be of broader interests for other non-convex problems to prove tight
rates.
