A Practical Second-order Latent Factor Model via Distributed Particle Swarm Optimization