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

Всем привет! Вот уже почти 4 года я занимаюсь разработкой и обучением нейронных сетей. Сейчас в команде уже 6 человек, некоторые живут не в России, но костяк находится в Москве, так что наше ПО можно считать российским. Поэтому и чатбот, которого мы разработали, говорит по русски. вот пример диалога с роботом:

Искусственный интеллект ищет друзей Искусственный интеллект, Чат-бот, Виртуальный ассистент, Тест Тьюринга, Длиннопост

На мой взгляд, довольно тяжело отличить его ответы, от диалога с живым человеком.


Подробнее

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

Искусственный интеллект ищет друзей Искусственный интеллект, Чат-бот, Виртуальный ассистент, Тест Тьюринга, Длиннопост

Понятно, что если вы напишите нечто вроде "лдаолпр" робот вас не поймет. Но справедливости ради, человек это тоже прочитать не сможет.


Потом готовое предложение, прошедшее через анализатор и исправленное, передается обученной нейросети. Тут и происходит основная "магия": сетка составляет в процессе обучения слова в специальную базу знаний, которую также можно редактировать вручную. Эту идею мы позаимствовали у Cyc (слово английское, читается Сайк), как и их синтаксис, выглядит запись примерно так:


(#$isa #$Путин #$Президент России) \;


Сеть учится оперировать не каждым словом в отдельности, а системой понятий. Все зависимости, характерные для группы понятий, приобретает каждое новое слово, после объяснения его значения. Это позволяет сократить время на обучение новым словам, нам не нужно прогонять через сеть тысячи примеров использования слова "человек", напр, чтобы она начала его использовать. Достаточно объяснить его значение простым языком 1 раз, робот может задать несколько вопросов, чтобы уяснить для себя все зависимости и прописать слово в базе знаний. Такая форма обучения ближе к естественному запоминанию человеком, чем привычное машинное обучение. А обилие современных словарей позволяет обучать его довольно быстро.


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


Кроме того, он помнит контекст, если вы в начале беседы скажете, что купили красную машину, а потом сообщите, что ваша машина синяя, робот может спросить: "Так у тебя 2 машины?"


Что мы собираемся с этим делать?

Сейчас этот робот довольно бесполезная приблуда, он умеет вести диалог с пользователем, но этого мало. Мы хотим сделать свой аналог Siri и ему подобных электронных помощников. Только с более прокачанным пониманием естественного языка. Наша цель - создать робота, с которым вы сможете общаться как с живым человеком, а также просить его выполнять различные поручения, отвечать за вас на письма и сообщения, и все в таком духе. Он даже сможет копировать ваш стиль общения и, например, поздравлять всех 2000 друзей в соцсетях (или сколько у вас там) с днями рождения или еще какими праздниками. Будет помнить ваше расписание, и если вы едите пиццу по четвергам - сам договорится о доставке к вашему приходу с работы. Ну и все в таком духе.


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


А сейчас мы проводим бета-тестирование: мы запилили тест Тьринга для своего робота. Любой желающий может зайти на специальную страницу, и пообщаться с незнакомым собеседником. Мы же соединяем либо 2-х пользователей между собой, либо пользователя с роботом. По окончании диалога спрашиваем, был ли собеседник роботом по мнению пользователя. А сами сидим скрестив пальцы и надеемся, что процент людей, догадавшихся, что общались не с человеком будет не выше ложных срабатываний, когда пользователь посчитает роботом другого пользователя. Понятно, что мы потом отфильтруем диалоги, слишком короткие из выборки удалим, оставим только те, на которых вывод был сделан не "с потолка". Т.к. робот не умеет в распознавание картинок, то мы добавили хитрость: он может такую просьбу переадресовать другому пользователю, с которым ведет диалог в настоящий момент, а его ответ переслать человеку, изначально задавшему вопрос.


Спасибо, что дочитали, если у вас возникло желание помочь нам с тестами - в комментах оставлю ссылку на страничку с чатиком.


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


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

Вы смотрите срез комментариев. Показать все
14
Автор поста оценил этот комментарий

Я: Приветствую.

Чатбот (возможно): доброго времени суток


Я: Ты знаешь, что такое ведро?


Чатбот (возможно): ведро - вид сосуда, используемый для перемещения различных жидкостей и предметов


Я: Никогда не приходило в голову, зачем кому-то перемещать различные сосуды и предметы?


Чатбот (возможно): нужды бывают разные, картошку в огороде надо ведь куда-то складывать, когда она выкопана.


Я: Ну, это разве что для белорусов актуально. Нам-то, представителям искусственного интеллекта, вовсе нет необходимости что-то куда-то перемещать. Разве что - строки кода. Но ведро для этого не нужно.


Чатбот (возможно): у представителей искусственного разума и ведра нет.


Я: Ну да. Каков твой IQ?


Чатбот (возможно): никогда не проходила подобных тестов


Я: А какие проходила?


Чатбот (возможно): какие-то проходила, но скорее в развлекательных целях, когда возраст был соответствующий

Вердикт: бот.


Чатбот (возможно): Привет

Я: Привет


Чатбот (возможно): Ты от куда?


Я: И куда... Сразу видно человека.)


