From my personal experience, On-premises and Colocation are similar in that the customer owns the equipment that is in question. The difference is where the equipment is located at.
On-premises implies that the equipment is at a location that the company in question owns/rents/leases. It is physical equipment in one of their physical locations.
Colocation implies that the equipment is at a location that the company does not own/rent/lease, but the equipment still belongs to them. In other words, the physical equipment belongs to the company, but the location is with a different company.
For example: Think of your computer at home. That computer is on your premises, and it belongs to you, so it's considered on-premises. Now, if you buy another computer, and take it to a friends house, (one you can trust), then it would be at a colocation.
Edit:
As for AWS, Azure, and similar other services, the customer does not own the equipment and it does not own/rent/lease the location that the equipment is located in. They are not On-Premises services or Colocation services. The "Cloud" is just a term used to describe that the customer won't actually own the servers, but they will be able to use it as per their agreement with the provider.
To add to the example above, basically your friend has a really powerful computer, but they don't use all of the power. Your friend then lets you use some of the power for a fee. You don't own the equipment, and you don't own/rent/lease the location that the equipment is located at, but you're still able to use the server.
TL;DR
On-Premises = My computer / My house.
Colocation = My computer / Someone else's house.
Cloud = Someone else's computer / Someone else's house.