BERT

文の文脈を双方向に捉える自然言語処理モデル。検索や分類の精度を大きく高めた

自然言語処理機械学習
BERT」の技術書を見る →

BERT とは

BERT (バート) は Bidirectional Encoder Representations from Transformers の略で、Google の Devlin らが 2018 年 10 月に公開した論文 (arXiv:1810.04805) で提案された自然言語処理モデルだ。ある単語を表現するときに、その左右両方の文脈をネットワークの最下層から同時に条件として使う「深い双方向」の事前学習を行い、質問応答や言語推論を含む 11 のタスクで当時の最高精度を更新した。事前学習したモデルに出力層を 1 つ足すだけで個別タスクへ微調整 (fine-tuning) できる形にしたことも、その後の自然言語処理の進め方を変えた。

何が画期的だったか

従来BERT
単語を一方向に読む前後の文脈を双方向に考慮
文脈による意味の変化が苦手文脈に応じた意味を捉える
タスクごとに一から学習事前学習を多様なタスクに転用

特に「大量の文章で事前に言葉の一般的な理解を学び、それを個別のタスクに応用する」という考え方は、その後のモデル開発の主流になった。

双方向をどう実現したか

文章を左から右へ順に読むモデルでは、ある単語の表現にその右側の情報を入れられない。左向きのモデルと右向きのモデルを別々に学習して出力を後ろで足し合わせる工夫は以前からあったが、浅い結合にとどまっていた。BERT はこれを 2 つの事前学習タスクで解いた。

  • マスク言語モデル (Masked LM): 入力の単語のうち 15% を隠し、隠された位置の単語を前後の文脈から当てさせる。次に来る単語を予測させるのではないため、双方向に文脈を見せても答えが漏れない。
  • 次文予測 (Next Sentence Prediction): 2 つの文 A・B を与え、B が A の直後の文か、コーパスから無作為に取ってきた無関係な文かを判定させる。文と文の関係を学ばせる狙いがある。

この 2 つを 12 層から 24 層の Transformer エンコーダーで大量のテキストに対して学習させ、できたモデルを個別タスクへ微調整して使う。双方向の恩恵は「マスクした語を当てる」という課題設定から来ている点が、他の事前学習との分かれ目だ。

word2vec からの進化

それ以前の word2vec などは、1 つの単語に文脈へ依らない固定のベクトルを割り当てていた。そのため多義語に弱い。BERT の公式解説で使われている例は英語の bank で、この語は「銀行」と「土手」の両方を指す。I made a bank deposit (預金をした) の bank は、右隣の deposit を見なければ土手と区別できない。BERT は同じ単語でも周囲の語に応じて別の表現を返すため、この曖昧さを文脈から解ける。日本語でも「はし」(橋・箸・端) のような語で同じ効果が効く。

位置づけと注意点

BERT は Transformer のエンコーダー側だけを積み重ねた構成で、入力全体を読んで分類したり必要な部分を抜き出したりするタスクに向く。文章を続けて生成する用途には、デコーダー側を積み重ねた構成が使われる。ChatGPT のような対話モデルが後者に当たり、2026 年 8 月時点では大規模言語モデル (LLM) の側に注目が集まっている。

検索への適用は Google 自身が公表している。2019 年 10 月の発表では、検索のランキングと強調スニペットに BERT を使うことで、米国の英語検索で 10 件に 1 件のクエリの解釈が改善するとしていた。

使い分けの目安は 3 つある。第 1 に、解きたいことが分類・抽出・類似度計算に固定できるなら、BERT 系の小さいモデルを微調整した方が推論が速く安く済む。第 2 に、ラベル付きのデータが手元にあるかどうか。数千件規模でも微調整は効くが、皆無なら生成モデルに指示を与える形の方が現実的だ。第 3 に入力の長さで、公開されている BERT は最大 512 トークンまでの系列で学習されているため、長い文書は分割か要約が前提になる。使用メモリが系列長に比例して増えることも、微調整の見積もりに入れておきたい。

この記事は役に立ちましたか?

関連用語

関連する記事