TL; DR: Является двунаправленным RNN полезным для простой классификации текста и является дополнением к злу?(двунаправленный) RNN для простой классификации текста
В моей недавней работе я создал модель LSTM и модель BLSTM для одной и той же задачи, то есть классификацию текста. Модель LSTM проделала неплохую работу, но я решил дать BLSTM выстрел, чтобы увидеть, может ли она даже повысить точность. В конце концов, я обнаружил, что BLSTM намного медленнее сходится и на удивление, он перегружен, хотя я применил исключение с вероятностью 50%.
В реализации я использовал развернутый RNN для LSTM и BLSTM, ожидая более быстрого обучения. Чтобы выполнить это требование, я вручную заполнил входные тексты на фиксированную длину.
Предположим, у нас есть предложение «Я спал поздно утром и пропустил интервью с Навуходоносором», который затем дополняется 0 в конце, когда он преобразуется в массив индексов предварительно обученных вложений слов. Итак, мы получаем что-то вроде [21, 43, 25, 64, 43, 25, 6, 234, 23, 0, 0, 29, 0, 0, 0, ..., 0]. Обратите внимание, что «th» (должно быть «the») является опечаткой, а имя «Nebuchadnezzar» слишком редок, поэтому оба они не присутствуют в словаре, поэтому мы заменяем его также 0, что соответствует специальному полнотекстовому описанию, вектор нулевого слова.
Вот мои размышления:
Некоторые люди предпочитают изменения неизвестных слов в специальное слово как «< УНКА>» перед подачей в корпусе перчатку или модели Word2Vec. Означает ли это, что мы должны сначала создать словарь и сменить некоторые низкочастотные слова (в соответствии с настройкой количества минут) на «< unk>» перед тренировкой? Это лучше, чем изменение неизвестных слов на 0 или просто удаление их при обучении RNN?
Конечные 0s, переданные в сети LSTM или BLSTM, насколько я могу судить о выходе. Несмотря на отсутствие новой информации извне, состояние ячейки по-прежнему обновляется для каждого последующего шага, поэтому на выходе конечной ячейки будут сильно влиять длинные конечные 0s. И, на мой взгляд, BLSTM будет влиять еще больше, так как он также обрабатывает текст из обратного порядка, что-то вроде [0, 0, 0, ..., 0, 321, 231], особенно если мы установим начальную забудьте ворота в 1.0, чтобы воспитывать память в начале. Я вижу, что многие люди используют прописку, но не могут ли это привести к катастрофе, если тексты заполнены на большой длины, а в случае BLSTM?
Любая идея по этим вопросам? : -o