I travel a lot. In the last two years I've taken easily over 100 trains
(with half of those trips lasting 7hs or more), 20 overnight buses (12hs
in each direction), two intercontinental flights, and I even biked to
work once.
I would have to be an idiot to travel this much without learning
anything. And while the jury is still out on whether I'm an idiot, I
did learn some tips and tricks that I'd like to share with you.
Mentality
Before you even leave your place, it is important to put yourself in the
right state of mind. So close your eyes, breath deeply, and tell
yourself:
"I don't know how, why, or when, but of this I am certain: someone is
going to fuck it up. I have made my peace with this, and I will not
let it ruin my day."
You would be surprised of how useful this mentality is. It will lower
your blood pressure, make you less angry, and more importantly, will
naturally lead you to "safer" choices: if you already assume your future
plane will be delayed due to acts of nature, you won't book that risky
30-min airplane connection.
Bag
The secret to a good trip (or, at least, a less miserable one) is to be
prepared, and your bag is where it's at. Unlike common wisdom, I'm going
to suggest you get a small-ish one. How small? Enough to fit underneath
the seat in front of you in a plane: boarding a plane is stressful
enough without having to fight for overhead storage, and the last you
want is traveling without your gear because the plane is full and your
big bag was sent to cargo. And traveling light is always good.
A controversial opinion: check your allowed bag dimensions and weight,
and stick to them. I know neither passengers nor airlines give a damn,
but once in a blue moon an employee decides to check and it will
probably happen in your trip (see previous section). I know of a bus
company that makes a non-insignificant amount of extra money simply by
enforcing their rules.
If you are traveling internationally and/or by plane, I recommend you
also get a travel document holder like these
ones.
Keeping all of your documents in one place (plane tickets, ID, Passport,
itinerary, emergency money, credit card, ...) will simplify your travel,
and can be taken in and out of your bag in a second. I recommend one
that fits A4 pages, since most tickets are printed nowadays at home.
Gear
If your have an overnight trip, then your list should start with...
- Earplugs and sleep mask: they take almost no space, are very cheap,
and are ridiculously helpful for overnight trips.
- Water bottle: nothing fancy, just enough for when you wake up at
night with a dry mouth thanks to the AC.
- Good travel pillow: notice that I said a good pillow. Forget about
that U-shaped garbage they sell in airports - if it doesn't close at
the front, you'll wake up several times either when your head falls
forward or when the pillow slides away. I got one from this
list, and
I'm quite happy with my choice.
For long trips in general, I also like to have a good set of headphones.
Over-ear (and, even better, noise canceling) are my favorites because
they block outside noise by default allowing me to use a lower volume
setting, a small act for which my hearing will be thankful 20 years from
now. They can be bulky, however, so I encourage you to shop around for
the right model for you.
Seating
First-timers will always take the window seat. This is a perfectly
reasonable choice: they want to enjoy the view. Veterans, on the other
hand, know that the hallway seats are where it's at: windows lose their
charm after about an hour, but standing up and walking whenever you want
never gets old. And unless your plane/bus/train is full, other
passangers would rather try other rows than voluntarily sitting between
the wall and someone they don't know.
You should also seriously consider taking your shoes off. You can find
some light slippers to bring along, but at this point a warning is
mandatory: you must ensure (and I shouldn't even have to say it) that
you are wearing clean socks and that your feet don't stink. Don't be
that guy!
Finally, boredom is your enemy. Forget that difficult novel, your work
notebook, and that expense report you've swearing you'll start once you
have free time. Bring a book you like, that series you've been meaning
to watch, or pretty much anything you already know you'll enjoy.
This is not a secret, but I found it curious and thought about sharing
it here: earlier today I needed to share a video file that I was hosting
in my server, and I decided to send the link over WhatsApp. As I was
looking at the log files at the time, I managed to catch this curious
set of requests:
7c0h.com:443 203.0.113.19 - - [14/Nov/2019:20:02:49 +0100] "GET / HTTP/1.1" 200 5059 "-" "WhatsApp/2.19.305 A"
7c0h.com:443 203.0.113.19 - - [14/Nov/2019:20:02:51 +0100] "GET / HTTP/1.1" 200 1806 "-" "WhatsApp/2.19.305 A"
7c0h.com:443 203.0.113.19 - - [14/Nov/2019:20:02:53 +0100] "GET /fi HTTP/1.1" 404 549 "-" "WhatsApp/2.19.305 A"
7c0h.com:443 203.0.113.19 - - [14/Nov/2019:20:02:53 +0100] "GET /fil HTTP/1.1" 404 688 "-" "WhatsApp/2.19.305 A"
7c0h.com:443 203.0.113.19 - - [14/Nov/2019:20:02:54 +0100] "GET /file HTTP/1.1" 404 689 "-" "WhatsApp/2.19.305 A"
7c0h.com:443 203.0.113.19 - - [14/Nov/2019:20:02:54 +0100] "GET /files HTTP/1.1" 404 690 "-" "WhatsApp/2.19.305 A"
7c0h.com:443 203.0.113.19 - - [14/Nov/2019:20:02:55 +0100] "GET /files3 HTTP/1.1" 404 691 "-" "WhatsApp/2.19.305 A"
7c0h.com:443 203.0.113.19 - - [14/Nov/2019:20:02:57 +0100] "GET /files3.mpr HTTP/1.1" 404 695 "-" "WhatsApp/2.19.305 A"
7c0h.com:443 203.0.113.19 - - [14/Nov/2019:20:03:00 +0100] "GET /files3.mp HTTP/1.1" 404 694 "-" "WhatsApp/2.19.305 A"
7c0h.com:443 203.0.113.19 - - [14/Nov/2019:20:03:01 +0100] "GET /files3.mp4 HTTP/1.1" 200 219785 "-" "WhatsApp/2.19.305 A"
In simple terms: ever since WhatsApp identified that I was sending a
link (that is, after I wrote https://7c0h.com/
), WhatsApp generated a
new request for every letter I typed (including the "mpr" typo). It's a
good thing they only downloaded 215Kb of data too, because the request
came straight from my phone. I guess there is no reason to optimize your
code when you don't pay for the bandwidth.
I know this is not in the usual style of this Blog, but I found
something so out of touch with reality in Batgirl
#36 that I
need to share it with you. Please follow me on this journey.
(Warning: spoilers for Batgirl #34–#36. Also, I'm assuming you know
who Batgirl is.)
Our story starts in Batgirl
#34 with
Barbara Gordon (aka Batgirl) missing a meeting with her business partner
Alysia and some of her company's investors due to bat-related
obligations:
As it turns out, the investors are not happy. They bought plenty of
shares in the company, and want to use their position to push Barbara
Gordon out:
Unfortunately for them, they don't have enough shares to kick her out.
Even Alysia tells them so. But they wouldn't be important shareholders
if they didn't have a backup plan, right?
You see: many issues ago, Barbara hired Pamela Isley (aka Poison Ivy,
known eco-terrorist and occasional villain) to develop bee-friendly
plant fertilizer for their company (it's a long story - see "Batgirl and
the Birds of Prey" #12 for details).
The investors have now found out, and want to use this information to
blackmail Alysia into kicking her friend out of the company. If Alysia
does not agree to fire Barbara, they'll make this information public,
tank the company, and put all their employees on the street:
But here's the thing: those investors have acquired a lot of the
company. That is, they own it because they paid for it. Do you know
what would happen to that investment if they went along with their plan?
Yup, you guessed it: gone. All of it. Millions of dollars lost just to
spite one of the company's founders. And it's not like they can sell
their stock either: doing so in this situation is a clear-cut case of
insider trading. Barbara Gordon may end up on the streets, but those
investors would end up in jail.
You would expect a smart executive like Alysia to thank the investors
for their valuable input, promise to call them back, get a good night
sleep, and (at worst) negotiate a good separation agreement for her
friend. A less smart person (but smart nonetheless) would have called
their bluff: Mutually Assured
Destruction
is a good stalling tactic, but only an idiot would actually follow
through.
Of course, none of these perfectly reasonable suggestions occur to
Alysia. She kicks Barbara out of the company instead, leaving her broke
and homeless.
And here is where I draw the line. See, I'm fine with the idea of an
early-20s super-genius with photographic memory jumping from rooftops
and fighting crime without the Police Commisioner noticing that she
looks exactly like his daughter. But now you want me to believe that
executives from a million-dollar company wouldn't have the simplest
grasp of economy? Hell, do you want me to believe that you can organize
a hostile takeover, fire a company founder, and freeze their assets in
less than 3 hours?! Talk about nonsense.
With that out of the way, and as a final point, I would like to call
your attention to Alysia's last words to Barbara. I think you'll agree
that her frustration is a little... misplaced.
No, Alysia, Barbara isn't letting "them" take away her life's work. That
one's entirely on you.
This post is a condensed version of a talk I gave at my research
group.
I've been lucky enough to attend both EMNLP
2018 and INLG 2018,
and I thought it would be useful to share my main impressions of which
cool things happened during the conference. I've split them into four
sections: General tendencies about the direction that modern NLG
research is taking, Practical considerations to be aware of for your
own daily research, Exciting research areas where interesting results
are being produced, and Fun ideas that I stumbled upon while walking
around.
General tendencies
For me, one of the most important aspects of going to conferences is
getting a sense of what has changed and what is coming. In that spirit,
this conference season taught me that...
It is now okay to make a presentation full of memes: Are you leading
a half-day tutorial for over 1K researchers? Put some minions on your
slides, it's cool.
The text produced by neural networks is fine: For the last years,
computational linguists have been worrying that, while neural networks
produce text that looks okay-ish, it is still far from natural. This
year we have finally decided not to worry about this anymore. Or, as
described in Yoav Goldberg's
slides,
"Yay it looks readable!".
BLEU is bad: It is not every day that you see presenters apologizing
for the metric they've used in their paper. It's even less common when
they do it unprompted, and yet here we are. BLEU is a poor fit for
modern NLG tasks, and yet everyone is still waiting for someone to come
up with something better.
Further reading: BLEU is not suitable for the evaluation of text
simplification, and ChatEval: A
tool for the systematic evaluation of Chatbots
for a human-evaluation platform.
Need something done? Templates are your friends: We are all having a
lot of fun with Neural this and Deep that. The companies that are
actually using NLP, though? Templates, all of them. So don't discount
them yet.
Further reading: Learning Neural Templates for text
generation.
Practical considerations
Classical NLP is still cool, as long as you call it anything else:
Everyone knows that real scientists train end-to-end neural networks.
But did you know that tweaking your data just a bit is still fine? All
you have to do is pick one of the many principles that the NLP community
developed in the last 50+ years, call it something else, and you're
done.
Further reading: Handling rare items in data-to-text
generation.
Be up to date in your embeddings: It is now widely accepted that you
should know what fastText and Glove embeddings are. And ELMO and BERT
are here to stay too. So if you're not up to date with those (or, at the
very least, my post on
Word2Vec),
then it's time to start reading.
Further reading: want to use fastText, but at a fraction of the cost?
Generalizing word embeddings using bag of
subwords.
Data is a problem, and transfer learning is here to help: Transfer
Learning is a technique in which you take a previously-trained model and
tweak it to work on something else. Seeing as how difficult it is to
collect data for specific domains, starting from a simpler domain may be
more feasible that training everything end-to-end yourself.
Exciting research areas
If you are working on NLG, which I do, then you might be interested in a
couple specific research directions:
Understanding what neural networks do: This topic has been going on
for a couple years, and shows no end in sight. With neural methods
everywhere, it only makes sense to try and understand what is it exactly
that our morels are learning.
Further reading: Want to take a look at the kind of nonsense that a
neural network might do? Pathologies of Neural Models Make
Interpretations Difficult.
Copy Networks and Coverage: The concepts of Copy Networks (a neural
network that can choose between generating a new word or copying one
from the input) and Coverage (mark which sections of the input have
already been used) where very well put together in a summarization paper
titled "Get to the point! Summarization with Pointer-Generator
Networks. Those
techniques are still being explored, and everyone working on
summarization should be at least familiar with them.
Further reading: On the abstractiveness of Neural Document
Summarization explores what are
copy networks actually doing.
AMR Generation is coming: Abstract Meaning Representation (AMR) is a
type of parsing in which we obtain formal representations of the meaning
of a sentence. No one has managed yet to successfully parse an entire
document (as far as I know), but once it's done the following steps are
mostly obvious: obtain the main nodes on the text, feed them to a neural
network, and obtain a summary of your document. Work on this has already
began, and I look forward to it.
Further reading: Guided Neural Language Generation for Abstractive
Summarization using AMR.
Fun ideas
I don't want to finish this post without including a couple extra papers
that caught my eye: