第5章: 順番を覚える — RNNとLSTM
ある長い文章をあなたが読んでいる。
「鈴木さんは朝早く家を出て、駅でコーヒーを買い、地下鉄に乗り、3 つ目の駅で降りて、信号を渡って、会社のビルに着いた。彼女 のデスクには …」
彼女 が誰を指すか、あなたは即座に分かる ── 冒頭で出た 鈴木さん だ。
途中の「コーヒー」「地下鉄」「信号」は脇道の出来事で、最初の登場人物が今も生きている、と判断している。
人間がやっているのは、読みながら頭の中に「これまでに出てきた人物・話題・流れ」を抱え続ける ことだ。 n-gram(前章)は 直前 2〜3 単語しか見ない ので、こんな芸当はできない。
ここで機械にも「読みながら覚えておく」能力を持たせたい。 そのために生まれた仕組みが本章の主役 ── RNN と LSTM だ。
5.1 「過去を覚えながら読む」という発想
前章の n-gram は、たとえるなら 記憶を持たない読書家 だ。 ページを 1 つめくるたびに直前の数単語以外は忘れてしまい、毎回ゼロから「次の単語は何か」を予測する。
これを改善するには、読みながら情報を蓄え続ける器 を機械の内側に持たせるのが自然な発想だ。
RNN (Recurrent Neural Network = リカレントニューラルネット) の発想
文を 1 トークンずつ順に読み、各時点で 「これまでの情報を要約した内部状態」 を更新していく。 次のトークンを予測するときは、この内部状態を頼りにする。
「これまでの情報を要約した内部状態」── これがミソだ。 n-gram は「直前 n−1 トークン」を覚えていたが、RNN は理屈上 文の始めから今までの全部 を内部状態に圧縮する。
つまり RNN は 読書家にメモ用紙を 1 枚渡した ようなものだ。 本のページを読み進めるごとに、メモ用紙を 更新 していく。 直近の単語を読むときには、このメモ用紙だけ見れば、これまでの情報の要約が得られる。
5.2 RNN の動作イメージ
絵で描くと、こうなる。
ポイントは、赤い矢印(同じ枠の中での「前から次へ」のつながり) にある。 h₁ には「鈴木」の情報だけ、h₂ には「鈴木 + さん」の情報、…、h₅ には「鈴木 さん は 朝早く 家を」を圧縮した情報が乗っている。
この 「過去を圧縮した内部状態を、各ステップで持つ」 という構造が、リカレント(再帰的)の名の通り、文の長さに関わらず一定の枠組みで処理できる強みを生む。
RNN は 直前 n−1 単語 という人為的な窓を切り捨てた。 理屈上は、文の最初のトークン の情報も内部状態 h に乗っているはずだ。 これは前章末で見た n-gram の最大の弱点 = 長距離依存に弱い を、原理的に解いている。
5.3 RNN は何ができるか ── 「系列を扱う」基本ツール
RNN という枠ができると、いろいろなタスクが同じ枠で扱えるようになる。
| タスク | 入出力の関係 |
|---|---|
| 言語モデリング(次トークン予測) | 入力: 1 トークンずつ。出力: 次のトークン確率 |
| 文章生成 | 予測で得た次トークンを入力に戻して、自己回帰的に生成 |
| 文書分類(スパム、感情分析など) | 入力: 全文。最終の h を見て分類 |
| 機械翻訳(初期型) | 入力 RNN で英語を読み、出力 RNN で日本語を生成(seq2seq という構造) |
| 固有表現抽出(NER) | 入力: 各トークン。出力: 各トークンが人名・地名かのラベル |
このうち seq2seq(sequence-to-sequence) は、機械翻訳に革命をもたらした構造で、後の第6章で扱う Attention の温床にもなった。 入力 RNN で英文を読み、その情報を圧縮した「最後の隠れ状態」を、出力 RNN に手渡して日本語を生成する ── という仕組みだ。
しかし、ここで一つの根深い問題にぶつかる。
5.4 RNN の弱点 ── 「長い文だと記憶が薄れる」
理屈上、RNN は文の最初のトークンの情報も最後まで覚えていられるはずだった。 ところが、実際に学習させてみると、長い文では昔の情報がどんどん薄れる という現象が起きた。
具体例:
「鈴木さん は朝早く家を出て、駅でコーヒーを買い、地下鉄に乗り、3 つ目の駅で降りて、信号を渡って、会社のビルに着いた。彼女 のデスクには …」
理屈上は、彼女 を処理するステップで 鈴木さん の情報も内部状態 h に残っている。
だが現実には、間に「コーヒー」「地下鉄」「3 つ目の駅」「信号」と多くの新情報が割り込む うちに、鈴木さん の痕跡が薄まり、最後にはほぼ消える。
技術的にはこれを 勾配消失問題(vanishing gradient) と呼ぶ。 ニューラルネットの学習信号が、ステップを遡るほど弱くなり、長距離の依存関係を学習できなくなる現象だ。
ここは、本書で深入りしないが、「ニューラルネットの記憶は、ただ長い時間放っておくと指数的に薄れる」 という事実だけ覚えておいてほしい。
学校の数学のように「100 ステップ遡れる」とはいかず、実用上は「10〜20 ステップが限界」程度の感覚で、設計者は悩まされていた。
5.5 LSTM ── 「忘れない仕組み」を作り込む
この勾配消失問題に対し、1997 年に Hochreiter と Schmidhuber が提案した解決策が、LSTM (Long Short-Term Memory) という改良版 RNN だった。
LSTM の核となる発想:
RNN の内部状態に「ゲート(門)」を仕込み、忘れる・覚える・取り出すを明示的に制御する。
- 忘却ゲート (forget gate): 過去の記憶のうち、いま捨てていいものを判定
- 入力ゲート (input gate): 今のステップで覚えるべき新情報を判定
- 出力ゲート (output gate): 今のステップで予測に使う記憶を選ぶ
これにより、重要な情報は何百ステップでも保持 され、どうでもいい情報は早く忘れる ── という動的なメモリ管理が可能になる。
たとえるなら、RNN は メモを取りっぱなしのノート で書ききれなくなる人。 LSTM は 重要なところだけ蛍光ペンで残し、不要な落書きは消す スマートな読者だ。
LSTM の登場(と、その親戚の GRU)によって:
- 機械翻訳(seq2seq)の精度が大きく上がる
- 音声認識、株価予測、動画分析など、長い系列を扱う様々な分野で標準ツールになる
- 文脈埋め込みの ELMo(第3章)も LSTM ベース
2010 年代前半、自然言語処理の最先端は 「とにかく LSTM で系列を扱う」 時代だった。
補足本書では LSTM の数式や内部構造には踏み込まない。
「ゲートで記憶を制御する」「長距離依存を扱う」「2010 年代前半の標準ツールだった」という性質さえ覚えておけば、後章への接続には十分だ。
5.6 LSTM もまだ限界があった ── 並列化できない
LSTM は素晴らしかったが、2 つの本質的な制約 が残った。
制約①: 並列化できない
RNN/LSTM は 「1 トークンずつ順に処理する」 構造をしている。 ステップ 5 を計算するには、ステップ 4 の内部状態 h₄ が必要。h₄ を得るには h₃ が必要 ── と前のステップの計算を順番に待つしかない。
これは現代の GPU(並列計算が得意なハードウェア)と相性が悪い。 たとえ文中の 1000 トークンが互いに独立して計算できる関係にあっても、順番に待たないと進めない。 学習に時間がかかり、巨大データで訓練することが難しかった。
制約②: 長距離依存はやはり苦手
LSTM のゲートはずいぶん改善したが、「100 ステップ以上の長距離依存」 はやはり扱いにくかった。 特に、文書全体や複数段落をまたぐ依存は、現実的には捉えきれない。
この 2 つを 一気に解決した のが、第6章で出てくる Attention と、それを全面採用した第7章の Transformer だ。
「順番に読まなくていい」「全トークンを一度に見て、どこに注目するかを学ぶ」
この発想の転換が、現代 LLM の爆発を準備した。
5.7 「系列を扱う」編、ここまでの整理
第4〜5章で、「系列を扱う」グループを走り切った。 ここでの 2 つの章は、第6章以降の Attention / Transformer への重要な布石になっている。
| 章 | やったこと | 残った課題 |
|---|---|---|
| 第4章 n-gram | 単語の並びを確率で見る基本 | 長距離依存に弱い、単語が背番号 |
| 第5章 RNN/LSTM | 内部状態に文脈を蓄えて、長い系列を扱う | 並列化できない、超長距離は苦手 |
次のグループでは、これら「順に読む」アプローチを 根本から見直す。 全文を一気に眺めて、どこに注目すべきか を学ばせる ── Attention の発想に踏み込む。 そこから一直線に Transformer、BERT、GPT へと続く。
5.8 この章の振り返り
- n-gram の「直前 n 単語しか見ない」制約を、内部状態(記憶)を持つ仕組み で乗り越えるのが RNN
- RNN は文を 1 トークンずつ読み、各ステップで内部状態を更新していく
- 同じ枠で 言語モデリング、文書分類、機械翻訳(seq2seq)、固有表現抽出 が扱える
- 弱点は 勾配消失 ── 長い文では過去の情報が薄れる
- LSTM は「忘却・入力・出力」のゲートで記憶を明示的に管理し、長距離依存を改善
- 2010 年代前半は LSTM が NLP の標準ツールだった
- ただし LSTM にも 「並列化できない」「100 ステップ以上の長距離はやはり苦手」 という限界
- これを解く道具立てが、次章以降の Attention と Transformer
次章では、機械翻訳の seq2seq の中で生まれた発想 ── Attention がいかに NLP を変えたかを見にいく。 本書のクライマックスへの助走が始まる。