Определение и настройка проблемы

Речь идет о построении алгоритма исправления текста (рекомендателя). Специфика решения заключается в том, что оно должно управляться данными (как указано в задаче: «Verilen bir yazinin gramer ve yazim denetimini ML / Deep Learning yaklasimi kullanarak nasil yapabiliriz?»). Определение проблемы состоит из двух частей:

  1. Грамматика
  2. Письменное регулирование (орфография + опечатки, отличные от традиционных грамматических ошибок)

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

Орфография и опечатки не так сложны. Любой конкретный язык в повседневном использовании - для среднего человека использует небольшой процент от общего доступного корпуса (т. Е. Английский язык содержит более 160 000 слов, в то время как существует около 3000 ежедневных слов, которые мы используем в среднем каждый день, составляя менее 2%). Опечатки / орфографические ошибки - это распространенные мутации статичных слов.

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

Данные

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

  1. Набор данных Enron: знаменитый набор данных электронной почты Enron, 500 000 электронных писем, отправленных сотрудниками корпорации Enron.
  2. CoNLL-2014: В статье собраны аннотированные тестовые данные для грамматических исправлений английского языка.
  3. Billion-Word: это набор данных для сравнительного анализа, который содержит очень большой корпус для английского языка.
  4. Wiki-Miss-SpellList: машиночитаемый список Википедии распространенных орфографических ошибок.

Данные естественного обучения

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

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

Данные искусственного обучения

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

Три основных метода искажения слов для этого проекта будут:

  • Обмен символами («Стамбул» - ›« Истнабул »)
  • Дублирование («Стамбул» - ›« Стамбул »)
  • Случайный символ или забудьте символ («Стамбул» - ›« Стамбул »)

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

Введение искусственного шума также происходит тремя способами;

Допустим, у нас есть предложение: «Не могли бы вы купить мне холодный чай Lipton?»

  • Обмен торговой точки

Библиотека NLTK может токенизировать слова и их части речи (POS);

[('Can', 'MD'), ('you', 'PRP'), ('please', 'VB'), ('buy', 'VB'), ('me', 'PRP') , ('a', 'DT'), ('Lipton,' NNP '), (' Ice ',' NNP '), (' Tea ',' NNP '), ('? ','. ')]

Где некоторые части речи наиболее подвержены грамматическим ошибкам, например, определители («а», «DT»). Шум будет изменять случайный POS (скажем, DT с неправильным DT);

"Не могли бы вы купить мне холодный чай Lipton?" - ›« Не могли бы вы купить мне ледяной чай Lipton? »

  • Случайные лемматизации

Измените POS, например глаголы, на разные версии самого себя, используя NLTK:

«Не могли бы вы купить мне холодный чай Lipton?» - ›« Не могли бы вы купить мне холодный чай Lipton? »

  • Пропуск пробелов и использование случайных заглавных букв в первых буквах

Не требует пояснений

«Не могли бы вы купить мне холодный чай Lipton?» - ›« Не могли бы вы купить мне холодный чай Lipton? »

После сбора естественных и искусственных наборов данных мы загружаем их в модель.

Модель

Самым современным в машинном переводе является Attention LSTM Cells. Ячейка LSTM - это специальная ячейка рекуррентной нейронной сети. Рекуррентные нейронные сети - это искусственные нейронные сети, которые принимают на входе выходные данные предыдущего временного шага. Поэтому полезно для кратковременной памяти.

Слева вверху - хорошая визуализация для RNN. Правая сторона - это RNN, развернутая во времени. Я считаю, что эта модель будет очень полезна для решения этой конкретной проблемы. Я считаю, что вместо обычной ячейки RNN (A на рисунке выше) предпочтительнее будет ячейка LSTM.

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

Функция потерь, которая будет использоваться, представляет собой категориальную кросс-энтропийную потерю с оптимизатором ADAM.

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

Ввод «SELAM», когда он набирается, идет один за другим как ввод. На основе набираемых букв в последовательности, RNN предсказывает предстоящую букву. Сначала ожидается невысокая уверенность. Однако об этом позже. Это сценарии "многие ко многим". Наша RNN будет «Многие к одному»; Ошибочное написание слова «SELAM» как «SERAM» можно легко уловить с помощью этой архитектуры, как показано ниже на рисунке 4.

Именно эта природа «голосования» является причиной того, почему функция активации последнего слоя становится SoftMax, а функция потерь кросс-энтропии становится очень полезной в качестве функции потерь для обновления весов градиента скрытого слоя (то есть ячейки RNN LSTM). В приведенной выше ситуации, если сеть работает плохо и предсказывает последовательность строк «SERAM» как «ZEYTIN», функция кросс-энтропийных потерь гарантирует, что веса RNN обновляются в соответствии с; наказывать веса, которые усиливают ZEYTIN, и поощрять веса, которые голосуют за «SELAM». Более формально, учитывая i-й пример из возможных классов C, градиенты для положительных и отрицательных примеров можно увидеть в уравнениях 1 и 2.

Для модального окна грамматики это очень похожая идея. Единственное отличие состоит в том, напомним, что при предыдущем написании RNN мы вводили последовательность, а на выходе было предсказание одного слова. На этот раз ввод - это последовательность, а вывод - тоже последовательность, проще говоря, для слов существует более одного процесса «голосования». Эта модель Seq2seq может включать механизм внимания для достижения лучших результатов.

Общая архитектура

Канберк Айдын
, 2019 г., инженер по машинному обучению, Telstra Enterprise, Tec
Telstra Big Data AI, Telstra InfraCo

E [email protected]