In Gradient Boosted Regression Trees, a shrinkage $\nu$ is often applied as: $$ f_t(x) \leftarrow f_{t-1}(x) + \nu h(x)$$ where $h$ is the regression tree learned by fitting the tree to the gradient. I've tried implementing this and found that this shrinkage is indeed necessary to prevent overfitting. The shrinkage required may vary by application but I found that anything greater than $\nu=0.01$ led to overfitting.
Is there a theoretical justification for this kind of shrinkage? Are there more theoretically sound ways of regularizing GBRTs?