Что мешает развитию NLP

4 открытых проблемы обработки естественного языка.

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

Вместе с Data Scientist в YouScan и лектором курса Natural Language Processing from 0 to ‘native speaker’ Виталием Радченко разбираемся, какие проблемы нужно решить ученым, чтобы компьютер смог понять человека. 

#1. Проблема семантики: в поисках смысла
 

Язык синонимичен и многозначен. Так, сложно математически выразить нюансы фразы с омонимами: «график (художник) не вписался в график (план)». Подобных примеров много.

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

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

Виталий: «Семантика — изучение "значения" лексических единиц независимо от контекста. Прагматика — процесс распознавания «невидимого значения» с учетом намерений отправителя данных, статуса получателя и реальной ситуации. Модель осваивает в основном семантические связи, которые могут переходить в условное понимание контекста. Например, в таких задачах, как question answering или summarization, сложно "выехать" только на одной семантике. Нужно понимать, к чему относится конкретный вопрос или какова основная мысль в параграфе. Развитие этих задач продолжается, усложняется их постановка. Вышел новый датасет [SQUAD 2.0], в котором нужно не просто найти ответ на вопрос в определенной статье, но и понять, есть ли в ней ответ на определенный вопрос».

В 90-х и 2000-х алгоритмы научились предсказывать следующее слово, выделять именованные сущности (имена собственные), определять спам и сортировать документы.

Векторная модель word2vec, реализованная в 2013 году, позволила создавать семантические связи и находить похожие по значению слова. Это частично решило проблему составления семантического словаря. Word2vec создает наборы взаимосвязанной лексики. Но такая модель анализа текстов называется «bag of words» — простой набор слов, без учета синтаксиса и отношений слов в предложении. 

Сейчас алгоритмы учатся понимать контекст.

#2. Проблема определения эмоций и тональности
 

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

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

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

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

#3. Кросс-языковая морфология и малоресурсные языки
 

Компьютеры понимают не все языки одинаково хорошо. Лучше всего нейросети работают с популярных языками с фиксированной структурой (например, английским). 

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

Малоресурсные языки нужно описывать, потому что:

  • NLP документирует языки и создает систему для языков без письменности. Это поможет сохранить их, прежде чем они исчезнут.
  • Можно обеспечить возрождение языков. Такое уже было, например, с ивритом. Нейросети могут это ускорить.
  • Анализ демографических и политических процессов. Носители малоресурсных языков незаметны для мира, их интересы не учитывают индексы в поисковиках, им недоступна таргетированная реклама, об их предпочтениях ничего не известно. В Африке проживают 1,2 млрд человек, и знания об их языках помогут открыть их миру. 
  • Помощь при чрезвычайных ситуациях, болезнях, важных событиях мирового масштаба. Мгновенный перевод важного сообщения на большое количество языков способен спасти людей, которые смогут это сообщение понять. 

Специалисты вручную собирают данные и обрабатывают их для создания корпусов малоресурсных языков. Яркий пример — американский проект Crúbadán. Создав запросы веб-поиска, предназначенные для захвата веб-страниц на определенных языках, проект построил корпуса для 18 721 языка, включая валлийский, панджаби, луо, кечуа. 

Сложность в том, что для каждого языка нужно составлять свой корпус. Это усложняет и нагружает работу сети, увеличивая вероятность ошибок.

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

Трансфер модели позволяет перенести модели, использованные на языках с высоким объемом ресурсов, на малоресурсные языки в режиме однократного обучения. Этот подход популярен при машинном переводе. 

«Родительская» модель обучается в языковой паре с высокими ресурсами (французский/английский). Затем эта модель повторно используется на «дочерней» модели, которая обучается на языковой паре с низким уровнем ресурсов (турецкий/узбекский).

Исследователи также разработали способ для создания нейросети-полиглота. Это «хардкорный» режим, в котором одна модель обучается на сочетании векторных наборов данных сразу сотен языков. Это позволяет создать набор универсальных параметров и применить их там, где это возможно.

Этот подход тесно связан с недавними усилиями по обучению кросс-языковой модели Transformer, обученной на 100 самых популярных языках, принадлежащих более чем к 30 языковым семьям.

Виталий: «Специалисты обучают модели для задач, на которые есть спрос и возможность выделять средства с последующей окупаемостью. При обучении языковых моделей на большом объеме текста, независимо от языка, будут учитываться различные особенности, порядок слов, склонения  — все то, чему учат на уроках. Уже сейчас есть модели, которые охватывают сотни языков и могут применяться для них одновременно. Это используется скорее для экономии ресурсов, а не для улучшения точности. Если хочется достичь лучшей точности, то нужно разрабатывать отдельные модели для каждого языка».

#4. Неверная корреляция
 

Модели обнаруживают простейшие закономерности, объясняющие данные.  Например,  есть классификатор изображений, где представлены собаки и кошки. Изображения собак имеют оттенки серого, а кошки — цветные

Модель, скорее всего, зафиксирует ложную корреляцию между наличием/отсутствием цвета и тегами. Если попадётся изображение собаки в цвете, программа, вероятно, идентифицирует ее как кошку. 

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

Виталий: «Изначально лучше собрать больше данных. Когда мы достигаем плато после добавления новых данных, то стоит задуматься об архитектуре, которая позволит выйти из плато и вырасти по точности. Зависит от цели, для которой создают нейросеть. Если она должна использоваться для общения с детьми, то нельзя добавлять все подряд. Данные должны проходить фильтрацию на нецензурную лексику, призывы к суициду и подобные негативные контексты. Нейросети генерируют тот текст, на котором они учились или некую комбинацию из него. Соответственно, проблемы могут возникать из-за неправильно подготовленной обучающей выборки. Если мы задаем вид стиля, в котором хотим генерировать текст, то такие ошибки могут возникнуть из-за недостаточного количества данных или ограниченности текущих решений».

Ещё
Как нейросети отслеживают вырубку лесов, считают популяции животных и помогают фермерам.
Отзывы студентов первого потока курса «SQL для аналитики».