Начну с моего любимого воспоминания на эту тему — не бумажки, а карикатуры. Я до сих пор помню, как много лет назад эпизод Лаборатории Декстера — как показано на начальном изображении выше — задавал самый трудный вопрос: Какова цель значения? Так сложно было этот вопрос о том, что у Декстера не было другого выбора, кроме как обратиться за советом к Дедушке Всех Знаний, своего рода научному божеству, которое, поскольку эпизод был посвящен кошмарам, оказалось его глупой сестрой. Как же я обрадовался, когда в конце концов стал работать со смыслом в Microsoft! После всех этих лет я бы понял и применил назначение значения — по крайней мере, в отношении естественного языка!

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

Во избежание недоразумений

Прежде чем мы продолжим, важно подчеркнуть, что есть по крайней мере два способа изучения понимания языка в НЛП, которые можно резюмировать следующим образом:

  • Явное понимание: извлечение и прямое использование смысловых представлений из естественного языка.
  • Неявное понимание: все остальное, что требует (или кажется, что требует) понимания языка, но не дает явного представления смысла. Это включает в себя многие задачи НЛП, особенно те, которые сегодня попадают в заголовки (например, о реалистичной генерации текста с помощью GPT-3), потому что чем сложнее задача НЛП, тем больше вероятность того, что она потребует определенного уровня понимания.

В этом тексте, особенно в первой части, я сосредоточусь на явном понимании. Этот выбор является не только личным предпочтением, но и отражает историческое развитие, поскольку многие из первых программ NLU представляли собой диалоговые системы, которые должны были явно интерпретировать и рассуждать о пользовательском вводе (ELIZA — одна из самых ранних и известных систем; В Википедии есть список исторических систем). Кроме того, это также кажется более продуктивным подходом к разложению такого исследования, потому что в противном случае нам пришлось бы говорить о большей части области НЛП, что, помимо непрактичности, также разбавило бы центральную дискуссию о значении, которое мы хотим иметь. .

О чем ты говоришь? Маркировка семантической роли

Рассмотрим следующее предложение:

«Назначьте совещание по планированию на следующий понедельник».

Единственное, что мы можем сделать с ним, — это проанализировать его синтаксис, то есть его форму: «расписание» — это глагол, «совещание по планированию» — это объект и так далее. Для этого есть инструменты НЛП. Однако, как только мы построили синтаксическое дерево, что должен делать с ним компьютер? Это зависит, например, от того, что означает «расписание» и «совещание по планированию». Методы NLU могут помочь программе понять, что она должна добавить встречу по планированию темы на следующий понедельник в какой-то календарь. Одним из способов обозначить это является тегирование рекламных мест или заполнение рекламных мест:

‹действие›Расписание‹/действие› ‹тема›планирование‹/тема› ‹мероприятие›встреча‹/мероприятие› на ‹дата›следующий понедельник‹/дата›.

Это пример маркировки семантических ролей (SRL). Конечно, используемые ярлыки зависят от того, откуда исходит значение. Здесь давайте предположим, что предложение дается программе личного помощника, которая обрабатывает встречи для пользователя. В этом случае каждый такой тег может обрабатываться предопределенными способами, их значение зависит от того, что программа-помощник будет делать с ними! Существует множество способов навешивания ярлыков, особенно при рассмотрении произвольных высказываний на английском языке, которые мы увидим позже.

Сама маркировка может быть реализована разными способами, например, с помощью любого метода маркировки последовательностей, такого как Скрытые марковские модели (HMM), Условные случайные поля (CRF) или современные методы глубокого обучения. С алгоритмической точки зрения интересно отметить, что семантически разные задачи могут решаться сходным образом. Например, некоторые существующие технологии можно использовать как для вышеуказанной задачи SRL, так и для Распознавания именованных объектов (NER), хотя сомнительно, является ли расписание действительно сущностью.

В более сложных ситуациях, таких как чат-бот, который может обрабатывать несколько аспектов жизни пользователя (например, такие помощники, как Cortana от Microsoft, Siri от Apple или Alexa от Amazon), нам могут понадобиться более абстрактные структуры, которые не представлены напрямую в предоставленном тексте. . В частности, часто бывает удобно классифицировать, к какому домену (в данном случае «календарю») и намерению (в данном случае «schedule_meeting») относится предложение, потому что это добавляет дополнительный уровень смысла к интерпретации, что может помочь в устранении неоднозначности (например, является ли запрос о «календаре» или «управлении проектом», которые обрабатываются другим программным обеспечением?) и в выборе управляемых случаев (например, , «встреча в следующий понедельник» не так просто интерпретировать, как приведенный выше пример, несмотря на то, что мы видим, что речь идет о встрече и дате).

