<p>FYI: there is actually a more memory efficient low rank factorization method for the matrix completion SDP. Indeed, given a decision variable X which is m by n, we can factorize it into X = LR^T, where L is m x r and R is n x r. You then apply the same augmented lagrangian technique, and use alternating minimization on the inner optimization (fix R, optimize L. then fix L, optimize R and repeat). See Section 5.3 of <a href="http://www.eecs.berkeley.edu/%7Ebrecht/papers/07.rfp.lowrank.pdf">http://www.eecs.berkeley.edu/~brecht/papers/07.rfp.lowrank.pdf</a> for more details.</p>

<p>However, there are two reasons I chose to go with the more generic approach. </p>

<ul class="task-list">
<li>We can reuse the existing <code>LRSDP</code> code.</li>
<li>Empirically, I've found that the more generic approach converges faster. That its, the alternating minimization step in the explicit approach outlined above converges quite slowly in my (albeit somewhat limited) experience. </li>
</ul>

<p>However, it is worth noting that the alternating minimization approach has better theoretical guarantees (see e.g. <a href="http://arxiv.org/pdf/1212.0467v1.pdf">http://arxiv.org/pdf/1212.0467v1.pdf</a>). </p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br>Reply to this email directly or <a href="https://github.com/mlpack/mlpack/pull/374#issuecomment-68652042">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AJ4bFOTKLYe5THoMWZzZzeQe0MvOQN3zks5nebPggaJpZM4DOLPX.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
  <div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
    <link itemprop="url" href="https://github.com/mlpack/mlpack/pull/374#issuecomment-68652042"></link>
    <meta itemprop="name" content="View Pull Request"></meta>
  </div>
  <meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>