Discrete Sampling using Semigradient-based Product Mixtures