? ? ? ?這是我的第一篇技術(shù)博客,也是對(duì)近期學(xué)習(xí)的問答系統(tǒng)進(jìn)行一個(gè)小結(jié)沉衣,方便回顧所學(xué)郁副。文章難免有錯(cuò)誤之處,歡迎大家批評(píng)指正豌习,不勝感激存谎。
下面將從兩個(gè)方面對(duì)問答系統(tǒng)進(jìn)行小結(jié):
一、常見的問答系統(tǒng)種類及介紹
二斑鸦、問答系統(tǒng)中的常用技術(shù)
一愕贡、常見的問答系統(tǒng)種類及介紹:
1.根據(jù)問題所屬的知識(shí)領(lǐng)域來分類:
(1) 開放域閑聊性。? ? ? ? 舉例:微軟小冰
(2)??面向FAQ和任務(wù)型巷屿。舉例:京東JIMI固以、蘋果Siri
(3)限定域知識(shí)型。? ? ? ? ?舉例:左手醫(yī)生(問答模型嘱巾、信息檢索)
2.根據(jù)答案生成階段的技術(shù)分類:
(1)檢索式? ? ? ? ? ? ? ? ? ? (2)生成式
3.依據(jù)答案來源分類:
(1)基于知識(shí)圖譜問答系統(tǒng)
(2)機(jī)器閱讀理解的問答系統(tǒng)
(3)基于問答對(duì)的問答系統(tǒng)
下面將根據(jù)答案來源的分類進(jìn)行詳細(xì)展開:
1.基于知識(shí)圖譜問答系統(tǒng)(KB-QA)
? ? ? ? 定義:給定自然語言處理問題憨琳,通過對(duì)問題進(jìn)行語義理解和解析,進(jìn)而利用知識(shí)庫進(jìn)行查詢旬昭、推理得出答案篙螟。對(duì)事實(shí)性問答任務(wù)而言(如政策問題)這種做法依賴于知識(shí)圖譜,準(zhǔn)確率比較高问拘。要求知識(shí)圖譜是比較大規(guī)模的遍略,因?yàn)镵B-QA無法給出在知識(shí)圖譜之外的答案惧所。下面給出常見分類:
(1)基于符號(hào)表示的KB-QA(傳統(tǒng)的語義解析方法)
(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)的語義解析方法)
? ? ? ? 定義:該方法是一種偏語言學(xué)的方法蕾久,主體思想是將自然語言轉(zhuǎn)化為一系列形式化的邏輯形式势似,通過對(duì)邏輯形式進(jìn)行自底向上的解析,得到一種可以表達(dá)整個(gè)問題語義的邏輯形式僧著,通過相應(yīng)的查詢語句在知識(shí)庫中進(jìn)行查詢履因,從而得出答案。
語義解析傳統(tǒng)方法:
? ? ? ? ? ? ? ?問題->短語檢測(cè)->資源映射->語義組合->邏輯表達(dá)式
語義解析目前一般做法:
? ? ? ? ? ? ? ?建圖->主題詞鏈接->確定核心推導(dǎo)鏈->增加約束和聚合函數(shù)
? 將語義解析簡(jiǎn)化為查詢圖生成盹愚,將其表述為具有分階段狀態(tài)和動(dòng)作的搜索問題栅迄。
(2)基于向量表示的KB-QA(基于表示學(xué)習(xí)的方法)
? ? ? ? 定義:把知識(shí)庫問答看做一個(gè)語義匹配過程。通過表示學(xué)習(xí)知識(shí)庫以及用戶問題的語義表示杯拐,得到低維空間的數(shù)值向量霞篡,再通過數(shù)值計(jì)算,直接匹配與用戶問句語義最相似的答案端逼。即問答任務(wù)就可以看成問句語義向量與知識(shí)庫中實(shí)體、邊的語義向量相似度計(jì)算的過程污淋。
? ? ? ? ?隨著深度學(xué)習(xí)的發(fā)展顶滩,基于表示學(xué)習(xí)的知識(shí)庫問答取得了較好的效果。
一般做法:
問題和答案映射向量->向量匹配->計(jì)算問題-答案score->優(yōu)化問題->候選答案選擇
詳細(xì)過程:
問題和答案映射向量:
? ? ? ? ?如何學(xué)習(xí)問題向量:把問題用LSTM進(jìn)行建模
? ? ? ? ?如何學(xué)習(xí)答案向量:答案不能簡(jiǎn)單映射成詞向量寸爆,一般是利用到答案實(shí)體礁鲁,答案類型,答案路徑赁豆,答案關(guān)系仅醇,答案上下文信息。分別和問句向量做相似度計(jì)算魔种,最終的相似度為幾種相似度之和析二。代表性的論文? [1]Dong, ACL. Question answering over freebase with multi-column convolutional neural networks.2015提出Multi-column CNN,在答案端加入了更多信息,答案類型节预、答案路徑以及答案周圍的實(shí)體和關(guān)系三種特征向量分別和問句向量做相似度計(jì)算叶摄,最終的相似度為三種相似度之和。
向量匹配安拟、計(jì)算問題-答案score:把這些特征分別映射成不同的向量蛤吓,作為答案的其中一個(gè)向量(而不是直接拼接起來),最后用這些特征向量依次和問題做匹配糠赦,把score加起來作為總的score会傲。
優(yōu)化問題锅棕、候選答案選擇:一般用Margin Loss,極大化問題對(duì)正確答案的score淌山,同時(shí)極小化問題對(duì)錯(cuò)誤答案的score裸燎。當(dāng)模型訓(xùn)練完成后,通過score進(jìn)行篩選艾岂,取最高分的作為最終答案顺少。
? ? ? ? 早期方法使用記憶網(wǎng)絡(luò)來做,論文:Bordes, arXiv. Large-scale simple question answering with memory networks.2015.首先通過Input模塊來處理問題王浴,加入知識(shí)庫信息脆炎,將三元組通過輸入模塊變換為一條一條的記憶向量,再通過匹配主語獲得候選記憶氓辣,進(jìn)行cos匹配來獲取最終記憶秒裕,將最終記憶中的賓語輸出作為答案。在WebQuestions上得到了42.4的F1-score钞啸,在SimpleQuestions上得到了63.9的Accuracy几蜻。
? ? ? ? ?接著,又有很多位學(xué)者提出了其他基于知識(shí)表示學(xué)習(xí)的方法体斩。其中論文[Xie.2018]提出一種基于深度學(xué)習(xí)的主題實(shí)體抽取模型梭稚,結(jié)合了問句單詞級(jí)別和字符級(jí)別的嵌入表示來學(xué)習(xí)問題的序列表示,并利用雙向LSTM對(duì)單詞序列編碼絮吵,最后使用CNN網(wǎng)絡(luò)根據(jù)單詞的上下文信息預(yù)測(cè)單詞是否為主題詞弧烤。在答案選擇部分,文章提出一種基于自注意力機(jī)制的深度語義表示模型蹬敲。使用雙向LSTM和CNN網(wǎng)絡(luò)來構(gòu)建深度語義模型暇昂,并提出一種基于局部和全局上下文的自注意力機(jī)制用于計(jì)算單詞的注意力權(quán)重“槲耍考慮語義表示學(xué)習(xí)和實(shí)體抽取任務(wù)之間的具有相互輔助作用急波,文章提出深度融合模型,將基于自注意力機(jī)制的深度語義表示模型與主題實(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ì)算問句和答案語義相似度的方法赏寇,本文嘗試通過關(guān)系和實(shí)體學(xué)習(xí)模型從問句分別重構(gòu)出實(shí)體和關(guān)系的知識(shí)表示,并進(jìn)一步重構(gòu)出三元組的知識(shí)表示价认,最終答案為知識(shí)庫中與重構(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ī)則可以回答更加復(fù)雜的問題,有較強(qiáng)的可解釋性.
2)基于向量的方法碎乃,缺點(diǎn)是目前只能回答簡(jiǎn)單問題姊扔,可解釋性差。優(yōu)點(diǎn)是不需要人工規(guī)則梅誓,構(gòu)建難度相對(duì)較小恰梢。
目前可以改進(jìn)的地方:
1)復(fù)雜問句,目前End2End的模型只能解決簡(jiǎn)單問答梗掰。
2)多源異構(gòu)知識(shí)庫問答嵌言。對(duì)于開放域問答,單一的知識(shí)庫不能完全回答所有問題及穗。
3)訓(xùn)練語料摧茴,知識(shí)庫中有實(shí)體和關(guān)系,除此之外還可能有描述實(shí)體的文本信息埂陆,或許可以結(jié)合結(jié)構(gòu)化知識(shí)和非結(jié)構(gòu)化文本苛白。
4)對(duì)話中的自然語言形式回復(fù)。傳統(tǒng)的自動(dòng)問答都是采用一問一答的形式焚虱。然而在很多場(chǎng)景下购裙,需要提問者和系統(tǒng)進(jìn)行多輪對(duì)話交互,實(shí)現(xiàn)問答過程鹃栽。這時(shí)缓窜,需要系統(tǒng)返回用戶的答案不再只是單一實(shí)體、概念谍咆、關(guān)系的形式,而是需要是以自然語言的形式返回答案私股。這就需要自動(dòng)生成自然語言的回復(fù)∧〔欤現(xiàn)有方法多利用 sequence-to-sequence 模型進(jìn)行自然語言生成,在這一過程中倡鲸,如何與知識(shí)庫相結(jié)合供嚎,將知識(shí)庫問答的答案加入自然語言回復(fù)中,仍是亟待解決的問題峭状。
2.基于閱讀理解的QA(基于文檔克滴、文本的問答)
? ? ? ? ?機(jī)器閱讀理解在 NLP 領(lǐng)域近年來備受關(guān)注,自 2016 年 EMNLP 最佳數(shù)據(jù)集論文 SQuAD 發(fā)表后优床,各大企業(yè)院校都加入評(píng)測(cè)行列劝赔。利用機(jī)器閱讀理解技術(shù)進(jìn)行問答即是對(duì)非結(jié)構(gòu)化文章進(jìn)行閱讀理解得到答案,可以分成匹配式QA胆敞,抽取式QA和生成式QA着帽,目前絕大部分是抽取式QA杂伟。閱讀理解花樣很多,但是基本框架差異不大仍翰。
? ? ? ? ?SQuAD(斯坦福問答數(shù)據(jù)集):這是一個(gè)閱讀理解數(shù)據(jù)集赫粥,由眾包人員基于一系列維基百科文章的提問和對(duì)應(yīng)的答案構(gòu)成,其中每個(gè)問題的答案是相關(guān)文章中的文本片段或區(qū)間予借。SQuAD 一共有 107,785 個(gè)問題越平,以及配套的 536 篇文章。
(1)匹配式QA
? ? ? ? ?給定文章灵迫、問題和一個(gè)候選答案集(一般是實(shí)體或者單詞)秦叛,從候選答案中選一個(gè)score最高的作為答案。這種形式比較像選擇題型龟再,已經(jīng)基本上沒人做了书闸。
(2)抽取式 QA
? ? ? ? ? 讓用戶輸入若干篇非結(jié)構(gòu)化文本及若干個(gè)問題,機(jī)器自動(dòng)在閱讀理解的基礎(chǔ)上利凑,在文本中自動(dòng)尋找答案來回答用戶的問題浆劲。抽取式 QA 的某個(gè)問題的答案肯定出現(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)在問題中
4)答案的一部分出現(xiàn)在原文膨报,另一部分是生成的新詞
5)答案完全不在原文出現(xiàn)(Yes / No 類型)
3.基于問答對(duì)的問答系統(tǒng)
? ? ? ? ?隨著互聯(lián)網(wǎng)技術(shù)的成熟和普及, 網(wǎng)絡(luò)上出現(xiàn)了常問問題(frequent asked questions, FAQ)數(shù)據(jù), 特別是在 2005 年末以來大量 的社區(qū)問答(community based question answering, CQA)數(shù)據(jù)(例如 Yahoo!Answer)出現(xiàn)在網(wǎng)絡(luò)上, 即有了大量的問題答案對(duì)數(shù)據(jù), 問答系統(tǒng)進(jìn)入了開放領(lǐng)域适荣、基于問題答案對(duì)時(shí)期现柠。
一般過程:?jiǎn)栴}分析 ->信息檢索->答案抽取
問題分析階段:和基于自由文本的問答系統(tǒng)的問題分析部分基本一樣, 不過還多了幾個(gè)不同的研究點(diǎn):
(1)問題主客觀的判斷? ?
(2)問題的緊急性(通常在CQA數(shù)據(jù)中)
信息檢索階段:該階段目標(biāo)是如何根據(jù)問題的分析結(jié)果去縮小答案 可能存在的范圍,其中存在兩個(gè)關(guān)鍵問題:
(1)檢索模型(找到和問題類似的問題)
(2)兩個(gè)問題相似性判斷(返回答案或返回相似問題列表)
答案抽取部分:在答案抽取部分, 由于問題答案對(duì)已經(jīng)有了答案, 答案抽取最重要的工作就是判斷答案的質(zhì)量.研究怎么從問題的眾多答案中選擇一個(gè)最好的答案.
下面網(wǎng)址給出了一些論文和近期研究成果:
https://blog.csdn.net/class_guy/article/details/81535287
二弛矛、問答系統(tǒng)中的常用技術(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)于問答系統(tǒng)的小結(jié).2018
若有侵權(quán)請(qǐng)聯(lián)系作者够吩,本文不作商業(yè)用途,僅供學(xué)習(xí)使用丈氓。**O(∩_∩)O~**