AIにおける「トランスフォーマー」とは

AIにおける「トランスフォーマー」の特徴について。

目次

トランスフォーマーとは

  • ニューラル機械翻訳の新たなモデルとして提案された
    (以前:それぞれRNNで更正されたエンコーダ・デコーダをAttention機構により橋渡ししたような構造)
  • Attention機構→「Source-Target Attention」or「Encoder-Decoder Attention」
  • トランスフォーマーは、エンコーダとデコーダからRNNを排除し、代わりに「Self-Attention(自己注意機構)」というネットワーク構造を採用している点が最大の特徴
  • ネットワーク全体が、「Self-Attention(自己注意機構)」「Source-Target Attention」という2種類のAttention機構のみから構成されている
    →並列計算がしやすく、RNNと比べて、高速にモデル学習が行える
  • Self-Attention→遠い位置にある単語同士の関係もうまく捉えることができるようになっている

RNNの問題点

RNNの欠点

  1. 入力データを、時間軸に沿って、必ず1つずつ順番に読み込むという逐次処理が必要になるため、並列計算ができず、処理速度が遅くなる
  2. 時系列の最初の時刻に入力した情報の影響が、時間の経過とともに次第に薄れてしまい、入力データの長さが長くなると、遠く離れた単語間の関係が捉えきれず、精度が向上しない

→解決するニューラルネットワーク構造として、「トランスフォーマー」が提案される。

Self-Attention(自己注意機構)

基本構造

  • 「Source-Target Attention」入力文と出力文の単語間の関連度を計算したもの
  • 「Self-Attention」入力文内の単語間または出力文内の単語間の関連度を計算したもの
  • すべての計算が並列に行え、高速に処理できる
    (Aという単語とBという単語との関係計算と、Aという単語とCという単語との関係計算とは独立していると捉えるため)
  • 「位置エンコーディング(positional encoding)」→単語の出現位置に固有の情報を入力に付加し、間接的に単語の位置情報や単語間の位置関係を考慮することができる
  • ①デコーダは、「Source-Target Attention」により入力文の情報も利用する
    ②エンコーダは入力分のすべての単語を見ながら計算を行うが、デコーダでは先頭から順に出力を生成するため、まだ出力していない未来の情報は使えない
    →デコーダが翻訳文を生成するプロセスは、並列化することができない

クエリ、キー、バリュー

  • 3つの値:クエリ(Quary)」「キー(Key)」「バリュー(Value)
  • 与えられたクエリに対して、各キーを用いて各ペアの重要度を計算し、バリューを重要度で重み付けして足し合わせたものを出力する
  • 「Source-Target Attention」→クエリとしてデコーダの中間状態を利用し、キーとバリューはエンコーダの最終出力を利用する(デコーダの状態に応じ、次の出力を決める際に必要となる入力の情報が適切に参照できるようになる)
  • 「Self-Attention」→3つの値はすべて自身でコピーして利用する(各単語のベクトル表現を、同じ文内の他の単語との関係性を考慮して計算できる)

Multi-Head Attention

  • 「Multi-Head Attention」→視点の異なるいくつかのパターンでクエリとキーとの関係を見るために、Attentionの計算を複数並列に行うことを考えるもの
  • 各Attentionの計算→「Head」
  • 3つの値をそれぞれ異なる全結合層に通して変形する&Headの数だけ異なる全結合層を用意する
    →各Headがそれぞれ視点の異なるパターンでクエリとキーとの関係を見ることができるようになる

この記事が気に入ったら
いいね または フォローしてね!

  • URLをコピーしました!
目次