#python #nlp #seq2seq
#python #nlp #seq2seq
Вопрос:
У меня есть три входных текстовых последовательности, которые вместе генерируют целевую последовательность. Я хочу закодировать три входа независимо. Каков правильный способ сделать это? Работает ли следующий способ? Каждый входной сигнал переходит на уровень ввода, уровень встраивания и уровень LSTM, затем объедините их вместе, снова используя bi-LSTM в качестве кодировщика.
Ответ №1:
Это зависит от того, как выглядят ваши данные. Если ваш ввод представляет собой просто текст, вероятно, неплохо объединить все входные данные в виде строк и разделить входные данные специальным маркером (способ, которым БЕРТ использует [SEP]
токен для разделения двух входных предложений). Несмотря на то, что BERT является Transformer, нет причин, по которым это не должно работать с LSTMs.
Если вы не используете attention, вы можете использовать несколько кодеров и объединить (и, возможно, спроецировать) выходные состояния для инициализации декодера, как вы предлагаете в вопросе.
Если вы хотите использовать attention, это становится немного сложнее, но есть способы, как использовать attention для нескольких входных данных. Иерархическое внимание обычно является хорошим выбором.