В данной обзорной статье я рассказываю о своем опыте разработки искусственного интеллекта (воссоздание психики человека), какие результаты достигнуты (базовые когнитивные процессы человека, понимает текст и может задавать уточняющие вопросы), и в каких решениях применима технология на данном этапе развития (ИИ уже готов заменить живых онлайн консультантов и может быть виртуальным ассистентом для программистов).
Понимание в контексте ИИ
Понимание — одна из важных способностей интеллекта. Важность концепции понимания для искусственного интеллекта прослеживается в идеях Алана Тьюринга, Марвина Мински и Рэя Курцвейла.
Согласно Википедии «понимание — это универсальная операция
С практической стороны, реализация понимания в ИИ дает возможности:
— обучать ИИ массивом контента, созданным человеком для человека;
— взаимодействовать с ИИ на естественном языке;
— получать от ИИ выводы, которые основываются на понимание «как у человека» (ответ «42» не всегда то, что нам надо).
Поэтому мы приняли концепцию Понимания, как основную в нашем подходе к разработке ИИ.
Основные подходы к разработке ИИ — «сверху-вниз» и «снизу-вверх»
В разработке ИИ существует два основных подхода. Первый направлен на воспроизведение в компьютере когнитивных способностей человека без обращения к уровню отдельных нейронов. Такой подход называется «сверху-вниз». Второй подход направлен на построение интеллекта от нейронов к общим уровням когнитивных процессов, и называется соответственно «снизу-вверх».
Что касается общих тенденций в разработке ИИ, то сейчас превалирует подход «снизу-вверх». Вероятно математический аппарат, используемый в искусственных нейронных сетях, более понятен ученым, разработчикам, энтузиастам.
Мы используем первый подход — «сверху-вниз». Обычно это направление разработки ИИ осложняется отсутствием общей, более-менее стройной, непротиворечивой и всеобъемлющей теории психических процессов человека.
Я собрал команду для работы над такой теорией в 2003 году, тогда еще для целей не связанных ни с искусственным интеллектом, ни в целом с информационными технологиями. Группа академических и практикующих психологов и психотерапевтов поставила перед собой задачу упорядочить имеющиеся в психологии теоретические концепции и практические методы. Пришлось критически пересмотреть всё имеющееся научное знание по этой тематике. В проекте на различных этапах приняло участие более 30 человек.
К 2008 году мы разработали т.н. модель психики — непротиворечивую концепцию организации психики и процессов в ней. Модель получилась сложной в виду большого количества взаимодействующих элементов, но обнаружился и плюс — она хорошо алгоритмизировалась. Т.е. модель оперирует некоторыми элементами и описывает характер их взаимодействия по понятным математическим законам.
Результаты разработки были опробованы в нескольких продуктовых решениях. В частности мы моделировали поведение интернет пользователей при выборе новостной статьи, при выборе результата из поисковой выдачи, а также распределяли пользователей на группы потребителей разных видов товаров исходя из смоделированных потребностей. В качестве входящих данных для моделирования мы использовали историю посещения сайтов каждым отдельным пользователем. К слову этих данных достаточно, что бы рассчитать около ста характеристик человека, которыми оперирует психолог — экстраверсия, компульсивность и т.д. Пол также является психологической характеристикой, но не для всех стран. Например, для Швеции точность определения составляет максимум 65%, в то время как для стран восточной Европы мы можем определить пол пользователя на основании истории просмотренных страниц с точностью 95%.
Мы хорошо понимаем, какие процессы происходят в психике, у нас есть инструментарий, который позволяет эти процессы исследовать и анализировать. Мы используем феноменологический метод (1). Данный метод позволяет выделять процессы психики, разделять их между собой, наблюдать динамику. Для нас психика не является черным ящиком, в большинстве своем это сложная, но понятная структура.
Также отмечу, что подход нашей команды подразумевает универсальность разрабатываемого ИИ, в отличие от специализированных ИИ, ориентированных на решение однотипных задач.
Хранение и обработка знаний в ИИ
Первая задача, к решению которой мы приступили — разработка семантической сети, для хранения знаний в том виде, в котором они хранятся в психике человека. При этом структура семантической сети должна обеспечить не только хранения данных, но и эффективную работу алгоритмов повторяющих когнитивные и другие процессы.
Вершинами сети являются любые феномены, которые может выделить сознание. Вершины бывают разных видов, например предмет, действие, признак, абстрактное понятие. Примеры вершин — ноутбук, плыть, черный, космос.
Связи между вершинами отражают тип взаимодействия этих феноменов в психике. В выражении «синий мяч» между двумя вершинами «синий» и «мяч» есть характерологическая связь. Связи также могут быть нескольких видов.
В своей работе по формированию структур семантической сети, т.е. по добавлению новых видов вершин и связей мы следуем процессу онтогенеза когнитивных функций человека. Проясним это на примере. До определенного момента «инструментальной» связи между феноменами в психике нет, потому что психика не решает соответствующие задачи — ребенок может стучать лопаткой по игрушке, при этом он не воспринимает лопатку, как инструмент. Через какое то время, подражая увиденному и накапливая знания, у ребенка формируется в психике новый вид связи — инструментальный, ребенок понимает, что лопаткой можно копать. Таким образом психика реагирует на усложнение операций, на увеличение объема данных, и оптимизирует свою работу путем формирования нового вида связи.
Формирование новых видов связи происходит в связи с новым видом деятельности и в связи с появлением новообразований в психике (2) Пример нового вида деятельности — у профессионального дизайнера цвет это не только характеристика, но еще и профессиональный инструмент, что формирует отдельный вид связи. Пример новообразования в психике — абстрактное
В первую очередь мы выделили два этапа в формировании психики — довербальный, когда формируются структуры, для обозначения которых не используются слова (с рождения до 2-х лет), и вербальный, когда в качестве идентификатора используется слово. Разделение на указанные этапы условное, так как в каждом из них также есть свои отдельные периоды формирования структур.
Воспроизведение довербальных структур оказалось достаточно сложной задачей. Мы были вынуждены реконструировать понятия и связи из структур, известных нам по более поздним этапам. Например, удовольствие шестимесячного ребенка еще не содержит дифференцированных переживаний (будь то сексуальное удовольствие, удовольствие от насыщения, удовольствие от близости и т.д.). В проработке довербальных структур мы ограничились теми, которые имеют связи со структурами, формируемыми на последующих этапах. Отметим, что хотя методика формирования довербальных структур для семантической сети у нас отработана, но эта задача требует значительного объема работы психологов. На этом этапе мы выделили 3 вида вершин и 4 вида связей.
Как только слово стало основным идентификатором информации, формировать структуры стало проще. Всегда можно обратиться к первоисточнику — собственно психике, задав вопросы человеку соответствующего возраста. Отметим, что на вербальном этапе психика не ограничивается экстенсивным увеличением количества феноменов. Также появляются новые типы феноменов, например абстрактный, выдуманный и др., что влечет за собой изменение структуры сети.
К настоящему времени есть ряд разработок, стремящихся повторить принцип хранения знаний человеком с помощью семантической сети. Наш метод формирования структуры сети опирается на разработанный нами инструментарий исследования психических (в том числе когнитивных) процессов. Мы вносили в структуру сети только то, что фактически имеется в психике соответствующего возраста. В результате семантическая сеть, воссоздающая когнитивную структуру психики семилетнего ребенка содержит 17 видов вершин и 15 видов связи. К этому возрасту у человека большинство видов связи уже сформировано.
В процессе создания семантической сети мы выявили несколько интересных особенностей:
1. Семантическая сеть имеет некие фокусы — элементы, задающие неравномерность распределения связей. Вокруг них ориентировано большинство цепочек из этих связей. Это потребности человека.
2. С каждым новообразованием структура знаний перестраивается. Новый возрастной период приносит необходимость значительно изменять структуру связей между элементами.
3. Создавая некую эталонную сеть, мы фиксировали персональные отличия. Эти отличия носят типовой характер. То есть, число инвариантов сильно ограничено и обусловлено индивидуальными особенностями или влиянием среды. Это психологические типы.
Получение новых знаний и формирование ответов на вопросы
Алгоритмы, реализующие операции
Вначале текст обрабатывается парсером, разработанным в Стенфордском университете. Затем мы проверяем наличие соответствующих вершин и связей и при необходимости формируем новые. При формировании ответа или уточняющего вопроса алгоритмы ориентируются на имеющиеся данные в семантической сети. Упрощенно работу алгоритмов можно продемонстрировать следующим примером. Прочитав текст «Белые медведи охотятся на тюленей», ИИ, допустим уже зная каждый из этих феноменов по отдельности, выстраивает в семантической сети специальную связь, которая фиксирует эксклюзивность — именно белые медведи охотятся на тюленей. Получив затем вопрос «Бурые медведи охотятся на тюленей?» ИИ ответит «Нет», потому что в семантической сети не будет структуры, соответствующей всем заданным условиям «Бурый медведь охотится на тюленей».
На первом этапе мы разработали алгоритмы, соответствующие когнитивным процессам трехлетнего ребенка. На базе алгоритмов мы написали программу, которая может понимать очень простой текст и отвечать на несколько видов вопросов, здесь — демо программы. Программа позволила нам настроить связи семантической сети на больших объемах данных и подтвердила прямое соответствие реакции системы и психики живого человека.
В сентябре мы завершили моделирование когнитивных процессов семилетнего ребенка. Пока у нас нет ресурсов запрограммировать всю систему, поэтому временно ограничились семантической сетью и несколькими видами алгоритмов. Если алгоритмы на данном уровне можно обсчитать «вручную», то с семантической сетью так не получиться — она содержит около 10 000 вершин и 40 000 связей. После того, как мы закончим программирование всех алгоритмов, данное решение будет достаточно мощной когнитивной системой для работы с текстовой информацией. Наша система может обеспечить понимание новых знаний, описанных на естественном языке, и оперирование имеющимися на таком же уровне, как у человека соответствующего возраста.
Следующие этапы разработки
Следующий шаг в развитии нашей технологии мы видим в воссоздании абстрактного
Fish is an animal. Fish has elongated body. Fish has flattened body. Fish has head, jaws, gills, tail, silver scales. Fish lives in water. Fish can swim, sleep, eat, feel pain, fear. Fish does not speak. If fish is out of water then it dies. Fish uses gills for breathing. Fish uses fins for swimming. Salmon, trout, shark are fish. Cat, bear, coyote, alligator, seal, pelican hunt fish.
Самостоятельное формирование абстрактных понятий значительно расширит возможности по обучению ИИ и область его использования. Мы уже разработали базовые принципы и в ближайшее время планируем детализировать процессы. Добавление абстрактного
Кроме того мы планируем разработать алгоритмы для самостоятельного формирования искусственным интеллектом новых видов связи. Это придаст пластичности семантической сети и некоторую «автономность» в обучении ИИ от команды экспертов.
Применение технологии ИИ
Разработанное решение способно понимать простой текст, например, большинство статей из Simple English Wikipedia могут быть поняты системой. Также наше решение может отвечать на вопросы, касающиеся имеющихся знаний и задавать уточняющие вопросы если обнаружит противоречие. Из ограничений на данном этапе — тексты и вопросы должны быть построены грамматически верно. Кроме того система должна быть обучена нашими экспертами абстрактным понятиям в новой предметной области. При таком подходе к обучению разработанное решение неотличимо в диалоге от реального человека.
Из особенностей нашего подхода к обучению — нет необходимости в большом объеме обучающих данных. Новым абстрактным понятиям и новым знаниям в определенной предметной области, система обучается однократным прочтением текста.
Воссозданных в нашем ИИ когнитивных процессов уже достаточно для использования в смарт-ботах, текстовой онлайн-поддержке, NPC в играх и т.д. Т.е. в системах, в которых необходима коммуникация в отдельной предметной области на естественном языке. Сейчас ответы в подобных решениях формируются живыми операторами или скриптами. Наша система формирует ответ из имеющихся знаний так же, как это делает человек.
Мы можем добавить отдельные виды когнитивных алгоритмов и обучить соответствующей предметной области, что бы ИИ мог выполнять, например, задания по программированию начального уровня. Речь идет о виртуальном помощнике, который возьмет на себя часть рутинных программистских задач — будет понимать задание на естественном языке, анализировать существующий код, писать новый. В первую очередь речь идет об алгоритмических задачах с хорошей постановкой и с невысокой долей неопределенности.
Собственных ресурсов уже не хватает, поэтому рассматриваем партнерство с другими компаниями. Мы можем полностью обеспечивать технологическую часть для продуктов или платформ, а со стороны партнеров ожидаем увидеть продуктовую экспертизу и ресурсы для реализации в коде. Также команда будет рада разработчикам, которым близки изложенные в статье идеи.
В комментариях, пожалуйста, напишите о каких аспектах технологии вы хотели бы узнать больше, в следующих статьях я постараюсь это учесть.
1. Гуссерль Э. Логические исследования./ Пер. с нем. Э. А. Бернштейна под ред. С. Л. Франка. Новая редакция Р. А. Громова. — М.: Академический проект, 2011.
2. Пиаже Ж. Речь и
Автор: InFortis