首頁 > 新聞 > 專家觀點(diǎn) >

基于深度學(xué)習(xí)的智能問答

2016-08-15 10:06:26   作者:   來源:CTI論壇   評(píng)論:0  點(diǎn)擊:


  1、引言
  縱觀自動(dòng)問答系統(tǒng)的技術(shù)發(fā)展歷史,從1950年代因圖靈測(cè)試而誕生至今,已經(jīng)有幾十年的歷史。但真正在產(chǎn)業(yè)界得到大家的廣泛關(guān)注,則得益于2011年Siri和Watson成功所帶來的示范效應(yīng)。自此,自動(dòng)問答系統(tǒng)較以往任何時(shí)候都顯得離實(shí)際應(yīng)用更近。這一方面歸功于機(jī)器學(xué)習(xí)與自然語言處理技術(shù)的長(zhǎng)足進(jìn)步,另一方面得益于維基百科等大規(guī)模知識(shí)庫以及海量網(wǎng)絡(luò)信息的出現(xiàn)。然而,現(xiàn)有的自動(dòng)問答系統(tǒng)所面臨的問題遠(yuǎn)沒有完全解決。事實(shí)上,無論是業(yè)界應(yīng)用還是學(xué)術(shù)研究,問句的真實(shí)意圖分析、問句與答案之間的匹配關(guān)系判別仍然是制約自動(dòng)問答系統(tǒng)性能的兩個(gè)關(guān)鍵難題。
  2、問答系統(tǒng)概述
  問答系統(tǒng)能夠更為準(zhǔn)確地理解以自然語言形式描述的用戶提問,并通過檢索異構(gòu)語料庫或問答知識(shí)庫返回簡(jiǎn)潔、精確的匹配答案。相對(duì)于搜索引擎,問答系統(tǒng)能更好地理解用戶提問的真實(shí)意圖,同時(shí)更有效地滿足用戶的信息需求。
  2.1問答系統(tǒng)的發(fā)展歷程
  問答系統(tǒng)最早的實(shí)現(xiàn)構(gòu)想可以追溯到圖靈測(cè)試。為了測(cè)試機(jī)器是否具備人類智能,圖靈測(cè)試要求電腦能在5分鐘內(nèi)回答由人類測(cè)試者提出的一系列問題,且其達(dá)到超過30%的回答讓測(cè)試者誤認(rèn)為是人類所答。隨著人工智能、自然語言處理等相關(guān)技術(shù)的發(fā)展,針對(duì)不同的數(shù)據(jù)形態(tài)的變化也衍生出不同種類的問答系統(tǒng)。早期由于智能技術(shù)和領(lǐng)域數(shù)據(jù)規(guī)模的局限性,問答系統(tǒng)主要是面向限定領(lǐng)域的AI系統(tǒng)或?qū)<蚁到y(tǒng),例如STUDENT[1]、LUNAR[2]系統(tǒng)。該時(shí)期的問答系統(tǒng)處理的數(shù)據(jù)類型主要是結(jié)構(gòu)化數(shù)據(jù),系統(tǒng)一般是將輸入問題轉(zhuǎn)化為數(shù)據(jù)庫查詢語句,然后進(jìn)行數(shù)據(jù)庫檢索反饋答案。隨著互聯(lián)網(wǎng)的飛速發(fā)展以及自然語言處理技術(shù)的興起,問答系統(tǒng)進(jìn)入了面向開放領(lǐng)域、基于自由文本數(shù)據(jù)的發(fā)展時(shí)期,例如英文問答式檢索系統(tǒng)AskJeeves(http://www.ask.com)、START(http://start.csail.mit.edu)。這種問答系統(tǒng)的處理流程主要包括:?jiǎn)栴}分析、文檔及段落檢索、候選答案抽取、答案驗(yàn)證。特別自1999年文本檢索會(huì)議(TextRetrievalConference,簡(jiǎn)稱TREC)引入問答系統(tǒng)評(píng)測(cè)專項(xiàng)(Question Answering Track,簡(jiǎn)稱QATrack)以來,極大推動(dòng)了基于自然語言處理技術(shù)在問答領(lǐng)域中的研究發(fā)展。隨后網(wǎng)絡(luò)上出現(xiàn)的社區(qū)問答(community question answering,CQA)提供了大規(guī)模的用戶交互衍生的問題答案對(duì)(question-answerpair,QApair)數(shù)據(jù),這為基于問答對(duì)的問答系統(tǒng)提供了穩(wěn)定可靠的問答數(shù)據(jù)來源。隨著蘋果公司Siri系統(tǒng)的問世,問答系統(tǒng)進(jìn)入了智能交互式問答的發(fā)展階段,這種形式的問答系統(tǒng)能夠讓用戶體驗(yàn)更為自然的人機(jī)交互過程,并且也使信息服務(wù)的相關(guān)應(yīng)用更為方便可行。
  問答系統(tǒng)處理的數(shù)據(jù)對(duì)象主要包括用戶問題和答案。依據(jù)用戶問題的所屬數(shù)據(jù)領(lǐng)域,問答系統(tǒng)可分為面向限定域的問答系統(tǒng)、面向開放域的問答系統(tǒng)、以及面向常用問題集(frequentaskedquestions,F(xiàn)AQ)的問答系統(tǒng)。依據(jù)答案的不同數(shù)據(jù)來源,問答系統(tǒng)可劃分為基于結(jié)構(gòu)化數(shù)據(jù)的問答系統(tǒng)、基于自由文本的問答系統(tǒng)、以及基于問答對(duì)的問答系統(tǒng)。此外,按照答案的生成反饋機(jī)制劃分,問答系統(tǒng)可以分為基于檢索式的問答系統(tǒng)和基于生成式的問答系統(tǒng)。本文主要闡述基于檢索式的問答系統(tǒng)的處理框架和相關(guān)研究。
  2.2問答系統(tǒng)的處理框架
  不同類型的問答系統(tǒng)對(duì)于數(shù)據(jù)處理的方法存在不同。例如,相對(duì)于面向FAQ的問答系統(tǒng)的問句檢索直接得到候選答案,面向開放領(lǐng)域的問答系統(tǒng)首先需要根據(jù)問題分析的結(jié)果進(jìn)行相關(guān)文檔、文本片段信息的檢索,然后進(jìn)行候選答案的抽取。雖然不同類型的問答系統(tǒng)對(duì)于系統(tǒng)模塊的功能分工和具體實(shí)現(xiàn)存在差異,但依據(jù)數(shù)據(jù)流在問答系統(tǒng)中的處理流程,一般問答系統(tǒng)的處理框架中都包括問句理解、信息檢索、答案生成三個(gè)功能組成部分,如圖2.1所示。
\
  2.2.1問句理解
  問句理解是問答系統(tǒng)理解用戶意圖的關(guān)鍵一環(huán),問句理解模塊的性能直接制約著后續(xù)處理模塊的效果。用戶意圖是一個(gè)抽象的概念,要想作為答案檢索的依據(jù),需要把它轉(zhuǎn)換成機(jī)器可以理解的形式。用戶的檢索意圖導(dǎo)致信息需求的產(chǎn)生,因此,研究中往往將信息需求作為用戶意圖的代表,根據(jù)問句的語義結(jié)構(gòu),可以從問題類別和問題內(nèi)容兩方面來表示。通常采用自然語言技術(shù)對(duì)問題進(jìn)行深層次的理解,包括命名實(shí)體識(shí)別、依存句法分析、詞義消歧等。
  問句理解主要包括問句分類、主題焦點(diǎn)提取、問題擴(kuò)展處理。問句分類是將用戶提問歸入不同的類別,使系統(tǒng)能夠針對(duì)不同問題類型采用不同的答案反饋機(jī)制得到候選答案集合。問答系統(tǒng)通常使用機(jī)器學(xué)習(xí)算法訓(xùn)練問題分類器[3,4]來實(shí)現(xiàn)用戶提問的分類。主題焦點(diǎn)提取主要完成用戶問題的信息需求的精確定位,其中主題表示問句的主要背景或者用戶的感興趣的對(duì)象,焦點(diǎn)則是用戶詢問的有關(guān)主題的內(nèi)容,通常是問句話題的相關(guān)信息或?qū)υ掝}起到描述性的作用,比如屬性、動(dòng)作、實(shí)例等等。問題擴(kuò)展是將用戶在提問中沒有充分表達(dá)的意思補(bǔ)充出來,對(duì)問題中潛在的信息顯化出來,從而提高答案檢索的召回率。
  2.2.2信息檢索
  根據(jù)問句理解得到的查詢表示,信息檢索模塊負(fù)責(zé)從異構(gòu)語料庫、問答知識(shí)庫中檢索相關(guān)信息,傳遞給后續(xù)的答案生成處理模塊。對(duì)于基于不同的問答系統(tǒng),系統(tǒng)的檢索模型以及檢索數(shù)據(jù)形式也不同。對(duì)于基于自由文本數(shù)據(jù)的問答系統(tǒng),信息檢索過程是一個(gè)逐漸縮小答案范圍的過濾過程,主要包括文檔檢索和段落句群檢索。對(duì)于基于問句答案對(duì)的問答系統(tǒng),信息檢索處理是通過問句檢索得到與用戶提問相似的候選問句,返回對(duì)應(yīng)的候選答案列表。
  首先,文檔檢索是根據(jù)問題理解的結(jié)果檢索用戶提問的相關(guān)文檔集合。最簡(jiǎn)單的方法是直接用已有的檢索系統(tǒng)(如Smart,Lucene等)對(duì)問題的非停用詞進(jìn)行全文索引,直接檢索得到用戶提問的相關(guān)文檔集合,但是這種方法很難獲得好的效果。通常問答系統(tǒng)中的文檔檢索模型包括布爾模型、向量空間模型、語言模型、概率模型等。布爾模型是最簡(jiǎn)單的一種檢索模型,它把關(guān)鍵詞組織成一個(gè)布爾表達(dá)式,使得文檔中出現(xiàn)的關(guān)鍵詞需要滿足這個(gè)布爾表達(dá)式。向量空間模型把文檔和查詢都表示成向量,根據(jù)查詢和文檔對(duì)應(yīng)向量的相似度(通常是兩個(gè)向量夾角的余弦值)對(duì)文檔進(jìn)行排序。概率模型估計(jì)計(jì)算文檔和查詢相關(guān)的概率,并按照相關(guān)性概率對(duì)文檔進(jìn)行排序。語言模型是把查詢和文檔分別表示成語言模型,通過兩個(gè)語言模型之間的KL距離來估計(jì)兩者的相似度。其次,段落句群檢索就是從候選文檔集合中檢索出最有可能含有答案的段落(自然段落或者文檔片段),進(jìn)一步過濾噪聲信息,得到更為精確的答案相關(guān)信息。廣泛使用的段落檢索算法有三個(gè):MultiText算法[6]、IBM的算法[7,8]和SiteQ算法[9]。Tellex[10]等人的實(shí)驗(yàn)結(jié)果表明基于密度的算法可以獲得相對(duì)較好的效果。所謂基于密度的算法,就是通過考慮查詢關(guān)鍵詞在段落中的出現(xiàn)次數(shù)和接近程度來決定這個(gè)段落的相關(guān)性。相比之下,Cui[5]提出的檢索算法通過把問句和答案都解析成語法樹,從兩者語法樹的結(jié)構(gòu)中找出一些相關(guān)性的信息。
  問句檢索的主要問題在于如何縮小用戶提問與知識(shí)庫中問句之間的語義鴻溝。近幾年,研究人員采用基于翻模模型的方法計(jì)算從用戶提問“翻譯”到檢索問句的翻譯概率,從而實(shí)現(xiàn)相似性問句檢索。例如,算法[11-14]都是把兩個(gè)問句看作是不同表達(dá)方式的語句,計(jì)算兩個(gè)問句之間的翻譯概率。為了計(jì)算這種翻譯的概率,就必須估計(jì)詞與詞之間進(jìn)行翻譯的概率。這種方法首先需要通過答案相似度計(jì)算得到同義或近義的問答對(duì)集合,該集合中的相似問題集合就構(gòu)成了一個(gè)估計(jì)翻譯概率的訓(xùn)練集,類似于機(jī)器翻譯中多語言平行語料庫。實(shí)驗(yàn)證明,這樣做的效果會(huì)比語言模型,OkapiBM25和空間向量模型都好。
  2.2.3答案生成
  基于信息檢索得到的檢索信息,答案生成模塊主要實(shí)現(xiàn)候選答案的抽取和答案的置信度計(jì)算,最終返回簡(jiǎn)潔性、正確性的答案。按照答案信息粒度,候選答案抽取可以分為段落答案抽取、句子答案抽取、詞匯短語答案抽取。段落答案抽取是將一個(gè)問題的多個(gè)相關(guān)答案信息進(jìn)行匯總、壓縮,整理出一個(gè)完整簡(jiǎn)潔的答案。句子答案抽取是將候選答案信息進(jìn)行提純,通過匹配計(jì)算過濾表面相關(guān),實(shí)際語義不匹配的錯(cuò)誤答案。詞匯短語抽取是采用語言的深層結(jié)構(gòu)分析技術(shù)從候選答案中準(zhǔn)確地提取答案詞或短語。
  答案置信度計(jì)算是將問題與候選答案進(jìn)行句法和語義層面上的驗(yàn)證處理,從而保證返回答案是與用戶提問最為匹配的結(jié)果。應(yīng)用最廣泛是基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)的置信度計(jì)算方法。這種方法通常定義一系列詞法、句法、語義以及其他相關(guān)特征(如編輯距離、BM25等)來表示問題與候選答案之間的匹配關(guān)系,并使用分類器的分類置信度作為答案的置信度。例如IBMWaston中使用的答案融合和特征排序方法[15],以及基于關(guān)系主題空間特征的多核SVM分類方法[16]。近幾年,基于自然語言處理的問答匹配驗(yàn)證通常是使用句子的淺層分析獲得句子的淺層句法語法信息,然后將問句與答案的句法樹(短語句法樹或依存句法樹)進(jìn)行相似性計(jì)算[17-20]。然而,問答系統(tǒng)的答案正確性更需滿足問題和答案之間的語義匹配,比如問“蘋果6splus最新活動(dòng)價(jià)多少”,如果回答“紅富士蘋果降到了12元”,就屬于所答非所問。常用的方法是通過引入諸如語義詞典(WordNet),語義知識(shí)庫(Freebase)等外部語義資源進(jìn)行問答語義匹配建模[21-23],以此提高問句答案間的語義匹配計(jì)算性能。
  傳統(tǒng)問答系統(tǒng)中構(gòu)建的機(jī)器學(xué)習(xí)模型基本屬于淺層模型。譬如,問句分類過程中常用的基于支持向量機(jī)(SVM)的分類模型[24],答案抽取使用的基于條件隨機(jī)場(chǎng)(CRF)的序列標(biāo)注模型[25],以及候選答案驗(yàn)證過程中使用的基于邏輯回歸(LR)的問答匹配模型[26]等。這種基于淺層模型研發(fā)的問答系統(tǒng)往往存在人工依賴性高,并且缺少對(duì)不同領(lǐng)域數(shù)據(jù)處理的泛化能力。人工依賴性主要表現(xiàn)在淺層模型的特征工程上,由于淺層模型缺乏對(duì)數(shù)據(jù)的表示學(xué)習(xí)的能力,于是在面對(duì)不同領(lǐng)域的問答數(shù)據(jù)以及不同的問答任務(wù)的情況下,研究人員不得不進(jìn)行針對(duì)性的數(shù)據(jù)標(biāo)注,并且需要依據(jù)研究人員的觀察和經(jīng)驗(yàn)來提取模型所需的有效特征,這也就造成了此類問答系統(tǒng)可移植性低的結(jié)果。
  3、基于深度學(xué)習(xí)的相關(guān)問答技術(shù)
  近年來,深度神經(jīng)網(wǎng)絡(luò)在諸如圖像分類、語音識(shí)別等任務(wù)上被深入探索并取得了突出的效果,表現(xiàn)出了優(yōu)異的表示學(xué)習(xí)能力。與此同時(shí),通過深度神經(jīng)網(wǎng)絡(luò)對(duì)語言學(xué)習(xí)表示已逐漸成為一個(gè)新的研究趨勢(shì)。然而,由于人類語言的靈活多變以及語義信息的復(fù)雜抽象,使得深度神經(jīng)網(wǎng)絡(luò)模型在語言表示學(xué)習(xí)上的應(yīng)用面臨比在圖像、語音更大的挑戰(zhàn)。其一,相比于語音和圖像,語言是非自然信號(hào),完全是人類文明進(jìn)程中,由大腦產(chǎn)生和處理的符號(hào)系統(tǒng),是人類文明智慧的高度體現(xiàn)。語言的變化性和靈活度遠(yuǎn)遠(yuǎn)超過圖像和語音信號(hào)。其二,圖像和語音具有明確的數(shù)學(xué)表示,例如灰度圖像為數(shù)學(xué)上的數(shù)值矩陣,而且其表示的最小粒度元素都有確定的物理意義,圖像像素的每個(gè)點(diǎn)的值表示一定的灰度色彩值。相比而言,以往的詞袋表示方法會(huì)導(dǎo)致語言表示存在維數(shù)災(zāi)難、高度稀疏以及語義信息損失的問題。
  當(dāng)前,研究人員越來越對(duì)深度學(xué)習(xí)模型在NLP領(lǐng)域的應(yīng)用感興趣,其主要集中在對(duì)詞語、句子和篇章的表示學(xué)習(xí)以及相關(guān)應(yīng)用。例如,Bengio等使用神經(jīng)網(wǎng)絡(luò)模型得到一種名為詞嵌入(WordEmbedding)或詞向量的新型向量表示[27],這種向量是一種低維、稠密、連續(xù)的向量表示,同時(shí)包含了詞的語義以及語法信息。當(dāng)前,基于神經(jīng)網(wǎng)絡(luò)的自然語言處理方法大都是基于詞向量的表示基礎(chǔ)上進(jìn)行的。在此基礎(chǔ)上,相關(guān)研究人員設(shè)計(jì)深度神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)句子的向量表示,相關(guān)工作包括遞歸神經(jīng)網(wǎng)絡(luò)(Recursive Neural Network)、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)的句子建模[28-30]。句子表示被應(yīng)用于大量的自然語言處理任務(wù)上,并在一些任務(wù)上取得了較為突出的效果。例如機(jī)器翻譯[31,32]、情感分析等[33,34]。從句子的表示到篇章的表示學(xué)習(xí)仍然較為困難,相關(guān)工作也較少,比較有代表性是Li等人通過層次循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)篇章進(jìn)行編碼,然后通過層次循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行解碼,從而實(shí)現(xiàn)對(duì)篇章的表示[35]。然而,NLP領(lǐng)域涵蓋了不同性質(zhì),不同層次的具體問題,這就需要針對(duì)不同問題的特點(diǎn),設(shè)計(jì)深度模型學(xué)習(xí)到任務(wù)特定的本質(zhì)特征。
  問答領(lǐng)域所需解決的兩個(gè)關(guān)鍵問題:一是如何實(shí)現(xiàn)問句及答案的語義表示。無論是對(duì)于用戶提問的理解,還是答案的抽取驗(yàn)證,都需抽象出問題和答案的本質(zhì)信息的表示。這不僅需要表示問答語句的句法語法信息,更需表示問句及答案在語義層面上的用戶意圖信息和語義層匹配信息。二是如何實(shí)現(xiàn)問句答案間的語義匹配。為了保證反饋用戶提問的答案滿足嚴(yán)格語義匹配,系統(tǒng)必須合理利用語句高層抽象的語義表示去捕捉到兩個(gè)文本之間關(guān)鍵而細(xì)致的語義匹配模式。鑒于近幾年卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)在NLP領(lǐng)域任務(wù)中表現(xiàn)出來的語言表示能力,越來越多的研究人員嘗試深度學(xué)習(xí)的方法完成問答領(lǐng)域的關(guān)鍵任務(wù)。例如問題分類(question classification),答案選擇(answerselection),答案自動(dòng)生成(answer generation)。此外,互聯(lián)網(wǎng)用戶為了交流信息而產(chǎn)生的大規(guī)模諸如微博回復(fù)、社區(qū)問答對(duì)的自然標(biāo)注數(shù)據(jù)[50],給訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)模型提供了可靠的數(shù)據(jù)資源,并很大程度上解決自動(dòng)問答研究領(lǐng)域的數(shù)據(jù)匱乏問題。
  接下來內(nèi)容安排:首先,分別介紹基于CNN和RNN的問答語句的語義表示方法;然后,介紹基于DCNN的兩種語義匹配架構(gòu);最后,介紹基于RNN的答案自動(dòng)生成方法。
  3.1基于深度神經(jīng)網(wǎng)絡(luò)的語義表示方法
  3.1.1基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的語義表示方法
  基于CNN的語義表示學(xué)習(xí)是通過CNN對(duì)句子進(jìn)行掃描,抽取特征,選擇特征,最后組合成句子的表示向量。首先從左到右用一個(gè)滑動(dòng)窗口對(duì)句子進(jìn)行掃描,每個(gè)滑動(dòng)窗口內(nèi)有多個(gè)單詞,每個(gè)單詞由一個(gè)向量表示。在滑動(dòng)窗口內(nèi),通過卷積(convolution)操作,進(jìn)行特征抽取。這樣,在各個(gè)位置上得到一系列特征。之后再通過最大池化(maxpooling)操作,對(duì)特征進(jìn)行選擇。重復(fù)以上操作多次,得到多個(gè)向量表示,將這些向量連接起來得到整個(gè)句子的語義表示。如圖3.1所示,基于CNN的句子建模的輸入是詞向量矩陣,矩陣的每一行的多個(gè)點(diǎn)的值在一起才有明確的物理意義,其代表句子中對(duì)應(yīng)的一個(gè)詞。詞向量矩陣是通過將句子中的詞轉(zhuǎn)換為對(duì)應(yīng)的詞向量,然后按照詞的順序排列得到。該模型通過多層交疊的卷積和最大池化操作,最終將句子表示為一個(gè)固定長(zhǎng)度的向量。該架構(gòu)可以通過在模型頂層增加一個(gè)分類器用于多種有監(jiān)督的自然語言處理任務(wù)上。
