I clean them once during the winter.
Milage may vary, however I use a dry lube - Boeshield T-9 about every 200 miles. I use two chains and swap them out at 400 - 600 miles. My cassette looks new with around 1200 miles on it this year and it has not been cleaned.
I also liked the Tri-Flow and White Lightning drys...but the chains started to get noiser, quicker. Boeshield last longer IMO.