Диалоговые системы (например, чат-боты и персональные помощники) — это само по себе богатая область, популярность которой среди потребителей растет, и вы можете узнать больше здесь: Обзор диалоговых систем: последние достижения и новые рубежи. Поскольку такие системы часто полагаются на устный ввод, они также относятся к области Понимание разговорного языка (SLU). Существуют реализации такой технологии с открытым исходным кодом, такие как Stanford's Almond (плюс сопутствующее программное обеспечение и данные), Rasa и Snips NLU (который, однако, кажется мертвым). Для коммерческих приложений можно использовать промышленные решения, такие как Azure Bot Service, Azure Language Understanding (LUIS) или AWS Lex.

Практический пример с домашней страницы LUIS:

От синтаксиса к семантике

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

  • WordNet: возможно, самый известный ресурс в этой категории, WordNet связывает значения слов в графе, который может служить основой для многих задач, которые мы рассмотрим позже (таких как расширение запроса для поисковых систем). Его легко использовать программно через библиотеку NLTK.
  • PropBank, VerbNet, FrameNet: различные подходы к фиксации значения предиката, в частности, посредством определения стандартных семантических (или тематических) ролей, включая типы аргументов, которые они принимают, и то, как они соотносятся друг с другом.

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

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

Семантические представления

Семантическое содержание, извлеченное из текста, должно быть каким-то образом представлено, чтобы его можно было просматривать, анализировать и манипулировать. Предполагается, что смысловые репрезентации сглаживают беспорядок, которым является естественный язык, и поэтому обычно ожидается (как адаптировано из Заметок Джейкоба Эйзенштейна по НЛП):

  • Недвусмысленно. Главное преимущество преобразования сбивающего с толку лингвистического представления в другой формат состоит в том, чтобы прояснить, что именно имеется в виду.
  • Связать язык с внешними объектами и знаниями. В конце концов, язык — это о вещах и идеях, поэтому семантическое представление должно прояснять связь.
  • Поддаться вычислительной обработке. Мы хотим, чтобы анализ, вывод и композиция могли эффективно выполняться с помощью вычислительных средств.
  • Подходит для области дискурса. Нам нужно достаточно элементов, чтобы иметь возможность представить язык, который, как ожидается, будет использоваться, который может варьироваться от тем, специфичных для предметной области (например, событий календаря), до общего использования языка (например, произвольные английские предложения).

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

Значение Разбор представления

Для фрагмента текста задача извлечения осмысленного представления называется анализом осмысленного представления (MRP). Есть много способов, которыми мы можем извлечь и записать эти представления и даже соревнования по этому поводу. Возможно, наиболее очевидным из них была бы какая-то форма логического формализма, например, логика первого порядка, которая сама по себе имеет лежащее в основе семантическое представление. У логики, однако, есть проблемы: она слишком много абстрагируется, и машина вывода, как и человеческий глаз, больше не может использовать структуру текста бесплатно! Таким образом, как это часто бывает в информатике, желательно более подходящее представление.

С точки зрения предметно-ориентированных приложений мы можем обратиться к базам данных и поиску информации в качестве хорошего примера. Исследователи в этих областях долгое время пытались найти способы автоматического преобразования запросов на естественном языке в исполняемые запросы к базе данных с помощью так называемых интерфейсов естественного языка (NLI). Недавно (2017 г.) интерес к этому возродился в форме преобразования текста в SQL (см. Seq2SQL: создание структурированных запросов на естественном языке с использованием Reinforce), и с тех пор методы показывают все более хорошие результаты — в наши дни вы даже можете попробовать что-то в Excel. Связанные наборы данных включают WikiSQL и CoSQL. Более того, ту же идею можно распространить на другие языки и приложения помимо SQL и поиска информации, например, с помощью семантических парсеров, таких как Genie (см. также связанную статью Genie: генератор семантических парсеров естественного языка для команд виртуального помощника). .

Языковое значение также может быть представлено более абстрактными и общими способами. Репрезентация абстрактного значения (AMR) является одной из альтернатив. Это относительно новый (2013 г.) и уже популярный формализм спецификации значений на основе графов. В AMR ключевые семантические фрагменты лежащего в основе текста становятся узлами графа, а взаимосвязь между ними фиксируется в ребрах графа. Отбрасываются слабые лингвистические элементы текста и сохраняются только важные компоненты. Например, из статьи AMR рассмотрим предложение Мальчик хочет пойти:

Обратите внимание, что The и to отбрасываются, так как они не нужны для установления смысла предложения. Кроме того, обратите внимание, что глаголы помечены как хочу-01 и идти-01, подразумевая, что у каждого из этих вариантов использования есть очень специфические значения. Эти значения, в свою очередь, исходят из набора данных PropBank, который мы видели ранее, поэтому теперь мы можем лучше понять, как эти артефакты NLU можно использовать вместе для большего воздействия. Фактический анализ таких структур является постоянной темой исследований, но мы можем найти практические инструменты, такие как amrlib, надстройка для популярной библиотеки NLP Python spaCy.

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

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

