Now Loading...

Now Loading...

自然言語処理(NLP)は、人間の言語をコンピュータが理解・生成するための技術です。Transformerはその分野において画期的なアーキテクチャとして登場し、多くのNLPタスクで大きな成功を収めています。今回はTransformerの自然言語処理における仕組みについて解説していきたいと思います。

Transformer概要

言語処理の歴史

以前の言語処理モデルはCNNやRNNを利用したものが多く、文章を頭から順に処理していく逐次実行形式をとっているため、文章量に応じてかなりの処理時間がかかる上に離れた単語同士の依存関係を把握できないという問題がありました。

Attention

近年の自然言語処理(NLP)にはAttentionという仕組みが使われています。

Attentionは重要な情報にのみ注目する手法です。

例を用いて説明します。図は日本語の文章を英語に変換する場合を想定しています。

Attentionでは文全体やその並び順に注目するのではなく、重要な単語に対して注目して処理することで上記の問題を解決しています。文章がどれほど長くても重要な部分に注目することで処理しているため、必要な時間が短く、依存関係を適切に把握できるわけです。

Transformerの仕組み

Transformerは図のように入力を解析するエンコーダ部分と出力を生成するデコーダ部分から成ります。

図では簡略化して書いていますがエンコーダやデコーダは通常複数積み重ねて使用されます。

入力

トークン化

Transformer入力された文章はattention機構でも説明したようにトークンに分解されます。

エンベディング

各トークンは数値的に処理できるように高次元のベクトルに変換されます。

例 king=[0.8,0.2,0.1,0.4,…] queen=[0.7,0.3,0.2,0.5,…] man=[0.5,0.1,0.6,0.7,…] woman=[0.6,0.2,0.5,0.8,…]

位置エンコーディング

位置エンコーディングは各トークンの位置を表すベクトルを計算することで文章のトークンの順番に関する情報をベクトルとして表します。

エンコーダに入力されるもの

エンコーダにはエンコーディングと位置エンコーディングの和が入力されます。そうすることで単語や文章での位置を表現したベクトルが生成できるわけです。

エンコーダ仕組み

TransformerのエンコーダはMulti-head-attention機構とPosition-wise Feed-Forward Networks(FFNN)という2層から成ります。

Multi-head-attention機構とは

Multi-head-attention機構はSingle-head-attention機構と呼ばれる機能を並列に複数積んだものです。

まずはSingle-head-attention機構について説明します。

Single-head-attention機構

Single-head-attention機構ではSelf-attentionと呼ばれる手法で単語間の関連性を計算します。

Self-attentionは1つの単語に対して他のすべての単語との関連度を計算する手法のことです。

図の例では私というトークンに対して各トークンの関連度を数値化しています。数値が大きい程関連度が高いことを表します。

これらの計算は、クエリとよばれる探したいもしくは関連性を調べたい単語のベクトルと検索元である文章から生成されるキーとバリューの内積によって求めることができます。

Single-head-attention機構では各トークンに対してこの処理を行いすべてのトークン間の関連度を明らかにします。

Multi-head-attention機構は複数のSingle-head-attention機構を組み合わせることによりより正確に文章における単語間の関連性を把握できるようになります。各Single-head-attentionは異なる重みを使用するため、さまざまな観点からトークン間の関係を分析できるためより正確に処理できるわけです。

Position-wise Feed-Forward Networks(FFNN)

入力として各トークンに関する関連度を受け取りMLPと同様に順伝搬を行います。この処理によってより複雑な関係が学習可能になります。

デコーダの仕組み

Transformerのデコーダはself-attention機構とEncder-Decoder attention機構とPosition-wise Feed-Forward Networks(FFNN)から成ります。

Masked-Multi-head-attention機構

デコーダにおけるMasked-Multi-head-attention機構はデコーダが今までに生成したシーケンスとの単語の関連性を計算します。ここでもエンコーダ同様に複数のSingle-head-attention機構を組み合わせて使用しています。

図のように過去に生成したトークンと先ほど生成したトークンの関連度を計算します。

この計算にもキューキーバリューが使用されています。

Encoder-Decoder Attention機構

エンコーダから受け取った入力とデコーダのMasked-Multi-head-attention機構からの出力を組み合わせて生成すべき次の単語を予想します。エンコーダの入力は各トークン間の関連性でした。デコーダは現在の出力状態を表しています。入力の単語間の関係と現在の出力の状態から次に生成すべき単語を予想します。

ここでもキューキーバリューを設定することで次に生成すべき単語を計算しています。

Position-wise Feed-Forward Networks(FFNN)(デコーダ用)

デコーダのFFNNは生成されたベクトルを入力すると次に生成すべき単語に関する確率分布が出力されます。基本的には最も確率の高い単語が選択され生成されます。生成後はまたMasked-Multi-head-attention機構から始まります。

まとめ

今回はTransformerの仕組みについて生成過程にフォーカスを当て解説しました。この仕組みは言語処理だけでなく画像処理にも応用されています。気になる方は是非調べてみてください。

\ シェア /

E資格スピードパッケージ2023#2修了者合格率100%達成

zero to one E資格 jdla

zero to oneの「E資格」向け認定プログラム

日本ディープラーニング協会の実施するE資格の受験ならzero to oneの「E資格」向け認定プログラム (税込165,000円) をおすすめします。当講座は、東京大学大学院工学系研究科の松尾豊教授と東北大学大学院情報科学研究科の岡谷貴之教授が監修する実践的なプログラムとなっています。
厚生労働省の教育訓練給付制度対象のE資格認定プログラムの中では最安値※となり、実質負担額49,500円~(支給割合70%の場合)で受講可能です。※2023年弊社調べ zero to one E資格 jdla

人工知能基礎講座を提供中

人工知能の第一人者である東京大学の松尾豊教授が監修した人工知能基礎講座を受講してみませんか? 人工知能の歴史から自然言語処理、機械学習、深層学習といった最先端のトピックやAIに関わる法律問題まで網羅しているので全てのビジネスパーソン・AIの初学者におすすめです。

サンプル動画

人工知能基礎講座はこちら↓ zero to one G検定 人工知能基礎 jdla

AI初学者・ビジネスパーソン向けのG検定対策講座

G検定受験前にトレーニングしたい方向けの問題集「G検定実践トレーニング」も提供中です。 zero to one E資格 jdla