RAG-KG

1 概述
傳統(tǒng)的大模型(LLMs)檢索增強(qiáng)生成(RAG)法將大量過去的問題作為純文本處理,忽略了內(nèi)部結(jié)構(gòu)和聯(lián)系,本文介紹一種新的客戶服務(wù)問答方法,將RAG與知識(shí)圖譜(KG)結(jié)合起來,由歷史問題簡(jiǎn)歷一個(gè)知識(shí)圖譜,以用于檢索。在問答方面,本方法分析客戶的查詢序列并檢索與之相關(guān)的KG子圖。這種方法不僅提高了檢索準(zhǔn)確性,還提高了回答質(zhì)量。
2 方法
主要分為兩個(gè)階段:
- 知識(shí)圖譜構(gòu)建:根據(jù)用戶的歷史工單,為每個(gè)問題提供了一個(gè)樹狀結(jié)構(gòu)表示,并根據(jù)關(guān)系上下文將它們相互鏈接。
- 問答階段:根據(jù)用戶的查詢定位實(shí)體和意圖,通過知識(shí)圖譜進(jìn)行導(dǎo)航,定位到與之相關(guān)的子圖,并生成答案。
知識(shí)圖譜的構(gòu)建
定義的圖譜采用雙層結(jié)構(gòu),以區(qū)分問題內(nèi)部和問題之間的關(guān)系。構(gòu)建過程也分為兩步:票內(nèi)解析和票間連接。
- 票內(nèi)解析(Inter-Ticket Connection Phase):采用基于規(guī)則與LLM相結(jié)合的解析方法,其中LLM解析利用了YAML模版。
- 票間連接:這一步將每一個(gè)單獨(dú)的樹結(jié)構(gòu)連接為一個(gè)復(fù)雜的圖結(jié)構(gòu),這種連接分為顯示連接和隱式連接。顯示連接由所有明確連接的票據(jù)對(duì)組成,隱式連接則由滿足余弦相似度閾值的票據(jù)對(duì)組成
- 文本嵌入生成:選擇文本信息豐富的節(jié)點(diǎn),用嵌入模型生成嵌入,并保存在向量數(shù)據(jù)庫中。
檢索和問答
1 查詢實(shí)體識(shí)別與意圖檢測(cè)
從每個(gè)用戶查詢??中提取出類型為的命名實(shí)體集合P以及查詢意圖集合I。例如查詢?? = "How to reproduce the login issue where a user can’t log in to LinkedIn?",通過解析,我們可以提取出實(shí)體集合P = Map("issue summary" → "login issue", "issue description" → "user can’t log in to LinkedIn"),以及意圖集合I = Set("fix solution")。
2 基于嵌入的子圖檢索
主要分為兩步:基于嵌入的工單(Ticket)識(shí)別和大模型驅(qū)動(dòng)的子圖提取。
- 基于嵌入的工單(Ticket)識(shí)別(EBR-based ticket identification step):利用從用戶查詢中得出的命名實(shí)體集合P,來確定與用戶最相關(guān)的前K個(gè)歷史問題工單。對(duì)于P中的每一對(duì)實(shí)體(k, v)(其中k代表實(shí)體類別,v代表實(shí)體值),使用文本嵌入來計(jì)算實(shí)體值v與所有對(duì)應(yīng)于類別k的圖節(jié)點(diǎn)n之間的余弦相似度。接著,將屬于同一工單的所有節(jié)點(diǎn)得分進(jìn)行匯總,以此得出工單級(jí)的得分,然后選擇得分最高的前K個(gè)工單。
- 大模型驅(qū)動(dòng)的子圖提取:將原始用戶查詢??重新表述為包含已檢索到的工單ID的新查詢??′。然后,這個(gè)修改后的查詢??′會(huì)被翻譯成圖數(shù)據(jù)庫語言。例如:從初始查詢??="如何重現(xiàn)用戶因數(shù)據(jù)問題在更新用戶電子郵件時(shí)看到的‘csv上傳錯(cuò)誤’這一重大問題"開始,查詢被重新表述為"如何重現(xiàn)‘ENT-22970’",然后轉(zhuǎn)換成Cypher查詢語句。這個(gè)Cypher查詢會(huì)查找具有特定工單ID('ENT-22970')的票據(jù)節(jié)點(diǎn),然后沿著HAS_DESCRIPTION和HAS_STEPS_TO_REPRODUCE關(guān)系鏈找到描述節(jié)點(diǎn)和重現(xiàn)步驟節(jié)點(diǎn),最后返回重現(xiàn)步驟的值。LLM驅(qū)動(dòng)的查詢構(gòu)建方法可以跨子圖檢索信息,無論這些子圖是否來自知識(shí)圖中的同一棵樹或不同的樹。這意味著系統(tǒng)能夠處理復(fù)雜的查詢需求,從廣泛連接的知識(shí)圖中提取有用的信息。
-
答案生成:結(jié)合檢索到的數(shù)據(jù)和用戶查詢來生成回答,LLM作為解碼器。如果在這個(gè)過程中遇到任何問題會(huì)回退到基于baseline方法。
主要實(shí)驗(yàn)結(jié)果
Knowledge Graph Prompting for Multi-Document Question Answering(KGP AAAI 2024)

多文檔問答(MD-QA)任務(wù)需要對(duì)文檔內(nèi)容和結(jié)構(gòu)邏輯有深刻的理解,本文提出一種知識(shí)圖譜提示(KGP)方法,用于為MD-QA中的大模型(LLMs)構(gòu)建正確的提示上下文。
- 通用知識(shí)圖譜構(gòu)建:提出三種基于文檔的知識(shí)圖譜構(gòu)建方法,以段落或文檔結(jié)構(gòu)為節(jié)點(diǎn),以它們之間的詞匯/語義相似性或結(jié)構(gòu)關(guān)系為邊。然后通過檢查每個(gè)問題的鄰居節(jié)點(diǎn)與支持事實(shí)之間的重疊程度,在多文檔問答(MD-QA)任務(wù)中實(shí)證評(píng)估了所構(gòu)建知識(shí)圖譜的質(zhì)量)。
- 利用知識(shí)圖譜進(jìn)行提示制定:我們?cè)O(shè)計(jì)了一種知識(shí)圖譜提示(KGP)方法,該方法利用基于大模型(LLM)的知識(shí)圖譜遍歷代理,通過遍歷構(gòu)建的知識(shí)圖譜來檢索與問題相關(guān)的上下文。此外,我們對(duì)該代理進(jìn)行了微調(diào),使其能夠根據(jù)已訪問的節(jié)點(diǎn)(檢索到的段落)自適應(yīng)地遍歷最有希望的鄰居節(jié)點(diǎn),以接近問題的答案。

知識(shí)圖譜構(gòu)建過程如下:
將文檔集中的每篇文檔拆分為多個(gè)段落。對(duì)于每個(gè)段落,可以直接通過預(yù)訓(xùn)練的編碼器獲得其嵌入表示,或者提取其關(guān)鍵詞來構(gòu)建詞袋(BOW)特征。然后根據(jù)段落的嵌入相似性或者它們是否共享關(guān)鍵詞來連接兩個(gè)段落。此外還通過Extract-PDF API提取表格/頁面,并將它們作為結(jié)構(gòu)節(jié)點(diǎn)添加到知識(shí)圖譜中。如果頁面包含段落和表格,會(huì)添加一條有向邊來表示它們之間的歸屬關(guān)系。