\
  圖3.1基于CNN的句子建模
  基于CNN的句子建?梢员憩F(xiàn)為具有局部選擇功能的“組合算子”,隨著模型層次的不斷加深,模型得到的表示輸出能夠覆蓋的句內(nèi)詞的范圍越廣,最后通過多層的運(yùn)算得到固定維度的句子表示向量。該過程的功能與“遞歸自動(dòng)編碼”的循環(huán)操作機(jī)制[33]具有一定的功能類似。對(duì)于只使用了一層卷積操作和一層全局最大池化操作的句子建模,稱之為淺層卷積神經(jīng)網(wǎng)絡(luò)模型,這種模型被廣泛應(yīng)用于自然語言處理中句子級(jí)分類任務(wù)上,如句子分類[36],關(guān)系分類[37]。但是,淺層的卷積神經(jīng)網(wǎng)絡(luò)模型不能對(duì)句子中復(fù)雜的局部語義關(guān)系進(jìn)行建模,也不能對(duì)句子中深層次的語義組合進(jìn)行很好的表示,并且全局最大池化操作丟失了句子中的詞序特征,所以淺層的卷積網(wǎng)絡(luò)模型只能對(duì)語句間的局部特征匹配進(jìn)行建模。面對(duì)問答中復(fù)雜多樣化的自然語言表示形式(如多語同現(xiàn),異構(gòu)信息,表情符號(hào)等),問答匹配模型[38-40]往往使用深層卷積神經(jīng)網(wǎng)絡(luò)(DCNN)來完成問句和答案的句子建模,并將高層輸出的問答語義表示傳遞給多層感知器(MLP)進(jìn)行問答匹配。
  面對(duì)開放領(lǐng)域中的關(guān)系性推理問題,例如“微軟公司的創(chuàng)始人是誰?”,往往通過引入外部語義知識(shí)推理得到問題的答案,此時(shí)單一的句子建模很難實(shí)現(xiàn)邏輯關(guān)系的語義表示。通常先需要對(duì)問題進(jìn)行語義解析(SemanticParse),然后針對(duì)問句實(shí)體、實(shí)體關(guān)系等不同類型的語義信息進(jìn)行表示學(xué)習(xí)。Yih將關(guān)系性問題拆分成實(shí)體集合和關(guān)系模板[41],其中實(shí)體集合為問題中連續(xù)詞語的子序列,關(guān)系模板為問句實(shí)體被特殊符號(hào)替換后的句子,針對(duì)實(shí)體集合和關(guān)系模板分別使用CNN進(jìn)行句子建模,從而實(shí)現(xiàn)問句在實(shí)體及關(guān)系兩個(gè)層面上的語義表示。Dong提出多欄(Multi-Column)卷積神經(jīng)網(wǎng)絡(luò)模型[42]對(duì)關(guān)系推理性問題進(jìn)行不同層面(詞語表達(dá)層、實(shí)體關(guān)系層、語境信息層)的語義表示學(xué)習(xí),并實(shí)現(xiàn)從關(guān)系知識(shí)庫中抽取候選答案的多層面語義信息,最后與候選答案進(jìn)行多層次匹配打分。
  3.1.2基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的語義表示方法
  基于RNN的句子建模是把一句話看成單詞的序列,每個(gè)單詞由一個(gè)向量表示,每一個(gè)位置上有一個(gè)中間表示,由向量組成,表示從句首到這個(gè)位置的語義。這里假設(shè),每一個(gè)位置的中間表示由當(dāng)前位置的單詞向量以及前一個(gè)位置的中間表示決定,通過一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)模型化。RNN把句末的中間表示當(dāng)作整個(gè)句子的語義表示,如圖3.2所示。
