本記事では、自然言語処理の手法の一つである「BERT」を使い単純な二値分類問題を行った例を紹介したいと思います。
BERT[Bidirectional Encoder Representations from Transformers (Transformerによる双方向エンコーダ表現)]とは、Googleのチームが2018年10月当時に「GLUE」等の自然言語処理ベンチマークにて最高性能をマークした汎用的に扱える深層学習を利用した自然言語モデルになります。
このモデルの特徴としては、以下の点が挙げられます。
IBMが開発したAIサービス群の総称です。
特に自然言語処理に対しては非常に強く、自然言語処理関係のサービスだけでも9つあります。
今回は、文章分類問題ということなので文章分類に特化した「Natural Language Classifier」というサービスを利用しました。
今回使用するCoLAとは、GLUEと呼ばれる自然言語処理ベンチマークタスクの一つであり、文章の自然さを評価するためのタスクです。
基本的には、2値分類であり入力された文章に対して、「自然である」「自然でない」を判定します。
具体的なデータとしては、下記のようになっています。
0:自然な文章ではない
1:自然な文章である
0 He is the happiest that that he has ever been is believed.
1 He is the happiest that it is believed that he has ever been.
0 The hardest that that it has snowed here is believed was last January 12th.
1 The hardest that it is believed that it has ever snowed here was last January 12th.
学習時間の関係上、CoLAデータセットをそのまま使うのではなく、下記のように分けました。
教師データすべてを学習させてテストデータをすべて分類させたときの結果が以下のようになりました。
BERT | Watson NLC | |
正解率 | 73.68% | 62.63% |
単純な正解率を比較するとBERTのほうが約11%差をつけて優位となりました。
実装や環境整備の手間等も考えると一概にBERTが良いとは言えませんが、現行のサービスとして動いているものに対してのこの差は、優秀と言わざるを得ません。
今回は、CoLAを使ったBERTとWatson NLCの比較検証を行いました。
結果としては、BERTの圧勝となりTransformerの威力を体験する結果となりました。
また、BERTには今回行った「文章分類問題」以外にも「固有表現抽出(NER)」や「質疑応答問題(SQuAD)」にも対応している為、これらのタスクも紹介できたらと思います。