2

追加の機能トークンを既存の単語トークン (トレーニング機能/ソース ファイルの語彙) と共に渡し、それを seq2seq のエンコーダー RNN に供給する方法はありますか? そのため、現在、文から一度に 1 つの単語トークンのみを受け入れます。

これをもっと具体的に言いましょう。機械翻訳/nmt の例を考えてみましょう - 対応するソース語彙セット (ここでは Feature1) に対してさらに 2 つの機能列があるとします。たとえば、次のように考えてください。

+---------+----------+----------+
|Feature1 | Feature2 | Feature3 | 
+---------+----------+----------+
|word1    |    x     |     a    |
|word2    |    y     |     b    |
|word3    |    y     |     c    |
|.        |          |          |
|.        |          |          |
+---------+----------+----------+

要約すると、現在 seq2seq データセットは並列データ コーパスであり、ソース フィーチャ (語彙、つまり Feature1 のみ) とターゲット (ラベル/語彙) の間に 1 対 1 のマッピングがあります。複数の機能 (つまり、機能 1、機能 2、機能 3) をターゲット (ラベル/語彙) にマップする方法を探しています。

さらに、以下に引用されているように、これは seq2seq-pytorch チュートリアル ( https://github.com/spro/practical-pytorch/blob/master/seq2seq-translation/seq2seq-translation.ipynb ) で説明されていると思います。

単一の RNN を使用する場合、入力と出力の間に 1 対 1 の関係があります。変換中に一般的な異なるシーケンスの順序と長さの問題にすぐに遭遇します.seq2seqモデルでは、多くの入力を1つのベクトルにエンコードし、1つのベクトルから多くの出力にデコードすることにより、シーケンスの制約から解放されます.順番と長さ。エンコードされたシーケンスは、シーケンスの N 次元空間内の単一の点である単一のベクトルによって表されます。理想的なケースでは、この点がシーケンスの「意味」と見なすことができます。

さらに、テンソルフローを試してみましたが、デバッグして適切な変更を加えるのに多くの時間がかかり、どこにも行きませんでした。また、同僚から、pytorch にはそのような柔軟性があり、チェックする価値があると聞いています。

tensorflow または pytorch で同じことを達成する方法についての考えを共有してください。これを実際に実装/実行する方法を誰かが教えてくれるとうれしいです。前もって感謝します。

4

0 に答える 0