Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Машинное обучение в Yandex.Taxi

5d08ba0cd07942f2ddbf82e5b21ba5e7?s=47 FunCorp
February 11, 2019
3.3k

Машинное обучение в Yandex.Taxi

«Машинное обучение в Yandex.Taxi», Роман Халкечев, Yandex.Taxi

О докладе

В докладе пойдёт речь про устройство Яндекс.Такси.

Будет подробный рассказ:
- про задачи, которые мы решаем с помощью анализа данных и технологий машинного обучения
- про наш конвейер разработки, тестирования и запуска в продакшн моделей машинного обучения
- пройдёмся по всем этапам: от экспериментов в Jupyter Notebook до полноценного ML-продакшна.

5d08ba0cd07942f2ddbf82e5b21ba5e7?s=128

FunCorp

February 11, 2019
Tweet

Transcript

  1. None
  2. Машинное обучение в Яндекс.Такси Руководитель службы машинного обучения и анализа

    данных Роман Халкечев @mrromario romario@yandex-team.ru
  3. Содержание 3 Общая информация Роль ML в Яндекс.Такси Примеры ML

    проектов Разбор конкретного кейса ML инфраструктура
  4. Общая информация

  5. 5 Общая информация Приложение «Яндекс.Такси» Приложение «Таксометр» Софт для партнеров

  6. 6 Общая информация 16 стран 900 городов 62 млн. поездок

    в месяц 206 млн. долларов суммарная стоимость поездок
  7. None
  8. Роль ML в Яндекс.Такси

  9. Наша миссия 9 На основании данных и машинного обучения Развивать

    сервис Оптимизировать бизнес
  10. 10 Развитие сервиса Приложение для пользователя Приложение для водителя Платформа

    Наша миссия
  11. 11 Оптимизация бизнеса Поддержка Маркетинг Антифрод Контроль качества … Наша

    миссия
  12. Примеры ML проектов

  13. Примеры ML проектов Развитие сервиса

  14. 14 Пример 1: Время ожидания Проблемы Непредсказуемость Сложность выбора Частые

    отмены Решение Предсказание времени ожидания автомобиля
  15. 15 Пример 1: Время ожидания Но что такое «время ожидания

    автомобиля»? Какого автомобиля? Какое время? Как измерять качество?
  16. 16 Пример 1: Время ожидания Данные Про текущее время и

    место Про пользователей и водителей в окрестности Про дорожное состояние
  17. 17 Проблемы Незнакомая локация Много людей и машин Неудобное место

    для заезда и остановки Неудобное место для посадки Пример 2: Выбор точки А
  18. 18 Решение Рекомендации удобных точек посадки Пример 2: Выбор точки

    А
  19. 19 Решение Рекомендации удобных точек посадки Критерии удобства Время подачи

    автомобиля Время ожидания Используемость Пример 2: Выбор точки А
  20. 20

  21. 21 Пример 2: Выбор точки А

  22. 22 Помимо удобства посадки пользователю важны: Цена Время ожидания автомобиля

    Время поездки … Пример 2: Выбор точки А
  23. 23 Пример 3: Выбор точки Б Проблемы Ввод адреса Невозможность

    в один клик сделать заказ Решение Предсказание места назначения
  24. 24 Пример 3: Выбор точки Б Проблемы Ввод адреса Невозможность

    в один клик сделать заказ Решение Предсказание места назначения
  25. Жизненный цикл водителя Такси 25 Пример 4: Оптимизация эффективности платформы

  26. Жизненный цикл водителя Такси 26 Ожидание заказа Пример 4: Оптимизация

    эффективности платформы
  27. Жизненный цикл водителя Такси 27 Ожидание заказа Путь к пассажиру

    Пример 4: Оптимизация эффективности платформы
  28. Жизненный цикл водителя Такси 28 Ожидание заказа Путь к пассажиру

    Ожидание пассажира Пример 4: Оптимизация эффективности платформы
  29. Жизненный цикл водителя Такси 29 Ожидание заказа Путь к пассажиру

    Ожидание пассажира Выполнение заказа Пример 4: Оптимизация эффективности платформы
  30. Жизненный цикл водителя Такси 30 Ожидание заказа Путь к пассажиру

    Ожидание пассажира Выполнение заказа min max Пример 4: Оптимизация эффективности платформы
  31. Как увеличить эффективность? Распределение заказов Построение маршрутов Перемещение водителей Балансировка

    спроса и предложения … 31 5 минут 7 минут Большая плотность Маленькая плотность Пример 4: Оптимизация эффективности платформы
  32. Примеры ML проектов Оптимизация бизнеса

  33. 33 Оптимизация бизнеса Успешные поездки

  34. Соц. сети Приложение Сайт ML ML Read only? Отвечаем Urgent?

    ML Read only? ML Autoreply? Отвечаем Отвечаем Suggest 34 Пример 1: Автоматизация поддержки
  35. 35 Пример 1: Автоматизация поддержки Примеры проектов Read only Urgent

    Suggest Autoreply Ranking Tagging Anomaly detection …
  36. 36 Пример 2: Автоматизация ДКК

  37. 37 Пример 2: Автоматизация ДКК

  38. 38 Пример 2: Автоматизация ДКК

  39. 39 Пример 2: Автоматизация ДКК

  40. 40 Пример 2: Автоматизация ДКК

  41. 41 Пример 3: Предсказание оттока Отток — снижение активности в

    сервисе Реактивация / Прогноз показателей бизнеса / …
  42. ML инфраструктура

  43. Офлайн: подготовка данных

  44. Подготовка модели Подготовка обучающей выборки 44 Препроцессинг данных Расчет факторов

    Обучение Валидация Загрузка в облако Офлайн: подготовка данных
  45. 45 Офлайн: подготовка данных Инструменты обработки данных: Python (NumPy, Pandas,

    Scikit-learn, …) YT + Nile Nirvana + Hitman
  46. 46 Офлайн: подготовка данных

  47. 47 Офлайн: подготовка данных

  48. Онлайн: использование моделей

  49. 49 Онлайн: использование моделей Taximeter Backend Yandex.Taxi Backend … …

    … … ML as a Service
  50. 50 Онлайн: использование моделей Про MLaaS: Сервис на базе C++

    Fastcgi Daemon Умеет работать с ML моделями: применять, хранить и обновлять Каждой функциональности соответствует handler с логикой извлечения признаков и применения модели Умеет ходить в другие сервисы за данными
  51. ML as a Service Онлайн: использование моделей Request Handler<Model Factory>

  52. ML as a Service Онлайн: использование моделей Request Model Data

    AsyncPool Model Factory Load() Handler<Model Factory> Cloud with models data
  53. ML as a Service Онлайн: использование моделей Request Model Data

    AsyncPool Model Factory Load() Handler<Model Factory> Cloud with models data Model ExtractFeatures() Apply() CreateModel()
  54. Handler<Model Factory> ML as a Service Онлайн: использование моделей Request

    Model Factory Model Model Data ExtractFeatures() Apply() CreateModel() AsyncPool Load() External data Cloud with models data GetData() Handler<Model Factory>
  55. Handler<Model Factory> ML as a Service External data Handler<Model Factory>

    Онлайн: использование моделей Request Response Model Factory Model Model Data ExtractFeatures() Apply() CreateModel() GenerateReply() AsyncPool Load() Cloud with models data GetData()
  56. Прототипы и АБ-эксперименты

  57. 57 Прототипы и АБ-эксперименты Taximeter Backend Yandex.Taxi Backend … …

    … … ML as a Service
  58. 58 Прототипы и АБ-эксперименты Taximeter Backend Yandex.Taxi Backend … …

    … … ML as a Service PyML as a Service
  59. 59 Онлайн: использование моделей Про PyMLaaS: Аналог MLaaS на Python

    + Flask + Nginx + Gunicorn Есть возможность проксировать часть нагрузки на уровне Nginx Для быстрых прототипов и экспериментов Для задач без серьезных требований по нагрузке и производительности
  60. Вопросы? Руководитель службы машинного обучения и анализа данных Роман Халкечев

    @mrromario romario@yandex-team.ru