I'd think, each time you lose the battle (and every attacking side has lost at least once) the sides should be skewed by +/- 5 players or so. So that in each subsequent losing battle, the attackers get a slight (but cummulative) edge.

And once they win, and become the defenders, set the other side back to only +5 players.

So if 30 horde and 100 alliance queue...
If the horde are defending, go with 30 Horde / 35 Alliance (and add +5 Alliance, each battle until the Alliance wins).
If the alliance are defending, go with 30 Horde / 25 Alliance (and decrease the Alliance by -5, each battle until the Horde wins).
That is assuming, a constant 30/100 player ratio.

The trick would be encouraging equal numbers to participate on both factions.




Ideally, you can enter as a group of five, but no larger.
The game looks at the average BG/Arena internal rating of all the players involved (queuing) on both sides.
And then divides the entire group into two balanced sides, with either equal participants or one side has the extra player; call them Red team and Blue team.

That kind of defeats the horde vs alliance thing.
But every BG/TB etc., would be balanced in terms of total numbers and average rating level on both sides.