What are Diffusion Models?