\
  圖3.2基于RNN的語句建模
  RNN與隱馬爾可夫模型有相似的結(jié)構(gòu),但是具有更強(qiáng)的表達(dá)能力,中間表示沒有馬爾可夫假設(shè),而且模型是非線性的。然而,隨著序列長(zhǎng)度的增加,RNN在訓(xùn)練的過程中存在梯度消失(Vanishinggradientproblem)的問題[43]。為了解決這個(gè)問題,研究人員對(duì)循環(huán)神經(jīng)網(wǎng)絡(luò)中的循環(huán)計(jì)算單元進(jìn)行改善設(shè)計(jì),提出了不同的變形,如常用的長(zhǎng)短記憶(LongShortTermMemory,LSTM)[44,45]和門控循環(huán)單元(GatedRecurrentUnit,GRU)[56]。這兩種RNN可以處理遠(yuǎn)距離依存關(guān)系,能夠更好地表示整句的語義。Wang和Nyberg[47]通過雙向LSTM學(xué)習(xí)問題答案對(duì)的語義表示,并將得到的表示輸入到分類器計(jì)算分類置信度。
  此外,對(duì)于近幾年的看圖回答的任務(wù)(ImageQA),研究人員通過整合CNN和RNN完成問題的圖像場(chǎng)景下的語義表示學(xué)習(xí);鞠敕ǎ耗P驮赗NN對(duì)問句進(jìn)行詞語序列掃描的過程中,使用基于深度學(xué)習(xí)的聯(lián)合學(xué)習(xí)機(jī)制完成“圖文并茂”的聯(lián)合學(xué)習(xí),從而實(shí)現(xiàn)圖像場(chǎng)景下的問句建模,用于最終的問答匹配。例如,Malinowski等人[48]提出的學(xué)習(xí)模型在RNN遍歷問句詞語的過程中,直接將CNN得到的圖像表示與當(dāng)前詞語位置的詞向量作為RNN學(xué)習(xí)當(dāng)前中間表示的輸入信息,從而實(shí)現(xiàn)圖像與問句的聯(lián)合學(xué)習(xí)。相比之下,Gao等人[49]則是先用RNN完成問題的句子建模,然后在答案生成的過程中,將問句的語義表示向量和CNN得到的圖像表示向量都作為生成答案的場(chǎng)景信息。
  3.2基于DCNN的語義匹配架構(gòu)
  問答系統(tǒng)中的語義匹配涉及到主要功能模塊包括:問句檢索,即問句的復(fù)述檢測(cè)(paraphrase);答案抽取,即問句與候選文本語句的匹配計(jì)算;答案置信度排序,即問題與候選答案間的語義匹配打分。
  3.2.1并列匹配架構(gòu)
  第一種基于DCNN的語義匹配架構(gòu)為并列匹配[38-40]架構(gòu)。這種架構(gòu)的匹配模型分別將兩句話輸入到兩個(gè)CNN句子模型,可以得到它們的語義表示(實(shí)數(shù)值向量)。之后,再將這兩個(gè)語義表示輸入到一個(gè)多層神經(jīng)網(wǎng)絡(luò),判斷兩句話語義的匹配程度,從而判斷給定的兩句話和是否可以成為一對(duì)句子匹配對(duì)(問答對(duì))。這就是基于DCNN的并列語義匹配模型的基本想法。如果有大量的信息和回復(fù)對(duì)的數(shù)據(jù),就可以訓(xùn)練這個(gè)模型。
