Upgrade to Pro — share decks privately, control downloads, hide ads and more …

大規模言語モデルを用いたSPARQLクエリ生成の予備的実験

S. Egami
September 09, 2023

 大規模言語モデルを用いたSPARQLクエリ生成の予備的実験

江上周作,福田賢一郎: 大規模言語モデルを用いたSPARQLクエリ生成の予備的実験,第60回人工知能学会セマンティックウェブとオントロジー研究会, SIG-SWO-060-04, pp.1-9, 2023.8 DOI: https://doi.org/10.11517/jsaisigtwo.2023.SWO-060_04

S. Egami

September 09, 2023
Tweet

More Decks by S. Egami

Other Decks in Research

Transcript

  1. ⼤規模⾔語モデルを⽤いた SPARQLクエリ⽣成の予備的実験 江上周作,福⽥賢⼀郎 国⽴研究開発法⼈ 産業技術総合研究所 ⼈⼯知能研究センター データ知識融合研究チーム 2023/08/24 第60回セマンティックウェブとオントロジー研究会 1

    本研究はJSPS科研費19H04168,22K18008,23H03688の助成を受けたものです.成果の⼀部は,国⽴研究 開発法⼈新エネルギー・産業技術総合開発機構(NEDO)の委託業務JPNP20006の結果得られたものです.
  2. Summary • 背景 • LLMのHallucinationの問題の解決策の⼀つとしてナレッジグラフ(KG)に 対する質問応答(KGQA)が期待されている • ⽬的 • ⾃然⾔語からSPARQLクエリを⽣成するText-to-SPARQLによるKGQAについ

    て、LLMの利活⽤はどの程度効果があるか調査する • 実験 • コンテキスト内学習(In-context Learning)に着⽬し,Zero-shot, Few- shot, RAGで⽐較実験 • 結果 • ファインチューニング無しでは正しいSPARQL⽣成はかなり難しいことを 確認 • プロンプト次第で性能が向上し、特にRAGが有効であることを確認 2
  3. 背景 • セマンティックWebコミュニティを中⼼に,SPARQLクエリ⽣成に 関する数多くの研究がされている • 定義したテンプレートに基づくSPARQLクエリ⽣成[Bizer+ ‘08][Shekapour+ ‘11] • データセットの構造的特徴に基づくSPARQLクエリ⽣成[Qiao+

    ‘15] • オントロジーに基づくSPARQLクエリ⽣成[Chen+ ‘21] • SPARQLクエリを⽣成するGUIツールの開発[Yamaguchi ’14] • ⾃然⾔語からSPARQLクエリ⽣成(後述) • など 3 [Bizer+ ‘08] C. Bizer, et al.: Benchmarking the Performance of Storage Systems that expose SPARQL Endpoints. SSWS, 2008 [Shekarpour+ ‘11] S. Shekapour, et al.: Keyword-Driven SPARQL Query Generation Leveraging Background Knowledge. WI-IAT, 2011 [Qiao+ ‘15] S. Qiao, et al.: RBench: Application-Specific RDF Benchmarking. SIGMOD, 2015 [Chen+ ‘21] Y. Chen, et al.: SPARQL Query Generator (SQG), J. of Data Semantics, 2021 [Yamaguchi+ ‘14] A. Yamaguchi, et al.: An Intelligent SPARQL Query Builder for Exploration of Various Life-science Databases, IESD, 2014 特に近年ではニューラル機械翻訳(NMT)による⾃然⾔語からの SPARQLクエリ⽣成が多く提案されており、LLMも利⽤され始めている
  4. 関連研究(NMT) • SPARQL as a Foreign Language[Soru+ ‘17] • seq2seqを⽤いて⾃然⾔語をSPARQLクエリに

    変換するNeural SPARQL Machineを提案 • DBpediaのMonumentクラスに含まれるイン スタンスのトリプル35Kを対象としたデータ セットを作成(14788個の質問とクエリのペ ア)して学習 • 機械翻訳に使われるメトリクスBLEU=0.803 の精度 4 [Soru+ ‘17] T. Soru, et al.: SPARQL as a Foreign Language. SEMANTiCS, 2017 [Yin+ ‘21] X. Yin, et al.: Neural Machine Translating from Natural Language to SPARQL. FGCS, 2021 • Neural Machine Translating from Natural Language to SPARQL[Yin+ ‘21] • RNN,CNN,Transformerの3つの異なるNN を採⽤した合計8つのモデルとMonument, LC-QuAD,DBNQAの3つのデータセットを 使⽤した⽐較実験 • CNNベースのモデルであるConvS2Sが最良の スコアを⽰すことが明らかとなった
  5. 関連研究(NMT) • An NMT-Based Approach to Translate Natural Language Questions

    to SPARQL Queries[Lin+ ‘21] • Transformerを⽤いたアプローチを提案 • TransformerによるSPARQLクエリ⽣成後にエ ンティティタイプのタグを考慮したクエリ修 正 • QALD-7データセットで評価 5 [Lin+ ‘21] J. Lin, et al.: An NMT-based Approach to Translate Natural Language Questions to SPARQL Queries, IT Convergence and Security, 2021 [Lin+ ‘22] J. Lin, et al.: SPARQL Generation with an NMT-based Approach. J. of Web Engineering, 2022 • SPARQL Generation with an NMT-based Approach[Lin+ ‘22] • 上記を発展させてさらにQALD-8,LC-QuAD を追加した⽐較実験を⾏った • LC-QuADではYinらの実験結果を上回る精度 を達成した(BLEU=76.21%)
  6. 関連研究(LLM) 6 • Modern Baselines for SPARQL Semantic Parsing[Banerjee+ ‘22]

    • モデル • Text-to-Text Transfer Transformer (T5) • Bidirectional and Auto-Regressive Transformer (BART) • Pointer Generator Network (PGN) • データセット(LC-QuAD, LC-QuAD 2.0)で ファインチューニングして⽐較実験 • いずれも既存⼿法を上回り,T5が最⾼精度 • GETT-QA: Graph Embedding Based T2T Transformer for Knowledge Graph Question Answering[Banerjee+ ‘23] • T5を⽤いたクエリ⽣成とエンティティの埋め 込みを利⽤したKGQAシステムを開発 • LC-QuAD 2.0とSimpleQuestions-Wikidataで 既存⼿法を上回る精度を達成 [Banerjee+ ‘22] D. Banerjee, et al.: Modern Baselines for SPARQL Semantic Parsing. SIGIR, 2022 [Banerjee+ ‘23] D. Banerjee, et al.: GETT-QA: Graph Embedding Based T2T Transformer for Knowledge Graph Question Answering, ESWC, 2023
  7. 関連研究(LLM) 7 • SGPT: A Generative Approach for SPARQL Query

    Generation From Natural Language Questions[Rony+ ‘22] • POS-tag埋め込みと係り受け関係の埋め込み をTransformerでエンコードし,位置埋め込 みと単語埋め込みを加えてGPT-2でデコード • データセットはLC-QuAD 2.0, QALD-9, VQuAnDa • SP-BLEUとSP-F1スコアの提案して⽐較し, 既存⼿法を上回った • Language Models as Controlled Natural Language Semantic Parsers for Knowledge Graph Question Answering[Lehmann+ ‘23] • SPARQLを直接⽣成する代わりに制御された⾃ 然⾔語(CNL)をLLMで⽣成する⼿法 • Mintakaデータセットの550の質問にSPARQL, Sparklis, SQUALLの3つの形式でラベル付け • BLOOM, GPT Neo, GPT-2, GPT-3, T5, Llama2で ファインチューニング実験 • SPARQL直よりCNLでKGQAの精度向上を確認 [Rony+ ‘22] M. Rony, et al.: SGPT: A Generative Approach for SPARQL Query Generation From Natural Language Questions. IEEE Access, 2022 [Lehmann+ ‘23] J. Lehmann, et al.: Language Models as Controlled Natural Language Semantic Parsers for Knowledge Graph Question Answering, ECAI, 2023
  8. 本研究での⽤語整理 • ファインチューニング • ⽤意したデータセットを⽤いて事前学習モデルを追加学習させる • コンテキスト内学習(In-context Learning) • 与えられたプロンプトを処理する中で(その場で)学習する

    • Zero-shot Learning • プロンプトで例題を与えること無くその場で学習する • Few-shot Learning • プロンプトで少数の例題を与えてその場で学習する • Retrieval-Augmented Generation • 質問⽂に類似する外部データを検索してプロンプトに反映する(後述) 8
  9. 実験設定 • 使⽤するモデル • OpenAI text-davinci-003 • InstructGPT-3(パラメータ数1750 億)を元に改良されたモデル •

    データセット • LC-QuAD 2.0 • テストデータから100件抽出 • 評価指標 • BELU • F1 • シンタックスエラー • SPARQL実⾏結果 • 出⼒クエリの実⾏結果が正解クエリ の実⾏結果と⼀致 10 𝐵𝐿𝐸𝑈 = min 1, exp 1 − 参照⽂字列⻑ 出⼒⽂字列⻑ / !"# $ 𝑛グラムの𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 𝐹1 = 2 × 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 × 𝑟𝑒𝑐𝑎𝑙𝑙 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑅𝑒𝑐𝑎𝑙𝑙 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 正解した単語数 出⼒の単語数 𝑅𝑒𝑐𝑎𝑙𝑙 = 正解した単語数 正解の単語数
  10. Zero-shot LearningによるSPARQLクエリ⽣成 • LLMに与えるプロンプト内で質問⽂やSPARQLクエリを例⽰しない • 先⾏研究[Lehmann+ ‘23]を参考にプロンプトを改変 • (-) WikidataのIDとラベルのセットを明⽰的に与えていた部分を削除

    • (+) Wikidataが対象であることの指⽰を追加 • (+) クエリのコメントを書かないように指⽰を追加 11 Given the question generate a SPARQL query for Wikidata! Do not write comments. Question: {質問⽂} SPARQL query: Zero-shot Learningのプロンプトテンプレート The Diary of Anne Frank has how many editions? 質問⽂の例 select distinct ?answer where { wd:Q6911 wdt:P747 ?answer} SPARQLクエリの例
  11. Few-shot LearningによるSPARQLクエリ⽣成 • LLMに与えるプロンプト内で質問⽂やSPARQLクエリを例⽰する • 例として与える質問⽂とクエリはLC-QuAD 2.0の学習データセットからラ ンダムに3件抽出 12 Given

    the question generate a SPARQL query for Wikidata! Do not write comments. Example Question 1: {例1の質問⽂} Example SPARQL query 1: {例1のSPARQL} Example Question 2: {例2の質問⽂} Example SPARQL query 2: {例2の質問⽂} Example Question 3: {例3の質問⽂} Example SPARQL query 3: {例2の質問⽂} Question: {質問⽂} SPARQL query: Few-shot Learningのプロンプトテンプレート
  12. Retrieval-Augmented Generation (RAG) • 外部データを取り込んでLLMを利⽤する⼿法として,Retrieval- Augmented Generation (RAG)[Lewis+ '20]が注⽬されている. •

    本研究ではRAGの実装の⼀つであるLlamaIndexを使⽤する. 13 [Lewis+ '20] P. Lewis, et al.: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS, 2020 質問⽂ 埋め込み ベクトルDB LLM チャンク (ノード)化 ⽣成された プロンプト 外部⽂書 データ 回答 埋め込み ベクトル⽣成 関連 データ取得 インデックス 埋め込み ベクトル⽣成 類似度検索 上位k個ノード プロンプト ⽣成 LlamaIndexの概略図
  13. RAGによるSPARQLクエリ⽣成 • 外部⽂書データの作成 • LC-QuAD 2.0の学習データセットから 質問⽂とSPARQLクエリのペア24180 件を抽出し、これを結合して単⼀の ⽂書として保存する •

    インデックスの作成 • Vector Store Indexを採⽤ • chunk_size=100, separator=“¥n¥n” • データ取得 • 類似度検索上位3個のノードを取得 14 Context information is below. --------------------- {上位3個のノード(チャンク)} --------------------- Given the context information and not prior knowledge, answer the question. Given the question generate a SPARQL query for Wikidata! Do not write comments. Question: {質問⽂} SPARQL query: RAGで最終的に作成されるプロンプトのテンプレート
  14. 結果 学習⽅法 BLEU F1 シンタックスエラー クエリ実⾏結果 が空でない クエリ実⾏結果 が正解と⼀致 Zero-shot

    0.00365 0.248 11/100 8/100 0/100 Few-shot 0.0319 0.324 7/100 7/100 0/100 RAG 0.0636 0.344 11/100 26/100 9/100 15 • BLEUスコアはすべての⼿法で極めて低い • 4-gramが⼀致しないためスコアが0となるものが多い • シンタックスエラーとなるものは少ない • 実⾏できるクエリは少なく、Zero, Few-shotでは正解と全く⼀致しない • Few-shotでスコアが向上 • RAGでさらにスコアが向上し、正解と⼀致するクエリが少数得られた
  15. 失敗例の考察 • WHERE句内でWikidataに存在しないトリプルパターンが作成される 1. Wikidata内のトリプルが⽋損している場合︓ クエリ⾃体は⾃然に思えるがWikidata内の記述が不⾜ 2. リソースの曖昧性が解決できていない場合 3. クエリ⾃体が不⾃然である場合︓

    例えばベネズエラ(Q717)の利⽤許諾(P275)を問い合わせている • WikidataはエンティティのURIに英数字の識別⼦が使⽤されている • 補⾜情報無しで質問⽂内の単語をWikidataの識別⼦に接地できない • 少なくともプロンプト内でエンティティ名と対応する識別⼦の明記が必要 16 ほとんどこれ
  16. 成功例の考察 • RAGはFew-shotよりもコンテキスト 情報の質が⾼い • RAGでは質問⽂と類似度の⾼い上位k 個のノードデータをプロンプトに組み 込んでいる • ランダムに例を与えたFew-shotよりも

    例⽰された質問⽂とSPARQLクエリが 正解に近い 17 Context information is below. --------------------- What is the position of Alvaro Uribe in Colombia SELECT ?value WHERE { wd:Q187413 p:P39 ?s . ?s ps:P39 wd:Q853475 . ?s pq:P2715 ?value} What is the position held by Mariano Rajoy who was elected in Spanish general election, 2016? SELECT ?obj WHERE { wd:Q10819 p:P39 ?s . ?s ps: P39 ?obj . ?s pq:P2715 wd:Q22812047 } What is the position held by Jacob Zuma whose series ordinal is 4? SELECT ?obj WHERE { wd:Q57282 p:P39 ?s . ?s ps: P39 ?obj . ?s pq:P1545 ?x filter(contains(?x ,’4’)) } --------------------- Given the context information and not prior knowledge, answer the question. Given the question generate a SPARQL query for Wikidata! Do not write comments. Question: What position does Iván Duque Máarquez hold at 2018-4-10? SPARQL: SELECT ?obj WHERE { wd:Q187413 p:P39 ?s . ?s ps :P39 ?obj . ?s pq:P580 ?date filter(?date >= "2018-04-10T00:00:00Z"ˆˆxsd:dateTime) } 正解クエリの実⾏結果と⼀致したときのプロンプト 正解クエリの実⾏結果と⼀致した出⼒クエリ
  17. その他の課題 • ベンチマークデータセットはKGとしてのバリエーションが少ない • 既存研究のベンチマークデータセットはDBpediaやWikidataに基づくもの しかなく、ドメイン固有のQAには対応できない可能性がある • クエリのほとんどが⼀問⼀答形式で実⽤性に乏しい • CONSTRUCT句,GROUP

    BY句, UNION句などはほとんど含まれていない • LC-QuAD 2.0で学習データにテストデータと同等のクエリが混⼊ • RAGではコンテキスト情報のSPARQLクエリと完全⼀致したSPARQLクエリ が出⼒されることあり,この実⾏結果が正解と⼀致する例も確認できた • 正解クエリの中に実際には実⾏できないものが存在 • Wikidataのデータ更新によるもの︖ • シンタックスエラーはそれ以前の問題 • 本実験では出⼒と正解がどちらも空であっても⼀致したとは判定しない 18
  18. 補⾜︓データセット 19 データセット 元となるKG Monument DBpedia LC-QuAD DBpedia LC-QuAD 2.0

    DBpedia, Wikidata DBNQA DBpedia SimpleQuestions- Wikidata Wikidata QALD DBpedia Mintaka Wikidata
  19. 結論 20 • 背景 • LLMのHallucinationの問題の解決策の⼀つとしてKGに対する質問応答(KGQA) が期待されている • ⽬的 •

    ⾃然⾔語からSPARQLクエリを⽣成するText-to-SPARQLによるKGQAについて、 LLMの利活⽤はどの程度効果があるか調査する • 実験 • In-context Learningに着⽬し,Zero-shot, Few-shot, RAGで⽐較実験 • 結果 • ファインチューニング無しでは正しいSPARQL⽣成はかなり難しいことを確認 • プロンプト次第で性能が向上し、特にRAGが有効であることを確認 • 課題 • エンティティ名とKG内の識別⼦の接地問題 • ベンチマークデータセットのKGの種類の固定化 • 対象クエリの実⽤性や複雑さの考慮