На этот вброс меня подталкивает доминирование статистических методов, особенно нейронных сетей — да, я именно так их буду классифицировать. С одной стороны я ничего не имею против них, но в то же время чувствуется явный перекос, иногда даже нейронные сети едва ли не отождествляют с неопределённым понятием искусственного интеллекта, хотя так ли хуже SVM, HMM и т.д. В вопросе обработки естественных языков я всегда был сторонником лингвистических методов в противовес статистическим, но чувствуется их существенный недостаток — трудоёмкость моделирования вручную по сравнению с машинным обучением. А может для лингвистических методов машинное обучение тоже применимо?


Я не берусь дать ответ на этот вопрос в этом описании, но предлагаю некоторые размышления. Замечу, что основная идея возникла у меня давно и оформлена в виде патента №2392660, половина срока действия которого уже почти прошла. Но что, если чуть расширить изложенное в этом патенте решение?


Что мне придумалось прежде


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


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


  • множество связующих элементов для этого уровня (всегда конечное);
  • множество типов атомарных элементов (всегда конечное);
  • множество одноместных операторов (всегда конечное);
  • множество ограничений сочетаемости связующих элементов, атомарных элементов и одноместных операторов (всегда конечное);
  • множества каждого из типов атомарных элементов (конечные или бесконечные);
  • множества классификаторов каждого из множеств связующих элементов (всегда конечные) и каждого из типов атомарных элементов (конечные или бесконечные).

Теперь чуть подробнее о том, что это такое, на примере естественных языков. Поскольку одну и ту же фразу можно выразить разными словами, деление на слова не имеет смысла в семантической модели. Аналогичная ситуация и со сложными предложениями, но простые выделять имеет смысл; клаузы — их устоявшееся название. Рассмотрим семантическую модель внутри клауз.


Известны также понятия лексем и семантических классов. Часто лексемы соответствуют словам, но в общем случае соотношение много ко многим. Сами по себе лексемы сохраняют многозначность, но семантический класс фиксирует определённое значение. Обзор методов разметки семантических классов сейчас делать не буду, в случае надобности оставлю на потом — на эту тему уже написано немало. Для самих лексем с семантическими классами есть разные наименования, здесь пусть они зовутся денотатами.


Есть надобность разделить их (денотаты) на два вида: объекты и предикаты. Первые сами по себе имеют определённое значение, вторые требуют дополнения другими денотатами, здесь будем их (дополняющие денотаты) звать актантами.


Денотаты всё равно не решают проблему возможности выражения смысла разными словами, поэтому разделим их на базовые и составные, подробнее о критериях в предисловии к "Новому объяснительному словарю синонимов" и других работах того же автора. Именно деление составных денотатов на базовые призвано решить эту проблему. Собственно, на этом уровне, т. е. внутри простых предложений, множество базовых предикатов и будет множеством связующих элементов.


Денотаты-объекты в чистом тексте, т. е. без рисунков, схем, формул, листингов и т. п., будут двух видов — дискретные и непрерывные, вторые — преимущественно непосредственно числа. Множества базовых объектов-денотатов, разумеется, будут бесконечными.


Несколько забегая вперёд, следует отметить, что составные денотаты включают дифференциальные и характеристические составляющие — используем здесь такое их название, в данном случае это единственные одноместные операторы. Они позволяют отличать логическое (полное) отрицание от лингвистического, где отрицание распространяется только на дифференциальные составляющие.


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


Множества составных элементов (тоже цитата из ранее опубликованных статей):


  • множество закрытых (несвязующих) составных элементов (всегда бесконечное);
  • множество связующих составных элементов (всегда бесконечное);
  • множество ограничений на использование атомарных элементов в связующих составных элементах по классификаторам (конечное или бесконечное);
  • множество правил замены элементов, входящих в составные элементы (всегда конечное).

Связующими элементами оказываются тоже денотаты-предикаты, но в данном случае составные. Несвящующие элементы могут быть как составными объектами, так и распространяться на всю клаузу или фрагменты, соответствующие словосочетаниям, главное требование — указание всех актантов.


Каждый составной предикат, объединяя базовые предикаты и объекты, может накладывать ограничения на подмножества семантических классов своих актантов в сторону детализации — это множество ограничений, разумеется, бесконечное.


