Deezer flow is my go to for this, and they've recently added moods, which really helps.
I find I often start flow, get a few songs in and jump onto an album based on the currently playing song. Really great for discovery of music I've not heard (before or for a while).
Spotify seems to always end up merging back to some generic tracks that I've heard so many times before.
That said, I've been training Deezer (they have both like and dislike, as well as never recommend song / artist) for over 10 years, so they better get it right!
Deezer was quite good for a while, but right now I am sticking with yt music.
IMO Spotify is the worst.