class_docstr: Implements the IMC problem.
class_docstr_tok: ["Implements","the","IMC","problem","."]
docstr: Optimize the GeoIMC optimization problem
  
  Args: The args of `solve`
docstr_tok: ["Optimize","the","GeoIMC","optimization","problem","Args",":","The","args","of","`","solve","`"]
code: def _optimize(self, max_opt_time, max_opt_iter, verbosity):
      """Optimize the GeoIMC optimization problem
  
      Args: The args of `solve`
      """
      residual_global = np.zeros(self.Y.data.shape)
  
      solver = ConjugateGradient(
          maxtime=max_opt_time,
          maxiter=max_opt_iter,
          linesearch=LineSearchBackTracking(),
      )
      prb = Problem(
          manifold=self.manifold,
          cost=lambda x: self._cost(x, residual_global),
          egrad=lambda z: self._egrad(z, residual_global),
          verbosity=verbosity,
      )
      solution = solver.solve(prb, x=self.W)
      self.W = [solution[0], solution[1], solution[2]]
  
      return self._cost(self.W, residual_global)
  
file_path: recommenders/recommenders/models/geoimc/geoimc_algorithm.py
imports: import numpy
  from scipy.sparse import csr_matrix
  from numba import njit, prange
  from pymanopt import Problem
  from pymanopt.manifolds import Stiefel, Product, SymmetricPositiveDefinite
  from pymanopt.solvers import ConjugateGradient
  from pymanopt.solvers.linesearch import LineSearchBackTracking
label_desc: Use image node_id 7 for calling the IMCProblem obj's underlying member method code with example usage: obj._optimize(max_opt_time, max_opt_iter, verbosity) and returns: self