深層学習day4 Section5:Transformer

要点まとめ

言語モデルとは

単語の並びに対して尤度で評価する。 時刻t-1までの情報で時刻tの事後確率を求めることが目標。

例えば、"I have a" に続く単語で尤もらしい単語 w を下記のように表す。

 \displaystyle{
\newcommand{\argmax}{\mathop{\rm argmax}\limits}
\argmax_{w\in V} P(I, have, a, w)
}

事後確率を求められれば、先頭単語を与えれば文章を生成することも可能になる。

Attention

Seq2Seq ではどのような長さの文章でも固定長のベクトルで表現するので、文章が長くなるほど精度が悪くなるという問題があった。

Attention(注意機構)では、翻訳先の単語を選択する際に、翻訳元の文中の各単語の隠れ状態を利用して、翻訳先のどの単語に注意が向いているかを表現できる。

Attention機構は * Query * Key * Value という3つで構成されている。

Transformer

2017年6月に登場した、RNNを用いずにAttentionを利用したモデル。 文長が長くなっても翻訳精度が落ちないという結果。 従来のAttention機構は Source Target Attentionと呼ばれ、Query がTargetで、Key, Value がSouurceだったのの対し、Self Attentionは全てSourceを用いている。

文章全体からの畳み込みを行うので、文全体を入力としたCNNのようなイメージ。

f:id:yui-gen-ron:20220107003048p:plain

scaled dot product attention

全単語についてのAttentionの計算は下記のように計算

f:id:yui-gen-ron:20220107003625p:plain

Multi-Head attention

Scaled dot-product attention出力をconcatして、それぞれのヘッドが異なる情報を出力。

Add & Norm

Add は 入出力の差分を学習させる。 学習やテストエラーの低減

Normは平均0、分散1に正則化することで学習を高速化させる。

Position Encoding

RNNを用いずに単語列の語順情報を追加する手法。

実装演習

lecture_chap1_exercise_publicを実施.

f:id:yui-gen-ron:20220106232648p:plain

lecture_chap2_exercise_publicを実施.

f:id:yui-gen-ron:20220107011256p:plain

確認テスト等考察

確認テストがないので全体の考察。 単語同士の注意機構 Attention を用いて翻訳を可能にした、RNNを用いない翻訳モデル。

RNNを用いないため、位置情報をPosition Encodingという形でsin,cosを用いて表現される。

追加演習

下記の資料を用いて、BLEUの具体的な計算方法を学習。

https://www2.nict.go.jp/astrec-att/member/mutiyama/corpmt/4.pdf