論文淺嘗 | Interactive-KBQA:基于大語言模型的多輪交互KBQA(ACL2024)

轉載至:何駿昊 開放知識圖譜

原文地址:論文淺嘗 | Interactive-KBQA:基于大語言模型的多輪交互KBQA(ACL2024)

圖片

筆記整理:何駿昊,東南大學碩士,研究方向為語義解析

論文鏈接:https://arxiv.org/abs/2402.15131

發表會議:ACL 2024

1. 動機

知識庫問答(KBQA)是一個日益重要的研究領域,它利用結構化知識庫(KB)為自然語言(NL)問題提供精確答案。大語言模型(LLM)的出現為增強KBQA系統開辟了新途徑。這些模型在KBQA領域中的推理和少樣本學習方面顯示出驚人的結果。該工作的動機主要源于解決KBQA領域中的以下關鍵挑戰:

(1)復雜查詢處理的局限性:現有基于信息檢索(IR)的方法在處理涉及類型約束、數值比較或多跳推理的復雜查詢時表現不足。例如,類似“身高超過2米的籃球運動員有多少人?”的問題需要更深入的語義理解,而傳統方法難以有效捕捉此類復雜邏輯。

(2)語義解析(SP)方法的高標注成本:基于語義解析的方法依賴大量標注數據來生成可執行的邏輯形式(如SPARQL查詢),但數據標注成本高昂,限制了方法的可擴展性。此外,這類方法的推理過程通常缺乏透明性,形成“黑箱”問題。

(3)大語言模型的潛力未充分釋放:盡管LLMs在少樣本學習和復雜推理任務中展現了強大能力,但現有KBQA系統主要將其用作分類器或簡單生成器,未充分利用其交互式推理能力。例如,許多方法僅用LLMs生成邏輯形式的初稿,而非通過多輪交互動態優化結果。

基于這些挑戰,論文提出Interactive-KBQA框架,核心思路是將LLM視為與知識庫交互的“智能體”,通過多輪對話逐步生成邏輯形式。這種方法不僅降低了標注成本,還通過交互式工具(如搜索節點、圖模式匹配)增強了復雜問題的處理能力,并通過人工干預機制提高了系統的靈活性和可解釋性。最終目標是實現一個高效、透明且適應低資源場景的KBQA系統。

2. 貢獻

該工作的主要貢獻為以下四點:

(1)提出交互式KBQA框架(Interactive-KBQA),將LLM視為與KB交互的智能體,通過多輪對話逐步生成邏輯形式(如SPARQL查詢)。 ?

(2)設計統一工具集與交互邏輯:開發了三個通用API,適配不同知識庫(Freebase、Wikidata、Movie KB);通過標準化工具接口,實現了跨異構知識庫的兼容性,簡化了復雜查詢(如多跳、數值約束、限定符)的處理流程。

(3)實現低資源場景下的高效性能。針對每類復雜問題(如多跳、CVT、限定符),僅需標注2個示例即可引導LLM完成推理。在三個數據集上,使用極少量標注達到或超越傳統全監督方法的性能。

(4)發布高質量標注數據集,包含逐步推理過程的人工標注(如交互歷史、錯誤修正記錄),涵蓋多種復雜問題類型。

3. 方法

3.1?問題定義?

KB定義為三元組集合K∈E×R×(E∪L∪C),其中E為實體集合,R為關系集合,C為類別集合,L為字面值。給定自然語言問題Q和知識庫K,目標是通過語義解析生成可執行的SPARQL查詢S,即建模為條件概率p(S|Q,K)。

3.2?框架設計

提出Interactive-KBQA框架(如圖1所示),將LLM視為與知識庫交互的智能體,通過多輪對話生成邏輯形式(SPARQL)。

交互范式:采用“思考-行動-觀察”(Thought-Action-Observation)循環:1.?思考(Thought):LLM生成自然語言推理步驟(如問題分解、謂詞選擇);2.?行動(Action):調用預定義工具(如搜索節點、執行查詢),生成Python風格的API調用指令。3.?觀察(Observation):執行工具后返回結果(如實體列表、子圖模式),作為下一輪輸入。

終止條件:當LLM生成Action: Done時,輸出最終SPARQL查詢結果。

