BERTは文章生成が不得意⁉️〜『BERT による自然言語処理入門』第九回「文章の穴埋め」

AI学習ダイアリー
空が高くなって、秋の気配が。散歩が気持ちいい。

BERTはすごい!
というイメージしかなかったので、
この文を読んだときは、椅子から転げ落ちそうになった。

BERTは文章を前から順番に作成するという、自然言語処理でよくある文書生成は得意ではありません。

というのだ。

その理由は、

事前学習にRNNGPTのように文章を前から予測する方法を使わず、文章のうちごく一部のトークンのみを[MASK]に置き換えて、周りの文脈からもとのトークンを予測するというタスクを用いているから。

だという。

じゃあ、なぜそんな方法を使っているのかというと、

精度を高めるために、前からだけではなく後ろからも学習できるように(双方向)、マスクをした部分の単語を予測する「Masked Language Model 」を使用している

からだ。

この方法で精度の高いNLPモデルになっているのだが、
苦手な分野も生み出したということだ。

で、このしくみは
Transformersでは、クラス「BertForMaskedLM」として提供されており、
以降、これを使って文章の穴埋めを行う。

作業は、
掲載されたコードに従って、
BertForMaskedLMの実装を行うだけなのだが、

活性化関数(Activation)にGELU関数を使っている

のは、初耳だった(*1)
*1 GELU関数の数式を書くために「LATEX2ε 美文書作成入門改訂第8版」を購入したのだが、それはまた後日。

DVD付きで¥3,608。

最初、

Relu関数の誤植?

と失礼なことを思ったくらいだ。

本章を読み進めると、
最後に、不得意といわれた複数の[MASK]を埋めるタスクにトライしている。

まずは、
貪欲法(Greedy Prediction)というアルゴリズムで
前から順番にトライ(*2)

*2 貪欲法は局所探索法と並んで近似アルゴリズムの最も基本的な考え方の一つである。 このアルゴリズムは問題の要素を複数の部分問題に分割し、それぞれを独立に評価を行い、評価値の高い順に取り込んでいくことで解を得るという方法である。 動的計画法と異なり保持する状態は常に一つであり、一度選択した要素を再考する事は無い。(Wikipedia) 貪欲法の別名は欲張り法。片っ端から試しているから「欲張りさん!」ということらしい。

Wikipedia解説の最後にある通り、
一度選択した要素を再考することはないので

合計スコアが高いものが出力される保証はありません。

ということで、次に、
ビームサーチ
という手法が紹介されている。   

この方法でも、
[MASK]が多い場合には自然な文章は出力されず、
セミナーで著者が指摘したように、

GPT-3との使い分けが必要

ということになる。(続く)

Follow me!

PAGE TOP