Is it possible to use advance optimization(L-BFGS, Conjugate gradient) for a collaborative filtering system vs just using gradient descent? I ask this because of the need to calculate both X and theta simutaneously.