The simple explanation is that an ULP is defined as the difference between two consecutive floating point numbers, which means it isn't a fixed value.
Another "intuitive" explanation, is that if you increment the binary representation of a float, the difference between the two numbers is 1 ULP.
(I'd explain more, but I have to run to a meeting! More info on Wikipedia: https://en.wikipedia.org/wiki/Unit_in_the_last_place)