It’s useful when you’re modeling a structure, e.g., P(x, y) or P(x | y), rather than a distribution. This is helpful in situations where generating samples is bad (CRFs) or your data imposes dependent features (HMMs). It appears from the README (and the authors’ previous work) this is useful for arbitrary structures too.