|
內(nèi)容速覽 向量建模方法的再思考 Multi-Column卷積神經(jīng)網(wǎng)絡(luò) 實(shí)驗(yàn)分析與總結(jié) 自2015年開始,深度學(xué)習(xí)用于KB-QA的方法取得了很好的效果,并逐漸成為了KB-QA的主流方法。也涌現(xiàn)出了一批使用深度學(xué)習(xí)提升傳統(tǒng)的語(yǔ)義解析、信息抽取和向量建模方法的優(yōu)秀論文。本期,我們先以深度學(xué)習(xí)提升向量建模方法為例,作為深度學(xué)習(xí)篇的上篇,為大家進(jìn)一步揭開知識(shí)庫(kù)問(wèn)答的面紗。 我們?cè)?span>揭開知識(shí)庫(kù)問(wèn)答KB-QA的面紗4·向量建模篇介紹了KB-QA(強(qiáng)烈建議在閱讀本文章之前閱讀該文章,點(diǎn)擊末端“閱讀原文”即可查看。)中介紹了傳統(tǒng)方法之一的向量建模(Vector Modeling)方法,該方法具有操作性強(qiáng),不需要任何手工的特征等優(yōu)點(diǎn)。今天,我們將介紹一篇利用深度學(xué)習(xí)對(duì)該向量建模方法進(jìn)行提升的論文,來(lái)自北京大學(xué)和Microsoft研究院的 Question Answering over Freebase with Multi-Column Convolutional Neural Networks(文章發(fā)表于2015年的ACL會(huì)議)。 該文章使用了卷積神經(jīng)網(wǎng)絡(luò)的一種變體(作者稱為multi-column)從三個(gè)方面(答案路徑Answer Path,答案上下文信息Answer Context,答案的類型Answer Type)對(duì)問(wèn)題和答案的分布式表達(dá)進(jìn)行學(xué)習(xí),使得該分布式表達(dá)相比之前的向量建模方法能夠包含更多有效的特征。該方法在WebQuestion數(shù)據(jù)集上測(cè)試,取得了40.8的F1-score。 向量建模方法的再思考 在上期的向量建模方法中,我們談到該方法本身存在一些缺陷。 首先是對(duì)于問(wèn)題的向量化。對(duì)問(wèn)題的向量化,傳統(tǒng)向量建模方法采用了類似詞袋模型的方式,相當(dāng)于它并未考慮問(wèn)題的語(yǔ)言順序(比如 “謝霆鋒的爸爸是誰(shuí)?” “謝霆鋒是誰(shuí)的爸爸?” 這兩個(gè)問(wèn)題用該方法得到的表達(dá)是一樣的,然而這兩個(gè)問(wèn)題的意思顯然是不同的)。 對(duì)于這個(gè)缺陷,我們可以使用深度學(xué)習(xí)的模型對(duì)問(wèn)題進(jìn)行向量化,比如使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Nerual Networks, RNNs)、卷積神經(jīng)網(wǎng)絡(luò)(Counvoulutional Nerual Networks, CNNs )等模型提取問(wèn)題特征,這樣的方式考慮了語(yǔ)言的順序,并且提取特征的能力也更加強(qiáng)大。 第二個(gè)缺陷是,在對(duì)答案進(jìn)行向量化的時(shí)候,直接將答案的路徑(問(wèn)題主題詞到答案實(shí)體的路徑)和上下文信息(答案實(shí)體周圍的知識(shí)庫(kù)子圖)一起作為答案特征,通過(guò)multi-hot的方式對(duì)答案進(jìn)行向量化。事實(shí)上,這樣的形式不利于模型區(qū)分答案的特征(僅僅根據(jù)答案的multi-hot向量是不好區(qū)分哪些是答案的類型,哪些來(lái)自答案的上下文,哪些來(lái)自問(wèn)題主題詞到答案實(shí)體的路徑)。 因此我們可以將問(wèn)題的特征表示拆解開,用三個(gè)向量分別表示答案的三個(gè)特征,即答案路徑(Answer Path),答案上下文信息(Answer Context),答案類型(Answer Type),對(duì)于每一個(gè)答案特征向量,都用一個(gè)卷積網(wǎng)絡(luò)去對(duì)問(wèn)題進(jìn)行特征提取,將提取出的分布式表達(dá)和該答案對(duì)應(yīng)特征向量的分布式表達(dá)進(jìn)行點(diǎn)乘,這樣我們就可以得到一個(gè)包含三部分的得分函數(shù): 其中 有了得分函數(shù),我們就可以像向量建模方法一樣,通過(guò)定義margin-based ranking損失函數(shù)對(duì)模型參數(shù)進(jìn)行訓(xùn)練。 接下來(lái),我們?cè)倏匆幌?img doc360img-src='http://image106.360doc.com/DownloadImg/2017/06/0108/100612513_5' data-s='300,640' data-type='png' data-ratio='0.5625' data-w='32' src='http://image106.360doc.com/DownloadImg/2017/06/0108/100612513_5'>和 Multi-Column卷積神經(jīng)網(wǎng)絡(luò) 對(duì)于問(wèn)題的特征提取,作者使用Multi-Column卷積神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)實(shí)質(zhì)上是共享word-embedding層的三個(gè)text-CNNs,text-CNNs模型在文本分類問(wèn)題上取得了很好的效果。(這兩個(gè)概念是Deep Learning for NLP中的重要概念,我在這里只作簡(jiǎn)單介紹,不再展開深入討論,想深入了解的朋友可以查看相應(yīng)的論文)。 (如果對(duì)text-CNNs了解的朋友可以跳過(guò)下面這一段) 詞向量(Word-embedding):對(duì)于問(wèn)題序列 卷積操作(Convolution):對(duì)于一個(gè)含 池化操作(Pooling):對(duì)于每一個(gè)卷積核的輸出(假設(shè)卷積核大小為 上述流程可以用下面這個(gè)圖片來(lái)表達(dá),注意,對(duì)于不同長(zhǎng)度的問(wèn)題,會(huì)通過(guò)補(bǔ)零(padding)操作將所有問(wèn)題的長(zhǎng)度限定到固定長(zhǎng)度。 ![]() 這樣,我們通過(guò)三個(gè)text-CNNs,在共享word-embedding的情況下,就可以得到 接下來(lái),我們用三個(gè)向量來(lái)分別表示答案的三種特征。 答案路徑(Answer Path):從問(wèn)題中的主題詞到答案在知識(shí)庫(kù)中形成一條路徑,我們記錄該路徑上的每一個(gè)實(shí)體關(guān)系,可以通過(guò)multi-hot的形式 答案上下文信息(Answer Context):我們將答案實(shí)體對(duì)應(yīng)1跳(hop)范圍內(nèi)的實(shí)體關(guān)系和實(shí)體作為答案實(shí)體的上下文信息。通過(guò)同樣的方式我們可以得到答案上下文信息的分布式表達(dá) 答案類型(Answer Type):在信息抽取中我們提到,答案的類型是一個(gè)很重要的特征。類型是一種特殊的實(shí)體關(guān)系,比如時(shí)間2009-12-17 的類型是 datetime,James Cameron 的類型是people.person 和 film.producer。 在實(shí)際操作中,可以在freebase里通過(guò)實(shí)體關(guān)系common.topic.notable.types 來(lái)查詢實(shí)體對(duì)應(yīng)的所有類型。通過(guò)同樣的方式,我們可以得到相應(yīng)的分布式表達(dá) 至此,我們得到了包含個(gè)三部分的得分函數(shù): 整個(gè)流程如下圖所示: ![]() (圖中方塊帶紅色斜線的為主題詞,紅色箭頭表示路徑,綠色橢圓表示答案類型,藍(lán)色虛線橢圓表示上下文信息范圍) 對(duì)于問(wèn)題“when did Avatar release in UK”和它的答案2009-12-17,我們通過(guò)multi-column卷積神經(jīng)網(wǎng)絡(luò)提取三種問(wèn)題的分布式表達(dá),再通過(guò)答案的路徑、上下文信息和類型得到答案相應(yīng)的三種分布式表達(dá),通過(guò)分別點(diǎn)乘再求和的方式得到最終的答案-問(wèn)題對(duì)得分。 我們可以通過(guò)我在揭開知識(shí)庫(kù)問(wèn)答KB-QA的面紗4·向量建模篇介紹了KB-QA提到的同樣的方式構(gòu)造損失函數(shù)和多任務(wù)學(xué)習(xí)來(lái)訓(xùn)練模型參數(shù)。 實(shí)驗(yàn)分析與總結(jié) 模型的參數(shù)這里不再贅述。值得一提的是這篇文章采用的關(guān)于候選答案的尋找方式。和向量建模方法類似,也是尋找問(wèn)題中主題詞n跳范圍內(nèi)(一般取兩跳)的實(shí)體作為候選答案集合。然而對(duì)于有些問(wèn)題,其候選答案集合很大,因此我們采取一種啟發(fā)式方法,如果同一路徑候選答案數(shù)超過(guò)200,則隨機(jī)選擇200個(gè)作為候選。如果某個(gè)候選答案得分最高,那么我們把它所在的答案路徑中的所有其他節(jié)點(diǎn)(不在200個(gè)候選集合的節(jié)點(diǎn))也計(jì)算得分,選出得分最高的作為最終答案。 實(shí)驗(yàn)依舊是在benchmark——WebQuestion上進(jìn)行,取得了40.8的F1-score,這個(gè)性能擊敗了幾乎當(dāng)時(shí)所有的傳統(tǒng)方法。并且我個(gè)人認(rèn)為如果引入現(xiàn)在的一些深度學(xué)習(xí)技巧(諸如batch normalization、Adam等)并且加大模型的參數(shù)數(shù)量,改進(jìn)word-embedding預(yù)訓(xùn)練等,效果還有上升的空間。我相信該方法如果面對(duì)更大規(guī)模的數(shù)據(jù)集會(huì)比傳統(tǒng)方法取得更好的效果。 由于這篇文章考慮了答案的三個(gè)因素(路徑、上下文、類型),為了探究哪個(gè)因素對(duì)最終效果影響最大。作者通過(guò)測(cè)試 在得分函數(shù)中去除某一因素、只使用single column、不進(jìn)行多任務(wù)訓(xùn)練、只使用1 hop范圍作為候選答案(該順序?qū)?yīng)下表的順序)等情況下的模型性能,來(lái)對(duì)模型進(jìn)行分析。 那么你猜猜對(duì)于答案的路徑、上下文、類型這三個(gè)因素,去除哪個(gè)因素之后對(duì)性能影響最大呢?實(shí)驗(yàn)結(jié)果如下表 ![]() 其中w/o表示without,可以看出答案的路徑對(duì)效果影響最大(問(wèn)題主題詞到答案實(shí)體的路徑其實(shí)相當(dāng)于問(wèn)題到答案的推理過(guò)程),其次是答案的類型,影響最小的是答案的上下文信息(仔細(xì)想想,其實(shí)答案實(shí)體的上下文信息很多對(duì)尋找該問(wèn)題的答案沒有幫助,比如詢問(wèn)奧巴馬的出生地,那么奧巴馬的其他很多信息如社會(huì)關(guān)系、職位等等對(duì)答案沒有幫助,相當(dāng)于噪音)。 分布式表達(dá),雖然沒有傳統(tǒng)的信息抽取和語(yǔ)義解析那么具有解釋性,但是,我們卻可以通過(guò)衡量分布式表達(dá)的余弦(Cosine)距離和通過(guò)得分函數(shù)來(lái)觀察到一些可解釋性。為此,作者還進(jìn)行了兩個(gè)實(shí)驗(yàn)。 首先,我們想知道對(duì)于一個(gè)問(wèn)題,我們的模型最關(guān)注這個(gè)問(wèn)題的哪個(gè)單詞,即顯著性單詞檢測(cè)(Salient words detection) 。我們可以進(jìn)行這樣的實(shí)驗(yàn),要檢測(cè)問(wèn)題中的某一個(gè)單詞的顯著性,我們可以將該單詞替換為某些停頓詞(如to is a等),計(jì)算替換了單詞之后的表達(dá) ![]() 我們可以看出來(lái),問(wèn)題詞(wh-)、問(wèn)題詞相關(guān)的名詞和動(dòng)詞都對(duì)找出最終答案有重要影響。 我們也可以通過(guò)問(wèn)題 ![]() 我們通過(guò)計(jì)算問(wèn)題(字體加粗)的表達(dá),通過(guò)cosine距離尋找最近的問(wèn)題表達(dá)所對(duì)應(yīng)的問(wèn)題,可以看出這些問(wèn)題在語(yǔ)義上還是很相似的。如相同語(yǔ)義“who found/own/start *” 和 “who be the owner of *”的距離很接近。 最后,作者也列舉了一些錯(cuò)誤分析(通過(guò)對(duì)錯(cuò)誤情況進(jìn)行分析,對(duì)我們提出改進(jìn)的方法很有幫助),錯(cuò)誤主要有以下三種情況: 候選答案生成:有些問(wèn)題的主題詞是難以正確提取出來(lái)的,比如縮寫詞和表達(dá)不全,如問(wèn)題“where did jfk and his wife live” ,很難將jfk這個(gè)縮寫詞對(duì)應(yīng)到John F. Kennedy這個(gè)人名上,這樣會(huì)導(dǎo)致我們無(wú)法得到正確的候選答案集合。要解決這種情況,可能需要對(duì)問(wèn)題進(jìn)行一些預(yù)處理。 問(wèn)題歧義:對(duì)于數(shù)據(jù)集中有些有歧義的問(wèn)題,難以獲得和正確答案相應(yīng)的關(guān)系,如問(wèn)題“who is aidan quinn”,答案是演員,我們很難通過(guò)該問(wèn)題who is推斷出和職業(yè)相關(guān)。這種情況該怎么辦呢? 時(shí)序敏感(Time-Aware)問(wèn)題:對(duì)于問(wèn)題中帶有 first / second 這種與時(shí)間順序相關(guān)的詞語(yǔ),如“who is johnny cash’s first wife” ,答案可能給出的是second wife的名字(模型只關(guān)注到了wife而忽略了first的含義,并沒有進(jìn)行額外的推理)。對(duì)于這種情況,可能需要定義專門(ad-hoc)的操作,注意的是,這一點(diǎn)是該類方法相比語(yǔ)義解析方法的一個(gè)缺點(diǎn)。 那么,下一期,我們就將介紹深度學(xué)習(xí)對(duì)語(yǔ)義解析方法的提升,我們將以Micorsoft ACL 2015年的Outstanding paper為例,為大家?guī)?lái)揭開知識(shí)庫(kù)問(wèn)答KB-QA的面紗6·深度學(xué)習(xí)中篇,進(jìn)一步揭開KB-QA的面紗。 敬請(qǐng)期待 |
|
|