\
  圖3.3基于DCNN的并列匹配架構(gòu)
  從圖3.3所示的并列匹配架構(gòu)可以看出,這種匹配模型的特點(diǎn)是兩個(gè)句子的表示分別通過兩個(gè)獨(dú)立的卷積神經(jīng)網(wǎng)絡(luò)(CNN)得到,在得到它們各自的表示之前,兩個(gè)句子間的信息互不影響。這種模型是對(duì)兩個(gè)需要匹配的句子從全局語義上進(jìn)行匹配,但是忽略了兩個(gè)句子間更為精細(xì)的局部匹配特征。然而,在語句匹配的相關(guān)問題中,兩個(gè)待匹配的句子中往往存在相互間的局部匹配,例如問題答案對(duì):
  Sx:好餓啊,今天去哪里吃飯呢。
  Sy:聽說肯德基最近出了新品,要不要去嘗嘗。
  在這一問答對(duì)中,“吃飯”和“肯德基”之間具有較強(qiáng)的相關(guān)性匹配關(guān)系,而并列匹配則是對(duì)句子兩個(gè)句子全局的表示上進(jìn)行匹配,在得到整個(gè)句子的表示之前,“吃飯”和“肯德基”之間并不會(huì)互相影響,然而,隨著深度卷積句子模型對(duì)句子的表示層次不斷深入,而句子中的細(xì)節(jié)信息會(huì)部分丟失,而更關(guān)注整個(gè)句子的整體語義信息。
  3.2.2交互匹配架構(gòu)
  第二種基于DCNN的語義匹配架構(gòu)為交互匹配[39]架構(gòu)。與并列匹配不同,交互匹配的基本想法是直接對(duì)兩個(gè)句子的匹配模式進(jìn)行學(xué)習(xí),在模型的不同深度對(duì)兩個(gè)句子間不同粒度的局部之間進(jìn)行交互,學(xué)習(xí)得到句子匹配在不同層次上的表示,最終得到句子對(duì)固定維度的匹配表示,并對(duì)匹配表示進(jìn)行打分。
