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の結果得られたものです.

    View Slide

  2. Summary
    • 背景
    • LLMのHallucinationの問題の解決策の⼀つとしてナレッジグラフ(KG)に
    対する質問応答(KGQA)が期待されている
    • ⽬的
    • ⾃然⾔語からSPARQLクエリを⽣成するText-to-SPARQLによるKGQAについ
    て、LLMの利活⽤はどの程度効果があるか調査する
    • 実験
    • コンテキスト内学習(In-context Learning)に着⽬し,Zero-shot, Few-
    shot, RAGで⽐較実験
    • 結果
    • ファインチューニング無しでは正しいSPARQL⽣成はかなり難しいことを
    確認
    • プロンプト次第で性能が向上し、特にRAGが有効であることを確認
    2

    View Slide

  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も利⽤され始めている

    View Slide

  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が最良の
    スコアを⽰すことが明らかとなった

    View Slide

  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%)

    View Slide

  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

    View Slide

  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

    View Slide

  8. 本研究での⽤語整理
    • ファインチューニング
    • ⽤意したデータセットを⽤いて事前学習モデルを追加学習させる
    • コンテキスト内学習(In-context Learning)
    • 与えられたプロンプトを処理する中で(その場で)学習する
    • Zero-shot Learning
    • プロンプトで例題を与えること無くその場で学習する
    • Few-shot Learning
    • プロンプトで少数の例題を与えてその場で学習する
    • Retrieval-Augmented Generation
    • 質問⽂に類似する外部データを検索してプロンプトに反映する(後述)
    8

    View Slide

  9. 本研究での実験
    • 既存研究ではベンチマークデータセットを⽤いたLLMのファイン
    チューニングに焦点を当てており,In-context Learningについては
    ⼗分に調査されていない
    • 本研究では下記の3つの⽅法でテキストからSPARQLクエリを⽣成
    • Zero-shot Learning
    • Few-shot Learning
    • Retrieval-Generated Augmentation (RAG)
    9

    View Slide

  10. 実験設定
    • 使⽤するモデル
    • OpenAI text-davinci-003
    • InstructGPT-3(パラメータ数1750
    億)を元に改良されたモデル
    • データセット
    • LC-QuAD 2.0
    • テストデータから100件抽出
    • 評価指標
    • BELU
    • F1
    • シンタックスエラー
    • SPARQL実⾏結果
    • 出⼒クエリの実⾏結果が正解クエリ
    の実⾏結果と⼀致
    10
    𝐵𝐿𝐸𝑈 = min 1, exp 1 −
    参照⽂字列⻑
    出⼒⽂字列⻑
    /
    !"#
    $
    𝑛グラムの𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛
    𝐹1 =
    2 × 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 × 𝑟𝑒𝑐𝑎𝑙𝑙
    𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑅𝑒𝑐𝑎𝑙𝑙
    𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =
    正解した単語数
    出⼒の単語数
    𝑅𝑒𝑐𝑎𝑙𝑙 =
    正解した単語数
    正解の単語数

    View Slide

  11. 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クエリの例

    View Slide

  12. 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のプロンプトテンプレート

    View Slide

  13. 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の概略図

    View Slide

  14. 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で最終的に作成されるプロンプトのテンプレート

    View Slide

  15. 結果
    学習⽅法 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でさらにスコアが向上し、正解と⼀致するクエリが少数得られた

    View Slide

  16. 失敗例の考察
    • WHERE句内でWikidataに存在しないトリプルパターンが作成される
    1. Wikidata内のトリプルが⽋損している場合︓
    クエリ⾃体は⾃然に思えるがWikidata内の記述が不⾜
    2. リソースの曖昧性が解決できていない場合
    3. クエリ⾃体が不⾃然である場合︓
    例えばベネズエラ(Q717)の利⽤許諾(P275)を問い合わせている
    • WikidataはエンティティのURIに英数字の識別⼦が使⽤されている
    • 補⾜情報無しで質問⽂内の単語をWikidataの識別⼦に接地できない
    • 少なくともプロンプト内でエンティティ名と対応する識別⼦の明記が必要
    16
    ほとんどこれ

    View Slide

  17. 成功例の考察
    • 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) }
    正解クエリの実⾏結果と⼀致したときのプロンプト
    正解クエリの実⾏結果と⼀致した出⼒クエリ

    View Slide

  18. その他の課題
    • ベンチマークデータセットはKGとしてのバリエーションが少ない
    • 既存研究のベンチマークデータセットはDBpediaやWikidataに基づくもの
    しかなく、ドメイン固有のQAには対応できない可能性がある
    • クエリのほとんどが⼀問⼀答形式で実⽤性に乏しい
    • CONSTRUCT句,GROUP BY句, UNION句などはほとんど含まれていない
    • LC-QuAD 2.0で学習データにテストデータと同等のクエリが混⼊
    • RAGではコンテキスト情報のSPARQLクエリと完全⼀致したSPARQLクエリ
    が出⼒されることあり,この実⾏結果が正解と⼀致する例も確認できた
    • 正解クエリの中に実際には実⾏できないものが存在
    • Wikidataのデータ更新によるもの︖
    • シンタックスエラーはそれ以前の問題
    • 本実験では出⼒と正解がどちらも空であっても⼀致したとは判定しない
    18

    View Slide

  19. 補⾜︓データセット
    19
    データセット 元となるKG
    Monument DBpedia
    LC-QuAD DBpedia
    LC-QuAD 2.0 DBpedia, Wikidata
    DBNQA DBpedia
    SimpleQuestions-
    Wikidata
    Wikidata
    QALD DBpedia
    Mintaka Wikidata

    View Slide

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

    View Slide