🤖 Личное мнение о том, что означает MVP для продуктов машинного обучения…

Автор Дэт Тран (руководитель отдела искусственного интеллекта @ Axel Springer AI)

Пару месяцев назад я ушел из Pivotal, чтобы присоединиться к idealo.de (ведущему веб-сайту сравнения цен в Европе и одному из крупнейших порталов на немецком рынке электронной коммерции), чтобы помочь им интегрировать машинное обучение (ML) в свои продукты. Помимо обычных задач, таких как создание команды по анализу данных, настройка инфраструктуры и многие другие административные вещи, мне нужно было определить дорожную карту продукта на базе машинного обучения. С этим также было связано определение минимально жизнеспособного продукта (MVP) для продуктов машинного обучения. Однако я часто сталкиваюсь с вопросом здесь, в Idealo, а также в свое время в Pivotal: что на самом деле означает хороший MVP? В этой статье я расскажу о различных аспектах хорошего MVP для продуктов машинного обучения, опираясь на накопленный опыт.

Что такое MVP?

В Pivotal Labs я познакомился с принципом бережливого стартапа, популяризированным Эриком Рисом. В настоящее время бережливый стартап — это, по сути, современная методология разработки продукта. Его основная идея заключается в том, что, итеративно создавая продукты или услуги, постоянно интегрируя отзывы клиентов, вы можете снизить риск того, что продукт / услуга не сработает (создание-измерение-обучение).

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

По сути, мы начинаем с наименьших усилий, чтобы проверить идею. В данном случае мы просто берем два колеса и доску. Затем мы выпускаем это на рынок и получаем отзывы, чтобы постоянно улучшать наш продукт, добавляя к нему больше сложности. В этом случае мы получили автомобиль, который интегрирует отзывы потребителей. Известный пример — Airbnb. В 2007 году Брайан Чески и Джо Геббиа хотели начать собственный бизнес, но не могли позволить себе арендную плату в Сан-Франциско. В то же время в городе проходила конференция по дизайну. Они решили сдать свое место в аренду участникам конференции, которые не нашли гостиницу поблизости. Что они сделали, так это сфотографировали свою квартиру, разместили ее в Интернете на простом веб-сайте (см. Изображение ниже), и вскоре у них было три платных гостя на время конференции. Этот небольшой тест дал им ценную информацию о том, что люди будут готовы платить за проживание в чужом доме, а не в отеле, и что запишутся не только недавние выпускники колледжей. После этого они запустили Airbnb, а остальное уже история (если вы хотите прочитать больше успешных историй MVP, перейдите по этой ссылке).

В отличие от этого, другой подход заключается в создании автомобиля один за другим, от колес до шасси, без единой отправки. Однако такой подход очень затратен. В конце концов, мы можем отправить продукт, который не нужен покупателю. Например, возьмем Juicero в качестве примера. Они привлекли 120 миллионов долларов от инвесторов для создания хорошо спроектированной машины для отжима сока, которую они выпустили после некоторого времени разработки по очень высокой цене (первоначально она была первоначально оценена в 699 долларов, а затем снижена до 399 долларов). Вместе с автоматом можно было купить пакеты для сока с сырыми фруктами и овощами по цене 5–7 долларов. Возможно, некоторые из вас знают, что компания уже закрылась, потому что не понимала, что вам на самом деле не нужна дорогостоящая машина для отжима сока, чтобы выжимать соки из пакетов. Они действительно не понимали своих клиентов. Простое исследование пользователей помогло бы им понять, что вам не нужна дорогая машина, чтобы выжимать пакеты сока, но двух здоровых рук было бы достаточно.

Как концепция MVP связана с продуктами машинного обучения?

Концепция MVP также может быть применена к машинному обучению, потому что, в конце концов, машинное обучение также является частью общего продукта или самого конечного продукта. С точки зрения этого, есть три важных аспекта, которые я считаю важными:

1. Минимально жизнеспособная модель

Одной из важных частей продукта ML является само моделирование. Предположим, у нас есть проблема классификации, когда мы хотим классифицировать некоторые данные по заранее определенным категориям, таким как хот-дог против не-ходога!

Возможным подходом к решению этой проблемы классификации было бы использование нейронной сети с одним скрытым слоем. Затем мы обучим и оценим модель. Затем, в зависимости от результатов, мы можем продолжать улучшать нашу модель. Затем мы добавим еще один скрытый слой, а затем снова проделаем то же упражнение по моделированию. Затем, в зависимости от результатов, мы можем добавлять все больше и больше скрытых слоев. Этот подход довольно прост и на самом деле является лучшим решением для решения проблемы «хот-дог против отсутствия хот-дога», потому что не требуется разработка признаков (по сути, мы можем взять исходное изображение в качестве входных данных). Однако для большинства существующих проблем классификации, если только они не являются специализированными проблемами, подобными тем, с которыми мы сталкиваемся в компьютерном зрении или понимании естественного языка, это не лучший способ решения такого рода задач. Основным недостатком глубокого обучения, как правило, является его интерпретируемость. Как правило, трудно интерпретировать результаты нейронной сети в зависимости от того, какую сеть вы используете. Кроме того, вы тратите огромное количество времени на настройку параметров нейронной сети, где выигрыш в производительности модели незначителен.

Начните с простого и установите базовый уровень…

