[Кросс-пост из ответа Quora, который я написал здесь.]

Одной из самых полезных функций Foursquare является возможность отправлять вам нужные уведомления в нужное время, будь то посещение нового ресторана, прибытие в город или встреча со старыми друзьями в соседнем баре:

Мы очень гордимся тем, что наша технология определения местоположения (также известная как Пилигрим) является лучшей в отрасли и позволяет нам отправлять релевантные, высокоточные контекстные уведомления.

Пилигрим — это на самом деле не одна технология, а их совокупность, в том числе:

  • База данных Foursquare (7 миллиардов чекинов в 80 миллионах мест по всему миру)
  • Обнаружение остановки (человек остановился в каком-то месте или человек только что остановился на светофоре?)
  • «Привязка к месту» (учитывая широту/долготу, Wi-Fi и другие показания датчиков, в каком месте находится человек?)
  • Управление питанием на стороне клиента (сделайте все это, не разряжая батарею!)
  • Подбор контента (учитывая, что кто-то остановился в интересном месте, что вам прислать?)
  • Знакомство (был ли человек здесь раньше? Он был по соседству? Или это их первый раз?)
  • (и многое другое…)

О каждом из них можно было бы написать целый пост, но, пожалуй, самая интересная технология — «привязка к месту». Это отличный пример того, как наш уникальный набор данных и увлеченные пользователи позволяют нам делать то, что никто другой не может.

У нас есть эти удивительные маленькие компьютеры, которые мы носим в карманах, но они не видят мир так, как мы с вами. Вместо глаз и ушей у них есть GPS, часы, Wi-Fi, Bluetooth и другие датчики. Наша проблема, таким образом, состоит в том, чтобы снять показания с этих датчиков и выяснить, в каком из этих 80 миллионов мест в мире находится этот телефон.

Большинство компаний начинают с базы данных мест, которая выглядит так:

(Это Вашингтон-сквер-парк посередине с несколькими зданиями Нью-Йоркского университета и отличными кофейнями поблизости.)

Для каждого места у них есть широта и долгота. Это здорово, если ваш бизнес дает маршруты проезда или делает карты. Но что, если вы хотите использовать эти булавки, чтобы выяснить, где находится телефон?

Наивно просто поставить эти булавки на карту, нарисовать вокруг них круги и сказать, что человек находится «на месте», если он стоит внутри круга. Некоторые реализации также изменяют размер кругов в зависимости от размера места:

Это хорошо работает для больших мест, таких как парки или Walmarts. Но в густонаселенных районах, таких как города, аэропорты и торговые центры (не говоря уже о многоэтажных зданиях, где места расположены друг над другом), он ломается. Все эти круги пересекаются, и нет хорошего способа отличить места друг от друга.

Так что, если это не сработает, вы можете потратить кучу времени и денег, глядя на спутниковые фотографии и рисуя контуры всех мест на карте:

Это невероятно долго, но возможно. К сожалению, наши телефоны не видят мир так, как его видит спутник. GPS отскакивает от зданий, дает забавные показания и плохую точность. Различные мобильные операционные системы имеют разные карты Wi-Fi и вышек сотовой связи и по-разному переводят их в широту и долготу. А в многоэтажных домах эти полигоны иногда инкапсулируют десятки мест, сложенных вертикально. Мир просто не выглядит для телефона красивыми аккуратными прямоугольниками.

Так что же делает Foursquare? Что ж, наши пользователи просканировали для нас мир и сказали нам более 7 миллиардов раз, где они стоят и как это место называется. Каждый раз, когда они это делают, мы добавляем к нашим моделям немного больше данных о том, как эти места выглядят на наших телефонах в реальном мире. Для наших телефонов мир выглядит так:

Это всего лишь проекция на плоское изображение модели с сотнями размеров, но она дает представление о том, как на самом деле выглядит мир для наших телефонов. Мы используем этот и многие другие сигналы (например, Wi-Fi поблизости, персонализацию, социальные факторы и регистрацию в режиме реального времени), чтобы усилить push-уведомления, которые вы видите, когда исследуете город. Рада, что они вам нравятся!

Заинтересованы в проблемах машинного обучения, поиска и инфраструктуры, которые возникают при ежедневной работе с такими огромными наборами данных? "Присоединяйся к нам"!

Эндрю Хог, Блейк Шоу, Берк Капичиоглу и Стефани Янг