Preference Diffusion for Recommendation