Опыт генерального директора 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