Вот что я узнал недавно.
Очевидно, что когда речь идет о 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 на основе слов обучаются быстрее и генерируют более связные тексты, и даже эти сгенерированные тексты далеки от реального смысла. ,
Есть хорошая запись о Языке, моделирующем миллиард слов . Ниже приведены некоторые выдержки:
Модели на уровне слов имеют важное преимущество перед моделями на уровне персонажей.
Возьмем следующую последовательность в качестве примера (цитата из Роберта А. Хайнлайна):
После токенизации модель на уровне слов может рассматривать эту последовательность как содержащую 22 токена. С другой стороны, уровень персонажа будет рассматривать эту последовательность как содержащую 102 токена. Эта более длинная последовательность усложняет задачу модели персонажа, чем модель слова, так как она должна учитывать зависимости между большим количеством токенов и большим количеством временных шагов. Другая проблема, связанная с моделями языка символов, заключается в том, что им необходимо изучать орфографию в дополнение к синтаксису, семантике и т. Д. В любом случае, модели языка слов обычно имеют меньшую ошибку, чем модели символов.
Основное преимущество персонажа над моделями словесного языка состоит в том, что у них очень маленький словарный запас. Например, набор данных GBW будет содержать приблизительно 800 символов по сравнению с 800 000 слов (после удаления низкочастотных токенов). На практике это означает, что модели персонажей потребуют меньше памяти и имеют более быстрый вывод, чем их словесные аналоги. Еще одним преимуществом является то, что они не требуют токенизации в качестве шага предварительной обработки.
источник
На мой взгляд, RNN на основе символов также будут работать лучше, но им нужно гораздо больше данных, чем для моделей на основе слов, и для моделей на основе символов необходимо обучаться в течение гораздо более длительного периода времени. Я бы сказал, что это скорее метод проб и ошибок, а также компромисс между доступными данными и вычислительной мощностью.
источник