Collaborative filtering is very effective in recommendation systems. But the recently researches have proved the collaborative filtering is significant vulnerable in the face of profile injection attacks. Profile injection attacks can be identified to some attack models. The attacker can easily bias the prediction of the system based on collaborative filtering algorithms. In this paper, an improved algorithm based on Singular Value Decomposition is proposed. Some dimensions are chosen by the improved algorithm to find capture latent relationships between customers and products. In addition, the robustness of the algorithm is improved by the way. Several experiments are conducted. The results suggest that the proposed algorithm has advantages both in robust and stable over previous algorithms.