1. A method comprising: obtaining, by a recommendation engine device, program historical data associated with users that each receive one or more programs via one or more channels of a program delivery network that provides a program service to which the users belong; obtaining, by the recommendation engine device, social network data associated with the users from social network sites to which the users belong, wherein the social network data includes a social graph, communication data pertaining to communications between the users via a communication network that provides a communication service to which the users belong, wherein the communication service includes a mobile phone service and a messaging service, and the communication data includes mobile phone calls, and user profile information pertaining to the users; calculating based on the social network data, the communication data, and the user profile information, by the recommendation engine device, a social similarity value that indicates a social similarity between one of the users and other users; calculating based on the program historical data, by the recommendation engine device, a channel-interest similarity value that indicates a common interest between the one of the users and the other users in relation to the one or more channels used by the users to receive the one or more programs; calculating based on the social similarity value and the channel-interest similarity value, by the recommendation engine device, a similarity index value that indicates a similarity between the one of the users and the other users; calculating based on the program historical data, by the recommendation engine device, a program regularity value, for each program, that indicates a regularity of consumption of each program over a time period; calculating based on the program regularity value, by the recommendation engine device, a program weight value, for each program, that indicates a priority value; calculating based on the program historical data, by the recommendation engine device, a stay-time, for each channel, that indicates a time period each of the users remained on each channel; calculating based on each program weight value, each stay-time, and each similarity index value, by the recommendation engine device, a channel weight for each channel; and selecting based on each channel weight, by the recommendation engine device, one or more channels to recommend to at least one of the users.