Sycophancy in Large Language Models: Causes and Mitigations