In moving sshd to an alternate port, I've noticed two things: a greatly decreased amount of log noise from dictionary attacks, and a moderately increased amount of portscans.
It's reasonably clear to your average net malfeasant that any host running recognizable services is going to be running sshd.
So why not do both?
Put a dummy sshd on 22/tcp, deny all auth attempts, log whatever keeps you swimming in interesting data.
Then run real sshd elsewhere, possibly filtered, possibly port knocked, and hopefully permitting key-based auth only.