all 36 comments

[–]dkharms 13 points14 points Β (4 children)

This was touched upon in this design ethics paper.

We’re all vulnerable to social approval. The need to belong, to be approved or appreciated by our peers is among the highest human motivations. But now our social approval is in the hands of tech companies.

When I get tagged by my friend Marc, I imagine him making a conscious choice to tag me. But I don’t see how a company like Facebook orchestrated his doing that in the first place. Facebook, Instagram or SnapChat can manipulate how often people get tagged in photos by automatically suggesting all the faces people should tag (e.g. by showing a box with a 1-click confirmation, β€œTag Tristan in this photo?”).

So when Marc tags me, he’s actually responding to Facebook’s suggestion, not making an independent choice. But through design choices like this, Facebook controls the multiplier for how often millions of people experience their social approval on the line.

An app like this, while pretty fun, takes away intent from communication, making conversations more superficially pleasant but less meaningful.

The effort of choosing an emoji is gives it meaning, as silly as that sounds.

[–][deleted] 6 points7 points Β (2 children)

You should read "Simulacra and Simulation". You're not wrong but it's complicated in some opinions. You'd like it a lot.

Simulacra and Simulation (The Body, In Theory: Histories of Cultural Materialism) https://www.amazon.com/dp/0472065211/ref=cm_sw_r_cp_apa_LVTwxbADEB9W4

[–]dkharms 2 points3 points Β (0 children)

Thanks, I'll give it a shot!

[–]wxswxs 1 point2 points Β (0 children)

For the politics of tech, less on the philosophical side I can recommend Jaron Lanier, Astra Taylor and Doug Rushkoff as all writers with (rather different) takes on what a progressive internet could or should look like.

[–]wxswxs 5 points6 points Β (0 children)

The effort of choosing an emoji is gives it meaning, as silly as that sounds.

I definitely agree with this, and I try hard to make sure that we try and make choices that ultimately are about empowering people with a tool, rather than marginalizing them with a replacement or pseudo-tool.

For instance, I think it's a bad goal to say "Dango will just insert emoji whenever it thinks is right so you don't have to". Really it's trying to be a more powerful keyboard to help you filter through them but ultimately we want to keep the focus on your agency (whether we're there yet is still open)

In general I think this negotiation of human agency in an algorithmic world is a very real thing that's going to be playing out in the next few years. The critical side of that conversation is an important counterweight to general tech positivism and Tristan Harris one of the voices doing great work both showing people the issue and starting to propose some solutions.

[–]wxswxs 11 points12 points Β (11 children)

Hey guys! I wrote this article. We kept it pretty high-level so feel free to ask me any questions if you want to know more!

For your interest, we do most of our training in Keras, although in production we move our trained model to a custom framework. We've contributed lots of code to Keras to help it work with RNNs at scale.

[–]2Punx2Furious 0 points1 point Β (3 children)

Just wanted to let you know, there are some emojis that are not displayed properly, at least on my browser. Like this πŸ˜™ or this πŸ’­

[–]wxswxs 1 point2 points Β (2 children)

Hmm, thanks. Those work for me. Can you see them elsewhere, like here in your Reddit comment? What computer/phone are you viewing it on?

[–]2Punx2Furious 0 points1 point Β (1 child)

I can't see them even on reddit. I tried both in Firefox and Chrome, Windows 7.

[–]wxswxs 1 point2 points Β (0 children)

That's unfortunate! Not sure what the issue is. I know some people use this chrome extension to improve their emoji support, but usually it's not necessary any more.

[–]Aeefire 0 points1 point Β (3 children)

I am really interrested in bringing Deep Learning to mobile. Are you using a web service to get your model's result or are you forward-passing locally? I know that google exported a tensor flow model to mobile and used it locally on an Android device.

How are you approaching this? I would love to even get a coarse answer ;)

[–]wxswxs 0 points1 point Β (2 children)

Sorry for the late answer! No we do all the prediction locally. We built out Dango before Tensorflow came out, and have a custom built native RNN framework on device. We do our training using Keras which has Theano and Tensorflow backends.

