1. A method for performing role mining given a plurality of users and a plurality of permissions, the method comprising the steps of: using at least one generative machine learning technique to obtain a collection K of k roles, a probability distribution θ for user-to-role assignments and a probability distribution β for role-to-permission assignments, wherein the probability distribution θ for user-to-role assignments and the probability distribution β for role-to-permission assignments account for past usage of permission assignments by the users; and finding latent roles in the permissions by converting the probability distribution θ for user-to-role assignments and the probability distribution β for role-to-permission assignments into a final set of roles, including discrete user-to-role assignments and role-to-permission assignments.