はじめに
ChatGPTを使っていたら無性にやりたくなってしまった、Watsonとの精度比較。まずはテキスト分類をやってみようじゃないか。
ということで今回は、Watson Natural Language Classifier(NLC)、Natural Language Understanding(NLU)とChatGPTのニュース記事タイトルの分類精度を比較してみました。
比較対象になるWatson NLC、NLUの分類精度の詳細は以下の記事をご覧ください。
Watson NLCとNLUの精度を比べてみた
訓練データとテストデータ
Watsonの訓練データに使ったのはライブドアニュースから取得したニュースタイトル。対象は5カテゴリで、1カテゴリにつき100件ずつ。合計500件を学習させました。
ChatGPTでは、Few-Shotで5例(各ジャンル1例ずつ)と、Zero-Shot(例示無し)を試してみました。
テストデータは同じく各ジャンル20件ずつ、合計100件を準備しました。
対象ジャンル:
・スポーツ
・海外
・経済
・グルメ
・宇宙
さっそく結論
正解率(Accuracy)で比較した結果は以下の通り。
- 3位:0.88 Watson NLC
- 2位:0.89 ChatGPT(GPT-4,Few-Shot)
- 1位:0.93 Watson NLU
ChatGPTのモデルはGPT-4,プロンプトで計5例(訓練データから1カテゴリ1例)を与えました。
訓練データ1クラス1データでNLCを超えてくるのか!?すごすぎる。
ChatGPTの分類結果
ChatGPTのConfusion Matrixが下記の図です。ChatGPTはグルメと宇宙がちょっと苦手のようです。
正解率(Accuracy),適合率(Precision),再現率(Recall),F1値(F1-measure)を見てみましょう。
表1.正解率(Accuracy),適合率(Precision),再現率(Recall),F1値(F1-measure)
サービス | Accuracy | Precision | Recall | F1 |
---|---|---|---|---|
NLC | 0.8800 | 0.8826 | 0.8800 | 0.8776 |
NLU | 0.9300 | 0.9443 | 0.9300 | 0.9286 |
ChatGPT | 0.8900 | 0.8900 | 0.8900 | 0.8876 |
ChatGPTのPrompt
Few-Shotでは訓練データ内から各カテゴリ1例ずつ計5例を与えました。
文章が次のどのカテゴリに当てはまるか、文章の後に「,」をつけて回答してください。
スポーツ
グルメ
海外
経済
宇宙
質問)
トッテナムの韓国代表が転倒した際の報復行為「蹴り上げ蛮行」に英紙騒然
米の高速道路で69台玉突き 当時は路面凍結と深い霧
NHKのネット事業見直しは評価、経営改革の具体化を要求…総務省
サイゼリヤの人気ランキングが発表されたよ〜!1位はミラノ風ドリアでした
NASAが月面に人類を送る「アルテミス計画」を動画で解説
回答)
トッテナムの韓国代表が転倒した際の報復行為「蹴り上げ蛮行」に英紙騒然,スポーツ
米の高速道路で69台玉突き 当時は路面凍結と深い霧,海外
NHKのネット事業見直しは評価、経営改革の具体化を要求…総務省,経済
サイゼリヤの人気ランキングが発表されたよ〜!1位はミラノ風ドリアでした,グルメ
NASAが月面に人類を送る「アルテミス計画」を動画で解説,宇宙
質問)
SNSで話題&大人気!この冬こそ絶対食べたい“いちご”の限定パウンドケーキ
アメリカの株価は大きく調整する可能性がある
以下、25問程列挙
必ず最初に「文章が次のどのカテゴリに当てはまるか、文章の後に「,」をつけて回答してください。」をつけ、質問を25問ほどに分割して送信しました。
当初、2回目以降のPromptではカテゴリや例を示さず、後続の分類対象の文章だけを送信していたのですが、途中で 指定以外のカテゴリ(「食品」「インタビュー」「海外(犯罪)」など)が登場してきました(笑)
やり取りが長くなって、最初の質問定義が消えてしまったのでしょう。
必ず指示とカテゴリ、例示を付けて質問を送信したところ、改善されました。
ちなみに、履歴を削除してしまって残っていないのですが、ChatGPTがつけた独自カテゴリは、ニュースタイトルに沿ったかなり妥当な内容でした。
まとめ
ChatGPTのモデルGPT-4、Few-Shot5例でニュースタイトルを分類した結果、正解率は0.89とNLCの0.88(2021年8月時点)を超える結果となりました。NLUの0.93には一歩及ばずでしたが、例示データがNLC、NLUの1%でOKと考えると非常に魅力的です。
今回はニュースタイトルを対象としましたが、より特定業界や企業内に閉じた内容の場合、どこまで精度がでるのか試してみたいところです。
結果をRPAなどと連携し自動化に使う場合は、期待通りのフォーマットでChatGPTが返却するのかは十分な検証(または、システム的なサポートを入れる)が必要と感じました。
補足
例示無しのZero-Shotは一部やり直しが必要なため、再度チャレンジして結果を反映させたいと思います。