12 апреля 2017

Демократизация ИИ или машинное обучение не для всех

Демократизация ИИ или машинное обучение не для всех

Machine Learning tools evolution

Март-апрель были (и еще будет) богаты на всякого рода встречи российского Azure-сообщества. Это хакатон Breakpoint, по Azure-митапы в Москве и Санкт-Петербурге, конференция Global Azure Bootcamp и DevCon School.

На паре мероприятий мне выпала честь поучаствовать в качестве спикера. Спешу поделиться материалами рассказанного словами и продемонстрированного (как в качестве презентации, так и в качестве демо).

UPD1 [2017-04-20]: добавлены описание и ссылки. UPD2 [2017-04-22]: добавил результаты демо.

Основная идея

Красной нитью в моих докладах идет идея демократизации машинного интеллекта (Democratizing AI) и то, что несмотря на огромное желание и реальную работу, проделанную в направлении демократизации, Data Science все также остается инженерной областью для эльфов 80-го уровня с очень высоким уровнем входа.

Демо

Не обошлось и без демо. На это раз мы «слушали» твиттер по хэштегам соответствующей встречи (например, #GlobalAzure), определяя с помощью машинного обучения тональность сообщения в твите.

Для чего это надо?
  • анализ отношения к бренду;
  • раннее детектирование таких угроз, как рассылка по SMS мошеннических сообщений, направленных на дискредитацию отдельной компании;
  • оптимизация рекламных и маркетинговых акций;
  • выявление региональных представительств/офисов/филиалов, чья работа вызывает у клиентов наибольшие нарекания;
  • event-мониторинг (например, отзывы по проходящей конференции).

Задачу усложнили тем, что мы рассчитываем:

  • получать потенциально большой поток сообщений (например, для задачи предсказания информационных атак через соц. сети на банки);
  • узнавать тональность сообщений в near-real time режиме (онлайн-мониторинг);
  • использовать собственные лингвистические модели / языковые корпуса для обучения моделей машинного обучения (когнитивные предоставляют лингвистические модели без возможности обучить их под специфическую предметную область, язык и стиль написания текста, что не всегда подходит для анализа сообщения в соц. сетях).

В результате в Azure получилась следующая λ-архитектура:

Twitter Semantic Analysis Architecture

Реализация и результат

Разберем как, построим приложение и запустим в облаке twitter-бота уже через 2 дня Global Azure Bootcamp (Москва). Во время доклада в Azure был запущен бот, который слушал поток твитов с хэштегом #GlobalAzure. Далее с помощью лингвистической модели, рассчитанной в Azure ML, мы определяли тональность этих сообщений.

Я, как автор бота, также поучаствовал в его тестировании:

  1. 1. Написал с своем твиттер-эккаунте @code.zombi твит со следующим содержанием:
  2. 2. Через 2.1 сек получил score-бал тональности сообщения от сервиса Azure Machine Learning, который (score-бал) с ближайшей batch-операцией (еще через 50 сек) был сохранены в NoSQL-хранилище Azure Table. Результат ниже:

References

  1. [1] Исходный код на GitHub.
  2. [2] «Twitter Sentiment Detection»-эксперимент в Cortana Intelligence Gallery.
  3. [3] Презентация на docs.com.
  4. [4] Как получить бесплатный доступ в Microsoft Azure и AWS?

Автор статьи

,
DS/ML Preacher, Microsoft MVP && Coffee Addicted