構造化データはAIのコンテンツ理解に役立たない!?←実験から判明

[レベル: 上級]

構造化データは、AI (LLM) のコンテンツ理解を本当に手助けでるのでしょうか?

Dan Petrovic(ダン・ペトロヴィッチ)氏が検証しました。
結論を端的にいうと、AI が構造化データを取得していることを明確に示す証拠は得られませんでした。

ChatGPT の構造化データ取得を確かめる比較実験

OpenAI の GPT-5 ブラウジングツールが、ウェブページのコンテンツ理解を深めるために構造化データを活用するかをペトロヴィッチ氏は検証実験しました。
検証の主な目的は、構造化データを含むページから GPT-5 モデルに OpenAI のブラウジングツールがグラウンディングコンテキストを提供するかどうかを確認することです。

検証では、構造化データがあるページと構造化データがない、同一の 2 つのページに対する ChatGPT の応答を比較しました。

検証結果の概要は次のとおりです。

  • ChatGPT によると、ブラウジングツールはテストページからプレーンテキストのコンテンツのみを提供した。
  • ブラウジングプロセス中に JSON-LD やメタスキーママークアップといった構造化された構造化データは抽出されなかったと ChatGPT は明確に認めた。
  • 取得されたコンテンツは、標準的な見出し、リスト、テキストで構成される「HTMLでレンダリングされたマークダウン形式のコンテンツ」または「表示されているマークダウン形式のコンテンツ」であると説明された。
  • ページ内に埋め込まれた構造化スキーマデータを示す情報を ChatGPT は見つけることができなかった。

要するに、ページ内にマークアップされていた構造化データを ChatGPT は取得していなかったのです。

構造化データを取得してほしいなら、具体的にそのように指示した方がいいと ChatGPT は提案してきました。
つまり、構造化データの取得は通常のデータ取得におけるデフォルトの動作ではないことを示唆しています。

トークン化プロセスが構造化データを破壊するためか?

LLM が構造化データを理解しないのは、”tokenization”(トークン化)が理由かもしれません。

トークン (token) を説明すると複雑になるので省略しますが、ごく雑にいえば、LLM が言葉を処理する「単位」とここでは解釈してください。
トークンは、人間が使う言語の単語と必ずしも 1 対 1 の対応にはなりません。

Mark Williams-Cook(マーク・ウィリアムズ=クック)氏がどういうことかを LinkedIn で説明しています。

要点は次のとおりです。

  • トークン化プロセス: LLM はコンテンツを「トークン化」することによって機能する。これは、予測モデルを構築するために、文字の一般的なシーケンスをユニークなトークンに変換することを意味する。
  • 構造の破壊: トークン化プロセスは、スキーマ(構造化データ)の構造を事実上「破壊」する。たとえば、"@type": "Organization" のようなスキーマ要素は、「type」と「Organization」の別々のトークンに分解される。
  • 識別の喪失: 一度トークン化されると、スキーマ内の単語は、通常の自由形式のテキストに出現する同じ単語と区別がつかなくなる。
  • 明示性の喪失: スキーマの主な価値はその明示性にあるが、まさにその明示性がトークン化の過程で失われてしまう
  • トレーニングへの軽微な影響: もしスキーマがトレーニングデータに含まれたとしても、その唯一の実際的な効果は、「content」のような単語の前に「@」のようなトークンが現れる確率を、わずかにおそらく取るに足らない程度に増加させることだけ。

トークン化の過程で構造化データがバラバラになってしまうことをウィリアムズ=クック氏は指摘しているのです。
構造化データは、全体を 1 つのブロック(塊)として処理してもらわないと意味を成しません。

こうした仕様から、ページにマークアップされている構造化データを僕たちが望むような構造化データとして LLM は処理しないと考えられます。

RAG の段階で構造化データが関与する可能性は否定できず

構造化データを LLM が理解しないというのは学習あるいはブラウジング(ライブでのページ取得)の場面での話です。

グラウンディング (grounding) のステップで、インデックスにアクセスするときには構造化データが影響する可能性はあります。
ウィリアムス・クック氏はこの点にも触れています。

特に Google の AI Overview と AI Mode はナレッジグラフやショッピンググラフにアクセスします。
どちらも構造化データの情報も格納しています。
したがって、LLM の回答の正確性や最新性に構造化データが間接的に関与することはありえるのではないでしょうか?

もちろん、構造化データを何でもかんでもマークアップしたとして、それが、LLM での引用に直接的に影響を与えることはないでしょう。
それでも、構造化データがまったく無関係というのもまた違うのかなというのが僕の考えです。
少なくとも Google の LLM (Gemini) は、Google 検索のインデックスを使っているのですから。

【追記】
ペトロヴィッチ氏はその後 LinkedIn でこんな投稿をポストしています。

Q: 大規模言語モデルは json/schema を学習し、理解しているのですか?
A: はい、構造化データを完全に理解する能力があります。
Q: ではなぜ AI アシスタントのチャットセッションでその効果が見られないのでしょうか?
A: モデルに文脈を与えるツールが、その情報を取り除いてしまうからです。

ChatGPT がスキーマを扱えるかどうかは、ソフトウェア設計上の選択に過ぎません。OpenAI が必要と判断すれば、明日にでも変更可能です。もしかすると今どこかで既に使われているかもしれませんが、少なくとも私が行った通常のテスト状況ではそうではありませんでした。

いつものことですが、事実はこの件に関するあなたの「意見」や「感情」とは無関係です。

余談ですが、私は API を通じてスキーマ対応版の ChatGPT を作れます。概念実証なら 5 分程度、ユーザーフレンドリーなデモに仕上げるには vibe coding(雰囲気コーディング)で約 1 時間といったところです。