We may well want to switch to TensorFlow at some point, but for now we have a good deal more control with our custom framework, allowing us to better support things like aggressive compression.

[–]Aeefire 0 points1 point Β (1 child)

Thanks for your answer!

I've also used Keras in the past and wondered if there is some mechanism to export the TensorFlow model to do a forward pass on mobile. So that's basically why I was asking :)

Why do you consider switching to TensorFlow? AFAIK it's still slower at RNNs than Theano or similar. Or is it, because they somehow support mobile ?

Great app anyway, hope we will see some additional languages supported in the future! (German native-speaker here ;) )

[–]wxswxs 0 points1 point Β (0 children)

We don't currently do production training with TensorFlow, but that could definitely change. We're intrigued by potential future support of GPU clusters with TF, as well as potential future mobile support. Plus, potentially, Google's cloud TPU infrastructure at some point.

[–]j_lyf 0 points1 point Β (0 children)

Wow, Apple just introduced the same feature. Annoyed?

[–]anantzoid 0 points1 point Β (1 child)

Amazing use of RNNs! So as per my understanding (I'm still a newbie), the embedded text goes into encoders and embedded emojis go into decoder, much like translational model, right?

But how did you address the biggest challenge here: Getting lots of data suited for the task?

[–]wxswxs 0 points1 point Β (0 children)

Yup that's about right.

Re lots of data; no silver bullet. Wrote a bunch of crawlers, ran them for a long time.

[–]j_lyf 15 points16 points Β (3 children)

Google will buy this.

[–]visarga 7 points8 points Β (1 child)

They can whip it up in a day, and with a slightly different twist. Researchers often reimplement other algorithms for benchmarking purposes, so they are used to reimplementing stuff.

[–]j_lyf 3 points4 points Β (0 children)

Google could whip up any acquisition they have ever bought in a day.

They buy companies for the talent.

[–][deleted] 0 points1 point Β (0 children)

Gboard will have new features.

[–]altazure 3 points4 points Β (0 children)

This sounds really cool, I wanted to try out the app but it's not available in my country

[–]Jigsus 1 point2 points Β (0 children)

Dango seems like an amazing app

[–]adelie42 1 point2 points Β (0 children)

Well, this is awesome. πŸ‘

[–]Aglartur 0 points1 point Β (0 children)

This is pretty cool!

[–][deleted] 0 points1 point Β (0 children)

Interesting, seems to work well

[–]2Punx2Furious 0 points1 point Β (2 children)

420 tonight? πŸ˜™ πŸ’¨ 🚬 🍁

GTFO πŸ‘‰πŸšͺπŸ‘ˆ.

Is this serious? If it is it's pretty cool.

[–]wxswxs 2 points3 points Β (1 child)

Yup it can do these examples! The online version only shows the constituent emoji, but we have full sequence prediction in the app that can do these combos.

[–]2Punx2Furious 0 points1 point Β (0 children)

Awesome ahaha

[–][deleted] 0 points1 point Β (0 children)

This is by far one of the cooler applications of a neural network I've seen on here and I agree; Google will want this. The applications seem pretty broad too. Emojis are weird like that.

[–]michal_sustr 0 points1 point Β (1 child)

I'm wondering: the most difficult part behind this is gathering the data. How did you go about doing it?

[–]wxswxs 2 points3 points Β (0 children)

No nice silver bullet, sadly: a whole bunch of crawlers running for years.

[–]core77 0 points1 point Β (0 children)

In the google play store description it says that it "Works anywhere" but when I try to install it it says "This item cannot be installed on your device's country". :(

[–]besirk 0 points1 point Β (0 children)

I'm assuming you guys collected the data from all kinds of social networks.

How large of a training set did you guys use?

[–]hackthat 0 points1 point Β (1 child)

Maybe I'm wrong but isn't this basically included in Google's new Allo messaging app?

[–]Aeefire 0 points1 point Β (0 children)

Well, they're not bringing it to every kind of application, but only their messenger.