問(wèn)答系統(tǒng)介紹

? ? ? ?這是我的第一篇技術(shù)博客,也是對(duì)近期學(xué)習(xí)的問(wèn)答系統(tǒng)進(jìn)行一個(gè)小結(jié),方便回顧所學(xué)。文章難免有錯(cuò)誤之處,歡迎大家批評(píng)指正,不勝感激。

下面將從兩個(gè)方面對(duì)問(wèn)答系統(tǒng)進(jìn)行小結(jié):

一、常見的問(wèn)答系統(tǒng)種類及介紹

二、問(wèn)答系統(tǒng)中的常用技術(shù)

一、常見的問(wèn)答系統(tǒng)種類及介紹:

1.根據(jù)問(wèn)題所屬的知識(shí)領(lǐng)域來(lái)分類:

(1) 開放域閑聊性。? ? ? ? 舉例:微軟小冰

(2)??面向FAQ和任務(wù)型。舉例:京東JIMI、蘋果Siri

(3)限定域知識(shí)型。? ? ? ? ?舉例:左手醫(yī)生(問(wèn)答模型、信息檢索)

2.根據(jù)答案生成階段的技術(shù)分類:

(1)檢索式? ? ? ? ? ? ? ? ? ? (2)生成式

3.依據(jù)答案來(lái)源分類:

(1)基于知識(shí)圖譜問(wèn)答系統(tǒng)

(2)機(jī)器閱讀理解的問(wèn)答系統(tǒng)

(3)基于問(wèn)答對(duì)的問(wèn)答系統(tǒng)

下面將根據(jù)答案來(lái)源的分類進(jìn)行詳細(xì)展開:

1.基于知識(shí)圖譜問(wèn)答系統(tǒng)(KB-QA)

? ? ? ? 定義:給定自然語(yǔ)言處理問(wèn)題,通過(guò)對(duì)問(wèn)題進(jìn)行語(yǔ)義理解和解析,進(jìn)而利用知識(shí)庫(kù)進(jìn)行查詢、推理得出答案。對(duì)事實(shí)性問(wèn)答任務(wù)而言(如政策問(wèn)題)這種做法依賴于知識(shí)圖譜,準(zhǔn)確率比較高。要求知識(shí)圖譜是比較大規(guī)模的,因?yàn)镵B-QA無(wú)法給出在知識(shí)圖譜之外的答案。下面給出常見分類:

(1)基于符號(hào)表示的KB-QA(傳統(tǒng)的語(yǔ)義解析方法)

(2)基于向量表示的KB-QA(知識(shí)表示學(xué)習(xí)的方法)

評(píng)價(jià)標(biāo)準(zhǔn):召回率(Recall)、精確率(Precision)、F1

常用數(shù)據(jù)集:WebQuestion、SimpleQuestion、NLPCC KBQA數(shù)據(jù)集(中文)

下面根據(jù)常見分類分別進(jìn)行詳細(xì)展開:

(1)基于符號(hào)表示的KB-QA(傳統(tǒng)的語(yǔ)義解析方法)

? ? ? ? 定義:該方法是一種偏語(yǔ)言學(xué)的方法,主體思想是將自然語(yǔ)言轉(zhuǎn)化為一系列形式化的邏輯形式,通過(guò)對(duì)邏輯形式進(jìn)行自底向上的解析,得到一種可以表達(dá)整個(gè)問(wèn)題語(yǔ)義的邏輯形式,通過(guò)相應(yīng)的查詢語(yǔ)句在知識(shí)庫(kù)中進(jìn)行查詢,從而得出答案。

語(yǔ)義解析傳統(tǒng)方法:

? ? ? ? ? ? ? ?問(wèn)題->短語(yǔ)檢測(cè)->資源映射->語(yǔ)義組合->邏輯表達(dá)式

語(yǔ)義解析樹形式? Berant.EMNLP.Semantic parsing on freebase from question-answer pairs.2013

語(yǔ)義解析目前一般做法:

? ? ? ? ? ? ? ?建圖->主題詞鏈接->確定核心推導(dǎo)鏈->增加約束和聚合函數(shù)


查詢圖形式??Yih.ACL.Semantic Parsing via Staged Query Graph Generation:Question Answering with Knowledge Base.2015

? 將語(yǔ)義解析簡(jiǎn)化為查詢圖生成,將其表述為具有分階段狀態(tài)和動(dòng)作的搜索問(wèn)題。

(2)基于向量表示的KB-QA(基于表示學(xué)習(xí)的方法)

