Опыт генерального директора Dine in PyCon JP 2019

PyCon JP 2019 проводится с 16.09.2019 по 17.09.2019 в течение двух дней. Этот пост об одном разговоре на второй день.

Такаси Мориока — генеральный директор приложения для знакомств Dine. Его доклад в основном посвящен его опыту разработки для оптимизации сопоставления. Обработка данных осуществляется в рамках Google Cloud Dataflow (Apache Beam Python SDK), а часть машинного обучения выполняется Cloud ML Engine. Слайды здесь.

Задний план

Цель приложения для знакомств — найти двух пользователей. Основные подходы к сопоставлению имеют два метода: метод поиска и метод рекомендации.

  • Метод поиска: поиск пользователей по их предпочтениям
  • Метод рекомендации: сайт знакомств порекомендует кандидата пользователю.

Такаси Мориока сказал Дайну, что в основном использует метод рекомендаций.

Для решения проблемы стабильного брака Дайн использует алгоритм ГейлаШепли. Но у этого алгоритма есть большая проблема, стоимость вычислений огромна.

Снизить стоимость вычислений

Смотрите, у нас всего N пользователей. Сначала мы вычисляем оценку использования A по сравнению с другими пользователями N-1. Затем мы ранжируем N пользователей и рекомендуем для пользователя A. Время выполнения будет O(N² log N).

Чтобы снизить стоимость вычислений, Дайн разделил пользователей на разные группы (о стандарте разделения спикер не упоминает). Преимущества группировки заключаются в том, что она может уменьшить количество пользователей с N до номеров групп и рассчитать баллы параллельно.

Но все же есть две проблемы.

  • Низкая производительность сопоставления
  • Групповой метод плохо влияет на пользователя меньшинства

Но спикер не упомянул, как решить эти проблемы. В следующем выступлении он в основном говорил о том, как улучшить вычислительную мощность.

Улучшение инфраструктуры

Исходная архитектура системы выглядит следующим образом.

AppEngine выполняет расчет процесса сопоставления. Но расчет по-прежнему тяжел для процессора и памяти экземпляра GAE.

Решить проблему. Dine заменяет GAE на Can Dataflow, который предоставляет SDK для Java и Python.

Пропускная способность системы увеличивается в 10 раз, чем раньше.

Интеграция с таблицей Can AutoML

Одним из преимуществ Dataflow является высокая совместимость с другими службами машинного обучения. Dine использует Cloud AutoML Table для создания функции таблицы из профиля пользователя. И он настроит параметр автоматически. AutoML представлен в первый день Обзор библиотек AutoML, используемых в промышленности.

По результатам теста AB показатель соответствия (f1) увеличивается на 20%. Вот несколько соображений, когда выступающий использует Cloud AutoML Table.

Плюсы:

  • Легко использовать с BigQuery
  • Пакетное прогнозирование и онлайн-прогнозирование очень просты в развертывании.

Минусы:

  • Не могу скачать модель
  • Не знаю архитектуру модели

Посмотрите другие мои публикации на Medium с категоризированным просмотром!
GitHub: BrambleXu
LinkedIn: Xu Liang
Блог: BrambleXu

Ссылка