That's a bit more visual and easier to understand. At the end of the day its really just DFS with seen state and selective exploration :)
Doing this in a distributed async job fashion allowed for a lot more flexibility. Even better, we can even change the geographic area as the algorithm runs and those changes are reflected immediately.
Nitpicking here, but that does not follow. Starting from a random user and hopping 5 times in all directions you'd expect to explore about half of the graph.
>If a friend is in the same area then a push notification is sent asking if they are OK.
One thing that I'd like to understand is how "area" is defined. The limiting factor is, of course, finding out something has happened, but someone at Facebook has to draw a border that encompasses everyone at risk but minimizes those out of harm's way. An earthquake is almost easier - there's (relatively) rapid data on the epicenter and size - but in an event and place like Paris, there have got to be some hard calls made in real time. Who are the people and teams involved there, and how do they make those decisions? I'd love to see that.
-- Since we only have city-level location for most users, declaring the area isn't as hard as drawing on a map. We usually just select a number of cities, regions, states, or countries that are affected by the crisis.
-- We always allow people to declare themselves into the crisis (or out) in case our geolocation prediction is inaccurate. This means we can be a bit more selective with the geographic area, since we want to be pretty high signal with our notifications. We actually use notification click-through and conversion rates as downstream signals on how well a launch went.
-- For something like Paris, we actually just selected the whole city and launched. Especially with the media reporting "Paris terror attacks," this seemed like a good fit.
Pretty crazy to think about.
I guess that's great during an earthquake but can be terrible when you're hiding during a terrorist act.
On the other side, the push notification can alert people yet unaware of the situation, and save their life.
I guess we will have to wait until Facebook brilliant AI team can automagically figure when it's pertinent to push that crucial notification!
What kind of context hints could be used? heartbeat rate? analyzing ambient sounds like screams, detonations, explosions, or silence? analyzing surrounding voices to detect emotions like anger, distress, pain or fear in smartphone owner voice or other people? extracting dangerous location from media streams, and correlate with geolocalized users' positions? using other geolocalized users' answers (safe/not safe)?
I'm aware some proposition are not really realistic (yet) or somehow really creepy.
--
Also, back to earthquakes, using context hints of lot of smartphones going from 'still' state to 'tilting' state, in a relatively localized region, could you detect earthquakes occurring quasi real-time? and push a warning notifications to your friends faster than the quake waves? « possible incoming quake in 5 seconds, brace yourself » ( à la https://xkcd.com/723/ )
'Safety Check' is just the end user experience; the underlying mechanism is a way to propagate messages invasively across a geo-social network. Like any technology, 'good' or 'nasty' depends on how it's used.
Even in our best countries FB usage is never 100%, so cellphone / landlines makes a bit more sense.
This is the Wireless Emergency Alert system, which carries Amber Alerts, Alerts about imminent threats to life/safety, and Presidential Alerts. The last (and only the last) can't be disabled in settings, because the legislation requiring support for the capacity required that Presidential alerts not be disabled. (The system is basically the mobile-device equivalent of the broadcast Emergency Alert System.)
We use the same IP2Geo prediction algorithms that Google and other web companies use -- essentially determining city level location based on IP address.
We are OK with Facebook doing this and exploiting the data for monetary and market advantages.
If you notice, the times people really get upset about companies tracking their personal information is if it's either not disclosed or it's done in a shady manner.
Also, capitalist societies tend to treat state actors differently than private corporations. It's much easier to choose a new corporation to interact with and the state tends to have a lot more personal/private data about you (which you're required to share with them).