? ? ? ? 定義:把知識(shí)庫(kù)問(wèn)答看做一個(gè)語(yǔ)義匹配過(guò)程。通過(guò)表示學(xué)習(xí)知識(shí)庫(kù)以及用戶問(wèn)題的語(yǔ)義表示,得到低維空間的數(shù)值向量,再通過(guò)數(shù)值計(jì)算,直接匹配與用戶問(wèn)句語(yǔ)義最相似的答案。即問(wèn)答任務(wù)就可以看成問(wèn)句語(yǔ)義向量與知識(shí)庫(kù)中實(shí)體、邊的語(yǔ)義向量相似度計(jì)算的過(guò)程。

? ? ? ? ?隨著深度學(xué)習(xí)的發(fā)展,基于表示學(xué)習(xí)的知識(shí)庫(kù)問(wèn)答取得了較好的效果。

一般做法:

問(wèn)題和答案映射向量->向量匹配->計(jì)算問(wèn)題-答案score->優(yōu)化問(wèn)題->候選答案選擇

詳細(xì)過(guò)程:

問(wèn)題和答案映射向量:

? ? ? ? ?如何學(xué)習(xí)問(wèn)題向量:把問(wèn)題用LSTM進(jìn)行建模

? ? ? ? ?如何學(xué)習(xí)答案向量:答案不能簡(jiǎn)單映射成詞向量,一般是利用到答案實(shí)體,答案類型,答案路徑,答案關(guān)系,答案上下文信息。分別和問(wèn)句向量做相似度計(jì)算,最終的相似度為幾種相似度之和。代表性的論文? [1]Dong, ACL. Question answering over freebase with multi-column convolutional neural networks.2015提出Multi-column CNN,在答案端加入了更多信息,答案類型、答案路徑以及答案周圍的實(shí)體和關(guān)系三種特征向量分別和問(wèn)句向量做相似度計(jì)算,最終的相似度為三種相似度之和。

Multi-column CNN

向量匹配、計(jì)算問(wèn)題-答案score:把這些特征分別映射成不同的向量,作為答案的其中一個(gè)向量(而不是直接拼接起來(lái)),最后用這些特征向量依次和問(wèn)題做匹配,把score加起來(lái)作為總的score。

優(yōu)化問(wèn)題、候選答案選擇:一般用Margin Loss,極大化問(wèn)題對(duì)正確答案的score,同時(shí)極小化問(wèn)題對(duì)錯(cuò)誤答案的score。當(dāng)模型訓(xùn)練完成后,通過(guò)score進(jìn)行篩選,取最高分的作為最終答案。

? ? ? ? 早期方法使用記憶網(wǎng)絡(luò)來(lái)做,論文:Bordes, arXiv. Large-scale simple question answering with memory networks.2015.首先通過(guò)Input模塊來(lái)處理問(wèn)題,加入知識(shí)庫(kù)信息,將三元組通過(guò)輸入模塊變換為一條一條的記憶向量,再通過(guò)匹配主語(yǔ)獲得候選記憶,進(jìn)行cos匹配來(lái)獲取最終記憶,將最終記憶中的賓語(yǔ)輸出作為答案。在WebQuestions上得到了42.4的F1-score,在SimpleQuestions上得到了63.9的Accuracy。

? ? ? ? ?接著,又有很多位學(xué)者提出了其他基于知識(shí)表示學(xué)習(xí)的方法。其中論文[Xie.2018]提出一種基于深度學(xué)習(xí)的主題實(shí)體抽取模型,結(jié)合了問(wèn)句單詞級(jí)別和字符級(jí)別的嵌入表示來(lái)學(xué)習(xí)問(wèn)題的序列表示,并利用雙向LSTM對(duì)單詞序列編碼,最后使用CNN網(wǎng)絡(luò)根據(jù)單詞的上下文信息預(yù)測(cè)單詞是否為主題詞。在答案選擇部分,文章提出一種基于自注意力機(jī)制的深度語(yǔ)義表示模型。使用雙向LSTM和CNN網(wǎng)絡(luò)來(lái)構(gòu)建深度語(yǔ)義模型,并提出一種基于局部和全局上下文的自注意力機(jī)制用于計(jì)算單詞的注意力權(quán)重??紤]語(yǔ)義表示學(xué)習(xí)和實(shí)體抽取任務(wù)之間的具有相互輔助作用,文章提出深度融合模型,將基于自注意力機(jī)制的深度語(yǔ)義表示模型與主題實(shí)體抽取模型結(jié)合,用多任務(wù)學(xué)習(xí)的方式進(jìn)行聯(lián)合訓(xùn)練。在NLPCC-ICCPOL 2016數(shù)據(jù)集上得到了83.45的F1-score。