Фреймы и онтологии

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

Это фундаментально как для компьютерной лингвистики, так и для искусственного интеллекта, корни которого можно проследить до конца 1960-х и 1970-х годов через некоторую версию понятия фреймов, вдохновленную исследованиями в области психологии. Тем не менее, на практике кажется, что области исторически развивались более или менее параллельно, с переменным перекрытием на этом пути. В компьютерной лингвистике мы можем увидеть многие из этих идей, присутствующих в таких проектах, как PropBank и FrameNet, как мы видели ранее. Знание» 1974 года, хотя ее современная формулировка возникла в результате исследований семантической сети за последние два десятилетия. Одним из примечательных результатов последнего является стандарт языка веб-онтологий (OWL), в котором определяются такие спецификации — он обеспечивает не только общий синтаксис и формат для использования, но и точную логическую структуру для поддержки представления значения и логического вывода.

С годами эти различные идеи и технологии росли и влияли друг на друга. С практической точки зрения одним из популярных инструментов, который растет с 1980-х годов, является редактор онтологий Protégé, очень удобный инструмент для создания и анализа онтологий, в том числе написанных с помощью OWL. Хотя семантическая сеть сама по себе остается неуловимой, большая часть Интернета уже в какой-то степени следует семантическим стандартам, например:

  • С помощью схем, найденных в https://schema.org/, используемых, среди прочего, для аннотирования веб-страниц и помощи поисковым системам в понимании того, что они сканируют.
  • База знаний (теперь довольно большая) находится в Викиданных. Вы даже можете использовать SPARQL, чтобы запросить его. Я хотел бы иметь больше времени, чтобы играть с этим!

Кроме того, такие виды онтологий также нашли применение за пределами Интернета, особенно в биомедицинской области, как показывает клиническая терминология SNOMED CT.

Персональный помощник Siri, который сейчас используется во многих устройствах Apple, является очень успешным промышленным результатом более широких исследований, унаследованных как от лингвистики, так и от компьютерных наук, хотя его не часто признают таковым. Siri была создана компанией, соучредителем которой является Том Грубер (исследователь, ответственный за использование нами термина онтология, который классно определил, что «онтология — это спецификация концептуализации), а затем приобретена Apple. . Этот успех был быстро замечен, и за ним последовали другие, в частности Alexa от Amazon, Google Assistant и Cortana от Microsoft. Интересно, что таким образом мы можем проследить то, что тысячи лет назад началось как философская спекуляция, до гаджетов, которые сегодня можно найти в наших карманах.

Значимые отношения в виде графиков

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

  • Просто следуйте ссылкам в структуре данных, чтобы делать выводы, вместо того, чтобы разбираться со сложностями доказательства теорем.
  • Создавайте огромные графики, чтобы зафиксировать как можно больше знаний о мире, вместо того, чтобы рассматривать небольшие наборы тщательно определенных отношений, касающихся ограниченной области дискурса.
  • Используйте графовые базы данных, такие как Azure Cosmos DB через API Gremilin и Neo4J.

Как мы видели выше, возможно, самой известной (хотя, конечно, не самой старой) такой сетью является WordNet, которая связывает значения слов в соответствии с известными лингвистическими категориями (например, существительное, глагол, прилагательное) и отношениями (например, гипероним, гипоним), напоминающий своего рода словарь. ConceptNet — это еще один, более свежий подход к фиксации отношений слов и лежащих в их основе понятий. Тем не менее, они существенно различаются по характеру фиксируемых отношений: в то время как WordNet фокусируется на стандартных лингвистических отношениях, ConceptNet стремится записывать знания здравого смысла, следуя, таким образом, давней традиции ИИ и еще раз демонстрируя влияние различных исследовательских традиций. находим в НЛУ. Контраст, возможно, легче понять, рассмотрев пример, например, как на каждом графике представлено слово кошка:

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

Технологические компании также используют такие графики для прямого предоставления услуг в различных отраслях. Google и Bing имеют базовые графы знаний для представления прямых ответов на поисковые запросы, а Microsoft недавно (2019 г.) выпустила Project Cortex, который упорядочивает внутренние данные клиентов по темам и отношениям, которые являются значимыми (и частными) для каждого. конкретного заказчика. Более нишевые и небольшие веб-компании также могут получать прибыль, как, например, Pinterest с его Taste Graph.

Далее

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

Пауло Салем зарегистрирован на LinkedIn и paulosalem.com.

Обязательно ознакомьтесь с заключением во второй части этой серии статей, состоящей из двух частей: