Usually, join (many to many) tables are named after the types they join – if a table joins users to roles, its name would contain both user and role (i.e. user_role).
Is there a naming convention that defines which word / type should come first?
EDIT: Having a convention means knowing the name without having to remember it. Please, try to understand that before voting for closing the question for being not constructive.
In 1:n it is user_role.
In m:n I’d use the more important one first, and in this case the stronger term is user IMHO, as you usually assign roles to users, not vice-versa.
The role does not make sense without a user, but a user makes sense without a role.