【E資格不合格から学ぶ】Transformer(自然言語処理)のポイントを解説! 

  • 「Transformer」について学びたいけど理解できるか不安・・・
  • 「Transformer」についてどこから学んでいいか分からない?
  • 「Transformer」を体系的に教えて!

 「Transformer」はエンコーダとデコーダをAttentionというモデルのみで結んだネットワーク構造である機械翻訳で用いられますが、難しそうで何から学んだらよいか分からず、勉強のやる気を失うケースは非常に多いです。

 私は2年程前に「一般社団法人 日本ディープラーニング協会」が主催の「G検定試験」に合格しました。現在、「E資格」にチャレンジ中ですが3回不合格になり、この経験から学習の要点について学ぶ機会がありました。

 そこでこの記事では、「Transformer」を学習する際のポイントについて解説します。

 この記事を参考に「Transformer」が理解できれば、E資格に合格できるはずです。

<<「Transformer」のポイントについて今すぐ見たい方はこちら

目次

1.EncoderーDecoderモデルの理解と実装

自然言語処理の流れ

EncoderーDecoder Model(Seq2seq

Transformer
(EncoderーDecoder x Attention)

BERT

Seq2seqとは・・・
  • 入力:系列(Sequence)→ 出力:系列(Sequence)
  • EncoderーDecoder モデル
     入力系列がEncode(内部状態に変換)され、内部状態からDecode(系列に変換)する
  • 実応用上も、入力・出力共に系列情報なものは多い
    ・翻訳(英語→日本語)
    ・音声認識(波形→テキスト)
    ・チャットボット(テキスト→テキスト)
Seq2seqの特徴

 

RNN(再帰型ニューラルネットワーク)とは・・・

系列データを読み込むために再帰的に動作するNN(ニューラルネットワーク)

再帰的とは・・・
  • 出力が再び入力になる
再帰的状態の説明図
再帰的状態の説明図
再帰処理のメリット
  • 時間軸方向に展開できる
RNNのイメージ図
RNNのイメージ図
再帰処理の具体例
  • 系列情報を舐(な)めて内部状態に変換できる
RNNのイメージ図②
RNNのイメージ図②
言語モデルとは・・・
  • 単語の並びに確率を与える
  • 単語の並びに対して尤度(それがどれだけ起こり得るか)、
    すなわち、文章として自然かを確率で評価する。
  • 例)
    ・You say goodbye → 0.092(自然)
    ・You say good die → 0.00000032(不自然)
  • 数学的には同時確率を事後確率に分解して表せる
言語モデルの数式
言語モデルの数式
  • 時刻t-1までの情報っで、時刻tの事後確率を求めることが目標
    →これで同時確率が計算できる
言語モデル
言語モデル
「RNN×言語モデル」とは・・・
  • 各地点で次にどの単語が来れば自然(事後確率最大)かを出力できる。
RNN×言語モデル
RNN×言語モデル
「RNN×言語モデル」のまとめ
  1. RNNは系列情報を内部状態に変換する事ができる
  2. 文章の各単語が現れる際の同時確率は、事後確率で分解できる。
    したがって、事後確率を求めることがRNNの目標になる。
  3. 言語モデルを再現するようにRNNの重みが学習されていれば、
    ある時点の次の単語を予測することができる。
  4. 先頭単語を与えれば文章を生成することも可能
Seq2seqとは・・・

EncoderからDecoderに渡される内部状態ベクトルが鍵

Seq2seqのイメージ図
Seq2seqのイメージ図

Decoder側の構造は言語モデルRNNとほぼ同じだが
隠れ状態の初期値にEncoder側の内部状態を受け取る。

Seq2seqのイメージ図②
Seq2seqのイメージ図②

Decoderのoutput側に正解を当てれば教師あり学習が「End to end」で行える。

2.SelfーAttention(自己注意機構)とは

自然言語処理の流れ


EncoderーDecoder Model(Seq2seq

Transformer
(EncoderーDecoder x Attention)

BERT

ニューラル機械翻訳の問題点
  • 長さに弱い
  • 翻訳元の文の内容をひとつのベクトルで表現
    文長が長くなると表現力が足りなくなる
  • 文長と翻訳精度の関係性
Attention(注意機構)(Bahdanau et al.,2015)
  • 翻訳先の各単語を選択する際に、翻訳元の文中の各単語の隠れ状態を利用

翻訳元の各単語の隠れ状態の加重平均

翻訳元の各単語の隠れ状態の加重平均
翻訳元の各単語の隠れ状態の
加重平均

重み(全て足すと1)はFFNNで求める

FFNNの数式
FFNNの数式
  • FFNN (FeedForward Neural Network ;順伝播型ニューラルネットワーク)
     ネットワークにループする結合を持たず,入力ノード→中間ノード→出力ノードというように単一方向へのみ信号が伝播するもの
    ・MLP (Multilayer perceptron)とも呼ばれるが,FFNNではオリジナルのパーセプトロンとは異なり,ユニットの入出力関数はステップ関数に限定されない
引用元:「Yuta Hayashibe
Attention(注意機構)のイメージ
Attention(注意機構)のイメージ
Attentionは何をしているの?
  • Attentionは辞書オブジェクト
  • Query(検索質問)に一致するKeyを牽引し、対応するValueを取り出す操作⇒ 辞書オブジェクトの機能と同じである。
学生
学生

「Attention」は回帰結合層なの?

著者
著者

「Attention」は回帰結合層ではないよ!
なぜなら、以下の図のような仕組みだからだよ!

Attentionのイメージ図
Attentionのイメージ図
Transformerとは・・・
  • 2017年6月に登場
    Transformer(Vaswani et al.,2017)Attention is all you need
  • RNN(再帰型ニューラルネットワーク)を使わない
    ・必要なのはAttentionだけ
  • 当時のSOTAをはるかに少ない計算量で実現
    ・英仏(3600万文)の学習を8GPUで3.5日で完了

SOTA(State-of-the-Art)とは?

 機械学習では、ある特定のタスク&ベンチマークとなるデータセットにおいて論文の内容とその機械学習モデルが「現時点での最先端レベル(=最良/最高)の性能(=正解率などのスコア/精度)」を達成していることを表す。

引用元:@IT
Attentionとは・・・
  • 注意機構には二種類ある

softmax(QKT)V

softmax(QKT)Vの概要図
softmax(QKT)Vの概要図
  • Self Attention:直訳すると「自己注意」
  • Source Target Attention:直訳すると「出典と目標に注意」
Source Target AttentionSelf Attention
分散表現の数21
分散表現の
獲得方法
1つの分散表現をKey,Value,
Queryに分割
・1つの分散表現をKey,Valueに分割
・1つの分散表現をQueryに分割
Source Target AttentionとSelf Attentionの比較
SelfーAttentionが重要
  • 入力を全て同じにして学習的に注意箇所を決めていく
SelfーAttentionの説明図
SelfーAttentionの説明図
Transformer-Encoderとは・・・
  • 自己注意機構により文脈を考慮して各単語をエンコード
TransformerーEncoderのイメージ図
TransformerーEncoderのイメージ図
PositionーWise FeedーForward Networksとは・・・
  • 位置情報を保持したまま順伝播させる
  • 各Attention層の出力を決定
    • 2層の全結合層ニューラルネットワーク
    • 線形変換→ReLu→線形変換
PositionーWise FeedーForward Networksの定義式
PositionーWise FeedーForward Networksの定義式
Scaled dot product attentionとは・・・
  • 全単語に関するAttentionをまとめて計算する
Scaled dot product attentionの計算方法
Scaled dot product attentionの計算方法
MultiーHead attentionとは・・・
  • 重みパラメータの異なる8個のヘッドを使用
MultiーHead attention の概要
  • 8個のScaled DotーProduct Attentionの出力をConcat
  • それぞれのヘッドが異なる種類の情報を収集
Attentionを利用するメリット
  • 各要素同士がどれほど反応したかを数値化することで可視化できる。
  • 入力層と出力層の全てがネットワークで繋がっているため、長い系列文でも依存関係を学習できる。
  • 並列計算できるため、回帰結合層よりも計算が速い。
    回帰結合層:入力と出力を結合した層
Transformer-Decoderとは・・・
  • Encoderと同じく6層
    • 各層で2種類の注意機構
    • 注意機構の仕組みはEncoderとほぼ同じ
  • 自己注意機構
    • 生成単語列の情報を収集
      直下の層の出力へのアテンション
    • EncoderーDecoder attention
    • 未来の情報を見ないようにマスク
  • 入力文の情報を収集
    Encoderの出力へのアテンション
Add&Normとは・・・
  • Add(Residual Connection)
    • 入出力の差分を学習させる
    • 実装上は出力に入力をそのまま加算するだけ
    • 効果:学習・テストエラーの低減
  • Norm(Layer Normalization
    • 各層においてバイアスを除く活性化関数への入力を平均0、分散1に正規化
    • 効果:学習の高速化
Position Encodingとは・・・
  • RNNを用いないのでモデルに対しどの位置に存在する入力かを知らせる。
    入力値がどの順番で入力されるかモデルに示す → 依存関係が起こりやすい位置の情報を用いることができる(性能の向上が期待)
  • 単語の位置情報をエンコード
posにおけるエンコードの数式
posにおけるエンコードの数式
  • posの(ソフトな)2進数表現
  • 動作イメージ ↓
posの動作イメージ
posの動作イメージ
  • Attentionの可視化
    • 注意状況を確認すると言語構造を捉えていることが多い

3.まとめ

【Transformerの特徴】
  • TransformerのEncoderーDecoderモデルには2種類のAttentionが存在
    SelfーAttention:分散表現をKey、Value、Queryの三つに分割して獲得
    SourceーTarget-Attention:Key、Valueを一つの分散表現、Queryを一つの分散表現からそれぞれ獲得
    Attentionのメリット
  • Position Encoding:モデルに対しどの位置に存在する入力かを知らせる。

最後まで読んで頂きありがとうございます。
皆様のキャリアアップを応援しています!!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次