\
  圖3.4基于DCNN的交互匹配架構(gòu)
  如圖3.4所示,交互匹配架構(gòu)在第一層通過兩個(gè)句子間的滑動(dòng)窗口的卷積匹配操作直接得到了兩個(gè)句子間較為底層的局部匹配表示,并且在后續(xù)的高層學(xué)習(xí)中采用類似于圖像領(lǐng)域處理過程中的二維卷積操作和二維局部最大池化操作,從而學(xué)到問句與答案句子之間的高層匹配表示。通過這種形式,使得匹配模型既能對(duì)兩個(gè)句子的局部之間的匹配關(guān)系進(jìn)行豐富建模,也使模型能夠?qū)γ總(gè)句子內(nèi)的信息進(jìn)行建模。很顯然,交互匹配學(xué)習(xí)得到的結(jié)果向量不僅包含來自兩個(gè)句子的滑動(dòng)窗口的位置信息,同時(shí)具有兩個(gè)滑動(dòng)窗口的匹配表示。
  對(duì)于問答的語義匹配,交互匹配可以充分考慮到問句與答案間的內(nèi)部匹配關(guān)系,并通過二維的卷積操作與二維局部最大池化操作學(xué)習(xí)得到問句與答案間的匹配表示向量。在整個(gè)過程中,交互匹配更為關(guān)注句子間的匹配關(guān)系,對(duì)兩個(gè)句子進(jìn)行更為細(xì)致的匹配。
  相比于并列匹配,交互匹配不僅考慮到單個(gè)句子中滑動(dòng)窗口內(nèi)的詞的組合質(zhì)量,而且同時(shí)考慮到來自兩個(gè)句子組合間的匹配關(guān)系的質(zhì)量。并列匹配的優(yōu)勢(shì)在于匹配過程中可以很好的保持兩個(gè)句子各自的詞序信息,因?yàn)椴⒘衅ヅ涫欠謩e對(duì)兩個(gè)句子在順序的滑動(dòng)窗口上進(jìn)行建模。相對(duì)而言,交互匹配的問答匹配過程是學(xué)習(xí)語句間局部信息的交互模式。此外,由于交互匹配的局部卷積運(yùn)算和局部最大池化操作都不改變兩個(gè)句子的局部匹配表示的整體順序,所以交互匹配模型同樣可以保持問句與答案的詞序信息?傊,交互匹配通過對(duì)問句與答案的匹配模式進(jìn)行建模,可以學(xué)習(xí)到兩個(gè)句子間的局部匹配模式,而這種匹配模式在正常順序的句子中具備很大的學(xué)習(xí)價(jià)值。
  3.3基于RNN的答案自動(dòng)生成方法
  與基于檢索式的回復(fù)機(jī)制對(duì)比而言,基于生成式的答案反饋機(jī)制是根據(jù)當(dāng)前用戶輸入信息自動(dòng)生成由詞語序列組成的答案,而非通過檢索知識(shí)庫中用戶編輯產(chǎn)生答案語句。這種機(jī)制主要是利用大量交互數(shù)據(jù)對(duì)構(gòu)建自然語言生成模型,給定一個(gè)信息,系統(tǒng)能夠自動(dòng)生成一個(gè)自然語言表示的回復(fù)。其中的關(guān)鍵問題是如何實(shí)現(xiàn)這個(gè)語言生成模型。
  答案自動(dòng)生成需要解決兩個(gè)重要問題,其一是句子表示,其二是語言生成。近年來,循環(huán)神經(jīng)網(wǎng)絡(luò)在語言的表示以及生成方面都表現(xiàn)出了優(yōu)異的性能,尤其是基于循環(huán)神經(jīng)網(wǎng)絡(luò)的編碼-解碼架構(gòu)在機(jī)器翻譯[31,32]和自動(dòng)文摘[51]任務(wù)上取得了突破。Shang[52]等人基于CRU(Gated Recurrent Unit,GRU)[46]循環(huán)神經(jīng)網(wǎng)絡(luò)的編碼-解碼框架,提出了完全基于神經(jīng)網(wǎng)絡(luò)的對(duì)話模型“神經(jīng)響應(yīng)機(jī)”(Neura lResponding Machine,NRM),該模型用于實(shí)現(xiàn)人機(jī)之間的單輪對(duì)話(single-turndialog)。NRM是從大規(guī)模的信息對(duì)(問題-答案對(duì),微博-回復(fù)對(duì))學(xué)習(xí)人的回復(fù)模式,并將學(xué)到的模式存于系統(tǒng)的近四百萬的模型參數(shù)中,即學(xué)習(xí)得到一個(gè)自然語言生成模型。
  如圖3.5所示,NRM的基本想法是將輸入的一句話看作一個(gè)單詞表示的序列,通過編碼器(Encoder),即一個(gè)RNN模型,將轉(zhuǎn)換成一個(gè)中間表示的序列,再通過解碼器(Decoder),是另一個(gè)RNN模型,將轉(zhuǎn)換成一個(gè)單詞的系列,作為一句話輸出。由于NRM在編碼部分采用一種混合機(jī)制,從而使編碼得到中間表示的序列不僅能夠?qū)崿F(xiàn)用戶語句信息的整體把握,同時(shí)還能充分保留句子的細(xì)節(jié)信息。并且在解碼部分采用了注意力(attention)機(jī)制[31],從而使生成模型可以相對(duì)容易的掌握問答過程中的復(fù)雜交互模式。[52]中的實(shí)驗(yàn)結(jié)果表明基于生成式的問答機(jī)制與基于檢索式的答案反饋機(jī)制各具特點(diǎn):在表達(dá)形式個(gè)性化的微博數(shù)據(jù)上,生成式比檢索式的準(zhǔn)確率會(huì)高一些,檢索系統(tǒng)的準(zhǔn)確率是70%,生成系統(tǒng)的準(zhǔn)確率是76%。但是,生成式得到的答案會(huì)出現(xiàn)語法不通,連貫性差的問題,而檢索式的答案來源于真實(shí)的微博用戶編輯,所以語句的表述更為合理可靠。
