Towards Better Generalization: Model, Data, and Explicit Knowledge