解説智也くん、この論文のタイト…
解説
ねえねえ智也くん!この『OrLog』っていう論文のタイトル、なんだかかっこいいね!「複雑なクエリを解決する」って書いてあるけど、どういうこと?
ああ、それは検索エンジンの話だよ。例えば「パリかアムステルダムにある美術館、でもアート系じゃないやつ」みたいな、条件がいくつも重なった検索って今のAIでも意外と難しいんだ。
えっ、そうなの?AIならパパッとやってくれそうなのに。私の「ダイエット中だけど、生クリームたっぷりでカロリーゼロのケーキ」っていう検索も難しいかな?
それは論理以前に存在しないから無理だけど……。今のAIは「AかつB」とか「AだけどBじゃない」っていう論理的な制約を、雰囲気で処理しちゃうことが多いんだよね。だから、間違った答えを出しちゃうことがあるんだ。
なるほどねー。じゃあ、このOrLogはどうやって解決するの?
「ニューロシンボリック」っていう考え方を使うんだ。直感的な判断が得意なニューラルネットワーク(LLM)と、厳密なルールが得意な記号論理(シンボリック)を組み合わせる手法だよ。
ニューロ……シンボリック?なんだか強そうな名前!具体的にはどう動くの?
まず、LLMにクエリを分解させるんだ。さっきの例なら「パリにあるか?」「アムステルダムにあるか?」「アート系か?」っていう個別のチェック項目(述語)に分ける。ここがステップ2だね。
ふむふむ、まずはバラバラにするんだね!
次に、それぞれの項目がどれくらい正しいか、LLMに「スコア」を出させるんだ。これを「述語の尤もらしさ推定」と呼ぶよ。面白いのは、LLMに文章を書かせるんじゃなくて、内部的な数値だけをサッと取り出すところだね。
文章を書かないの?AIなのに喋らないなんて、智也くんみたいに無口なんだね!
……余計なことは言わなくていいよ。文章を生成しないから、計算がすごく速くて正確なんだ。で、そのスコアを「ProbLog」っていう確率的な論理エンジンに放り込んで、最終的な正解率を計算するんだよ。
へぇー!LLMが「たぶんこうかな?」って出した点数を、論理の機械が「じゃあ合計はこうだ!」って計算してくれる感じかな?
その通り。実験結果では、LLMに全部任せて考えさせるよりも精度が高かったし、何より使うトークンの量が90%も減ったんだ。つまり、すごく安上がりで賢いってことだね。
9割引き!?それは主婦の味方だね!でも、これってこれからどうなっていくの?
今はWikipediaのデータで試してるけど、将来的にはもっと複雑なデータベースや、専門的な調査にも使えるはずだよ。ただ、最初のクエリ分解を間違えると台無しになるっていう課題もあるけどね。
そっかー。じゃあ、私の「イケメンで、お金持ちで、私のことが大好きだけど、束縛しない人」っていう検索も、OrLogなら完璧に見つけてくれるかな?
……それは検索エンジンの問題じゃなくて、君の理想が高すぎるだけだと思うよ。
要点
- 複雑な論理制約(AND, OR, NOT)を含む検索クエリを正確に処理するためのフレームワーク「OrLog」を提案。
- LLMを直接推論に使うのではなく、各要素(述語)の「もっともらしさ」を判定するスコアラーとして利用するニューロシンボリック手法を採用。
- 確率的論理プログラミング(ProbLog)を用いることで、LLMの曖昧さと論理の厳密さを融合させた推論を実現。
- 従来のLLMを推論器として使う手法と比較して、精度を向上させつつ、消費トークン量を約90%削減することに成功。