Improving Contextual Faithfulness of Large Language Models via Retrieval Heads-Induced Optimization