BERTとは
Bidirectional Encoder Representations from Transformers
文中の前後の文脈を双方向に参照して単語表現を学習する、Transformerエンコーダベースの事前学習済み言語モデル
ひとことで言うと
文章の前後関係を両方向から読んで意味を理解する、Googleが開発したAIモデル。
概要
BERTは、Googleが開発したTransformerのエンコーダ部分のみを用いた事前学習済み言語モデル。 文中の各単語を、その前後(双方向)の文脈を同時に参照して表現する点が特徴で、左から右へ一方向に処理する従来の言語モデルと異なり、文全体の文脈を踏まえた単語表現を獲得できる。 マスク化言語モデル(Masked Language Model, MLM)と次文予測(Next Sentence Prediction, NSP)という2つの事前学習タスクにより、大規模な生テキストコーパスからラベルなしで汎用的な言語表現を学習する。 その後、分類・固有表現認識・質問応答など個々のタスクへファインチューニングして利用する。 GPTなど自己回帰型のデコーダモデルとは異なり、テキスト生成ではなく文の理解(自然言語理解, NLU)タスクに強みを持つ。
背景
従来の単語埋め込み(word2vec等)は文脈に依存しない固定表現しか持たず、ELMoなどの文脈依存表現も片方向または浅い双方向処理に留まっていた。 BERTは、Transformerの自己注意機構を用いることで、文中の全単語を同時に双方向に参照した文脈依存表現を、大規模な事前学習によって獲得できるように設計された。
歴史
2018年: Googleの研究チームがBERTを発表し、複数のNLPベンチマーク(GLUE等)で当時の最高性能を達成。 2019年: RoBERTa・ALBERT・DistilBERTなど、学習方法や構造を改良した派生モデルが多数登場。 2019-2020年代: 検索エンジンのクエリ理解などプロダクション用途にも導入される。 2020年代以降: GPT系の生成モデルの台頭により注目度は相対的に下がったが、分類・検索・埋め込み生成など理解系タスクの基盤モデルとして今も広く使われる。
アーキテクチャ
Transformerのエンコーダ層のみを積み重ねた構造。 入力トークン列の埋め込みに位置埋め込みとセグメント埋め込みを加えたものを入力とし、複数層の自己注意機構とフィードフォワード層を通じて各トークンの文脈依存表現を計算する。 事前学習では、入力トークンの一部をランダムにマスクしてその単語を予測するMLMと、2文が連続するかを判定するNSPを学習目標とする。
ワークフロー
大規模テキストコーパスでMLM・NSPにより事前学習 → 分類・固有表現認識・質問応答等のラベル付きデータでタスク固有の出力層を追加してファインチューニング → 推論。
コード例
Hugging Face transformersでのBERT分類
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
inputs = tokenizer("BERT understands context.", return_tensors="pt")
outputs = model(**inputs)利点
- 双方向の文脈を同時に参照するため、文の意味理解を要するタスクで高い性能を発揮する
- 事前学習済みモデルをファインチューニングするだけで、多様なNLUタスクに転用できる
- ラベルなしの大規模テキストから汎用的な言語表現を学習できる
欠点
比較
- LLM — BERTは双方向エンコーダによる言語理解に特化し、GPT系の自己回帰型LLMは生成に強みを持つ
- Transformer — BERTはTransformerのエンコーダ部分のみを積み重ねたアーキテクチャ
- ファインチューニング — BERTは事前学習後、タスク固有データでファインチューニングして使うのが基本的な利用形態
- Encoder — BERTは、TransformerのEncoder部分のみを積み重ねて文章理解に特化させたモデル
- Sentence-BERT — Sentence-BERTは、BERTをシャムネットワーク構造で微調整し、文単位の埋め込みを高速に比較できるよう改良したモデル
- MLM — BERTは、MLMを事前学習タスクの1つとして採用した代表的なモデル
関連用語
よくある質問
BERTとGPTの違いは?
BERTはTransformerのエンコーダのみを使い、双方向文脈を参照して文の理解に強みを持つ。 GPTはデコーダのみを使い、左から右への自己回帰生成に強みを持つ。 用途に応じて使い分けられる。
参考文献
- Research PaperBERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
- GitHubgoogle-research/bert
- DocumentationHugging Face: BERT