Более разумный подход к большинству задач классификации — начать с линейной модели, такой как логистическая регрессия. Хотя во многих реальных приложениях предположение о линейности нереалистично, логистическая регрессия работает довольно хорошо и служит хорошим эталоном, также известным как базовая модель. Его основными преимуществами также являются интерпретируемость, и вы получаете условные вероятности бесплатно, что очень удобно во многих случаях.

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

2. Минимально жизнеспособная платформа

За время работы в Pivotal Labs я работал над множеством проектов, чтобы помочь компаниям из списка Fortune 500 начать работу с данными. Их объединяет то, что многие из этих проектов начинались с огромных инвестиций в их инфраструктуру. Они тратят много денег на покупку платформ больших данных, так называемых «озер данных». Затем, купив их, они начали загружать данные в свои озера данных, даже не задумываясь о возможных вариантах использования. Затем они услышали о чем-то под названием Apache Spark и добавили это в слой. Теперь, когда ИИ стал следующим большим событием, они также начали покупать графические процессоры и ставить поверх них фреймворки глубокого обучения, такие как TensorFlow. Звучит здорово, иметь все (крутые) инструменты в одном месте? Однако самая большая проблема заключалась в том, что после помещения всех данных в их озеро данных данные просто не подходили для варианта использования. Либо они не собирали нужных данных, либо их просто не существовало, которые могли бы поддержать потенциальный вариант использования.

Используйте облако для запуска ваших инициатив в области «данных»…

Более разумным подходом было бы не думать об аппаратном/программном обеспечении, а сначала решить проблему. При таком подходе они могут заранее понять, какие данные необходимы для решения проблемы, а также могут противодействовать любой ошибке данных. Помимо этого, есть много проблем с машинным обучением, которые я видел до сих пор, которые все еще можно реально решить на локальной машине. Им действительно не нужно делать эти огромные инвестиции в свою инфраструктуру. И в случае, если данные действительно большие, они могут использовать облачных провайдеров, таких как AWS или Google Cloud, где они могут очень легко развернуть кластер Spark. И если у них есть проблема с глубоким обучением, вариантов тоже будет много. Либо они могут использовать уже упомянутых облачных провайдеров, либо такие сервисы, как FloydHub, который предлагает им платформу как услуга (PaaS) для обучения и развертывания моделей глубокого обучения в облаке.

3. Минимально жизнеспособный продукт (данные)

Последний момент, о котором я хочу поговорить, — это сам продукт данных. По сути, существует множество примеров информационных продуктов, таких как чат-боты, детекторы спама и многие другие — список длинный (ознакомьтесь с отличной статьей Нила Латиа, чтобы узнать больше о продуктах машинного обучения). Но в данном случае я сосредоточусь на рекомендательных сервисах, так как сейчас работаю в сфере электронной коммерции.

Один из способов начать настройку службы рекомендаций — использовать простые алгоритмы подобия, а затем перейти к методам матричной факторизации. Наконец, мы могли бы также попробовать более сложные модели, включающие методы глубокого обучения (например, глубоко структурированную семантическую модель). Однако такой подход на самом деле не рекомендуется. Рекомендации могут принимать различные формы. Рекомендации, например, данные вашими друзьями, также являются рекомендациями или 100 самых популярных товаров также являются рекомендациями. Не каждый сложный алгоритм, который мы используем, также приведет к успеху, но его необходимо протестировать. На самом деле, не бойтесь запускать свой рекомендательный сервис без машинного обучения.

Сделать правильную вещь…

Таким образом, правильным подходом было бы сначала настроить структуру A/B-тестирования и метрики оценки (например, показатель отказов или рейтинг кликов), а затем начать с простого подхода, такого как лучшие продукты. Затем, после проверки того, что пользователи действительно склонны нажимать на эти рекомендации (иногда им нужно сначала привыкнуть к этому, особенно если это новая функция продукта) и, в конечном итоге, также могут купить эти рекомендуемые товары, мы могли бы попробовать это с помощью более сложных подходов, таких как Методы совместной фильтрации. Например, мы можем создать рекомендацию, основанную на том, что пользователи, купившие этот товар, также заинтересованы в этих товарах, или пользователи, просмотревшие этот товар, также заинтересованы в этих товарах. Разнообразие вариантов безгранично для «пользователей, которые… этот элемент также интересуется этими элементами».

Резюме

В этой статье я поделился своим личным мнением о том, что означает MVP для продуктов машинного обучения. По сути, это просто начать с малого, а затем повторять. Кроме того, чтобы дать более четкое представление о том, что я имею в виду под MVP для продуктов машинного обучения, я обсудил три основных аспекта, которые я считаю критически важными для хорошего продукта данных MVP:

  • минимально жизнеспособная модель,
  • минимально жизнеспособная платформа,
  • и минимально жизнеспособный (данные) продукт.

Надеемся, что в своем следующем проекте по машинному обучению вы также будете помнить об этих трех измерениях. Если вы нашли эту статью полезной, дайте мне пять 👏🏻, чтобы другие тоже могли ее найти и поделиться ею с друзьями. Следите за мной здесь, на Medium (Dat Tran) или в Twitter (@datitran), чтобы быть в курсе моих работ. Спасибо за чтение!

Эта статья изначально была опубликована в idealo Tech Blog.