Чат-боты. Часть первая

Я несколько лет занимался ботоводством в контактике и как-нибудь напишу об этом отдельно. Мои боты умели общаться с другими пользователями, но имели два существенных минуса: не умели поддерживать контекст беседы и не имели склонности к самостоятельному обучению. Мне же хотелось большего - чтобы, например, можно было загрузить книгу Дюма и мои боты начали бы общаться как д'Артаньян, тысяча чертей, сударь, защищайтесь! И еще, чтобы бот, если не знает ответ, мог бы заглянуть в википедию, на сайт погоды, куда угодно в интернете и самообучиться там. У этой проблемы есть как минимум два решения:

1. Разобраться как работают машинное обучение и нейронные сети и написать своё с блэк джеком и соответствующими особами.
2. Использовать готовые решения, благо к текущему моменту только ленивый не запилил решения для чат-бота, работающее из коробки и по умолчанию работающее с кучей мессенджеров, соц сетей и веб-форм на сайт.
Разумеется, как настоящий инженер, я выбрал путь номер один, лекции яндекса и мфти, и даже успел испытать радость, когда наконец-то понял, для чего полтора года в институте я изучал линейную алгебру. Впрочем, радость быстро закончилась и я начал засыпать на лекциях.
А недавно Microsoft приходил в гости и рассказал про машинное обучение, бесплатный доступ и я решился. Завел тот самый пробный и бесплатный аккаунт на azure. Бесстрашно сообщил данные кредитной карты. И запилил первого бота. Который умеет отвечать на вопросы по шаблонам. То есть спору нет, за час можно запустить бота, который будет подключен к скайпу, bing, web и что там еще у майкрософта в приоритете. Но из коробки он умеет только обращаться в базу за ответами.

 

Разные английские видосы показывают, что azure bot умеет поддерживать контекст, определять, что нужно пользователю и даже отличать машины от котиков. Искать эмоции людей на фотографиях, распознавать голос, видео и кучу всего. Но нигде, черт побери, нет описания, как запустить этот искусственный интеллект, который (sic!) умеет самообучаться и поддерживать контекст. (Небольшая ремарка - так как я чайник в этих ваших высоких технологиях, я и пишу по рабоче-крестьянски, как думаю и понимаю, поэтому не обессудьте). Возможно, это можно реализовать там же в azure на питоне или R - для этого надо какой-то из них изучить, что не добавляет оптимизма.

Но как сказано: "Ищущий да обрящет!" И я набрел на хабро-статью 8 инструментов для создания личного или делового чат бота. И вот они восемь платформ для создания ботов:

  1. Morph.ai
  2. Flow XO
  3. Botsify
  4. API.AI
  5. Motion.ai
  6. Chatfuel
  7. Manybot
  8. Recast

Решил, что попробую создать бота и написать что получилось и у кого есть решение, умное из коробки.
На текущий момент попробовал Chatfuel.
Они пишут про AI, что вроде бы намекает на искусственный интеллект. На самом деле разворачивается бот в facebook messenger за считанные минуты, но он такой же болванчик, как и мои, домашнего производства. Про AI есть абзац в хелпе:
"The AI will help your bot understand the chat messages your users send. For example some users might send a greeting like “Hi”, “Hello” or similar, if you did not set up your bot’s AI it would send the main menu because your bot does not understand the user’s input. Sending the main menu might make sense if the user sent a greeting, but now imagine the user sent “Bye”.

A very useful thing you can do with the AI is to make it understand messages like “What do you have on your lunch menu?” and redirect users to the lunch menu block of your bot immediately without them having to manoeuvre to it using the buttons first."
Если коротко, то там написано, что вы можете написать паттерны, а бот сумеет выдернуть эти паттерны из незнакомого текста и сможет ответить одним из предопределенных вами шаблонов.

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

Нейронные сети, «вредные» советы

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

Подробнее...

Семинар по глубокому обучению или как стать Data Scientist’ом

Отличная лекция на 40 минут о нейронных сетях, распознавании и синтезе. Потом практическая часть на питоне, но подозреваю, что предварительно нужно пройти курсы по питону и как работать с tensorflow.

Нейронные сети: практическое применение

Отличное выступление Натальи Ефремовой на конференции HighLoad++ в 2016 году. Ролик - введение в нейронные сети, какие бывают и где используются. В процессе рассказывает про приложение FindFace. Как не трудно догадаться - про распознавание лиц. Сразу себе поставил и полдня бегал фоткал коллег и распознавал их вконтактике. В конце вопросы-ответы.

Обзор фотоаппарата Canon Powershot S110

 Обзор Canon PowerShot S110

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

Подробнее...