Transitioning entirely to neural machine translation
code.facebook.com
code.facebook.com
Here's a sample sentence that I've never seen any automatic translator get right:
"My cousin and her wife"
Any human would infer from the context that my cousin is a woman, in a same sex marriage. Yet Google, who also uses fancy deep learning, gives us, for Spanish:
"Mi primo y su esposa"
This should be "Mi prima y su esposa". And that's just for Spanish, a language relatively close to English. With more convoluted examples and more distant languages, it still breaks down pretty fast.
See also: examples of gender bias when using deep learning to translate from languages with gender neutral pronouns:
https://twitter.com/amuellerml/status/799658925326995456
https://twitter.com/nobody_indepth/status/799700696572526592
For example "my cousin and her wife think that Sarah has good taste in ice cream": here one likely anaphora resolution is "my cousin and Sarah's wife think that Sarah has good taste in ice cream". Or "when Sarah got married, she invited my cousin to the wedding; my cousin and her wife turned out to have gone to college together" (again "my cousin and Sarah's wife turned out to have gone to college together").
Anaphora resolution in general is one of the hardest problems for machine translation because it appears to require so much knowledge about the world to do it as well as human beings do. But also, different resolutions can be correct (or maximum-probability) in different contexts depending on the additional information! For instance, there's the Winograd Schema structure where a single pronoun would be interpreted as referring to different people depending on the surrounding context (but not grammar). Winograd's classic example was
The city council members refused the demonstrators a permit because they feared violence.
The city council members refused the demonstrators a permit because they advocated violence.
Disturbingly for machine translation, in the former sentence "they" refers to "the city council members", while in the latter sentence "they" refers to "the demonstrators", even though the syntax of the two sentences is identical!
This, in turn, means that if a translation task required knowing the antecedent of "they" in "The city council members refused the demonstrators a permit because they", the translation task would have no unique solution because the antecedent is ambiguous. Formally this is also true of every reference to, for example, family members when one language marks gender and another doesn't, even if there is a likely resolution offered by the local context, as in your sentence. There is no unique translation available. Finding the one intended by the speaker will require more context, while even finding the one that other speakers find most probable with limited contexts is sometimes among the most challenges AI problems today.
Use that term to down play the effectiveness of the approach seems quite surprising. Consider human needs years of study to do the same thing, which usually also makes mistakes.
Even for the example, without much analysis, it's very easy to miss the part.
In this case the context dependence part wasn't up to par, so it was just fancy mapping.
I mean really, having an always on, immediate access massive NLP DNN system translating every piece of text from any language on the worlds largest platform is a staggering feat.
Facebook has the most impressive applications of ML right now in my opinion. They have Yann Lecun to thank for that (and Mark for recruiting him).
Too bad that they also have an always on system that's tracking my doings and whereabouts. Seriously, we need to stop applauding these companies. Sad to see that LeCun and colleagues don't care to find an employer with more noble goals.
It seems that approval for the behavior of a company and it's open tech stack don't need to be correlated.
edit: I should have scrolled down https://techcrunch.com/2016/11/22/googles-ai-translation-too...
From what I recall reading, Google has people researching this internal language to see if they can discover any new interesting things about human thought.
https://techcrunch.com/2016/11/22/googles-ai-translation-too...
My impression of the pure DL approaches is that the preferred way to go about it is to map from each available language example, via a common latent representation, to every other available language example. The common currency is not English but a vector space representing something much more akin to the meaning underlying the statements.
English -> French French -> English English -> German French -> German
I also made an English-to-Chinese version, https://pingtype.github.io/english.html
One thing that struck me is that even the largest online dictionaries (Oxford, Wiktionary) are totally inadequate. I'm continually adding new words. Another thing I noticed is that spaces are not always between words! Chinese doesn't have spaces at all, so I wrote a word spacing tool. When I rewrote the app for English, I thought I could use the space character, but I can't.
Many verbs wrap around nouns e.g. "put [the phone] down". The source dictionary data has a definition for "put something down", and my program has support for a special word: "something", which causes it to look ahead for the second half of the phrase.
Pingtype doesn't reorder the sentence, because it's intended for education. But it's easy to train, unlike machine learning models.
For instance, "Drôle" in French is usually translated to "Funny", but I would translate it to "Droll". I also try to keep the sentence structure closer to the original, which does make my translations look like they were written by Shakespeare.
Something that I really like in regards to the implementation of FB translation is that I can select languages that I don't want to be automatically translated. For French, German, and Spanish, I'd prefer to at least have a crack at it before translating it, but for other languages like Turkish, there's no point.
One thing I don't like so much though is that for automatically translated languages, they replace the original text and don't make it super obvious that it's a translation. I do feel like there's a bit of language colonialism going on with that.
Like, what are the inputs? how the architecture of the network looks like?
I ask because sentences could be of any length, so I'm not sure what's feed to the model.
My only experience with NLP is setting a toy text classifier using naive-bayes.
That, and also building a good pipeline for it to work at scale.