如果seq2seq模型中有多个输入,该怎么办?

问题描述

我有三个输入文本序列,一起生成目标序列。我想独立编码三个输入。正确的方法是什么?以下方式有效吗? 每个输入进入一个输入层,一个嵌入层和一个LSTM层,然后将它们再次结合在一起,使用bi-LSTM作为编码器。

解决方法

这取决于您的数据外观。如果您的输入仅是文本,则可以将所有输入串联为字符串,并用特殊标记分隔输入(用BERT使用[SEP]标记分隔两个输入句子的方式)。即使BERT是Transformer,也没有理由不能将其与LSTM一起使用。

如果您不注意,则可以执行多个编码器,并串联(也许投影)输出状态以按照问题中的建议初始化解码器。

如果要使用注意力,它会有点棘手,但是有多种方法可以对多个输入进行注意力。 Hierarchical attention通常是个不错的选择。