シーケンス・ツー・シーケンスSequence-to-Sequence

最後まで聞いてから別の長さで作り直す構造

ポイント
  • シーケンス・ツー・シーケンスは、次々に入ってきたものを受け取り次々に送り出す構造です。翻訳や要約やチャットボットはみなこの枠組みから始まりました。
  • モデルが聞く側と作る側の二つに分かれます。聞く側は最後まで読み切り、作る側はそのあとで一つずつ出します。
  • 二つをつなぐのは要約のかたまり一つです。作る側は原文を見ず、このかたまりだけを見ます。
  • 入ってくる数と出ていく数が違ってもかまいません。四語聞いて三語出すこともできます。
  • 要約のかたまり一つにすべて詰め込もうとするので、長い文章では前半が漏れる問題が起き、その答えとして注意機構が生まれました。
目次

1たとえで理解する

定食屋のカウンターで注文を受けます。お客さんが「生姜焼き定食一つと、あと味噌汁を豚汁に変えてください、それとご飯は大盛りで」と言い終えるまで、途中でさえぎらず最後まで聞きます。お客さんの話が終わって、はじめて伝票一枚に注文をまとめて書き、厨房に渡します。

厨房はお客さんの声を聞きません。渡された伝票一枚だけを見て、生姜焼きを焼き、味噌汁の代わりに豚汁をよそい、ご飯を大盛りにしてお皿を一つずつ出していきます。お客さんが何語話したかと、お皿が何枚出るかは互いに関係ありません。聞く側と作る側をこのように二つに分けたのがシーケンス・ツー・シーケンスです。

2くわしく

聞く側と作る側が別々になっている

先に出てきた再帰型ニューラルネットワークは、一語受け取ったらすぐに一語出す方式でした。この方式では翻訳ができません。日本語と英語は語順が違い数も違うので、最初の語を聞いた瞬間に最初の語を出すことができないからです。

シーケンス・ツー・シーケンスは、モデルをはじめから二つに分けます。前半は文章を読み込むだけで何も出しません。後半は読む仕事をせず、作り出すことだけをします。二つは別々の手加減を持ち、それぞれ学習されます。

最後まで聞いてから始める

読む側は文章を一語ずつ受け取りながら要約を更新し続けます。最後の語まで入れ終わると、その時点の要約のかたまり一つが残ります。このかたまりが文章全体の代わりを務める荷物です。

作る側は、このかたまりを出発点にして最初の語を出します。そして自分がたった今出した語を再び自分の入力として受け取り、次の語を出します。この繰り返しが終わるまで続きます。

止まるときを知らせる印も別に用意します。文章が終わったという信号と文章を始めよという信号を語のように一つずつ作っておき、一緒に学習させます。作る側が終わりの信号を出したら、そこで止まります。

長さが違ってもいい理由

読むことと作ることが完全に分かれているので、数を合わせる理由がありません。読む側は語の数だけ回り、作る側は終わりの信号が出るまで回ります。四語読んで七語出しても何の問題もありません。

この性質のおかげで使える場所が大きく広がりました。長い文章を短くまとめる要約、短い質問に長い答えを付ける対話、音声を文字に起こす書き起こしがすべて同じ枠組みに入ります。入ってくる列と出ていく列の種類が違っていてもかまいません。

伝票一枚では狭くて漏れる

問題は伝票が一枚しかないことにあります。三語の注文でも三十語の注文でも、同じ大きさのかたまり一つに押し込めなければなりません。注文が長くなると、前のほうで聞いた内容から場所を失っていきます。

翻訳ではこの症状がはっきり現れました。短い文はうまく訳せるのに、文が長くなると前の節の内容をまるごと落としたり、見当違いに変えてしまったりすることが多くありました。構造そのものから来る限界なので、モデルを大きくしても解決しませんでした。

今はどう変わったか

解決策は、伝票一枚だけを渡すのではなく、作る側が必要になるたびに原文のほうを見返せるようにすることでした。お皿を一つ作るたびに、お客さんが言った中のどの部分が今必要かを選んで見るようなものです。この仕組みが注意機構です。

注意機構が付くと性能が大きく伸び、まもなく再帰の構造を取り除いて注意機構だけを残したトランスフォーマーが登場しました。今使われている翻訳機や対話型AIも、内側の部品は変わりましたが、聞く側と作る側を分けて別の長さに移すという骨組みはそのまま受け継いでいます。

3もう少し正確に

シーケンス・ツー・シーケンスは、エンコーダーとデコーダー二つの神経網をつなぎ、長さの決まっていない入力列を長さの違う出力列に変える枠組みです。エンコーダーの最後の隠れ状態が文脈ベクトルとなり、デコーダーの最初の状態として入ります。初期にはどちらの神経網も再帰型ニューラルネットワークか長短期記憶で作られていました。

比喩がずれる点もあります。伝票には人が読める文字が書かれますが、文脈ベクトルは数字のまとまりなので開いても読めません。また厨房はお皿を同時に何枚も作れますが、デコーダーは前に出した語を見て次の語を作るので、必ず一つずつ順番に出てきます。

学習のときと実際に使うときで動きが少し違います。学習のときは正解の文をあらかじめ入れておいて次の語を当てさせ、実際に使うときは自分がたった今作った語を再び入れます。だから一度ずれると、後ろが次々にずれることもあります。この違いを埋めるために、学習の途中から少しずつ自分の出力を混ぜていく訓練の工夫も使われます。

4やってみる

5よくある誤解

  • 入力と出力の数が同じでなければならないと思われがちですが、実際には数が違ってもいいようにしたことがこの構造の核心です。

  • 作る側が原文をずっと見続けていると思われがちですが、実際には基本構造では原文の代わりに要約のかたまり一つだけを受け継ぎます。

  • トランスフォーマーが出てこの枠組みは消えたと思われがちですが、実際には聞く側と作る側を分ける発想はそのまま受け継がれ、部品だけが変わりました。

7ひとこと要約

つまりシーケンス・ツー・シーケンスは最後まで読んで要約一つに渡した後、それだけを見て再び一つずつ作り出す構造で、入ってくる長さと出ていく長さが違っても扱えます。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02