Automated service discovery enables human users or software agents to form queries and to search and discover the services based on different requirements. This enables implementation of high-level functionalities such as service recommendation, composition, and provisioning. The current service search and discovery on the Web is mainly supported by text and keyword based solutions which offer very limited semantic expressiveness to service developers and consumers. This paper presents a method using probabilistic machine-learning techniques to extract latent factors from semantically enriched service descriptions. The latent factors are used to construct a model to represent different types of service descriptions in a vector form. With this transformation, heterogeneous service descriptions can be represented, discovered, and compared on the same homogeneous plane. The proposed solution is scalable to large service datasets and provides an efficient mechanism that enables publishing and adding new services to the registry and representing them using latent factors after deployment of the system. We have evaluated our solution against logic-based and keyword-based service search and discovery solutions. The results show that the proposed method performs better than other solutions in terms of precision and normalised discounted cumulative gain values.