問答系統學習綜述
目錄
研究意義
搜尋引擎系統:1、檢索需求的表達不夠準確:使用者的檢索需求往往是非常複雜而特殊的無法以幾個關鍵字的簡單邏輯組合來表達使用者的檢所需求。2、檢索結果不夠簡潔:返回結果太多導致使用者很難快速準確地定位到所需資訊。3、缺乏語義處理技術的支撐:傳統資訊檢索以關鍵詞為基礎的索引、匹配演算法儘管簡單易行,但畢竟停留在語言的表層而沒有觸及語義,使得檢索效果一般。
問答式資訊檢索是一種允許使用者以自然語言方式詢問,系統從單語或多語文件集中查詢並返回確切答案或者蘊含答案文字片斷的新型資訊檢索的方式。問答系統允許使用者以自然語言的形式查詢資訊,例如:世界上最大的宮殿是什麼宮殿?系統則直接提供使用者準確、簡潔的答案,例如:紫禁城/故宮。問答系統能夠提供使用者真正的有用、精確的資訊,它將是下一代的搜尋引擎的理想選擇。
基於自然語言處理技術的問答系統是傳統搜尋引擎改進的方向之一,自然語言問答系統本身處理的輸入就是以自然語言形式表達的問句,通過提取問句中的查詢新息,然後解析出使用者的查詢意圖,再根據查詢意圖從文件中精準定位答案所在,將自然語言形式的答案抽取出來返回給使用者,而不僅僅是將問題的答案文件分佈返回給使用者,這無論是從精確程度還是滿足使用者的檢索需求上都是很大的進步。
智慧問答系統涉及的領域很廣,其中主要關鍵技術有知識的抽取和表示,使用者問句的語義理解和通過知識推理得到答案。這些領域都需要進行深入研究我們才會得到更好的智慧問答系統。而無論我們在任一領域取得重大的突破,不僅僅對於智慧問答系統,而且對於其它領域,包括文字分類、推薦系統等都會有相當大的促進作用。
QA系統發展歷程
1950年,英國數學家A.M.Turing在其論文《Computing Machinery and Intelligence》中提到測試機器是否具有智慧的問題:“機器能思考嗎?”,並提出了判定機器能否思考的方法——圖靈測試。其方案為:由測試人A與另一房間中的兩個物件 B
早期的兩個比較著名的QA系統:BASEBALL(1961年)和LUNAR(1973年)。BASEBALL可用來回答美國一個季度棒球比賽的時間地點成績等 自然語言問題。LUNAR可幫助地質學家方便的瞭解、比較和蘋果股阿波羅登月計劃積累的月球突然和岩石的各種化學分析資料。它們的後臺有一個數據庫,儲存系統可提供的各種資料。而在使用者提問時,系統把使用者的問題轉換成SQL查詢語句,從資料庫中查詢到資料提供給使用者。
一般認為,第一個QA系統是Jaseph Weizenbaum在1966年實現”Eliza”。Eliza扮演一個心理學專家的角色,它採用啟發式的心理療法,通過反問來應對精神病人的提問,誘導病人不停地說話,從而達到對病人進行心理治療的目的。Eliza用的是模式及關鍵字匹配和置換的方法,沒有發展成一套系統的技術。
可進行對話的系統有Terry Winograd在1971年用MACLICP語言開發的SHRDLU(積木遊戲)和Bobrow等在1977年前後開發的GUS(旅行資訊諮詢)。
20世紀70年代,出現了閱讀理解系統:耶魯大學人工智慧實驗室開發的SAM,SAM的能力限制於必須要有指令碼來描述對問題的回答。但指令碼不存在時或者尚未準備好時,系統將無法工作。
20世紀90年代,問答系統的研究和開發熱點轉向基於大規模文件集的問答(TREC於1999年開始了QA技術的評測;2000年10月,ACL以“開放域問答系統”為專題)。研究領域也從初期的限定領域拓展到開放領域,研究物件從當初的固定語料庫拓展到網際網路,真正的面向Web開放域的QA系統的正確率和精確性都不高,還不能提供良好的商業服務。
Start是世界上第一個基於Web的QA系統,自從1993年12月開始,它持續線上執行至今。現在Start能夠回答數百萬的多類英語問題,包括“place”類(城市,國家,湖泊,天氣,地圖,人口統計學,政治和經濟等),電影類(片名,演員和導演等),人物類(出生日期,傳記等),詞典定義類等。
國外目前比較成功的QA系統有 START、Watson (IBM)、Siri (iPhone) 、Microsoft Cortana …
國內的眾多企業和研究團體也推出了很多QA系統,例如 微軟小冰 、小度機器人(百度) 、知乎(社群問答平臺) ……由於中文的特殊性,比如說沒有英文天然的分詞等,研究起來困難也比較多;相比TREC評測,缺乏一個相對成熟的漢語QA系統評測平臺。
QA系統分類
限定域問答系統是指系統所能處理的問題只限定於某個領域或者某個內容範圍,比如只限定於醫學、化學或者某企業的業務領域等。 開放域問答系統不同於限定域問答系統,這類系統可回答的問題不限定於某個特定領域。在回答開放領域的問題時,需要一定的常識知識或者世界知識並具有語義詞典,如英文的WordNet在許多英文開放域問答系統中都會使用。FAQ基於常見問題集的問答系統。FAQ自動問答系統把使用者常問的問題和相關答案儲存 起來,使得使用者使用系統更加便捷。當用戶輸入問題時,如 果在已有的“問題—答案”對集合中能找到與之相匹配的問句,系統就直接把相應的答案輸出給使用者,而不需要經過問 題理解、資訊檢索、答案抽取等複雜的處理過程。
結構化文字:按照一定格式嚴格生成(資料庫、票據); 自由文字:無格式,文字合乎自然語法規則(新聞報道、科技文獻); 半結構化文字:介於前兩者之間,這類文字有一定格式約束、不完全符合自然語言法則,但又按自然語法組織語言(電報、公告)。
在檢索模型中,系統會根據所給的問題從Question-Answer資料庫中找 尋與該問題語義最相近的問句,然後返回該問句對應的答案,該方法的主要 問題有兩個:第一個是資料庫中Question-Answer對數量有限,有可能檢索 不到使用者提出的問題的答案。第二個問題是Question-Answer對是固定的, 可能無法根據使用者提出的問題得到完全對應的答案。在生成模型中,對話系統會首先理解使用者提出的問題,然後逐字的生成對應於該問題的答案。目前主流的方法是深度學習中Seq2Seq模型,該模型 先用encoder端將問句編碼為一個向量表示,再由decoder端將該向量表示解碼為一個回覆,該模型的主要問題是有可能生成的答案很容易是通用的、 單調的回覆(例如:“我不知道”、“好的”等),這樣的回覆包含的資訊較少, 沒有實質性的意義。
QA系統的處理框架
不同型別的問答系統對於資料處理的方法存在不同。例如,相對於面向FAQ的問答系統的問句檢索直接得到候選答案,面向開放領域的問答系統首先需要根據問題分析的結果進行相關文件、文字片段資訊的檢索,然後進行候選答案的抽取。雖然不同型別的問答系統對於系統模組的功能分工和具體實現存在差異,但依據資料流在問答系統中的處理流程,一般問答系統的處理框架中都包括問句理解、資訊檢索、答案生成三個功能組成部分。
對應問答系統的處理流程, 問答系統研究包含三個基本問題:如何去分析問題; 如何根據問題的分析結果去縮小答案可能存在的範圍; 如何從可能存在答案的資訊塊中抽取答案。
提問處理模組:負責對使用者的提問進行處理;生成查詢關鍵詞(提問關鍵詞,擴充套件關鍵詞,...);確定提問答案型別(PER, LOC, ORG, TIM, NUM, ...)以及提問的句法、語義表示等等。
檢索模組:根據提問處理模組生成的查詢關鍵詞,使用傳統檢索方式,檢索出和提問相關的資訊;返回的資訊可以是段落、也可以是句群或者句子。
答案抽取模組:從檢索模組檢索出的相關段落、或句群、或句子中抽取出和提問答案型別一致的實體,根據某種原則對候選答案進行打分,把概率最大的候選答案返回給使用者。
基於FAQ的問答系統
首先,問答系統首先接收使用者提出的問題(即使用者輸入的問句)。 然後,根據使用者輸入的問句,從常用問題庫(即FAQ庫)中查詢並建立與使用者問題比較相似的候選問題集。 接著,對候選問題集中的句子與使用者輸入的問句進行相似度計算,從候選問題集中尋找與使用者輸入的問句最相似的問句。 如果在候選問題集中找到了與使用者輸入的問句相似的問句(即該問句和使用者輸入的問句的相似度大於某個閾值),就直接把和該問句對應的答案返還給使用者;如果沒有找到與使用者輸入的問句相似的問句(即候選問題集中所有問句和使用者輸入的問句的相似度都小於某個閥值),那麼就利用其他的方法,比如答案抽取、資訊檢索等,來尋找答案,並且將這個新的問題和其對應的答案加入FAQ庫,對FAQ庫進行更新。
FAQ自動問答系統中需要處理的主要問題是候選問題集的建立、句子相似度計算、FAQ庫的更新。
1、候選問題集的建立
候選問題答案集合建立是為了縮小答案的範圍。該步驟會選取出可能包含答案的候選問題答案集合。這麼做的目的使後續的問句相似性計算等步驟能夠縮小範圍,以較高的效率進行。在該步驟中,通常會使用資訊檢索技術。
● 使用者輸入的目標問句 (W1,W2,…,Wn)
● FAQ庫中共有m個問句,第i(1 ≤i ≤m)個問句含有ni個詞 (Q1,Q2,…,Qni)
● 第i個問句和目標問句之間重疊的詞個數記為Numi,即 Numi=|{W1,W2,…,Wn} ∩ {Q1,Q2,…,Qni}|
● 選擇Numi值最大的若干問句,組成候選問題集
2、問句匹配度相似度計算
這一步是將候選集合中的每一個問句分別與使用者輸入的問句進行匹配並計算相似度得分。得分最高的問句所對應的答案就是最終答案。這一步驟比較關鍵,它關乎到答案的質量。
兩類:
1、不考慮兩個句子的語義資訊:模式匹配、關鍵字匹配技術、基於向量空間的TF/IDF方法等計算兩個句子的相似度;
2、考慮兩個句子的語義資訊:利用WordNet、HowNet、同義詞詞林等語義知識資源計算兩個句子的語義相似度。一般的方法的是結合多種特徵來計算句子之間的相似性。
3、問題答案集合更新
● 計算出使用者所輸入的目標問句和候選問題集中每個問句的相似度
● 如果相似度的最大值大於一定的閾值,直接將這個問句對應的答案輸出給使用者
● 如果最大相似度的值小於閾值,將使用者所問的這個問題和對應的答案加入FAQ 庫,對其進行自動的更新
基於大規模文件集的問答系統
基於大規模文件集的問答系統:資訊檢索技術和資訊抽取技術的結合。
命名實體識別(Named EntitiesRecognition, NER)是自然語言處理(Natural LanguageProcessing, NLP)的一個基礎任務。其目的是識別語料中人名、地名、組織機構名等命名實體。由於這些命名實體數量不斷增加,通常不可能在詞典中窮盡列出,且其構成方法具有各自的一些規律性,因而,通常把對這些詞的識別從詞彙形態處理(如漢語切分)任務中獨立處理,稱為命名實體識別。命名實體識別技術是資訊抽取、資訊檢索、機器翻譯、問答系統等多種自然語言處理技術必不可少的組成部分。
命名實體是命名實體識別的研究主體,一般包括3大類(實體類、時間類和數字類)和7小類(人名、地名、機構名、時間、日期、貨幣和百分比)命名實體。評判一個命名實體是否被正確識別包括兩個方面:實體的邊界是否正確;實體的型別是否標註正確。主要錯誤型別包括文字正確,型別可能錯誤;反之,文字邊界錯誤,而其包含的主要實體詞和詞類標記可能正確。
命名實體識別的主要技術方法分為:基於規則和詞典的方法、基於統計的方法、二者混合的方法等。
命名實體識別技術主要用在QA的:1、段落或句子排列:QA系統首先根據查詢關鍵字進行檢索,然後對於檢索出來的段落或句子重新進行排序;當某個句子包含所期望的實體時,則給句子適當的加分; 2、答案抽取:只抽取和期望答案型別一致的實體作為答案,而命名實體不參與句子或段落的排序。
1、問題分析模組
1)問題種類劃分
事實型問題:“誰”、“何時”、“多少”、 “哪裡”……
定義型問題:“是什麼”、“什麼是”……
複雜型問題:“為什麼”、“如何”……
2)問題分類方法
● 基於規則的分類方法:
對每個類別設計大量的規則,一旦問題和一個規則相匹配,則問題就屬於改規則對應的類別
應用規則的方法較簡單,但要號飛機大量人力設計規則,另有些問題很難設計規則去覆蓋
● 基於統計機器學習的分類方法:
形式和文字分類類似。與文字分類不同:相對於文字,問題一般很短,其中包含的詞很少,因此可以利用的特徵少;
在問題所包含的詞中,決定問題類別的特徵具有明顯的傾向性, 即只有若干詞才是真正確定問題類別的主要特徵。
● 思路:
● 人工方式對一批問題的類別進行標註
● 設計機器學習演算法,已標註的這個集合進行分類模型的自動訓練
● 訓練得到的模型對測試問題進行自動分類
● 特徵選擇:
● 疑問詞確定問題型別
● 疑問詞+焦點詞共同確定問題類別
疑問詞確定問題型別:eg.-西電校長是誰? “誰”就確定型別是“人”。
疑問詞+焦點詞共同確定問題類別: 焦點詞是問題中指示期望答案語義型別的詞。
eg.-哪個國家人口最多? 疑問詞“哪個”、焦點詞“國家”確定了該答案型別是“國家”。
2、檢索模組
1)相關文件檢索
2)句段檢索
● 文件切分方法:
● 以連續的n個句子作為一個文件句段
● 以篇章的一個段落(paragraph)為一個文件句段
● 文件進行子話題(subtopic)分割,把一個子話題作為一個句段
● 檢索方法:
● 句段和問題之間匹配的詞的個數
● VSM的餘弦相似度
向量空間模型(VSM)一種文字相似度演算法
判斷一篇文章是否是你喜歡的文章,即將文章抽象成一個向量,該向量由n個詞Term組成,每個詞都有一個權重(Term Weight),不同的詞根據自己在文件中的權重來影響文件相關性的重要程度。選取特徵詞時,需要降維處理選出有代表性的特徵詞,包括人工選擇或自動選擇。特徵抽取完後,因為每個詞語對實體的貢獻度不同,所以需要對這些詞語賦予不同的權重。計算詞項在向量中的權重方法——TF-IDF。TF-IDF計算權重越大表示該詞條對這個文字的重要性越大。計算兩篇文章間的相似度就通過兩個向量的餘弦夾角cos來描述。
● 匹配詞之間的間隔的緊密程度
3、答案抽取模組
● 簡單匹配的方法
● 基本思想
● 在檢索到的句段中抽取和問題的語氣答案型別相一致的命名實體,作為候選答案
● 對候選答案進行排序時,綜合其所在文件句段的順序和在所有文件句段中出現的次數作為排序分值
● 排序最高的候選答案,將被選擇為最終答案
● 缺點:
當句段中有多個滿足答案語義型別的命名實體時難以判斷
● 基於表層模式匹配的方法
● 基本思想
● 利用規則模式,從文件句段中抽取出滿足模式的答案
● 規則模式描述了問題的主要詞彙與候選答案在句段中的出現形式
● 不需要太多深層的語言處理
● 規則模式的構造
● 手動方式構造
● 自動學習得到:訓練資料和測試資料:問題、包含答案的文件句段、問題的答案
過程:1、先從訓練資料文件句段中提取出包含問題詞和答案的子串;2、將子串中的問題詞和答案詞替換成變數,得到一個候選規則;3、對候選規則進一步泛化;4、在測試資料中用候選規則抽取答案,以判斷候選規則的準確率;5、將準確率高於一定閾值的候選規則選為自動學習到的規則
● 利用大規模文件集中資料冗餘的方法
● 由於資料集的海量特點,總會存在一些和問題的描述方式相近的答案句子
● 系統可以不用複雜的語言處理技術,而使用簡單的統計方法輔助千層語言技術就可確定問題的答案
● 基於多特徵的統計機器學習
● 構造訓練“文件-文件句段-答案”集合,用
機器學習方法訓練得到答案選擇模型
● 特徵選擇
句子特徵:問題和候選答案所在句段間匹配的詞和依存弧的分值
語言特徵:候選答案是否是特定動詞的主語或賓語等
詞彙模式特徵:候選答案所在句段是否匹配某種模式詞彙
候選答案的冗餘特徵:候選答案在檢索結果中出現的次數
其它特徵
方法