Разделы
Счетчики
Семантическая нейронная сеть, как формальный язык описания и обработки смысла текстов на естественном языке
В статье рассмотрена семантическая нейронная сеть. Нейронная сеть, как формальный язык, позволяет обрабатывать смысл текста как функцию некоторой алгебры. Функции строятся из отдельных нейронов, выполняющих операции дизъюнкции, конъюнкции и отрицания. Структура нейронной сети определяет порядок применения базовых операций этой алгебры к входным данным. Отдельный нейрон обозначает элементарное понятие анализируемого языка.
Для успешной разработки формализованного представления смысла текста, прежде всего, необходимо понять, что понимается под термином "Смысл предложения". На данное время нет единодушного ответа на этот вопрос. Начнем процесс определения "что такое смысл" со следующего, достаточно простого утверждения. Смысл предложения – это смысловое содержание предложения, то есть информация. Но информация нуждается в устройстве для ее обработки. Значит, смысл должен быть представлен устройству обработки в виде, пригодном для обработки. Если мы общаемся, используя устную речь, то смысл представлен в виде звуков, организованных в слова, предложения и более общие языковые конструкции. Если мы читаем книгу, то смысл представлен в виде отпечатанного текста. Исходя из вышеизложенного, возникает вопрос о том, как должен быть представлен смысл текста внутри устройства обработки? Напрашивается банальный ответ - в формате, наиболее естественном для устройства обработки информации.
Рассмотрим ту же проблему с несколько иной точки зрения. Каким должно быть "идеальное" устройство обработки смысла? Какие характеристики оно должно иметь? Перечислим некоторые "очевидные" свойства, необходимые такому устройству: возможность реализации в парадигме материального мира, очень высокая степень распараллелености вычислительных процессов; высокая надежность, способность оперировать нечеткой и неполной информацией, способность оперировать связями между различными понятиями. Кажется, что этим условиям полностью удовлетворяет вычислитель, построенный на основе нейронной сети. Вернемся к первому вопросу "что такое смысл?", но уже в формулировке "какое формализованное представление информации наиболее естественно для нейронной сети?". Для ответа на этот вопрос необходимо сначала определить какая информация должна быть обработана как смысл предложения.
Приведем список понятий, которые должны обрабатываться нейронной сетью: объекты, отношения между объектами, нечеткие факторы уверенности и логические величины. Возможно, этот список окажется настолько неполным, что его изменение повлечет за собой полный пересмотр подходов к решению рассматриваемой проблемы, однако на данное время он выглядит более чем достаточным. Представление перечисленных понятий в нейронной сети не вызывает каких либо затруднений. Так отдельные элементарные объекты представляются в виде отдельных нейронов. Более сложные объекты, образованные от элементарных объектов, будут представлены либо совокупностью этих объектов, либо будут абстрагированы до нового элементарного объекта. Элементарные отношения между элементарными объектами представляются в виде связей между нейронами.
Сложные отношения или классы отношений между объектами фактически являются сложными понятиями-объектами и могут обрабатываться как совокупности элементарных объектов, связанных между собой элементарными связями. Факторы уверенности представляются в виде градиентных величин, обрабатываемых и передаваемых нейронами.
Как легко можно установить на практике, путем наблюдения за собственным сознанием, понимание смысла текста не является статическим, мгновенным процессом. Понимание смысла - процесс развивающийся во времени. Понимание и уточнение смысла происходит по мере поступления новых данных. Практически любая часть предложения имеет смысл. Это легко проверить, прочитав сначала первое слово, затем первые два слова, затем - первые три, четыре... Элементарным смыслом обладают даже отдельные буквы. По мере поступления новой информации смысл уже обработанных данных просто уточняется, обычно без повторной обработки уже поступивших данных.
Итак, похоже, теперь можно более точно сформулировать вопрос о том, что такое смысл: "какое формализованное представление информации наиболее естественно для представления мгновенного смысла текста в нейронной сети?". Ответ кажется очевидным: Смыслом обработанной части текста является мгновенное состояние части нейронной сети, ответственной за извлечение информации из входного потока символов. Мгновенное состояние нейронной сети включает в себя мгновенный снимок множества нейронов, множества связей между нейронами и множества внутренних состояний нейронов. Таким образом, смыслом текста, обрабатываемого нейронной сетью является состояние этой нейронной сети.
Для успешной реализации алгоритмов понимания смысла предложений на естественном языке с помощью последовательных цифровых вычислительных машин необходим формальный язык описания смысла предложений. Под формальным языком будем понимать некоторый набор методов, с помощью которых можно автоматически описывать и обрабатывать смысл естественного языка. При определении формального языка будем руководствоваться в первую очередь критерием достаточности. То есть формальный язык должен позволить описывать смысл текста и алгоритмы обработки смысла, в форме, пригодной для автоматической обработки на вычислительной технике. Формальный язык должен обрабатываться на вычислительной машине без значительной потери производительности на неэффективных операциях. Так как объем информации, обрабатываемый как смысл предложения, настолько огромен, что описать его с помощью карандаша и бумаги не представляется возможным, то формальному языку совершенно не нужно быть пригодным к ручной обработке человеком.
В грамматике для наглядного представления структуры предложений используются деревья синтаксического подчинения [2, с. 41]. Пример дерева синтаксического подчинения изображен на рис. 1.
Рис. 1.
Как показано в [3], для построения схемы формулы предложения, выражающей смысл текста, используются деревья синтаксического подчинения. В рассматриваемом примере формула предложения будет иметь следующий вид:
(((мастер)7(((быстр)1(о))5((провер)2(ил))))8(((нов)3(ую))6((машин)4(у)))). (1)
Номера выполняют в формуле роль имен операций, скобки указывают очередность их выполнения и последовательность применения каждой операции к словам, а формы слов представляют собой значения аргументов формулы. В приведенном примере все операции являются операциями конъюнкции.
Рис. 2.
Схемы формулы предложения, рис.2, представляют собой деревья, в узлах которых находятся операции алгебры логики, обрабатывающие значения предметных переменных. Из приведенного примера хорошо видно, что предикатная схема формулы предложения и нейронная сеть во многом являются эквивалентными системами. Операции алгебры логики представляются в нейронной сети отдельными нейронами, значения предметных переменных представляются в виде градиентных значений, обрабатывающихся нейронной сетью, а последовательность применения операций задается структурой связей между нейронами.
Обычно под нейронной сетью понимается биологическая нейронная сеть[4], либо математическая модель биологической нейронной сети. Учитывая тот факт, что работа биологической нейронной сети не до конца изучена, и даже в работе отдельных биологических нейронов остается много неясных вопросов, следует сконцентрировать свое внимание не на механическом копировании достижений природы, а на создании реализаций, способных приносить конкретную, пусть даже небольшую, пользу[5,с.247]. Необходимо заметить, что в данной работе рассматриваются проблемы понимания смысла текста последовательными цифровыми вычислительными машинами, а не реально существующими биологическими нейронными сетями или их математическими моделями. Поэтому под термином "Нейронная сеть" будем понимать сеть динамически связанных между собой объектов, параллельно или квазипараллельно обрабатывающих информацию и обменивающихся информацией.
Так как отдельные нейроны в рассматриваемой нейронной сети представляют собой элементарные понятия обрабатываемого смысла, а связи между нейронами представляют собой элементарные отношения между понятиями, то такую сеть будем называть семантической нейронной сетью.
Согласно [1] формальный язык должен иметь возможность обрабатывать смысл текста, как функцию алгебры. Нейронную сеть так же можно рассматривать как некоторую алгебру. Определим отдельный нейрон как ni. Областью определения такой алгебры будет множество нейронов N={n1,n2,...,nk}, содержащееся в нейронной сети.
Каждый нейрон представлен набором ni=(S, R) из внутреннего состояния нейрона S и набора его связей R. Набор связей нейрона R=(L1,L2,...Lq), состоит из отдельных связей нейрона Li=(a, n), где a - тип связи (например: вход, выход, синхронизирующие связь), n - нейрон с которым установлена эта связь. Входные связи называются дендритом, выходные - аксоном. Внутреннее состояние нейрона S включает в себя операцию, выполняемую нейроном и результаты обработки входных данных. В процессе работы нейрон получает данные от других нейронов по дендриту, обрабатывает некоторым образом и передает далее по аксону в нейроны - приемники. В отличие от биологических нейронных сетей, в данной реализации нейрон не обладает синаптическим контактом. С точки зрения биологии, это делает рассматриваемую нейронную сеть скорее математической моделью сети синапсов, нежели математической моделью сети нейронов.
При реализации нейронной сети средствами последовательных цифровых вычислительных машин возникает проблема синхронизации огромного, порядка нескольких миллионов, числа одновременно работающих процессов обработки данных. Для решения этой проблемы вводятся понятия синхронизированного и не синхронизированного нейронов. Не синхронизированные нейроны обрабатывают входные данные и выдают результаты их обработки непрерывно. Синхронизированные нейроны выдают результат непрерывно, однако обрабатывают входные данные только в определенные кванты времени. Момент активизации определяется специальным синхронизирующим входом. Не синхронизированные нейроны практически невозможно реализовать на последовательных вычислительных машинах. В случае необходимости моделирования не синхронизированных нейронов на последовательных вычислительных машинах, не синхронизированные нейроны приходится заменять синхронизированными нейронами.
Для имитации асинхронного поведения синхронизированных нейронов применяются многопроходные алгоритмы моделирования нейронных сетей. Для обмена информацией между нейронной сетью и внешней средой служат специальные нейроны, называемые рецепторами и эффекторами. Рецепторы преобразуют входное воздействие в сигнал, подаваемый затем на дендриты нейронов. Эффекторы преобразуют сигналы аксонов в воздействие на внешнюю среду.
Для обмена данными в нейронной сети подходят два вида сигналов: аналоговые и цифровые. С помощью аналоговых сигналов нейроны обмениваются градиентными данными, а с помощью цифровых - логическими данными. Под градиентными данными будем понимать целые числовые величины, находящиеся в заданном диапазоне, например, от -127 до 127 или от 0 до 255. Одной границе этого диапазона будет соответствовать полное подтверждение, другой - полное отрицание. Удобно принять минимальное значение за ложь, а максимальное за истину. В процессе работы нейронной сети нейроны получают такие данные, обрабатывают их, затем передают далее по аксону. Все нейроны работают параллельно. Результат, выдаваемый нейроном, зависит от того, какую операцию он выполняет, а так же от того является он синхронизированным или не синхронизированным. Не синхронизированные нейроны постоянно выдают результат операции, непрерывно выполняемой над входными градиентными данными.
Синхронизированные нейроны постоянно выдают результат операции, выполненной над входными градиентными данными в момент прихода синхронизирующего сигнала. Таким образом, аналоговая нейронная сеть представляет собой параллельный аналоговый компьютер с динамически изменяемой структурой.
Хотя аналоговые нейронные сети являются "суперсетом" цифровых сетей, во многих практических случаях их применение не оправдано. Это связанно с тем, что на сегодняшнее время еще не существует достаточно проработанной элементной базы для организации широко распараллеленных аналоговых вычислительных процессов. Нейронные сети, в большинстве случаев, приходится реализовывать средствами современной цифровой вычислительной техники. К тому же существует огромное количество задач, в решении которых более чем достаточно двух логических значений: Истины и Лжи. В цифровых нейронных сетях по дендритам и аксонам циркулируют логические значения "0" и "1". В процессе работы нейронной сети, нейроны получают такие данные, обрабатывают их, затем передают далее по аксону. Все нейроны работают параллельно.
Результат, выдаваемый нейроном, зависит от того, какую операцию он выполняет, а так же от того является он синхронизированным или не синхронизированным. Не синхронизированные нейроны постоянно выдают результат операции, непрерывно выполняемой над входными логическими данными. Синхронизированные нейроны постоянно выдают результат операции, выполненной над входными логическими данными в момент прихода синхронизирующего сигнала. Цифровая нейронная сеть сводится к аналоговой нейронной сети с диапазоном обрабатываемых градиентных данных от 0 до 1. Таким образом, цифровая нейронная сеть представляет собой параллельный цифровой компьютер с динамически изменяемой структурой.
Реализация формального языка обработки смысла в виде нейронной сети дает множество преимуществ, по сравнению с другими методами. Нейронные сети могут быть смоделированы существующими аппаратными средствами, так же возможно создание специализированных нейронных процессоров. Нейронные сети включают в себя средства по обработке градиентных данных, а также отношений между объектами. Смысл текста, формальный язык обработки смысла и средство выполнения формального языка совмещаются в одну физическую сущность - нейронную сеть. Такое совмещение позволяет выполнять обработку формального языка теми же методами, что и обработку смысла текста, записанного на этом формальном языке. Таким образом, формальным языком описания смысла предложения на естественном языке может выступать нейронная сеть.
Смысл текста, представленный состоянием нейронной сети, обрабатывается нейронной сетью как поток градиентных данных передаваемых от одного нейрона к другому нейрону. Градиентные данные представляют собой целые числа, расположенные в некотором диапазоне. Для упрощения изложения мы будем предполагать, что минимальное значение этого диапазона равно 0 , а максимальное Vmax . В случае обработки диапазона в интервале от Vmin до Vmax легко провести нормализацию данных и получить диапазон в интервале от 0 до Vmax-Vmin. Для этого обрабатываемые данные нормализуются по формуле:
V=V0-Vmin (2)
где
V - результат нормализации;
V0 - нормализуемая величина;
Vmin - минимальное значение, принимаемое входными данными.
Де нормализация выполняется по следующей формуле:
V=V0+Vmin (3)
где
V - результат де нормализации;
V0 - де нормализуемая величина;
Vmin - минимальное значение, принимаемое входными данными.
Базовые операции обработки данных реализуются отдельными нейронами. Номенклатура таких операций ограничивается только практическими потребностями при решении конкретной задачи. Так для управления вниманием, часто бывает, полезна операция вычисления математического ожидания. Для извлечения и обработки смысла текста на естественном языке в качестве операций, выполняемых нейронами можно взять операции нечеткой логики: дизъюнкцию, конъюнкцию и инверсию.
Операция дизъюнкции "Ъ" применяется в случае, когда на выходе нейрона необходимо получить истинный результат, когда хотя бы один входной сигнал истинен. Реализация операции дизъюнкции в аналоговой нейронной сети возможна различными математическими функциями. Наиболее полезными можно считать операцию взятия максимума и операцию сбалансированного сложения.
Операция взятия максимума рассчитывает максимальное значение от всех входных градиентных величин, пришедших на дендрит нейрона:
V=V1Ъ V2Ъ ... Ъ VN=max(V1,V2,...,VN) (4)
где
V - результат дизъюнкции;
V1,V2,...,VN - входные данные.
Операция сбалансированного сложения аналогична операции сложения вероятностей в теории вероятностей и для входных данных, лежащих в диапазоне от 0 до Vmax определяется как:
V=V1Ъ V2=V1+V2-V1*V2/Vmax (5)
где
V - результат дизъюнкции;
V1,V2 - входные данные;
Vmax - максимальное значение, принимаемое входными данными.
В случае расчета сбалансированного сложения для входных данных, лежащих в диапазоне от Vmin до Vmax, согласно (2) и (3), расчет проводится по формуле:
V=V1 Ъ V2=(V1-Vmin)+(V2-Vmin)-(V1-Vmin)*(V2-Vmin)/(Vmax-Vmin)+Vmin (6)
где
V - результат дизъюнкции;
V1,V2 - входные данные;
Vmin - минимальное значение, принимаемое входными данными;
Vmax - максимальное значение, принимаемое входными данными.
Операция конъюнкции "Щ"; применяется в случае, когда необходимо получить истинный результат, когда все входные сигналы истинны. Реализация операции конъюнкции в аналоговой нейронной сети возможна различными математическими функциями. Наиболее полезными можно считать операцию взятия минимума и операцию сбалансированного умножения.
Операция взятия минимума рассчитывает минимальное значение от всех входных градиентных величин, пришедших на дендрит нейрона:
V=V1 Щ V2 Щ ... Щ VN=min(V1,V2, ... ,VN) |
(7) |
где
V - результат конъюнкции;
V1,V2,... VN - входные данные.
Операция сбалансированного умножения аналогична операции умножения вероятностей в теории вероятностей и для входных данных, лежащих в диапазоне от 0 до Vmax определяется как:
V=V1Щ V2=V1*V2/Vmax |
(8) |
где
V - результат конъюнкции;
V1,V2 - входные данные;
Vmax - максимальное значение, принимаемое входными данными.
В случае расчета сбалансированного умножения для входных данных, лежащих в диапазоне от Vmin до Vmax , согласно (2) и (3), расчет проводится по формуле:
V=(V1-Vmin)*(V2-
где
V - результат конъюнкции;
V1,V2 - входные данные;
Vmin - минимальное значение, принимаемое входными данными;
Vmax - максимальное значение, принимаемое входными данными.
Операция инверсии ¬" является унарной операцией и применяется в случае, когда необходимо получить истинный результат, когда входной сигнал ложен. Реализация операции инверсии в аналоговой нейронной сети возможна различными математическими функциями. Наиболее полезной можно считать операцию изменения знака.
>Операция инверсии определяется как:
V=¬ V0=Vmax- V0 |
(10) |
где
V - результат инверсии;
V0 - входная величина;
Vmax - максимальное значение, принимаемое входными данными.
V=¬ V0=Vmax+Vmin- V0 |
(11) |
где
V - результат инверсии;
V0 - входная величина;
Vmin - минимальное значение, принимаемое входными данными;
Vmax - максимальное значение, принимаемое входными данными.
V1Ъ (V2Ъ V3)=(V1Ъ V2) Ъ V3; |
(12) |
V1Щ (V2Щ V3)= (V1 Щ V2) Щ V3. |
(13) |
Доказательство свойств ассоциативности для операций сбалансированного сложения и умножения:
V1Ъ (V2Ъ V3)=V1+(V2+V3- V2*V3/Vmax)- V1*(V2+V3- V2*V3/Vmax)/Vmax=
=V1+V2+V3- V1*V2/Vmax- V2*V3/Vmax- V1*V3/Vmax+V1*V2*V3/Vmax2=
=V3+(V1+V2- V1*V2/Vmax) - V3*(V1+V2- V1*V2/Vmax)/Vmax=(V1Ъ V2) Ъ V3 );
V1Щ (V2Щ V3)=V1*(V2*V3/Vmax)/Vmax=V1*V2*V3/Vmax2=
=V3*(V1*V2/Vmax)/Vmax= (V1 Щ V2) Щ V3.
V1Ъ (V2Ъ V3)=max(V1,(max(V2,V3)) =
=max(V3,max(V1,V2)) =(V1Ъ V2) Ъ V3;
V1Ъ (V2Ъ V3)=min(V1,(min(V2,V3)) =
=min(V3,min(V1,V2)) =(V1Ъ V2) Ъ V3.
¬ V1Щ ¬ V2=¬ (V1Ъ V2); |
(14) |
¬ V1Ъ ¬ V2=¬ (V1Щ V2). |
(15) |
¬ V1Щ ¬ V2=(Vmax- V1)*(Vmax- V2)/Vmax=Vmax- V1- V2+V1*V2/Vmax=
=Vmax- (V1+V2- V1*V2/Vmax)= ¬ (V1Ъ V2);
¬ V1Ъ ¬ V2=(Vmax- V1)+(Vmax- V2) - (Vmax- V1)*(Vmax- V2)/Vmax=
=2Vmax- V1- V2- (Vmax- (V1+V2- V1*V2/Vmax))=Vmax- V1*V2/Vmax=¬ (V1Щ V2).
¬ V1Щ ¬ V2=min((Vmax- V1),(Vmax- V2))=Vmax- max(V1,V2)= ¬ (V1Ъ V2);
¬ V1Ъ ¬ V2=max((Vmax- V1),(Vmax- V2))=Vmax- min(V1,V2)= ¬ (V1Щ V2).
Таким образом, нейронная сеть, как формальный язык, позволяет обрабатывать смысл текста как функцию некоторой алгебры. Функции строятся из отдельных нейронов, выполняющих операции дизъюнкции, конъюнкции и отрицания. Структура нейронной сети определяет порядок применения базовых операций этой алгебры к входным данным. Отдельный нейрон, расположенный в части нейронной сети, извлекающей смысл из текста на естественном языке, будет обозначать элементарное понятие анализируемого языка. Элементарными понятиями являются любые понятия естественного языка с законченным смыслом, такие как символ, часть слова, слово, словосочетание, предложение, абзац, весь текст. В случае наличия соответствующего понятия в анализируемом тексте нейрон принимает значение "Истина", а в случае отсутствия - "Ложь".
Нейронную сеть, извлекающую смысл из текста можно условно разбить на три уровня: уровень рецепторов, уровень обработки, уровень эффекторов. На уровне рецепторов будут находиться нейроны, "узнающие" отдельные символы алфавита. Если в единицу времени рецепторам представить для опознания один символ, то только один нейрон будет иметь логическое значение "истина" остальные будут иметь логическое значение "ложь", то есть в один такт рецепторами будет опознаваться только один символ текста. Узнавание отдельных букв текста будет происходить по мере поступления текста из входного потока.
Так как процесс анализа текста развивается во времени, то по мере поступления в нейронную сеть новых данных, в нейронной сети возникают волны активности, распространяющиеся от рецепторов к эффекторам. Можно постулировать, что один фронт такой волны будет представлять один обрабатываемый квант понятий естественного языка. Тогда окончанием обработки текста можно считать успешное узнавание ситуации описываемой анализируемым текстом, что будет выражено в корректной установке значений нейронов в части сети, отвечающей за обработку текста.
Поступила в редколлегию 2000.01.17
Рецинзент: проф., д.т.н. Шабанов-Кушнаренко Ю. П.
Список литературы
- Шабанов-Кушнаренко Ю.П. Теория интеллекта. Математические средства. - Х.: Вища школа, 1984. - 143 с.
- Бондаренко М.Ф., Осыка А.Ф. Автоматическая обработка информации на естественном языке. – К.: УМК ВО, 1991. – 140 с.
- Баталин А.В., Дударь З.В., Стороженко А.В., Шабанов-Кушнаренко Ю.П. О лингвистической алгебре. // Радиоэлектроника и информатика. Х.: Изд-во ХТУРЭ, 1998. Вып.4. С. 101-109.
- Мозг: Пер. с англ. / Перевод Алексеенко Н.Ю.; Под ред. и с предисл. П.В. Симонова.-М.:Мир, 1982.-280с.с ил.
- П. Уинстон Искусственный интеллект - М. "Мир", 1980. - 520с.
Источик:
Семантическая нейронная сеть, как формальный язык описания и обработки смысла текстов на естественном языке / З.В.Дударь, Д.Е.Шуклин // Радиоэлектроника и информатика. Х.: Изд-во ХТУРЭ, 2000. - No 3. С. 72-76.