A Survey of Direct Preference Optimization