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

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

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

  1. Задавайте короткие, но актуальные вопросы пользователю в своем приложении или на портале. Используйте их для создания профиля пользователя и обеспечения персонализации.
  2. Захватите местоположение пользователя, данные устройства и другие данные контекста в вашем приложении или портале и добавьте их в профиль пользователя.
  3. Захватывайте поведение пользователей в приложении и возвращайте его в свой механизм персонализации, чтобы обогатить исходный профиль.
  4. Используйте механизм правил, чтобы связать различные значения профиля, их вес и классифицировать пользователей на основе выходных данных механизма правил.
  5. Используйте регулярные выражения и справочные словари, чтобы интерпретировать свободный текст для понимания естественного языка.
  6. Используйте гибридный подход для интерпретации текста: некоторые библиотеки обработки естественного языка, такие как Stanford NLP, предоставляют теги части речи (POS) и распознавания именованных сущностей (NER), которые вы можете использовать в регулярных выражениях вместе с текстом для обеспечения расширенной интерпретации текста.
  7. Сузьте интерпретацию неструктурированных данных на основе других связанных структурированных данных.
  8. Пометить данные на основе правил или регулярных выражений.
  9. Обеспечьте ручной просмотр тегов или метаданных, извлеченных из неструктурированных данных, и способы их исправления. Это можно сделать с помощью внутреннего портала, который позволяет рецензентам легко и быстро проверять неструктурированные данные и вносить исправления. Существуют также сторонние сервисы, такие как Amazon Mechanical Turk, которые можно использовать для дополнения и исправления метаданных с использованием человеческого интеллекта.
  10. Предоставьте пользователям возможность вручную пометить данные на вашем внутреннем портале администрирования.
  11. Используйте средневзвешенное значение атрибутов. Изначально у вас есть структурированные данные и метаданные, извлеченные из неструктурированных данных. Невозможно использовать разработку функций для выбора важных атрибутов в данных из-за начального отсутствия большого количества данных. В таких случаях веса могут быть присвоены различным атрибутам на основе человеческих знаний, а окончательное прогнозируемое значение может быть рассчитано как средневзвешенное значение этих атрибутов.
  12. Используйте указанные выше данные для обучения моделей машинного обучения.
  13. Используйте данные, полученные с помощью ваших продуктов на рынке.
  14. Собирайте релевантные данные из источников в Интернете и используйте их для обучения моделей машинного обучения.
  15. Создавайте синтетические данные программно и используйте их для обучения моделей: общий успех этого метода зависит от того, насколько близко вы можете сгенерировать синтетические данные к реальным данным со всеми случайностями и распределениями, и его следует выбирать тщательно.
  16. Появляются новые облачные сервисы с готовыми вертикальными моделями машинного обучения искусственного интеллекта, к которым можно получить доступ через API. Это может быть первым шагом на пути к внедрению машинного обучения в ваш продукт.
  17. Используйте API машинного обучения от облачных провайдеров со встроенными моделями. Для обработки речи и текста вы можете использовать Amazon - Lex, Transcribe, Polly, Comprehed, Translate или Google - DialogFlow, Cloud Natural Language API, Cloud Speech API, Cloud Translation API или Microsoft Speech and Language API. Для обработки видео и изображений вы можете использовать Amazon Rekognition, Google Vision, Microsoft Azure Image и API обработки видео или Google Cloud Vision API.
  18. Пользовательские сервисы MLaaS, такие как Amazon SageMaker, Microsoft Azure Machine Learning Studio, Google Cloud Machine Learning Engine, IBM Watson Machine Learning Studio.
  19. Если вы хотите разработать стек с нуля, выберите технологический стек, такой как Apache Spark, Flink, который предоставляет библиотеки для масштабного запуска алгоритмов машинного обучения: вы можете изначально запускать механизм правил или процедурные программы в масштабе в рамках этих фреймворков до тех пор, пока не будет собрано достаточно данных для обучения моделей машинного обучения. . Затем вы можете внедрить алгоритмы машинного обучения в тех же рамках, не выбирая другой стек.
  20. Убедитесь, что с самого начала собраны все необработанные данные. Когда у вас будет достаточно данных, используйте их для обучения контролируемых моделей обучения, и вы уже на пути к использованию алгоритмов машинного обучения в своем продукте.

Какие еще методы вы использовали в своих продуктах на ранних этапах без доступа к большим объемам данных для персонализации или понимания естественного языка?