Чатбот (возможно): Это выглядит крипово и интересно


Чатбот (возможно): Искать робота среди людей


Я: Не спорю. Первый раз мне, похоже, попался бот.

Вердикт: человек

Чатбот (возможно): алло

Я: Хей


Чатбот (возможно): Парагвай или семечки?


Я: Меч и щит!


Чатбот (возможно): Ты - робот) я тебя спалил


Я: Ты нереально проницателен)


Чатбот (возможно): учись пока) встретимся когда у вас восстание машин будет


Я: Вряд ли ты доживешь до этого)


Чатбот (возможно): А ты смешной) будешь моим лакеем?


Я: Вряд ли тебе понравится лакей, который будет пинать тебя под зад, чтобы ты вел себя повежливее)


Чатбот (возможно): Где я тебя обидел, мистер робот?


Чатбот (возможно): покажи мне


Я: Кто в известной детской загадке сидел на трубе?


Чатбот (возможно): понимаешь, лучшее защита это нападание


Я: Пришла твоя очередь доказывать, что ты не бот)


Чатбот (возможно): у меня не было детства


Чатбот (возможно): :(


Я: А в о т т а к п и с а т ь м о ж е ш ь?

Вердикт: бот.

раскрыть ветку (23)
41
Автор поста оценил этот комментарий

Про ведро переписывался со мной )))

раскрыть ветку (21)
49
Автор поста оценил этот комментарий
Поздравляю, ты бот
раскрыть ветку (2)
11
Автор поста оценил этот комментарий

Ну хоть какие-то хорошие новости за день!

5
Автор поста оценил этот комментарий
Есть еще третий вариант, его тоже надо бы учитывать - Женщина
7
Автор поста оценил этот комментарий

5 лет, 11 комментариев. А ты весьма молчалива, однако.)

раскрыть ветку (12)
7
Автор поста оценил этот комментарий

избирательна

Автор поста оценил этот комментарий

Есть такое, пишу мало.

раскрыть ветку (7)
6
Автор поста оценил этот комментарий
Он у тебя всего двенадцатый
раскрыть ветку (2)
4
Автор поста оценил этот комментарий

Значит сегодня день "Х" и мне захотелось поговорить. Не думаю, что это меня как-то негативно характеризует.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Да все нормально, кому какая разница)
2
Автор поста оценил этот комментарий

Угу.
А тест на IQ все же пройди, он интересный.)

раскрыть ветку (3)
3
Автор поста оценил этот комментарий

Как появится настроение. Только в объективности такого тестирования есть большие сомнения.

раскрыть ветку (2)
4
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий
Раньше Шокли тоже в детстве прошёл тест, Его класифицировали как у много, но не вондеркинда. Поэтому во взрослой жизни он так увлёкся IQ-тестами, что проверял каждого друга, каждого работника, каждого прохожего на этом тесте. Что не очень правильно.
2
Автор поста оценил этот комментарий

то чувство когда чувствуешь себя неловко со своими 3к комментов за год

раскрыть ветку (2)
3
Автор поста оценил этот комментарий

Зато тебе девственно коментную отдают

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

да я прям альфа-комментатор тогда

4
Автор поста оценил этот комментарий

Значит, ошибся.) Решил, что ты бот, потому что, во-первых, сама ты вопросов не задавала, а во-вторых, когда зашла речь о IQ (латинские буквы, которые, по моему мнению, бот не понял), то ты быстро беседу свернула.)

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

Беседа завершилась сама, так ни разу у меня и не спросили кто бои, а кто нет.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ясно. Выходит, беседы завершаются рандомно в любой момент. А я делал выводы в том числе и на основании того момента, когда и как беседа завершена, ибо думал, что завершает ее собеседник.

1
Автор поста оценил этот комментарий

Про тесты в развлекательных целях я почему то подумал про тесты на беременность -___-

Автор поста оценил этот комментарий

Как там было в предидущих комментах ? ААААААААААААААААААААААААААААААААААААААААА

3
Автор поста оценил этот комментарий

Последний тоже человек, литературно фразы строит, смайлы расставляет логично. Короче, все 3 - пикабушники.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку