Unifying user preference and item knowledge-based similarity models for top-N recommendation