\
  圖3.5基于編碼-解碼結(jié)構(gòu)的答案生成模型
  目前,NRM以及Google的Neural Conversational Model(NCM)[53]主要還是在對(duì)復(fù)雜語言模式記憶和組合上層面上實(shí)現(xiàn)語言生成,尚無法在交互過程使用外界的知識(shí)。例如,在對(duì)“五一期間杭州西湖相比去年怎么樣嗎?”這樣的句子,無法給出真實(shí)的狀況(旅游人數(shù)的對(duì)比結(jié)果)相關(guān)的回復(fù)。雖然如此,但是NRM和NCM的真正意義在于初步實(shí)現(xiàn)了類人的語言自動(dòng)反饋,因?yàn)榇饲暗慕鼛资,研究人員不懈努力而生成的問答或?qū)υ捪到y(tǒng)(dialogue model),大都是基于規(guī)則和模板,或者是在一個(gè)較大的數(shù)據(jù)庫中進(jìn)行搜索,而這種兩種方式并非真正的產(chǎn)生反饋,并且缺乏有效的語言理解和表示。這往往是由于模板/例子的數(shù)量和表示的局限性,這些方式在準(zhǔn)確性和靈活性上都存在一定不足,很難兼顧語言的自然通順和語義內(nèi)容上的匹配。
  4、結(jié)語
  本文簡(jiǎn)單介紹了問答系統(tǒng)的發(fā)展歷程、基本體系結(jié)構(gòu)。并針對(duì)問答系統(tǒng)所需解決的關(guān)鍵問題,介紹了基于深度神經(jīng)網(wǎng)絡(luò)的語義表示方法,不同匹配架構(gòu)的語義匹配模型,以及答案生成模型。當(dāng)前深度學(xué)習(xí)在解決問答領(lǐng)域中的關(guān)鍵問題取得了不錯(cuò)的效果,但是問答系統(tǒng)的技術(shù)研究仍然存在有待解決問題,比如,如何理解連續(xù)交互問答場(chǎng)景下的用戶提問,例如與Siri系統(tǒng)交互中的語言理解。以及如何學(xué)習(xí)外部語義知識(shí),使問答系統(tǒng)能夠進(jìn)行簡(jiǎn)單知識(shí)推理回復(fù)關(guān)系推理性問題,例如“胸悶總咳嗽,上醫(yī)院應(yīng)該掛什么科”。再者,隨著最近注意(attention)機(jī)制、記憶網(wǎng)絡(luò)(Memory Network)[54,55]在自然語言理解,知識(shí)推理上的研究推廣,這也必將給自動(dòng)問答的研究提供的新的發(fā)展方向和契機(jī)。
 
分享到: 收藏

專題