エンコーダー・デコーダーモデルとは

執筆者

Jacob Murel Ph.D.

Senior Technical Content Creator

Joshua Noble

Data Scientist

エンコーダー・デコーダーは、順次データ処理と生成に使用されるニューラルネットワークの一種です。

ディープラーニング において、エンコーダー・デコーダー・アーキテクチャは、Transformerアーキテクチャー と最も広く関連付けられており、シーケンスツーシーケンス学習で使用されるニューラル・ネットワーク の一種です。したがって、文献では、エンコーダー・デコーダーをシーケンス間モデル (seq2seqモデル) の一種として言及することもあります。多くの機械学習研究は、大規模言語モデル (LLM) を伴う自然言語処理 (NLP)タスクのエンコーダー・デコーダー・モデルに焦点を当てています

エンコーダー・デコーダー・モデルは、ニューラル機械翻訳、テキスト要約、画像キャプション作成、音声認識など、インプットシーケンスをアウトプットシーケンスにマッピングするシーケンシャルデータを処理するために使用されます。このようなタスクでは、インプット内のトークンをアウトプット内のトークンにマッピングするのは、多くの場合、間接的です。たとえば、機械翻訳を考えてみましょう。一部の言語では(英語など)動詞は文の先頭近くに表示されますが、他の言語(ドイツ語など)では文末に表示されます。また、一部の言語では、動詞の位置がより可変になる場合があります(例:ラテン語)。エンコーダ・デコーダー・ネットワークは、与えられたインプットシーケンスに対応する可変長でありながら文脈的に適切なアウトプットシーケンスを生成します1

The DX Leaders

AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。

ご登録いただきありがとうございます。

ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。

エンコーダー・デコーダー・アーキテクチャ

それぞれの名前から推測できるように、エンコーダーは特定のインプットをベクトル表現にエンコードし、デコーダーはこのベクトルを元のデータセットと同じデータ型にデコードします。

エンコーダーとデコーダーはどちらも別個の完全に接続されたニューラルネットワークです。これらは、リカレント・ニューラル・ネットワーク(RNN)—その変種である長短期記憶(LSTM)、ゲート付き再帰ユニット(GRU)—や畳み込みニューラルネットワーク(CNN)、さらにトランスフォーマーモデルです。エンコーダー・デコーダー・モデルには通常、複数のエンコーダーと複数のデコーダーが含まれます。

エンコーダー・デコーダー・アーキテクチャの図

各エンコーダーは、自己注意層(または自己注意メカニズム)とフィードフォワード・ニューラル・ネットワークの2つの層で構成されます。最初の層では、エンコーダーが特定の単語をエンコードする際に、特定のインプット内の他の関連単語に焦点を当てて調査するようにガイドします。フィードフォワード型ニューラル・ネットワークは、エンコードをさらに処理するため、後続のエンコーダー層やデコーダー層で対応できるようになります。

デコーダー部分は、自己注意層とフィードフォワードニューラルネットワーク、さらに第3層であるエンコーダー・デコーダー注意層でも構成されています。この層では、エンコーダーのアウトプットの特定の部分にネットワークの注意が集中します。これにより、マルチヘッド注意層は、2つの異なるシーケンスからのトークンをマッピングします。2

エンコーダー・スタックとデコーダー・スタックの一部の図

エンコーダー・デコーダー・モデルのしくみ

文献では、エンコーダー・デコーダーモデルは、エンコーダー、コンテキストベクトル、デコーダーの3つのコンポーネントで構成されていると広く紹介されています。3

エンコーダー

エンコーダーの主要コンポーネントは自己注意機構です。自己注意機構は、インプットにおけるトークンの重みを決定し、トークン間の関係性を反映させます。語順を無視する従来の単語埋め込みとは異なり、自己注意は入力テキストシーケンス全体を処理して、各トークンの重み付き平均埋め込みを計算します。この埋め込みでは、テキストシーケンス内の他のすべてのトークンからの各トークンまでの距離を考慮します。この平均埋め込みは、入力シーケンスのすべての埋め込みの線形結合として、以下の式に従って計算されます。

エンコーダー入力の数式表現で、x の i ダッシュが j = 1 から n までの w の j i と x の j の積の総和に等しいことを示しています

ここで、xjは入力テキスト文字列のj番目の位置にある与えられた入力トークンを表し、xiは入力テキスト文字列のi番目の位置に対応する出力トークンを表します。係数wijは注意の重みであり、ソフトマックス関数と呼ばれるものを使用して計算され、アウトプットにおけるそのトークンが対応するソース・シーケンスに対してどれほど重要であるかを表します。言い換えれば、この係数は、ソーステキスト内の元のトークンの重要性に関して、エンコーダーが出力内の各トークンにどの程度の注意を払うべきかを示します。4

