人工知能(GPT-3 text-davinci-003)を用いた「質的データ分析の自動化」──SCAT:Steps for Coding and Theorizationを対象に
openAIが公開している大規模言語モデルGPT-3 text-davinchi-003を使った「質的データ分析の自動化」というのをやってみたのでその結果の報告です。今回自動化の対象にするのはSCAT:Steps for Coding and Theorizationとよばれる質的データ分析手法(大谷, 2007)です。
質的データ分析手法とは
「質的研究」において用いられる、研究手法の一部です。今回自動化の対象とするSCATのほか、GTA(グラウンデッドセオリーアプローチ)などが世界的にさまざまな分野における質的研究に用いられる手法としてよく知られています。
質的研究とは
引用します。(なお以下の引用には質的データ分析手法についての言及も含まれています)
SCAT:Steps for Coding and Theorizationとは
大谷(2007)において提案された質的データ分析手法です。この手法の意義は「分析手続きの明示化、分析の初段階への円滑な誘導、分析過程の省察可能性と反証可能性の増大、理論的コーデイングと質的データ分析の統合」にあるとされています。(大谷, 2007)
SCATの手順
大谷先生ご自身がホームページにて説明されているので引用します。
GPT-3 text-davinchiを使った「質的データ分析の自動化」──autoSCAT
今回の自分の目的は、上述のSCATの手順をGPT-3 text-davinchi-003を用いて自動化することです。
実際にはひとつの切片化(segmentation)されたデータに対する4ステップコーディングまでしか自動化できておらず、まだSCATの全てを自動化できているわけではないのですが、現状の進捗を公開します。(一部「のり弁」になってます。すいません)
なおこれには「autoSCAT(オートスキャット)」という名前をつけてみました。
まずopenai packageを読み込み、API経由でGPT-3を操作できるようにします。
2.openaiをつかってGPT-3に指示を出していきます。これはstep1「<1>の「テクスト中の注目すべき語句」を書く」をGPT-3にやってもらうためのpromptを組んでいるところです。
3.同じ要領でstep5まで順にpromptを組んで、連鎖的に情報を処理させます。
結果
プログラムはおおよそ上記のような感じです。それでは実際にSCATの4ステップコーディングをGPT-3にやってもらいましょう。
素材として、僕自身が過去に発言した以下のテキストを流し込みます。(ちょうど昔10+1でやった鼎談がありました。)(いま読むとつらい)
これを入力として、スクリプトをcolab上で実行します。するとこうなります。
数秒で結果が出力されました。おもしろいですね。なお動画も用意しましたのでご覧ください。
以下が実行結果です
入力したデータがGPT-3によって質的に分析され、分析結果が出力されています。
考察
得られた結果の質について
大事なのは、GPT-3によってSCATが実行できることではなく、得られたデータの質です。結論から言えば、それっぽいモノは出てきますが、個人的にはまだまだクオリティに難があります。しかし、これはpromptの改善等によってかなり伸びしろがあるだろうとも思います。
GPT-3によるSCATはSCATか?
これは難しい問いです。今後も考えていきたいと思います。個人的にはこれはSCATであると考えています。
なお大谷先生は、SCATを提案した2007年の論文で次のように述べられています。
「はじめは一人で分析するより、複数で協働し、多様な視点を入れて話し合って行うのが良い。すぐれた質的研究者は自身の中に多様な視点を包含し得るが、初学者は、作業を協働で行うことで、多様な観点を共有すべきである。」
ここで「複数」の定義に「GPT-3(大規模言語モデル)」をカウントすることができるのならば、手続き上はGPT-3と、すくなくとも協働でSCATを行ったとしても、それはSCATの運用として許容範囲内ということになる可能性があると僕は考えます。
ただし大谷先生は上記に続けてこうも述べられています。
「ただし、自立した研究者になるためには、この作業が自立して行えるようになる必要がある。」
これには、個人的にぱっと思いつく限りでふたつの解釈があり得ると思います。
人間の初学者研究者がGPT-3と協働して、いずれ自立するルート
GPT-3が人間の研究者と協働して、いずれ自立するルート
どちらも面白そうです。引き続き考えていきたいと思います。
今後の展望
今後の作業予定
今後もプロンプト・エンジニアリングを重ね、autoSCATの出力結果のクオリティを上げていきます。進捗は定義ご報告します。
またSCAT以外にも、GTA(グラウンデッドセオリー)やm-GTA(修正版グラウンデッドセオリー)といった、より一般的かつ広く使われている質的データ分析手法にも、大規模言語モデルによる自動化アプローチは有効なのではないかと考えており、そうした方向性も模索してゆくつもりです。
特許について
実はこのブログの内容で特許を取ることを一瞬考えたのですが、実現可能性はさておき、仮に特許がとれたとして、学術コミュニティ全体にもたらされる価値と自分一人が得る価値を天秤にかけると前者の方が望ましいこと、ほかにもいくつかの個人的な出来事があり、今回ブログで世の中に向けて公開することとしました。
研究テーマとして
「質的データ分析の自動化」は、SCATに限らず(2でのべたように)様々な可能性があると考えており、再び実現可能性はさておくとして、今後の研究テーマのひとつに据えていければよいなと思っています。興味ある研究者の方などいらっしゃたらお気軽にお声がけください。
お問い合わせ
お問い合わせはこちらまで
参考資料
colab上でのgpt-3の実行についてはこちらのnoteが非常に参考になりました。ありがとうございました!