自然言語処理(4)


1. Transformer

  • RNNベースのモデルは、単語が順番に入るので、処理が必要なシーケンスが長ければ長いほど、演算時間が
  • 長くなるという構造上の欠点がある.
  • この問題を解決するために発売されたモデルはTransformer
  • である.
  • すべてのトークンは同時に並列計算を入力し、GPU演算
  • を最適化する.

    ※トランスフォーマー構造(シンプル)


    トランスミッタは、6つのエンコーダブロックと6つのデコーダブロックから構成される.
  • エンコーダブロック(2サブレイヤ)
  • Multi-Head (Self) Attention
  • Feed Forward
  • デコーダブロック(3サブレイヤ)
  • Masked Multi-Head (Self) Attention
  • Multi-Head (Encoder-Decoder) Attention
  • Feed Forward
  • 2.トランスフォーマー構造



    1.位置符号化(位置符号化)

  • 変換器では、並列化のためにすべての単語ベクトルを同時に入力するので、コンピュータはどの単語がどこにあるか分からない
  • .
  • コンピュータが理解できるように、単語の位置情報を提供するために、別のベクトルを提供する必要がある.
  • 単語の相対位置情報を提供するためにベクトルを生成するプロセスを位置符号化
  • と呼ぶ.

    ※ Self-Attension

  • itのような指示代名詞が何を指すかを知るには
  • トランスフォーマーでは、文章自体に調音メカニズムが適用されている.これが自動調音
  • である.
  • と既存のAttensionの違いは、各ベクトルが重み付けベクトルであり、
  • であることである.
  • セルフ・サービス・ステータスでは、クエリー・キー-価値のアイデアも使用されています.
  • クエリー:分析する単語の重み付けベクトル
  • キー:加重ベクトル
  • は、各単語とクエリ内の単語との関係を比較するために使用されます.
  • ベルクラス:重み付けベクトル
  • ※自己注意の過程

  • Self-ATtentionは3つの重み付けベクトルに対してアレイ
  • を適用する.
    ①特定の単語を内積するクエリベクトル(qqq)とすべての単語のキーベクトル(kkk)(qqq・kkk)
        内在値=注意得点
    ②トランスフォーマーでは、この重みをdksqrt{d k}dkに分ける
        dkd kdk=q,k,vq,k,vq,k,vベクトル次元数
    ③ソフトmaxを取る.これにより、クエリ内の単語や文内の他の単語が    なすは関係の割合を求めることができる
    ④ソフトmaxの出力値と価値ベクトルを乗算して加算

    2. Multi-Head Attention

  • self-attention並列運転
  • 各ヘッドは異なる注意結果を生じるため、組合せの効果
  • と同様である.
    # example
    8개의 head를 사용하여 8번의 self-attention을 실행하여 각각의 출력 행렬 Z0, Z1 … Z7 생성
    → 출력된 행렬Zn은 이어붙여진다 
    → 행렬 Wo의 요소 역시 학습을 통해 갱신 
    → 최종적으로 생성된 행렬 Z는 토큰 벡터로 이루어진 행렬 X와 동일한 shape가 된다

    3. Layer Normalization & Skip Connection

  • トランスフォーマーのすべてのサブレイヤから出力ベクトルは、レイヤ正規化およびskip接続
  • を通過する.
  • 以降の標準化効果はbatch標準化に似ており、学習をより速く、よりよくすることができます.
  • skip接続は、逆伝播中に情報が失われることを防止することができる
  • .

    4. Feed Forward Neural Network

  • 隠蔽層の階層が元の階層に増加する単純な2層ニューラルネットワーク
  • .
  • アクティブ化関数
  • としてRELUを使用

    5. Mastek Self-Attention

  • デコーダブロックで使用する特殊な「自己注意」
  • デコーダは自動回帰(左から右へ)して単語を生成するので、ターゲット単語の後に単語予測単語
  • を見ない.
    したがって、self-注意に影響を及ぼさないように、ターゲット単語の後ろにある単語をマスクする必要があります.
  • self-attentionメカニズムでは、softmaxをとる前に、隠したい要素に無限の-10億に相当するものを加算し、このプロセスのマスク→マスクの値はsoftmaxをとると0となるため、数値計算に反映されない.

    6. Encoder-Decoder Attention

  • 翻訳する文と翻訳される文との間の情報関係をまとめた部分
  • デコーダブロックのマスク自己注意出力ベクトルをクエリーベクトル(q)
  • として用いる.
  • キーおよび(k)Valueベクトルは、(v)最上位エンコーダブロックから使用する値を直接取得し、
  • を使用する.

    7. linear & Softmax layer

  • デコーダの最上位のベクトルにより線形層を通過する後にsoftmaxにより予測単語の確率
  • を求める.

    3. GPT, BERT


    変換アイテム構造の言語モデルの変換
    言語モデルの共通点
    ※事前学習:表記されていない大量のデータを用いて事前学習を行う過程
    ※fine-tuning:事前学習が終了したモデルで、我々が望むタスク固有のデータ(学習時にマークされたデータを使用)を学習する

    1.GPTモデル構造


  • 変換器のデコーダブロックを積み重ねて
  • モデルを構成する
  • GPTはエンコーダを使用しないので、デコーダブロック内には2つのサブレイヤ:
  • しかない.
  • GPTはエンコーダを使用せず、エンコーダ-デコーダ注意層が
  • を失う.
    ※ Fine-tuning
    既存のモデルでは、タスクに基づいてモデル構造を変更して学習できます.
    予習言語モデル(GPTなど)は,微調整の過程でデータの入力方式のみを変更し,固定モデル構造を設計した.

    2. BERT


    トランスミッタのみを使用したエンコーダ双方向読み出しコンテキスト
    12個のトランスミッションエンコーダブロックを積み重ねた型番

    BERTの構造


  • special token : CLS, SEP
  • CLSタグ:分類入力の前にあるタグ(NSP学習用)
  • SEPトークン:第1の部分の末尾と第2の部分の末尾を分離する
  • に位置する.
  • input vector
  • token embeddings:単語を表すimbedding、予め学習したimbeddingベクトル
  • を用いる
  • セグメント埋め込み:第1の部分と第2の部分を区別するための埋め込み
  • .
  • 位置埋め込み:単語の位置を表すimbedding
  • BERTの事前学習方法
    マスク言語モデル(MLM):空白を埋めて単語を学習する
    予備学習では,表記されていない単語セットに15%程度の単語をランダムにマスクし,マスク位置上の既存の単語を予測することにより学習を行う.
    2つのコンテキストを同時に表示できる利点
  • NSP(Next Sentence Prediction)