Let's start by pointing out that the method usually referred to as "SVD" that is used in the context of recommendations is not strictly speaking the mathematical Singular Value Decomposition of a matrix but rather an approximate way to compute the low-rank approximation of the matrix by minimizing the squared error loss. A more accurate, albeit more generic, way to call this would be Matrix Factorization.
The basic idea is that we want to decompose our original and very sparse matrix into two low-rank matrices that represent user factors and item factors. This is done by using an iterative approach to minimize the loss function. The most common way to do this is by using Stochastic Gradient Descent, but others such as ALS are also possible. The actual loss function to minimize includes a general bias term and two bias for both the user and the item.
We start w/ a user/item or utility matrix.
In order to make recommendations on products a user hasn't seen yet, we need to fill in the blanks (sparse matrix).
I want to find the two vectors
I can calculate the decomposition using SVD or using matrix factorization w/ SGD. Typically in machine learning application we will use SGD matrix factorization technique.
Another alternative method to WRMF is BPR which still uses SGD but w/ a more sohpicasted cost function.
So we want to minimize this cost function: $$ argmin_\theta \sum_{(u,i)\in{train}}{[\hat{r}(u,i) - r(u,i)]^2} $$
where
Now that we have the user and item factors computed we can complete the matrix: $$ \hat{r} = p_u^T q_i $$
In the conventional collaborative filtering algorithm, either we use user-based neighborhood model or item-based neighborhood model i.e. the predicted rating of an item by an user is either determined by ratings given by the same user to similar items (found by pearson correlation) or by rating received on the item by users similar to the current user. So here the rating behavior is concentrated on a very small subset of potential similar items or similar users but discards the edge cases contained in the other ratings.
In SVD++ both the methods are combined into one to improve precision and recall of the recommender system. Check this paper out for more details.