MeA MENtE

Искусственный интеллект ищет друзей


Мы создали лучшего, по нашему мнению, чат-бота, способного имитировать общение с живым человеком. Примите участие в проведении теста Тьюринга и убедитесь в этом.

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

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

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

Cyc

Нейросети не единственный подход к созданию искусственного интеллекта, большое влияние на нас при создании собственной системы оказал Cyc - это проект по созданию объёмной онтологической базы знаний, основанный еще в 1984 году и поддерживаемый до сих пор. База Знаний(англ. Knowledge Base или KB) содержит более миллиона занесённых туда людьми утверждений, правил и общеупотребительных идей. Они формулируются на языке CycL, который основан на исчислении предикатов. Идея создания Cyc родилась, как продолжение SHRDLU - ранней программы понимания естественного языка, разработанная Терри Виноградом в MIT

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

Человек: Подними большой красный блок.
Компьютер: OK.
Человек: Возьми пирамиду.
Компьютер: Я не понимаю, какую пирамиду Вы имеете в виду.
Человек (передумав): Найди блок, который выше того, который ты держишь, и положи его в ящик.
Компьютер: Под «ним», полагаю, вы имели в виду блок, который выше того, что я держу.
Компьютер: OK.
Человек: Что содержится в ящике?
Компьютер: Синяя пирамида и синий блок.
Человек: Чем поддерживается пирамида?
Компьютер: Ящиком.
Человек: Сколько блоков не в ящике?
Компьютер: Четыре.
Человек: Есть ли среди них хотя бы один более узкий, чем тот, что я сказал тебе поднять?
Компьютер: Да, красный куб.
и т. д.

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

(#$genls #$Tree-ThePlant #$Plant)
читается как "Все деревья являются растениями".

Сейчас база знаний содержит 47 000 концепций и 306 000 фактов, и её можно просмотреть на сайте OpenCyc

Однако мы отказались от использования существующей базы знаний и предложили нейронной сети создать свою собственную. Основные принцип нашей системы:

1. Нейронная сеть составляет собственную базу знаний, которую также можно редактировать вручную
2. Каждое слово, написанное пользователем в чате, проходит через распознавания, когда буквы кодируются и создается вектор, позволяющий определить, что имел в виду пользователь, если слово написано с ошибками. Робот получает текст уже без ошибок. В обратную сторону он может так же прогонять слово через эту систему, чтобы иногда допускать опечатки (если есть необходимость казаться человеком.
3. Благодаря собственной базе знаний программа учится не составлять ответы из кусочков ранних диалогов, а оперировать имеющимися в базе понятиями.

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

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

Перейти к тесту

Логи всех тестов