圖片

圖1?Interactive-KBQA框架的交互過程示例

3.3?知識庫交互工具

框架基于三個通用工具(SearchNodes、SearchGraphPatterns、ExecuteSPARQL)引導LLM逐步推理復雜問題:

(1)SearchNodes(name):通過實體表面名稱(如“Tom Hanks”)搜索知識庫中的節點,返回節點的規范化名稱、描述和類型(如“Barack Obama |?美國前總統”)。

(2)SearchGraphPatterns(sparql, semantic):輸入需以“SELECT ?e WHERE”開頭的SPARQL片段,返回以??e?為中心的一跳子圖,并根據語義參數(如“play in film”)對謂詞排序。特別優化了Freebase的復合值類型(CVT)結構,例如將“Tom Hanks參演電影”映射為兩個單跳關系(film.actor.film?→?film.performance.film)。

(3)ExecuteSPARQL(sparql):直接執行任意SPARQL查詢,支持靈活探索知識庫。

3.4?交互流程

構建提示模板Prompt={Inst,E,Q},其中Inst為任務指令,E為示例集合,Q為當前問題。每輪交互中,LLM根據歷史H={c0,a0,o0,……,ct-1,at-1,ot-1}?生成動作at=LLM{Prompt,H},其中ct為自然語言推理步驟(如“需查找Tom Hanks參演的電影”),at為工具調用(如SearchNodes、ExecuteSPARQL),ot為工具返回結果。若生成動作“Done”,則輸出最終答案。

針對多跳查詢,逐步解析謂詞而非具體實體(例如“法國的總統是誰?”需先定位國家節點,再搜索“president”關系);針對Freebase的CVT結構,顯式分解為多個單跳關系(如將“演員-角色-電影”拆分為兩跳);針對Wikidata的限定符(如“紐約市2010年人口”),設計專用SPARQL模式,通過修飾符(如point_in_time)約束查詢。每類問題提供2個標注示例,引導LLM遵循特定推理路徑。

3.5?人機協同標注

允許人工在交互過程中修正LLM的錯誤動作(如生成不存在謂詞),形成修正后的歷史{c0,a0,o0,……,a't,o't},并繼續生成后續步驟。標注數據集包含詳細的逐步推理過程,用于微調開源LLM(如Mistral-7B),降低對商業API的依賴。

4. 實驗

4.1?實驗設置

本工作采用:WebQuestionsSP (WebQSP)?和?ComplexWebQuestions 1.1 (CWQ):基于Freebase,分別包含簡單(1-hop)和復雜(多類型)問題,問題類型包括Conjunction (Conj)、Composition (Compo)、Comparative (Compa)、Superlative (Super);KQA Pro:基于Wikidata,覆蓋9類復雜問題(如計數、屬性限定符、關系查詢);MetaQA:基于Movie KB,包含1-hop至3-hop問題。?

本工作從每個數據集均勻采樣900個實例確保問題類型分布平衡。

4.2?基線方法

本工作采用以下基線方法:

(1)全數據微調方法:DeCAF(WebQSP)、BART-SPARQL(KQA Pro)、Edge-aware(MetaQA)。

(2)提示方法:KB-BINDER(少樣本)、Chain-of-Thought (CoT) + Self-Consistency (SC)。

(3)低資源微調方法:在標注數據集上微調開源LLMs(Mistral-7B、Llama2-7B/13B)。

(4)對比方法:StructGPT、ToG(假設實體已鏈接)。

4.3?評估指標

本工作采用以下評估指標:

(1)F1分數:邏輯形式生成的匹配程度。

(2)RHits@1(隨機命中率@1):答案實體排名第一的比例。

(3)EM(精確匹配):生成的SPARQL與標注完全一致的比例。

(4)準確率(KQA Pro):答案集合完全匹配的比例。

4.4?主要結果

如表1所示,該工作在WebQSP和KQA Pro上,由于訓練數據量差異,GPT-4 Turbo的性能略低于全監督方法,但在CWQ和MetaQA(表2)上顯著超越(如CWQ的總體F1為49.07%,MetaQA的Hits@1達99.67%)。 在復雜問題類型上表現突出,例如CWQ的“比較類”(Compa)和“最高級”(Super)問題分別提升29.85%和13.96%。 ?

Mistral-7B微調后在CWQ和KQA Pro上的F1分別達到39.90%和64.40%,優于同等規模的基準方法(如SFT-SPARQL的28.10%和57.78%)。?

Llama2-13B在部分任務(如CWQ的Compa問題)上表現接近GPT-4 Turbo(55.98% vs. 47.89%)。

表1?Interactive-KBQA在WebQSP?和?CWQ?上的結果

圖片

表2?Interactive-KBQA在MetaQA上的結果

圖片

4.5?實體鏈接的影響

通過對比ELQ工具與論文方法,發現實體鏈接是性能瓶頸之一。在WebQSP和CWQ上,論文方法的F1分別為80.00%和76.06%,而ELQ僅41.30%和43.81%。引入提及覆蓋率(MCR)指標(黃金實體名稱在問題中的出現比例)后發現,KQA Pro和MetaQA的MCR較高(80.80%和100%),而WebQSP和CWQ較低(67.42%和76.64%)。

表3?實體鏈接的結果

圖片

4.6?消融實驗

示例數量與覆蓋率:如表4和表5所示,在CWQ(4類問題)和KQA Pro(9類問題)上,增加示例覆蓋率可提升性能(如CWQ 4-shot比0-shot F1提升2.5%),但成本增加37.86%。

表4?問題類型分類器的性能

圖片

表5?示例編號和平均價格的影響

圖片

骨干模型對比:如表6所示,GPT-4 Turbo顯著優于GPT-3.5(CWQ F1為49.07% vs. 13.42%),微調后的Mistral-7B優于未訓練版本(CWQ 39.90% vs. 4.76%)。

表6不同骨干模型的性能

圖片

4.7?錯誤分析

如表7所示,錯誤類型分為六類:實體鏈接(18%)、謂詞搜索(6%)、推理(32%)、格式合規性(17%)、幻覺(19%)及其他(8%)。案例分析顯示,人工干預可有效修正幻覺(如生成不存在謂詞)和推理錯誤(如多跳路徑遺漏)。例如,在問題“Justin Bieber的兄弟是誰?”中,LLM需通過性別約束修正初始錯誤答案,最終生成正確的SPARQL查詢。

表7?錯誤類型的分布

圖片

5. 總結

該工作提出了Interactive-KBQA框架,通過將大型語言模型(LLM)作為與知識庫交互的智能體,以多輪對話形式逐步生成可執行的邏輯形式(如SPARQL查詢),解決了傳統KBQA方法在處理復雜查詢、高標注成本及模型黑箱問題上的瓶頸。其核心創新在于交互式工具設計(如SearchNodes、SearchGraphPatterns)與“思考-行動”范式的結合,允許LLM動態探索知識庫結構,并通過少量標注示例引導推理。此外,該方法支持人工干預,能夠修正模型錯誤,形成迭代優化機制,顯著提升了低資源場景下的性能與可解釋性。?

該工作中實驗設計覆蓋了四個主流數據集,涵蓋從簡單到復雜的多類問題(如多跳、數值約束、限定符)。亮點在于:首先,該工作僅用2-4個標注示例即可達到或超越傳統方法,凸顯了框架的樣本效率。其次,該工作通過分類錯誤類型(如實體鏈接、幻覺)和案例研究,揭示了模型瓶頸與改進方向。最后,該工作量化交互輪次與推理成本(如GPT-4 Turbo每輪$0.3–$0.5),為實際應用提供參考。?

盡管方法在低資源場景下表現突出,但仍存在明顯局限:首先,框架性能高度受限于LLM的推理質量,例如GPT-4 Turbo在復雜問題上的成功率顯著高于開源模型(如Mistral-7B)。若LLM生成錯誤推理步驟(如幻覺謂詞),需依賴人工干預修正,這在實際應用中可能增加操作成本。其次,多輪對話導致推理時間與API調用成本上升,尤其對需要高頻查詢的場景(如實時問答)不夠友好。最后,實驗集中于特定領域(如電影、人物),未驗證在開放域或動態更新知識庫中的適應性,且人工標注數據集的規模較小,可能影響模型魯棒性。?

