1. A computer-implemented method, comprising: computing, by a computing device, utility scores for a set of users based on a utility-scoring function, wherein a respective utility score indicates a usefulness or penalty of collecting a corresponding user's contextual information; selecting, from the set of users, a subset of users with highest utility scores; receiving user information from each of the selected users; and generating a group-activity model based on the user information received from the selected users; wherein the utility-scoring function has the form: 
 U ( u )= a*I ( u )− b*P ( u ); wherein U is a utility score for the user information from user u, wherein a and b correspond to predetermined coefficients, wherein I(u) corresponds to an information-gain function that computes an information-gain score indicating the usefulness of the user's information, and wherein P(u) corresponds to a penalty-scoring function that computes a communication penalty indicating the user's perceived cost for releasing personal information.