? ? ? ? ?今年,Huang, WSDM. Knowledge graph embedding based question answering.2019 提出KEQA模型,不同于以往的直接計(jì)算問(wèn)句和答案語(yǔ)義相似度的方法,本文嘗試通過(guò)關(guān)系和實(shí)體學(xué)習(xí)模型從問(wèn)句分別重構(gòu)出實(shí)體和關(guān)系的知識(shí)表示,并進(jìn)一步重構(gòu)出三元組的知識(shí)表示,最終答案為知識(shí)庫(kù)中與重構(gòu)三元組最接近的三元組。同時(shí)文章也評(píng)估了不同的知識(shí)表示學(xué)習(xí)方法TransE,TransH, TransR對(duì)KEQA模型精度的影響。

比較基于符號(hào)和向量的方法:

1)基于符號(hào)的方法,缺點(diǎn)是需要大量的人工規(guī)則,構(gòu)建難度相對(duì)較大。優(yōu)點(diǎn)是通過(guò)規(guī)則可以回答更加復(fù)雜的問(wèn)題,有較強(qiáng)的可解釋性.

2)基于向量的方法,缺點(diǎn)是目前只能回答簡(jiǎn)單問(wèn)題,可解釋性差。優(yōu)點(diǎn)是不需要人工規(guī)則,構(gòu)建難度相對(duì)較小。

目前可以改進(jìn)的地方:

1)復(fù)雜問(wèn)句,目前End2End的模型只能解決簡(jiǎn)單問(wèn)答。

2)多源異構(gòu)知識(shí)庫(kù)問(wèn)答。對(duì)于開放域問(wèn)答,單一的知識(shí)庫(kù)不能完全回答所有問(wèn)題。

3)訓(xùn)練語(yǔ)料,知識(shí)庫(kù)中有實(shí)體和關(guān)系,除此之外還可能有描述實(shí)體的文本信息,或許可以結(jié)合結(jié)構(gòu)化知識(shí)和非結(jié)構(gòu)化文本。

4)對(duì)話中的自然語(yǔ)言形式回復(fù)。傳統(tǒng)的自動(dòng)問(wèn)答都是采用一問(wèn)一答的形式。然而在很多場(chǎng)景下,需要提問(wèn)者和系統(tǒng)進(jìn)行多輪對(duì)話交互,實(shí)現(xiàn)問(wèn)答過(guò)程。這時(shí),需要系統(tǒng)返回用戶的答案不再只是單一實(shí)體、概念、關(guān)系的形式,而是需要是以自然語(yǔ)言的形式返回答案。這就需要自動(dòng)生成自然語(yǔ)言的回復(fù)?,F(xiàn)有方法多利用 sequence-to-sequence 模型進(jìn)行自然語(yǔ)言生成,在這一過(guò)程中,如何與知識(shí)庫(kù)相結(jié)合,將知識(shí)庫(kù)問(wèn)答的答案加入自然語(yǔ)言回復(fù)中,仍是亟待解決的問(wèn)題。

2.基于閱讀理解的QA(基于文檔、文本的問(wèn)答)

? ? ? ? ?機(jī)器閱讀理解在 NLP 領(lǐng)域近年來(lái)備受關(guān)注,自 2016 年 EMNLP 最佳數(shù)據(jù)集論文 SQuAD 發(fā)表后,各大企業(yè)院校都加入評(píng)測(cè)行列。利用機(jī)器閱讀理解技術(shù)進(jìn)行問(wèn)答即是對(duì)非結(jié)構(gòu)化文章進(jìn)行閱讀理解得到答案,可以分成匹配式QA,抽取式QA和生成式QA,目前絕大部分是抽取式QA。閱讀理解花樣很多,但是基本框架差異不大。

? ? ? ? ?SQuAD(斯坦福問(wèn)答數(shù)據(jù)集):這是一個(gè)閱讀理解數(shù)據(jù)集,由眾包人員基于一系列維基百科文章的提問(wèn)和對(duì)應(yīng)的答案構(gòu)成,其中每個(gè)問(wèn)題的答案是相關(guān)文章中的文本片段或區(qū)間。SQuAD 一共有 107,785 個(gè)問(wèn)題,以及配套的 536 篇文章。

