Environmental User Preference Learning for Smart Homes