【書籍紹介】Getting Started with Google BERT: Build and train state-of-the-art natural language processing models using BERT

はじめに: 書籍「Getting Started with Google BERT」の基本情報

書名Getting Started with Google BERT: Build and train state-of-the-art natural language processing models using BERT (English Edition)
発売年2020年
著者Sudharsan Ravichandiran
難易度ふつう.BERT初心者向け.
対象読者自然言語処理の入門者〜中級者

親ページ:コンピュータビジョン・ディープラーニングのおすすめ書籍リスト

書籍内容の紹介

本書「 Getting Started with Google BERT: Build and train state-of-the-art natural language processing models using BERT」は,Packet Publishingから2020に発売された,NLP向けBERTの入門本である.BERTの基本モデルと応用モデルの仕組みを,実践的なコーディングと共に学べる書籍である.

ただし,発刊が2020年で,2020年までのNLPにおけるBERTの動向をまとめた書籍である.このサイトの主テーマである「コンピュータビジョン」向けの,Vision TransformerやDETRなどの話はない.

このあと述べていくように,各章ではBERTについて非常にわかりよく,なおかつHugging Face Transformersのコード付きで,具体的に学べるので,コンピュータビジョン研究者の方も,BERT・Transformerあたりを学びたい方は,読んで損はないはずである.

ちなみにこの本と同じ著者の書籍「Deep Reinforcement Learning with Python: Master classic RL, deep RL, distributional RL, inverse RL, and more with OpenAI Gym and TensorFlow, 2nd Edition も,非常にできの良い本でありオススメである.1st editionは微妙だったのが,この2nd editionで一気に良い本となった.やはり「たくさん書くことは大事なのだ」と,私も感じた例である.沢山出版されてきた著者であるゆえ,近年はこのBERT入門本も含めて,より良いテキストを書けるように成長されたのだと感じる.

書籍の構成

本書は,以下の3節構成で,BERTの基本と応用,アプリケーションについて順に学べるようになっている:

  1. Section 1 – Starting Off with BERT (1~3章) BERTの基本とHugging Face Transformerでの使い方.
  2. Section 2 – Exploring BERT Variants (4,5章) BERTの発展モデル・発展Clozeタスク
  3. Section 3 – Applications of BERT (6章~9章) BERTによる応用(テキスト要約,他言語学習,)

Section 1,2 はそれぞれ,TransformerとBERTの詳細な理論解説である.図も豊富でとてもわかりやすい. そしてSection1の3章「 Getting Hand-On with BERT」以降は,HuggingFaceのTransformersのコードも,解説中に提示される (githubのコード公開ページ) .従って,それらのコードも元にした解説がずっと続く書籍であるので,BERTの具体的なイメージが沸きやすい. (※ Hugging Face Transformersについて初めて知った方は,以下のページなどを詳しくは参照のこと).

Section 2(4,5章)は,基本的なBERTモデルの発展型についてのセクションである.発展型BERT(ALBERTやRoBERTa,ELECTRA, Span-BERTなど.4章)と,知識蒸留ベースの,TinyなBERTな学習(5章)について,それぞれ紹介がある.最後のSection 3 (6~9章)では,代表的なタスクごとの応用モデルや,各言語への対応についての紹介もある.

節ごとに各章を紹介

Section 1 – Starting Off with BERT

「Section 1 – Starting Off with BERT」では,まず最初に準備のTransformerの説明の1章のあと,BERTの詳細なモデルの仕組みの解説が2章で行われる.

1,2章は,TransformerとBERTの,とても詳しくて,わかりやすい解説が残りの3~9章のための,最初の導入準備として展開される.丁寧な解説で,図も豊富なので,「論文や解説を読んでも,BERTやGPTなどの一般化言語モデルの事前学習について,いまひとつ中身が理解できず,まだしっくりきていない」という人にもオススメである.BERTやTransformerについて,既にある程度かじった人で,詳しくは知らない人でも,この1,2章を読めば理解度がかなり上がるはずである(ただし,1,2章は,細かく読むと,埋め込みベクトルのたし算の図が,一部結果があやしかったりもする点には注意.).

3章「Getting Hands-On with BERT」では,BERTモデルを,実際にHuggingFaceのTransformerライブラリで構築する手順をたどるハンズオンの章である.この章では,解説中に,単語埋め込みの「ID」や,[CLS]などの特別トークンなどを,実際の値で例示してくれる.したがってBERTの入出力や,(コンテキスに従って埋め込み値が変わる)BERTの表現の挙動について,非常に具体的に理解できる (※ BERTの元の論文は抽象的で短い論文なので,論文を読んだだけだと,正直よくわからない).

Section 2 – Exploring BERT Variants

Section 2 は 1節で紹介した基本モデルを発展させた,各「発展型BERTモデル」の紹介である.

4章では,BERTの,性能・効率性を目的とした発展的なモデルが紹介される.4章前半では,軽量・効率的な学習や,しっかりとしたモデルの学習を目指した,ALBERT,RoBERTa が紹介される.4章後半ではSentence-BERT,ELECTRA, span-BERT が紹介される.

5章では,知識蒸留による,省モデル化したBERTの学習についてである.まずTinyBERTの紹介がされる.そして,BERTをteacherとネットワークして,studentネットワークを双方向LSTMなどの,他モデルにした場合の蒸留も紹介される.

Section 3 – Applications of BERT(6章~9章)

Section 3の 残り4つの章(6~9章)は,これまでの基本モデルを元にした,BERTの各タスクや各言語へ応用する話についての章ある.

