RNNを捨ててTransformer!〜『BERT による自然言語処理入門』第三回「BERT」

AI学習ダイアリー
最近、毎日カツオのたたきを食べている気がする
第3章 BERT

ニューラルネットワークで行う処理は、

① 学習
② 推論

の2つのフェーズに分けられる。

① 学習は大量のデータと長い時間が必要なため(*1)
本書では、次章以降、
事前学習済みのBERTモデルで、
ファインチューニングや性能評価を行う。

*1 一般のBERTモデルでは、16個のTPU(機械学習専用にGoogle が開発したプロセッサ)を使って、学習に4日かかるそうだ(ちなみにデータ量は、Google が公開した英語版BERTでは13GB‼️)。

そのため、まずは
1,2.BERTの構造・入力形式
で、推論のしくみを、

3.学習
で、学習と導入方法を、
解説する構成となっている。

推論〜BERTの構造・入力形式

BERTは、Transformer(2017年発表*2)ベースのモデルだ(GPT-3も)。

パワポで作成。©️『BERTによる自然言語処理入門』

ニューラルネットワークに、
RNNの欠点を克服した「Transformer Encoder」
を用いている。
*2 Transformerは、最近では、画像認識にもCNNの代わりに使われ、あらゆるAIモデルの重要な技術になりつつある、という。

RNNの欠点とは、
時系列データを扱うのに順次処理することに起因し、

① 長い文章を正しく処理するのが難しい
② 勾配消失の影響を受けやすい
③ 処理の並列化が困難で時間がかかる

ことの3点だ。

パワポで作成。『ゼロつく②」を参照した。tは時刻

これを克服するため、
Transformer では、

❶ positional encoding:語順を構造ではなくデータとして保存するしくみ
❷ Attention:入力文のすべての単語を見て、対応する出力単語を決定するメカニズム
❸ Self-Attention :ある単語をその周りの単語の文脈により理解するメカニズム

の3つの特徴を持つ。

本書では、
これらの特徴を持つ「Transformer Encoder」のしくみを、
数式を用いて具体的に解説している。

とくに、
Attentionを実現している
「Multi-Head Attention」
の説明が詳しい。

数式を読み飛ばしても大丈夫なくらいわかりやすいが、
実装するなかで、
くりかえし確認し、理解を深めたい。

なお、
❶ positional encodingについては、
2.入力形式で、
トークン化のあとベクトル化する際に、
文書中の位置情報を加えることで対応している。

学習〜学習と導入方法

学習については
実際にはしないため、
かんたんな説明にとどめられている。

1.事前学習

BERTは、
ラベルなしデータをTransformerが処理することで学習する。

えっ⁉️
教師なし学習でなにを正解として学習させるの⁉️

一瞬驚いたが、
そのための工夫として、
大量のデータを用いて、

① Masked Language Model
② Next Sentence Prediction

という2つの手法を同時進行で行い学習するのだ。

2.転移学習・ファインチューニング

BERT によって個別のタスクを解くために、

① BERTを特徴量の抽出機のように扱い、
② それに、タスク処理モデルを接続する

ことで、そのタスクに特化したモデルをつくる。

こんな感じ。パワポで作成。

ここは、
次の第4章から、
実際にBERTを動かしていくので、
そこで確かめたい。

さあ、いよいよだ。
ワクワクがとまらない‼️

Follow me!

PAGE TOP