未來工作需進一步優化工具自動化程度、降低對商業API的依賴,并探索更高效的交互策略(如壓縮歷史信息),以推動方法在實際系統中的落地。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899866.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899866.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899866.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL注入中user-agent和cookie存在的注入

uagent注入 1、漏洞成因: 當Web應用程序將用戶提供的User-Agent值未經處理直接拼接到SQL查詢語句時,攻擊者可以通過構造惡意User-Agent值閉合原有SQL語句并注入任意SQL代碼。 2、以less-18為例: 相比前幾關,第18關對于uname和pa…

【算法數學篇】試除法求約數

題解:試除法求約數 題目傳送門 869. 試除法求約數 一、題目描述 給定 n 個正整數 a?,對于每個整數 a?,按照從小到大的順序輸出它的所有約數。 輸入格式: 第一行包含整數 n接下來 n 行,每行包含一個整數 a? 輸…

《UNIX網絡編程卷1:套接字聯網API》第5章 TCP客戶服務器程序示例

《UNIX網絡編程卷1:套接字聯網API》第5章 TCP客戶/服務器程序示例 5.1 本章目標與示例程序概述 本章通過一個完整的TCP回射(Echo)客戶/服務器程序,深入解析TCP套接字編程的核心流程與關鍵問題。示例程序的功能為:客戶…

封裝可拖動彈窗(vue jquery引入到html的版本)

vue cli上簡單的功能&#xff0c;在js上太難弄了&#xff0c;這個彈窗功能時常用到&#xff0c;保存起來備用吧 備注&#xff1a;deepseek這個人工智障寫一堆有問題的我&#xff0c;還老服務器繁忙 效果圖&#xff1a; html代碼&#xff1a; <div class"modal-mask&qu…

編譯器工具鏈是什么?

編譯器工具鏈&#xff08;Compiler Toolchain&#xff09; 是一組用于將源代碼轉換為可執行程序的工具和庫的集合。它涵蓋了從源代碼編寫到程序運行的整個構建過程&#xff0c;包括編譯、匯編、鏈接等多個階段。以下是關于編譯器工具鏈的詳細解釋&#xff1a; 一、編譯器工具鏈…

Spring Boot 集成Redis中 RedisTemplate 及相關操作接口對比與方法說明

RedisTemplate 及相關操作接口對比與方法說明 1. RedisTemplate 核心接口與實現類 RedisTemplate 是 Spring Data Redis 的核心模板類&#xff0c;通過 opsFor... 方法返回不同數據類型的操作接口&#xff0c;每個接口對應 Redis 的一種數據結構。以下是主要接口及其實現類&am…

linux內核漏洞檢測利用exp提權

案例一dirtycow&#xff08;CVE-2016-5159&#xff09; 有個前置知識就是 獲取liunx的內核 hostnamectl uname -a 然后這個內核漏洞進行提權的步驟也是和手工win進行提權差不多 也是需要使用輔助工具在本地進行輔助檢測 然后去nomi-sec/PoC-in-GitHub&#xff1a; &#…

重磅 | CertiK《Hack3d:2025第一季度安全報告》(附報告全文鏈接)

CertiK《Hack3d&#xff1a;2025年第一季度安全報告》現已發布&#xff0c;本次報告深入分析了2025年1至3月Web3.0領域的安全狀況。2025年第一季度共發生197起安全事件&#xff0c;總損失約為16.7億美元&#xff0c;環比激增303.4%。其中Bybit事件導致約14.5億美元的損失&#…

經典卷積神經網絡LeNet實現(pytorch版)

LeNet卷積神經網絡 一、理論部分1.1 核心理論1.2 LeNet-5 網絡結構1.3 關鍵細節1.4 后期改進1.6 意義與局限性二、代碼實現2.1 導包2.1 數據加載和處理2.3 網絡構建2.4 訓練和測試函數2.4.1 訓練函數2.4.2 測試函數2.5 訓練和保存模型2.6 模型加載和預測一、理論部分 LeNet是一…

二維碼掃不出?用QR Research工具

一.簡介 簡單來說QR Research就是用來掃二維碼的工具 當二維碼模糊不清&#xff0c;無法用普通方式掃時&#xff0c;就可以用QR Research輕松掃描。QR Research還可以分析變形/破損二維碼&#xff08;修復或提取有效部分&#xff09; 二.下載安裝 QR Research 三.例題 這…