Составной предикат целесообразно представлять в конъюнктивной нормальной форме, где дизъюнктивные члены имеют одноместный оператор, являются ли они дифференциальными и характеристическими. В соответствии с ними лингвистическое отрицание возможно привести к логическому. Кроме этого предполагается возможность общего логического упрощения, например, исключение тождественных объектов, объединённых логическим оператором. Вторая группа правил замены будет относиться к базовым предикатам, такие, как возможность исключения противоположных действий, например, вербализация существительного и субстантивизация глагола в значении действия. Третья группа правил — одновременно к базовым предикатам и объектам, подразумевая возможность исключения присоединяющих предикатов для актантов составного предиката, когда объект соответствует заданному множеству семантических классов.


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


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


Что теперь


Далее имеет смысл вернуться к первоначальному вопросу о применении машинного обучения. Ясно, что составление словаря объектов, семантических классов и т. д. вручную чрезвычайно трудоёмко. Но современные методы машинного обучения в случае естественных языков умеют решать задачу не только сопоставления слов, но и статистического выявления денотатов, которые в случае нейронной сети остаются "чёрным ящиком". В то же время другие статистические методы, например, кластеризация, позволяют получить чёткие результаты.


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


Теперь некоторые размышления о возможности реализации. Возьмём, к примеру, семантические векторы, предлагаемые "Яндексом", и вспомним о понятии корпуса текстов. Допустим, есть некий корпус запросов в контексте алгоритмов "Яндекса" и набор неких семантических матриц документов, хотя мне самому не понятно полностью, о какой именно во всех деталях структуре данных идёт речь. Но, полагаю, есть данные и о словах, входящих в документы и запросы, значит, можно классическими средствами поиска сопоставить наличие слов в документах и запросах, а на основе сематических векторов сопоставить релевантность. Что именно использовать — слова, N-граммы или другие модели для кластеризации — вопрос скорее открытый, но тем или иным способом возможно выделение семантических классов на основе кластерного анализа.


Ещё одну статистическую модель нужно получить в виде направленного несимметричного графа связей между словами, т. е. насколько одно слово может заменять другое в релевантных запросах. Базовые денотаты, очевидно, будут иметь ярко выраженный несимметричный вес дуг. Конкретный алгоритм обхода полученного графа для выявления базовых денотатов — вопрос скорее открытый, особенно если учесть большую вычислительную сложность.


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


В чём смысл


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

