Thursday, May 23, 2019

What's for lunch at the University of Konstanz?

A fun post for my 34th birthday. Inspired by, I trained a text-generating neural network, textgenrnn, on a dataset of meals served at the Mensa (cafeteria) of the University of Konstanz. Some of their offerings are on the creative side anyway: Banane-Lauchsauce, for instance. So I thought the university might be able to save a bit of money by firing the people who design the menus and replacing them with a bot. Long live full automation!

It's a pretty small dataset, so the network struggles to learn what a German word is supposed to look like:

Gemuserauce "Joghurt" Joghurt (olikenkartocild) mit Vollgessauce
Brackarkuschsteet Ketchup | Kase-Artiatiraten | Paprika-Sauce
Kedablacher | Bokentomanela
Frollogghw | Blatter-Fractese | Blattsalat | Blattsalat-Balassauce | Blattsalat

Very often it settles on things that look at least like actual words, but which don't refer to anything (as far as I know):

Frucken | Kaperniger Wurst | Bratkartoffeln | Bratensauce
Gorgarbonn | Kartoffeln | Bratensauce | Romanescogressing | Asia-Quard | Pomulasus | Spatzle
Blattsalat-Balsamicodressing | Kot | Kartoffeln | Salat-Cordmendrondrick
Rindfleischstreinten | Paprika | Petersilienestreifen in Banane
Spatzle Burger | Put-Honig-Senf-Honig-Secktafartoffeln
Cannische Ripslauch | Kartoffeln, Zitronenecke | Brot
Frikaaghurt mit Rahmspinat | Salat-Balsamicodressing | Brot

It also doesn't have much concept of what combinations of flavours work best:

Kartoffel-Gemusesauce | Pudding mit Hahnchenfleisch | Brot
Milchreis | Kartoffeln | Karotten | Bohnen
Pasta | Gemuse | Karotten | Orangen | Bratensauce | Blattsalat-Balsa-Kase-Sauce
Hahnchengeschnetzeltes mit Kirschen

But there are also several dishes that are more than conceivable:

Kartoffelpfanne "Asia" | Brot
Currywurst | Paprika-Dressing | Kartoffelpuree | Brot
Hahnchenbrustschnitzel | Kartoffeln | Bananenjoghurt
Pasta | Schinkenberge | Basmatireis
Schweineschnitzel | Zuckerschoten | Basmatireis

And more that are not outside the realms of possibility at our Mensa:

Orientalische Frischkasesauce
Pasta | Apfelmus
Chili con Banane-Tomatensauce | Basmatireis
Kartoffelpfanne "Chili mit Kartoffel"
Fruchtige Bratwurst | Pommes frites | Ketchup | Krauterbutter | Brokkolisch | Batailin | Brot
Chili con Carne | Kabeljoghurt mit geriebener Bratwurst | Basmatireis
Lasagne "Cock" | Hahnchenbruststreifen in Bauernwurst | Blattsalat-Balsamicodressing | Salat-Balsamicodressing

One thing's for sure, though: this bot is Swabian born and bre(a)d.

Spatzle | Spatzle | Spatzle | Brot

Sunday, May 12, 2019

Remain tactical voting in NW: vote Green or Lib Dem

The tl;dr version of this post is:
  • If you want to vote Lib Dem, do that.
  • If you want to vote Green, do that.
  • If you want to vote Change UK, don’t. Instead vote Green or (if you can’t stomach them) Lib Dem.
  • If you are pro-Remain and want to vote Labour, consider voting Green or Lib Dem instead.
  • If you are pro-Brexit, spoil your ballot. None of the parties can give you the hard Brexit you know we all need. F*ck the system!
(This post assumes that you’re a voter in the North West England electoral district for the European Parliament elections on 23rd May 2019, and that your priority is to send the strongest possible pro-Remain signal, understood as electing the most MEPs for unambiguously pro-Remain parties. If you don’t want this, then this post is not for you.)

Remain United is recommending that all Remainers in England vote Lib Dem. The idea behind this is that everyone should simply vote for the predicted largest pro-Remain party in each region. This, however, is a bad strategy because it doesn’t take into account the electoral system. In an ideal world where all Remainers voted tactically for the predicted largest pro-Remain party, it would work fine. But this won’t happen, and sub-optimal tactical voting could seriously screw things up. In districts with several seats, as Heinz Brandenburg explains:
If, for example, tactical voting pushes one pro-Remain party close to 15% but reduces the two others to 5 or 6%, the bigger party will not have enough to win multiple seats ... while the others could both fail to win a single seat. That could reduce the pro-Remain parties to a single seat where three could have been won.
Indeed, Remain United’s own projections show that if 50% of all Remain voters in the North West vote in the way they suggest (Lib Dem), the distribution of seats would not change: 4 for Labour, 2 for the Brexit Party, 1 each for the Tories and Lib Dems.

It’s worse than that, in fact. In what follows I use the ComRes/Electoral Calculus estimates (also used by Remain United):
  • Conservatives: 12%
  • Labour: 36%
  • Liberal Democrats: 10%
  • Change UK: 8%
  • Green Party: 7%
  • Brexit Party: 24%
  • Other: 3%
I assume that this is a good model in what follows. Using the d’Hondt method, the seats would be assigned as follows:
  • 1. Lab
  • 2. Brex
  • 3. Lab
  • 4=? Lab/Brex/Con (it's not possible to be more precise)
  • 7. Lib Dem
  • 8. Lab
All else being equal, in order for the Lib Dems to get 2 seats rather than 1 by soaking up votes from Change UK and the Greens, they’d have to get 18-19% of the 25% Remain party voters, virtually doubling their vote share. Realistically that won’t happen; and it isn’t possible for them to get 3 seats that way. The most that shuffling the Remain votes around like this can achieve is to win 2 seats, the second of which would be at Labour’s expense.

There is another way, however. The question to ask is: Starting from the projections, what is the minimal change that would need to be made in order to get 2 pro-Remain seats? The obvious answer is that Change UK are sitting on 8%, just below the 9-10% threshold they’d need to nab a seat from Labour. If they could grab another 1-2% from the Greens’ share, they could get that seat.

As a tactical voting recommendation, that’s probably not going to fly, however. A recent YouGov poll suggested that, of the three pro-Remain parties, Green voters are by far the least likely to compromise by voting for one of the others (and congrats if you’re a principled Green voter and have read this far). Change UK voters, on the other hand, are much happier to vote tactically, at least insofar as tactical voting is comparable to an anti-Brexit electoral pact. And in this connection it’s worth mentioning that the Greens have an established supporter base in the North West, and came very close to getting a seat in 2014.

The estimate puts the Greens on 7%, so if they can get another 2-3% from Change UK voters - or from Labour Remainers, who ought also to be shiftable - they could get a seat. To me, that seems the most achievable goal of the three.

It’s worth emphasizing, though, that all these scenarios involve the second Remain seat being pinched from Labour, not the Tories or the Brexit Party, who are the real hard Brexit flag-flyers. So at the end of the day it might not be worth it, depending on how you rank your personal principles. It’s also important that Lib Dems do get the seat they’re estimated to get, and that in itself is close. You wouldn’t have to massage the figures much for the Lib Dems to end up with no seats and the Brexit Party to pick up a third one (-2% Lib Dem, +2% Brexit Party would do it). So it’d be irresponsible to advise anyone who’s planning to vote Lib Dem to change their vote.