I'm working for a social network company in China and quite often we need to build user models for our products. The goal is to find different user types and their characteristics. The approach we have been taking is first let the product manager and the user researcher find interesting feature vectors, and then the data engineer/algorithm engineer apply clustering algorithms to cluster users into different groups. In the end, the user researcher interviews candidates selected from different groups to find interesting characteristics of each group. Does anyone have any thoughts on how to do this better?