Комментарии (8)


  1. begemot_sun
    28.10.2017 19:13

    Формул нет. Статья не зайдет.


  1. third112
    28.10.2017 22:05

    Если ошибаюсь — поправьте

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

    Что еще мне показалось странным:
    В то же время другие статистические методы, например, кластеризация, позволяют получить чёткие результаты.

    Однако в Википедии читаем:
    Решение задачи кластеризации принципиально неоднозначно


    Статья (почему-то названная автором в первой фразе «вбросом») оставила у меня двойственное впечатление: возможно, предлагается замечательный метод, но тогда форма его описания явно недостаточная, чтобы его оценить по достоинству. Может, например, если это возможно, стоит сформулировать минимальную искусственную задачу: взять словарь людоедки Эллочки в 30 слов и детально продемонстрировать метод на этом словаре?

    С уважением и пожеланием автору успехов.


    1. Ilya81 Автор
      29.10.2017 11:45

      От того так и названо, что не является завершённой теорией, по крайней мере новая часть, что это пока лишь размышления, подробнее будет продолжение (надеюсь, будет). Вероятно, будет в самом деле на примере 30 слов для начала.

      На счёт поправлять — я имею в виду о преимуществах строгой модели с нейронной сетью и другими скрытыми моделями (назовём их так). Может, я и впрямь что-то пропустил по поводу новых возможностей нейронных сетей. Ну и на счёт других существующих методов тоже.


  1. napa3um
    28.10.2017 22:13

    Опять «поршни против коленвала» в «политической» части статьи и переизобретение фреймов Минского (как способа работы с семантикой) и свёрточных сетей (как способа формирования фреймов статистическими методами) в «изобретательской» части. Только ещё на зачаточном уровне, конечно.


  1. elingur
    29.10.2017 11:07

    Если ошибаюсь — поправьте.

    Основной причиной неприятия нейростей, как я понял из статьи, является то что «денотаты оказываются без чётких границ». Но, как написано ранее, денотаты это именования «лексем с семантическими классами». Как мне кажется, у денотата по сути не может быть четких границ, т.к. он меняется не только диахроничеки и синхронически. То есть это понятие больше психологическое, нежели семиотическое.
    Формальные модели, десятками разработанные нашими и зарубежными лингвистами за последние лет 50 не показали себя на практике. Как раз по той причине, что либо они были слишком формализованы, либо требовали невероятно запутанных онтологий.
    Но я полностью согласен с постановкой вопроса: нейросети не панацея. Выбор сложности алгоритма зависти от сложности решаемой задачи. И если морфологические или синтаксические задачи хорошо решаются стандартными стат.методами (наивным Байесом, случайными Марковскими полями и пр.; да и даже формальными моделями), то семантика требует более сложных вещей. Это не обязательно могут нейросети, но их скорость и качество оптимизации семантического пространства все-таки лучше, чем обычных стат.методов. И как раз главное их преимущество, что денотат нечеткий, его можно регулировать, варьируя параметры и корректируя обучающую выборку, и что важно — выборку без семантической разметки.
    И, пожалуй, еще бы отметил в качестве размышления: не встречал ни одну формальную модель, учитывающую лексические эмоциональные составляющие (эмотивы). Как я понял, те же дискретные и непрерывные денотат-объекты — это либо имеющие плавающую эмотивную составляющую, либо нет (непрерывные). Эмоции «расшатывают» и даже меняют денотат. Неросети, к сожалению, это тоже пока не могут (я не говорю про сентимент-анализ — это на уровне классификации лексики, а не оценки эмоций). Поэтому здесь вопрос поиска алгоритма пока открытый.


    1. Ilya81 Автор
      29.10.2017 12:06

      На счёт непоказавшего себя на практике скажу больше, одной из основ идеи было это (Тузов В. А. «Компьютерная семантика русского языка»), далее некоторое развитие идеи. А вот на счёт причины у меня другое предположение — мешает сложность моделирования вручную, в той книге об этом тоже упоминается. Отсюда размышления о том, как совместить несовместимое.

      Безусловно, речь идёт только о денотативном значении, сигнификативное и коннотативное остаются за рамками. Так что не все фразы годятся для такого моделирования (по крайней мере без существенной доработки), но если речь идёт поиске информации одинакового типа (а также переводе, реферировании, извлечении фактов и т. п.), то подобные решения применимы. И, конечно, для информации разного типа, например, изображения и текста, требуется ещё и онтологическая модель, а не только семантическая (на эту тему тоже есть идея, но ещё более сырая).

      Есть ещё такая особенность — динамическое программирование — по сути одна из самых затратных по ресурсам разновидность задач, а к таковой относится и синтаксический анализ, и разметка семантических классов, и «сворачивание» элементарных значений (по сути упрощение выражения). Хоть однозначный вывод это и не позволяет сделать, но экспериментальные поисковые системы «Сириус» и «Экзактус» не блистали быстрой выдачей результатов, а там дело ограничивалось синтаксическим анализом, разметка семантических классов определённо затратнее хотя б в виду большего количества возможных комбинаций.


  1. remoteadmiral
    29.10.2017 22:53

    Как то все теория, теория. Приведу пример, я занимаюсь видеоаналитикой. Есть масса примеров когда работа нейросетей без математики и структуры не удовлетворяет. К примеру задача распознавания лиц, или задача идентификации объекта. Например когда мы знаем положение камер и необходимо оцифровать объект-человек. Что бы затем решать задачу его более точной и быстрой идентификации в пространстве(куртка, кепка, кроссовки, прическа, рост и т.п. Любая дополнительная информация об объекте может существенно улучшить и ускорить его идентификацию в пространстве). Мои изыскания в этом направлении показывают перспективу симбиоза использования 3D движка(в процессе выбора) для обучения нейросетей а также с другой стороны возможность структурной оптимизации алгоритмов. Язык вырисовывается некоторый аналог SQL в совокупности с объектно-ориентированной моделью. На эту тему планирую опубликовать пару статей с конкретными примерами в том числе с технологией отладки и обучения.
    Как то так. В итоге, мое мнение — сухая теория и математика никому не интересна.


    1. third112
      30.10.2017 00:34

      сухая теория и математика никому не интересна

      А где в обсуждаемой статье математика? Выше уже отмечалось, что
      Формул нет

      И доказательств нет. Автор ответил, что
      это пока лишь размышления

      Вот когда и если будут формулы или формулировки (математической строгости) на естественном языке + доказательства, мне (и м.б.Вам) будет интереснее.