単語の埋め込みと位置エンコーディングを組み合わせて、3つの単語(Alas, poor, Yorick)の時間シグナルによる埋め込みを作成することを示す図

エンコーダーは、このトークン埋め込みをフィードフォワード層に渡し、フィードフォワード層は、トークンの埋め込みに位置エンコーディング(または埋め込み)を追加します。この位置エンコーディングは、テキスト内のトークンの順序、特にトークン間の距離を考慮します。トークン埋め込みと位置埋め込みが一緒に、デコーダーに渡される隠し状態を構成します。5

コンテキストベクトル

文献では、エンコーダの最終的な隠れ状態は広くコンテキストベクトルと呼ばれています。これはエンコーダーの初期入力テキストを凝縮した数値表現です。より簡単に言えば、入力シーケンスの各単語に対してエンコーダーが生成する埋め込みと位置エンコーディングを指します。

文献では、コンテキストベクトルを次の関数で定義することが多いです。コンテキストベクトルXは、インプットのi番目の位置にある各トークン( x )として定義されます6

Cが1からnのサブxまでの一連のx値に相当するコンテキストベクトル関数の式

デコーダー

エンコーダーと同様に、デコーダーも自己注意層とフィードフォワード・ネットワークで構成されています。これらの間に、デコーダーは複数のヘッド注意マスキング層を含みます。これは、エンコーダーとデコーダーの違いを示します。エンコーダーは文脈化されたトークンの埋め込みを同時に生成しますが、デコーダーのマルチヘッド注意層は自己回帰マスキングを利用します。

まず、デコーダーはエンコーダーからコンテキスト・ベクトルを受け取ります。デコーダーは、これらの位置埋め込みを使用して、各トークンの注意スコアを計算します。これらの注意スコアは、入力シーケンス内の各トークンが後続のトークンにどの程度影響を与えるかを決定します。言い換えれば、出力シーケンスを生成する際、各トークンが他のトークンの決定に与える重みを決定するのです。

ただし、この重要な特徴の一つは、デコーダーが同じシーケンスにおいて先行するトークンを決定するために将来のトークンを使用しない点です。各トークンの生成するアウトプットは、前のトークンにのみ依存します。つまり、トークンのアウトプットを生成する際、デコーダーは現在のトークンの後の単語またはトークンを考慮しません。多くの人工知能技術と同様に、これは人間が情報、特に言語を処理する方法に関する従来の理解を模倣することを目的としています。この情報処理のアプローチは自己回帰と呼ばれます。7

Hamlet Quoteの自己回帰マスキングの図

NLPでエンコーダー・デコーダー・モデルを使用する理由

感情分析やマスキング言語モデリングといった下流の自然言語処理タスクにおけるエンコーダー・デコーダー・モデルの最も優れた利点の一つは、文脈化化された埋め込みの生成です。これらの埋め込みは、 Bag of Wordsモデルで使用される固定単語埋め込みとは異なります。

まず、固定埋め込みでは語順は考慮されません。そのため、テキストシーケンス内のトークン間の関係は無視されます。文脈化化された埋め込みでは、位置エンコーディングによる単語の順序が考慮されます。さらに、文脈化化された埋め込みは、埋め込みを生成する際に、特定のシーケンス内のトークン間の距離を考慮する注意メカニズムを通じて、トークン間の関係を捉えようとします。

固定埋め込みは、特定のトークンに対して1つの埋め込みを生成し、そのトークンのすべてのインスタンスを結合します。エンコーダー・デコーダー・モデルは、トークンのインスタンスごとに文脈化化された埋め込みを生成します。成果として、文脈化化された埋め込みは、多義的な単語、つまり複数の意味を持つ単語をより巧みに処理します。例えば、ハエは行動や昆虫を意味します。固定語の埋め込みは、トークンまたは単語の単一の埋め込みを作成することで、この単語の複数の意味を崩壊させます。しかし、エンコーダー・デコーダーモデルは、ハエという単語が出現するたびに個別の文脈化された埋め込みを生成するため、複数の異なる埋め込みを通じて無数の意味を捉えることができます。8

オフィスでミーティングをするビジネスチーム

IBMお客様事例

お客様のビジネス課題(顧客満足度の向上、営業力強化、コスト削減、業務改善、セキュリティー強化、システム運用管理の改善、グローバル展開、社会貢献など)を解決した多岐にわたる事例のご紹介です。