02_使用Docker在服務器上部署Jekins實現項目的自動化部署

02_使用Docker在服務器上部署jenkins實現項目的自動化部署 一、使用docker拉取阿里云容器私有鏡像倉庫內的jenkins鏡像 登錄阿里云Docker Registry $ sudo docker login --usernamewxxxo1xxx registry.cn-shanghai.aliyuncs.com用于登錄的用戶名為阿里云賬號全名&#xff0c…

微服務組件——Eureka組件的安裝與使用指南

文章目錄 一、Eureka Server的安裝與配置1、創建Spring Boot項目2、添加依賴3、配置Eureka Server4、啟用Eureka Server5、啟動并訪問Dashboard 二、Eureka Client的配置&#xff08;服務注冊&#xff09;1、添加客戶端依賴2、配置客戶端3、啟用服務發現4、啟動服務 三、服務發…

探索Doris:日志分析的新寵,是否能取代老牌ES?

在大數據時代&#xff0c;日志存儲與分析對于企業的運營和決策起著至關重要的作用。Elasticsearch&#xff08;簡稱 ES&#xff09;作為一款廣泛應用的開源分布式搜索和分析引擎&#xff0c;長期以來在日志管理領域占據著舉足輕重的地位。然而&#xff0c;隨著技術的不斷發展&a…

學習threejs,使用Texture紋理貼圖,測試repeat重復紋理貼圖

&#x1f468;??? 主頁&#xff1a; gis分享者 &#x1f468;??? 感謝各位大佬 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;??? 收錄于專欄&#xff1a;threejs gis工程師 文章目錄 一、&#x1f340;前言1.1 ??Texture 紋理貼圖1.1.1 ??…

圖像配準及識別

一、圖像配準基礎 圖像配準&#xff0c;聽起來很高大上&#xff0c;其實用大白話來說&#xff0c;就是“讓兩張照片對齊”的技術。想象一下&#xff0c;你有兩張拍得不完全一樣的照片&#xff0c;比如一張是你從正面拍的風景&#xff0c;另一張是從側面拍的同一個地方&#xff…

QT之QML(簡單示例)

需求一&#xff1a;點擊按鈕彈出菜單&#xff0c;并且自定義菜單彈出位置。 mouse.x 和 mouse.y 獲取的是相對于 MouseArea&#xff08;在這個例子中是 Button&#xff09;左上角的局部坐標。如果你想要在鼠標點擊位置顯示 Menu&#xff0c;你需要將這個局部坐標轉換為相對于應…

如何編寫單元測試

一、前言知識 1.開發過程 需求分析->設計->開發->測試->上線 2.測試種類 單元測試(測試模塊編碼)、黑盒測試(測試功能是否滿足需求)、白盒測試(測試程序內部的邏輯結構)、回歸測試(提出的缺陷進行二次驗證)、集成測試(測試主要的業務功能及模塊間的整合性)、系…

LeetCode 解題思路 30(Hot 100)

解題思路&#xff1a; 遞歸參數&#xff1a; 生成括號的對數 n、結果集 result、當前路徑 path、左括號數 open、右括號數 close。遞歸過程&#xff1a; 當當前路徑 path 的長度等于 n * 2 時&#xff0c;說明已經生成有效括號&#xff0c;加入結果集。若左括號數小于 n&…

【Golang】Windows系統鍵鼠空閑監測練習

在本文中&#xff0c;我們將練習如何使用Golang編寫一個簡單的Windows系統空閑時間監測工具。該工具能夠檢測系統的空閑時間&#xff0c;并在達到一定閾值時計數。 功能概述 監控鼠標和鍵盤的空閑事件&#xff0c;每空閑超過50s&#xff0c;觸發次數加一。 該工具具有以下功…

關于React Redux

官網&#xff1a;&#x1f449;詳情一 &#x1f449;詳情二 &#x1f449;關于redux 使用原因&#xff1a;&#x1f449;詳情 /** 2-1、隨著javascript單頁應用程序的發展&#xff0c;需要在代碼中管理更多的狀態&#xff08;包括服務器響應數據、緩存數據、本地創建還未發送…