Advancing Large Language Model Attribution through Self-Improving