Simply put, troops in a beseiged city are on rations. And the longer the seige goes on, the shorter the rations get.

The shorter the rations get, the less well fed the troops are, and the more likely it is that they will fall sick due to poor nutrition. Once they are sick they can't fight, and join the civilian population as 'useless mouths'.

The besieging army doesn't shrink because their troops are harvesting your city's fields, and eating the crops. They have access to the fields, you don't. They might be on short rations too, but not as short as you since they get supply wagons and you get nothing at all.

The rate at which units deplete under seige is hardcoded, so I don't know what it is. I know it gets worse and worse the longer you are under seige, the rate at which you lose people gets higher and higher as your rations get shorter and shorter turn by turn.