Divergent Goals - From Uber to Facebook

Back before the world collapsed, Uber had a service variant called UberPool which offered a lower fare in exchange for the possibility that you might share your ride with someone else who is going in your general direction.

I would use services like UberPool and Lyft’s version Lyft Line from time to time and one comment kept coming up from drivers and fellow passengers alike. The comment went something like “Why is it telling us to go this way? This is not the best way to get where we’re going. Why is Uber’s algorithm so stupid?”

This is a totally reasonable complaint, but it betrays a couple of underlying false assumptions which I want to dive into a little bit here. One of these false assumptions has vast social implications. I feel like if we all were a little bit more aware of what’s going on under the metaphorical hood of some of the algorithms that direct so many aspects of our lives, we’d be better equipped to resolve some of the biggest challenges that we are currently facing as a society.

We’re going to start this trip with ride sharing and end with the harms of social media. It will necessarily get a little bit technical, but I’ll try to keep it as light and manageable as possible. I’m going to pick on Uber and Facebook but they are by no means the sole offenders. The topics I’ll discuss here are broadly applicable to many of the companies we interact with on a daily basis. I promise that there is an important point at the end of all of this and I hope that you find the journey that we are about to embark on together as interesting as I do.

First, let’s talk for a moment about the vanilla version of the service that companies like Uber offer. Basically, they dispatch a driver to take you from point A to point B. Along the way, Uber’s software gives the driver directions so she knows where to go.

At first, this seems simple enough but when you look at it from a computer’s perspective, you start to run into trouble. Mathematically, the problem of finding the best route to get from point A to point B is an optimization problem. You’re looking for the best solution out of all possible solutions.

The first problem is, there are nearly infinite possible paths you could take from point A to point B. For a human, it’s relatively trivial to ignore almost all the solutions that don’t seem like good candidates. For example, if I asked you for the best way to get from a point in San Francisco to a point in Oakland, you’d probably ignore any routes that took you through New York since those are almost certainly not the best way to get there.

By default, computers don’t have that kind of common sense. If you asked a computer to just crunch the numbers to find the best route, it would have to calculate every possible path down every possible combination of connected streets in North America before it gave you an answer. Obviously, this is not the best way to approach the problem.

Fortunately, mathematicians and computer scientists have created very clever graph traversal and path search algorithms that let a computer strategically evaluate only the most likely solutions while ignoring the overwhelming majority of possible routes.

These basic path search algorithms get heavily tweaked and modified to account for things like traffic conditions, speed limits, road closures, etc. but they generally do a pretty good job of getting people from point A to point B as efficiently as possible.

Things really start getting complicated when you introduce shared rides into the mix. Now the software doesn’t just have to get you from point A to point B, it needs to get a lot of people from their own respective point As to their point Bs while efficiently sharing rides. This is made even more complicated by the fact that the software doesn’t know ahead of time when or where people are going to need a ride so it needs to be able to predict likely scenarios and dynamically alter its course as new people open up the app and book a ride.

This new problem is far too complicated for even the best human-designed path search algorithms. This is where machine learning and deep neural networks come in handy.

I’ll save the nitty gritty details of how these work for another post but at the most basic level, you create a network of connected nodes and feed it a bunch of sample data. You then ask it to make predictions about that data and if those predictions are incorrect, you tell it to reconfigure the connections between its nodes and try again. Through a mathematical process called gradient descent, the network will slowly start to optimize itself, getting better and better at making accurate predictions about the data. If your neural network is well designed and your training data is well categorized, after billions and billions of iterations, you’ll hopefully end up with a network that gets very good at making predictions about the kind of data that it was trained on.

Machine learning is used to drive many of the systems that you interact with on a daily basis. It’s what allows Facebook to recognize and tag friends in your photos, and what Amazon uses to decide which products to show you ads for. It’s how Alexa and Siri know what you’re saying when you talk to them. Machine learning algorithms are operating behind the scenes in ways that would both delight and scare you from healthcare, to the military, to mobile gaming.

The kinds of problems it can solve are significantly more complex than traditional algorithms so it seems like the perfect solution to run the routing for a service like UberPool. It can learn when people are more likely to need rides and where they tend to start and end. It can handle tasks like adjusting to changing situations without having to recalculate every element and variable when a new person books a ride.

These systems are by no means perfect. They are prone to making all kinds of mistakes that people find perplexing. A deep learning image classifier might occasionally classify an image of random noise as a dog; something that a human would never do.

The routing that UberPool’s algorithms come up with to handle these complex scenarios might occasionally be suboptimal in ways that seem silly and ridiculous to us humans.

But that’s not the source of most of the complaints that I spoke about at the beginning of the post. The main reason UberPool’s algorithms seem “so stupid” so often is not because the problem is too hard or the machine learning architecture they use isn’t up to the challenge. The reason that they seem so stupid is because they’re solving an optimization problem, but not the one that you think they’re solving.

UberPool’s machine learning systems aren’t trained to get everyone from their respective point As to their respective point Bs as fast or directly as possible. They’re trained to get people from point A to B while making Uber as much money as possible. This might involve taking you out of the way because it thinks that there’s a higher chance that someone along that suboptimal route might want to be headed in the direction you’re going around this time.

The algorithms aren’t “stupid”, your goals just aren’t aligned. This results in some minor annoyance on UberPool rides but it results in much bigger problems elsewhere. The world is full of optimization problems and companies around the globe have seized on machine learning to solve them. The problem is that what’s good for a particular company is not always good for you or the world at large.

One of the most disturbing examples of this is the way that companies like Facebook use machine learning. Facebook makes most of its money from ad revenue. That means that the more time you spend interacting with their platform, the more money they make.

Facebook has many tools that it can optimize to keep you on the platform but one of the most effective is curating which content to show you to keep you as engaged as possible for as long as possible. The problem with this is that, when left to our own devices, we have many different interests and those interests tend to change over time and even by time of day. One person might really like cat pictures while another person prefers literary posts.

Facebook could, in theory, create algorithms that optimize your feed for the content that you’re most likely to enjoy, or the content that will be most intellectually stimulating or emotionally enriching. But that’s not what Facebook did. What Facebook did was create an algorithm that shows you content that makes you more likely to engage. They want your eyeballs and your clicks and their algorithms are good at getting those. Inadvertently, the state-of-the-art machine learning systems that Facebook created figured out that the easiest way to accurately predict what a user will engage with is to lead them down a path towards radicalization.

Facebook’s algorithms are smart enough to figure out that the most direct route to consistently and predictably capturing your attention is to systematically twist you into a hate-filled, radical, extremist and its engineers were either too greedy or too oblivious to keep those algorithms from pursuing that goal with a superhuman (supervillain?) level of single-mindedness and effectiveness.

Facebook didn’t set out to turn us all into monsters, its just that monsters are easier to predict and monetize than balanced human beings and Facebook’s engineers are better at figuring out how to make money than they are at understanding the broader implications of their actions.

It’s time we force them to start to respecify the cost functions (goals) that they use to train their algorithms to account for the immense antisocial side-effects that have been almost completely ignored up to this point.

I’m thrilled to see the massive advertiser boycotts that are taking place right now, but we need to demand more than just slapping warning labels on Trump’s social posts. We need to demand that they fundamentally redesign the process of determining how to prioritize content on people’s feeds.

Previous
Previous

The Father and the Son

Next
Next

Overkill