(1)匹配式QA

? ? ? ? ?給定文章、問(wèn)題和一個(gè)候選答案集(一般是實(shí)體或者單詞),從候選答案中選一個(gè)score最高的作為答案。這種形式比較像選擇題型,已經(jīng)基本上沒(méi)人做了。

(2)抽取式 QA

? ? ? ? ? 讓用戶輸入若干篇非結(jié)構(gòu)化文本及若干個(gè)問(wèn)題,機(jī)器自動(dòng)在閱讀理解的基礎(chǔ)上,在文本中自動(dòng)尋找答案來(lái)回答用戶的問(wèn)題。抽取式 QA 的某個(gè)問(wèn)題的答案肯定出現(xiàn)在某篇文章中。抽取式 QA 的經(jīng)典數(shù)據(jù)集是 SQuAD。

(3)生成式QA

? ? 目前只有MSRA的MS MARCO數(shù)據(jù)集,針對(duì)這個(gè)數(shù)據(jù)集,答案形式是這樣的:

1)答案完全在某篇原文

2)答案分別出現(xiàn)在多篇文章中

3)答案一部分出現(xiàn)在原文,一部分出現(xiàn)在問(wèn)題中

4)答案的一部分出現(xiàn)在原文,另一部分是生成的新詞

5)答案完全不在原文出現(xiàn)(Yes / No 類型)

3.基于問(wèn)答對(duì)的問(wèn)答系統(tǒng)

? ? ? ? ?隨著互聯(lián)網(wǎng)技術(shù)的成熟和普及, 網(wǎng)絡(luò)上出現(xiàn)了常問(wèn)問(wèn)題(frequent asked questions, FAQ)數(shù)據(jù), 特別是在 2005 年末以來(lái)大量 的社區(qū)問(wèn)答(community based question answering, CQA)數(shù)據(jù)(例如 Yahoo!Answer)出現(xiàn)在網(wǎng)絡(luò)上, 即有了大量的問(wèn)題答案對(duì)數(shù)據(jù), 問(wèn)答系統(tǒng)進(jìn)入了開放領(lǐng)域、基于問(wèn)題答案對(duì)時(shí)期。

一般過(guò)程:?jiǎn)栴}分析 ->信息檢索->答案抽取

問(wèn)題分析階段:和基于自由文本的問(wèn)答系統(tǒng)的問(wèn)題分析部分基本一樣, 不過(guò)還多了幾個(gè)不同的研究點(diǎn):

(1)問(wèn)題主客觀的判斷? ?

(2)問(wèn)題的緊急性(通常在CQA數(shù)據(jù)中)

信息檢索階段:該階段目標(biāo)是如何根據(jù)問(wèn)題的分析結(jié)果去縮小答案 可能存在的范圍,其中存在兩個(gè)關(guān)鍵問(wèn)題:

(1)檢索模型(找到和問(wèn)題類似的問(wèn)題)

(2)兩個(gè)問(wèn)題相似性判斷(返回答案或返回相似問(wèn)題列表)

答案抽取部分:在答案抽取部分, 由于問(wèn)題答案對(duì)已經(jīng)有了答案, 答案抽取最重要的工作就是判斷答案的質(zhì)量.研究怎么從問(wèn)題的眾多答案中選擇一個(gè)最好的答案.

下面網(wǎng)址給出了一些論文和近期研究成果:

https://blog.csdn.net/class_guy/article/details/81535287


二、問(wèn)答系統(tǒng)中的常用技術(shù)


總結(jié)一些目前能想到的常用技術(shù)


參考文獻(xiàn):

[1]Berant.EMNLP.Semantic parsing on freebase from question-answer pairs.2013

[2]Yih.ACL.Semantic Parsing via Staged Query Graph Generation:Question Answering with Knowledge Base.2015

[3]Dong, ACL. Question answering over freebase with multi-column convolutional neural networks.2015

[4]Hao, ACL. An end-to-end model for question answering over knowledge base with cross-attention combining global knowledge.

[5]Bordes, arXiv. Large-scale simple question answering with memory networks.2015

[6]Huang, WSDM. Knowledge graph embedding based question answering.2019

[8]Susht.知乎.一份關(guān)于問(wèn)答系統(tǒng)的小結(jié).2018

若有侵權(quán)請(qǐng)聯(lián)系作者,本文不作商業(yè)用途,僅供學(xué)習(xí)使用。**O(∩_∩)O~**

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容