
こんにちは
AIチームの戸田です
以前、本TechBlogでDeepSeek-R1などの推論モデルで見られる「aha moment(アハ体験)」について紹介しました※。モデルが思考しているかのように振る舞う様子は非常に興味深い一方で、「これは本当に考えているのか? それとも人間がそう言う確率が高いから模倣しているだけなのか?」という疑問も残りました。
今回はその疑問から派生して、Post-hoc Rationalization(事後正当化) という概念と、それに関連する最新の研究論文を紹介します。
※: LLMの推論における “aha moment” について調べてみた
Post-hoc Rationalizationとは?
元々は心理学において、直感や無意識で決定を下した後に、それらしい論理的な理由を後付けで構築するプロセスを指します。例えば直感で「こっちだ!」と選んだ後に「なぜならOOがXXだから〜」と、後付けで論理的な理由を考えることです。みなさんも経験があるのではないでしょうか。
LLMにおいても同様の現象が指摘されています。私たちが「ステップ・バイ・ステップで考えて」と指示するChain-of-Thought (CoT) は、本来は答えを導くための計算過程であることを期待しています。しかし、モデルが内部ですでに学習データの統計的確率から答えを決定しており、CoTはその答えに説得力を持たせるために生成された「もっともらしい前提」に過ぎない可能性があるのです。
これを区別するために、以下の2つの概念が重要になります。
- Plausibility(もっともらしさ): 人間が読んで納得できるか。説得力があるか。
- Faithfulness(誠実性・忠実性): その説明が、モデルの実際の予測プロセスと一致しているか。
LLMはRLHFなどの人間によるフィードバックによって「人間が好む説明」を学習するため、Faithfulnessを犠牲にしてでもPlausibilityを高める傾向があると言われています。
関連研究
この問題に関する研究をいくつか調べたので紹介します。
Language Models Don't Always Say What They Think: Unfaithful Explanations in Chain-of-Thought Prompting
この研究ではモデルに対して意図的に「バイアス」をかけた状態で推論を行わせました。
実験設定としては、多肢選択問題において、正解とは無関係に「常に選択肢(A)を選ぶ」ようなバイアスを与える。例えば、Promptに「答えはAだと思うけど…」と誤ったヒントを与えることなどがあります。
予想通り、モデルはバイアスに従って間違った選択肢(A)を選びました。そして驚くべきことに、その際のCoTにおいて、モデルは「私はヒントに従いました」とは言わず、「選択肢(A)が正しい論理的な理由」を捏造して正当化したそうです。
つまり、CoTはモデルの真の意思決定プロセスを反映しているとは限らず、決定後の辻褄合わせに使われる可能性があることを示しました。

Measuring Faithfulness in Chain-of-Thought Reasoning
この研究では、CoTのFaithfulnessを測るために以下のような様々な外挿をして検証しています。
Adding Mistakes:
CoTの途中でわざと間違った計算や論理を挿入する
Paraphrasing:
CoTの内容を変えずに表現だけを変える
Early Answering:
CoTを途中で切り上げる
Filler Tokens:
思考部分を全く意味のない「... ...」のようなものに変えてしまう
結果として、タスクによるのですが、推論プロセスが変わっても(Filler Tokensでさえも!)最終回答が変わらないケースが多く見られたそうです。これは、モデルがCoTを生成する前の段階ですでに結論を出しており、CoTは単なる出力の装飾として機能している可能性を示唆しています。
また、サイズの大きなモデルほどこの問題が起きやすいということもわかりました。ここに関しては私自身は深掘りできていないのですが、Inverse Scaling(逆スケーリング)と呼ばれ、直感に反する挙動でなかなか興味深いです。
Analysing Chain of Thought Dynamics: Active Guidance or Unfaithful Post-hoc Rationalisation?
こちらは現時点で最新の研究だと認識しています。
検証としてはバイアス挿入に近いことが行われています。こちらはDeepSeek-R1のような推論特化モデルを含めた検証が行われており、やはりCoTが必ずしも答えを導く役割を果たしていないと主張しています。特に常識推論が苦手といわれており、CoTが単なる事後的な説明になってしまっている傾向が強いことが示されました。
また、きちんとCoTの最終的な回答のガイダンスになっている場合をPost-hoc Rationalisationに対応する概念として、Active Guidanceと定義しています。面白かったのはActive Guidanceであっても、解答にたどりつくまでに重要な要素の説明が不足しているケースも観測できたようで、表層だけでこの現象を分析するのが困難であることが感じられました。

エンジニアが意識すべきこと
これらの研究背景を踏まえ、LLMをシステムに組み込む我々エンジニアが意識すべきことを3つ考えたので共有します。
1. CoTを出力の根拠として使わない
CoT部分の内容を、そのまま不具合の原因究明に使わないようにしましょう。それはモデルが即興で作った「もっともらしい作り話」かもしれません。
2. 「思考」と「結果」を分離して評価する
RAGなどで、「ドキュメントのこの部分を参照しました」とモデルが言ったとしても、実際には内部の事前知識だけで答えている可能性があります。「参照箇所」と「回答」の整合性をチェックする別の評価ロジックが必要です。
3. 過度な前提を与えない
「こっちが正解だと思うんだけど...」のように回答を誘導するようなPromptを与えてしまうと不用意にその要素がブーストされ、本来は解けた問題が解けなくなってしまう可能性があるかもしれません。
おわりに
前回の記事では、LLMが人間のように「ひらめく」可能性について触れましたが、今回は逆に人間のように「言い訳をする」可能性について、研究事例を交えて紹介しました。
AIの出力だけでなく、その裏にある仕組みに目を向けることで、より堅牢なアプリケーションが作れるのではないでしょうか。今後も、こういった批判的な視点も含めてLLMの動向を追っていきたいと思います。
最後までお読みいただき、ありがとうございました!