エンコーダーとデコーダーのバリアントの種類

予想どおり、エンコーダー・デコーダー・アーキテクチャには多くのバリエーションがあり、それぞれデータサイエンスと機械学習における独自の主なユースケースがあります。

エンコーダーのみ。これらのモデル(オートエンコーダーとも呼ばれる)は、デコーダーを使用せずにエンコーダー・スタックのみを使用します。したがって、このようなモデルには自己回帰マスクモデリングが欠けており、初期インプットテキスト内のすべてのトークンにアクセスできます。そのため、これらのモデルは、周囲のすべてのトークン(先行および後続トークンの両方)を使用して特定のトークンの予測を行うため、双方向として説明されます。よく知られているエンコーダーモデルには、BERT9、RoBERTa10、ELECTRA11といったBERTファミリーのモデルや、IBM Slateモデルなどがあります。エンコーダーのみのモデルは、テキスト分類やNamed Entity Recognitionなど、テキストインプット全体を理解する必要があるタスクによく使用されます。

デコーダーのみ。これらのモデル(自己回帰モデルとも呼ばれます)は、エンコーダーではなくデコーダー・スタックのみを使用します。したがって、トークン予測を行う際、モデルの注意層は検討中のトークンの前にあるトークンにのみアクセスできます。デコーダーのみのモデルは、質問への回答、コードの記述、ChatGPT などのチャットボットなどのテキスト生成タスクによく使用されます。デコーダーのみのモデルの例としては、IBM Graniteファミリーの基礎モデルが挙げられます。12

関連ソリューション
IBM watsonx.ai

AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。

watsonx.aiをご覧ください。
人工知能ソリューション

業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。

AIソリューションはこちら
AIコンサルティングとサービス

AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。

AIサービスはこちら
次のステップ

AI開発ライフサイクル全体にわたる機能にワンストップでアクセスできます。使いやすいインターフェース、ワークフロー、業界標準のAPIやSDKを利用して、強力なAIソリューションを構築できます。

watsonx.aiの詳細はこちら デモを予約
脚注

Jurafsky, D. and Martin, J.,  “Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition”, Third edition, 2023.

Telmo, P., Lopes, A. V., Assogba, Y. and Setiawan, H. “One Wide Feedforward Is All You Need” , 2023.
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, L. and Polosukhin I. “Attention Is All You Need”, 2017.
Tunstall, L., Werra, L. and Wolf and T. “Natural Language Processing with Transformers”, Revised Edition, O’Reilly, 2022

3 Goodfellow, I., Bengio, Y. and Courville, A. “Deep Learning”, MIT Press, 2016.
Jurafsky, D. and Martin, J. “Speech and Language Processing”, Third Edition, 2023.
Tunstall, L., Werra, L. and Wolf and T. “Natural Language Processing with Transformers”, Revised Edition, O’Reilly, 2022.

4 Tunstall, L., Werra, L. and Wolf and T. “Natural Language Processing with Transformers”, Revised Edition, O’Reilly, 2022.
Goldberg, Y. “Neural network methods for Natural Language Processing”, Springer, 2022.

5 Alammar, J. and Grootendorst, M. “Hands-on Large Language Models”, O’Reilly, 2024.

6
Goodfellow, I., Bengio, Y. and Courville, A. “Deep Learning”, MIT Press, 2016.
Jurafsky, D. and Martin, J. “Speech and Language Processing”, Third Edition, 2023.

7 Foster, D. “Generative Deep Learning”, Second Edition, O’Reilly, 2023.
Rothman, D. “Transformers for Natural Language Processing”, Second Edition, 2022. 
Jurafsky, D. and Martin, J. Speech and Language Processing”, Third Edition, 2023.

8 Tunstall, L., Werra, L. and Wolf and T. “Natural Language Processing with Transformers”, Revised Edition, O’Reilly, 2022. 

9 Devlin, J. et all. “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”, 2019.

10 Liu, Y., Ott, M., Goyal, N., Du, J.,  Joshi, M., Chen,  D., Levy, O., Lewis, M. ,  Zettlemoyer,  L.  and Stoyanov, V. “RoBERTa: A Robustly Optimized BERT Pretraining Approach”,  2019.

11 Clark, K. et all. “ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators”,  2020.

12 Mayank, M. et all. “Granite Code Models: A Family of Open Foundation Models for Code Intelligence” 2024.
Ruiz, A. “IBM Granite Large Language Models Whitepaper” 2024.