В чем разница между RNN, основанными на словах и символах?


15

Читая о генерации текста с помощью Recurrent Neural Networks, я заметил, что некоторые примеры были реализованы для генерации текста слово за словом, а другие - символ за символом, без указания причины.

Итак, в чем разница между моделями RNN, которые предсказывают текст на основе слова, и моделями, которые предсказывают текст на основе символа ? Требуется ли основанный на словах RNN больший размер корпуса? RNN на основе символов лучше обобщается? Может быть, единственное отличие - это входное представление (горячая кодировка, вложение слов)? Какие из них выбрать для генерации текста?

Ответы:


15

Вот что я узнал недавно.

Очевидно, что когда речь идет о RNN генерации текста, мы говорим о моделях языка RNN. Отвечая на вопрос о RNN для генерации текста на основе слова / символа , мы спрашиваем о языковых моделях RNN на основе слова / символа (LM).

LM на основе слов показывают более высокую точность и более низкие вычислительные затраты, чем LM на основе символов.

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

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

Поэтому мы можем сказать, что

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

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

Приведенный выше анализ имеет смысл, особенно когда вы смотрите на выходной текст, сгенерированный RNN на основе символов :

Удивленные инвесторы не собирались собирать деньги. Я не компания со временем там все интересное быстро, не надо отрываться от одних и тех же программистов.

В то время как простой LM на основе символов Максимальный Вероятность LM с 13-символьным окном обеспечивает это:

И когда она сделала много твердых кирпичей. Он сложил их в груды и топнул ногами. Доктор поставил ему диагноз "летучая мышь". Девушка и ее парень пригласили ее на свидание.

Конечно, я выбрал этот пример (на самом деле большинство примеров ML LM выглядело лучше, чем любой текст, сгенерированный RNN, который я читал до сих пор), и этот крошечный ML LM был обучен на более простом корпусе, но вы понимаете: прямая условная вероятность генерирует лучше тексты, чем гораздо более сложный на основе символов RNN.

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


1
Отличный комментарий. Следует добавить, что для некоторых задач та или иная проблема может иметь больше смысла независимо от вычислительных задач. Например, если ваша цель состоит в том, чтобы изучить векторы слов, чтобы найти отношения между словами, или если вы хотите сгенерировать текст, основанный на словосочетании, то вы должны использовать RNN на основе слов. И, наоборот, вероятно, есть проблемы, когда RNN на основе символов - это путь. Это также зависит от того, что пользователь пытается сделать.
Рикардо Крус,

Я не понял вашего последнего комментария: «RNN LM (на основе символов) на основе символов не соответствует действительности.» Я не видел основанного на Word RNN, имеющего смысл. Почему вы изолировали модели на основе символов?
Рикардо Крус,

Я обновил неоднозначное окончание.
минералы

Отличный ответ! В самом деле, кто-то может легко добавить, что это во многом зависит от задачи, размера вашего набора данных, языков и уровня предварительной обработки, которые вы готовы выполнить. Например, для обработки языков с более богатой морфологией и управления словарным (OOV) словом вы также можете использовать слово-модель с лемматизацией, пометкой pos, добавлять префиксы, суффиксы и т. Д.
Claude COULOMBE

5

Есть хорошая запись о Языке, моделирующем миллиард слов . Ниже приведены некоторые выдержки:

Модели на уровне слов имеют важное преимущество перед моделями на уровне персонажей.
Возьмем следующую последовательность в качестве примера (цитата из Роберта А. Хайнлайна):

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

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

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


1

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.