6章は,BERT-SUMによる文章要約についてである.事前学習済みのBERTSUMと,LSTMやtransformerをどのように連携するかについても真鍋る.また,評価指標であるROGUE-1, ROGUE-2の話もある.

7章は,英語以外の各言語や,複数言語で,どのようにBERTを事前学習するかについての章である.まず,複数言語のBERTが,(mutli-lingual) BERT(M-BERT) → XLM (cross-lingual language model) (+ Byte Pair Encodingでのトークン化)→ XLM-R (RoBERTでのXLM) (+ SentencePiece) の 3段階で,紹介がある.その後,各言語ごとのBERTが,どのデータセットやトークナイザ・形態素解析ソフトウェアで行われているかについて,言語別に紹介される(独,仏,中,伊,日,露など).

8章前半は,SiameseNetwork や Triplet-lossと連携して学習をおこなう,文章表現学習のための「Sentence-BERT」について.8章後半は,専門ドメインに特化した医用BERT (ClinicalBERT, BioBERT)の応用例について.診断ノート集からClinicalBERTの学習による医療用語に対応した単語類似度の計算について紹介がある.また,PubMedデータベースの文献群から事前学習したBioBERTをファイニンチューニングして,固有表現抽出(Named Entity Recognition)や,質問応答用のネットワークを学習する.

最後の9章は,Vision and Language向けの事前学習モデル(VideoBERT・BART)についての章になっている.

本書の良い点と,他のBERT系書籍との違い

昨年末ごろから,日本語のBERTやTransofrmerについた書籍も出版され始めているが,2022年4月現在でも,この「Getting Started with Google BERT」が,BERTをテーマとした一般書籍では内容の量も質もダントツである.ゆえに,この本を紹介した.私も発売当初に購入した際に,BERTそのものへの理解や応用モデル・各タスク向けモデルについての理解が向上し,非常に助かった本である.

BERTは使う予定がないものの,Transformerについてまずはきちんと理解したい」という人も,最初の章のTransformerの解説が非常にわかりやすくかつ説明図が豊富であるので,(財布に余裕があるのであれば)Transformerの理解向上にオススメである.(このサイトのTransformerの記事と合わせて読むとなお良い)

また,私のようにVision and Languageなど「言語モーダルも同時に使用する,各種マルチモーダル処理」を研究興味としている方は,今後もマルチモーダルアテンションやBERT・Transformerを使いこなす必要がある.その意味で,本書でBERT・Transformerの基礎や応用について補強しておくと,必ず今後役に立つはずである.日本語圏のWebにも,各BERTモデルを列挙しただけようなものであれば日本語でも紹介資料が多くある.しかし,日本語のBERTの一般書籍の中では,この本が現時点で,一番内容が充実している書籍だと感じる.本書は,一冊でBERTについて一気に総ざらいでき,なおかつコードも書かれていて応用的・具体的だからである.

ただし,繰り返すが,あくまで「NLP向け」のBERTに関する書籍である.よって,コンピュータビジョン向けの話(ViTやDETR)についての話は一切でこない点に注意されたい(そもそも2020年発売の書籍なのでViTとDETRが定着する前の時期に,書かれていた本である).とはいえ,TransformerとBERTについては,コンピュータビジョン系の方も本書を読むことで,画像認識でTransformerやself-supervised learningを用いている研究論文も,一気に読みやすくなるはずである.

そして,BERTや,巨大データでの事前学習の話を自分で行わない人でも,BERTとその応用モデルの状況に対する基本的な理解度が増す.BERTやTransormer各関連論文やサーベイ論文・スライドを順に読むよりも,この本をざっと読み終えるだけで,BERTに関する(2020年時点での)基本的な最小限知っておきたいことを広く効率的に知ることができる.しかも,HuggingFace Transformersのコードにそった具体的な説明や,図解も多く,説明もわかりやすくて,実応用につながるのが良い(NLP系のデータサイエンティストの方には,非常に強くオススメできる書籍).

既にビジョン系の研究者であったり中級者で,これからBERTについて学ぶという読者の方は,BERTなどの大規模事前学習モデルの「モデルの工夫より,データの超規模さから,研究成果や実用能力が決まるモデル」という感覚と,その「超大規模スケール」感について,本書を読むことで短時間につかめるようになると思う .もはや,モデルよりデータ量が偉く,これらの研究の場合は,データのおかげで成果が出ている側面は強い時代にはなってきていると著者も考える.例えば,本書にも出てくる,BERTSUM 等による「文章要約」での急激な性能向上や,「機械翻訳」で達成されつつあるゲルマン民族言語同士では高精度化など,BERTによる自己教師有り学習では,データ量と質がものを言う.

まとめ

本書は,BERTを実践投入したいエンジニアに最も向いている書籍である(BERT使ってみたい人には,マストバイである).そして,BERTについて,網羅的につぶさに知れるので,研究者や学生にもおすすめの書籍である.各モデルやタスクの詳しい紹介に加えて,HuggingFace Transformersのコードも同時に提示されるので,非常にイメージが沸きやすい.一方で,抽象的なモデルの説明もしっかりわかりやすく行われるので,BERTの中身や,各モデルの関係・発展を短時間でとらえることができ,研究者にもお勧めの書籍である.

この記事が参考になったという方は,amazonの Getting Started with Google BERT からの購入もお願いできると嬉しい.

関連記事

SNSでシェアやブックマークを行う