国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于神經(jīng)網(wǎng)絡(luò)的汽車(chē)說(shuō)明書(shū)問(wèn)答系統(tǒng)

2019-02-16 01:30齊樂(lè)張宇馬文濤崔一鳴王士進(jìn)劉挺
關(guān)鍵詞:編碼器排序文檔

齊樂(lè),張宇*,馬文濤,崔一鳴,王士進(jìn),劉挺

(1.哈爾濱工業(yè)大學(xué) 社會(huì)計(jì)算與信息檢索研究中心,黑龍江 哈爾濱 150001;2.哈工大訊飛聯(lián)合實(shí)驗(yàn)室,訊飛研究院,北京 100094)

0 引言

問(wèn)答是自然語(yǔ)言處理中的一個(gè)重要任務(wù),并獲得了廣泛的關(guān)注?,F(xiàn)今有著許多問(wèn)答系統(tǒng)的應(yīng)用,比如Siri,Cortana,Waston等等。假設(shè)現(xiàn)在有如下場(chǎng)景:當(dāng)你買(mǎi)了一臺(tái)新車(chē),坐在駕駛位上時(shí),遇到了一些問(wèn)題,你需要怎么做?傳統(tǒng)的做法是找到并打開(kāi)汽車(chē)說(shuō)明書(shū),然后在說(shuō)明書(shū)中檢索問(wèn)題的答案。為了簡(jiǎn)化這一復(fù)雜并煩瑣的過(guò)程,本文設(shè)計(jì)了一個(gè)新的問(wèn)答系統(tǒng),針對(duì)用戶(hù)的提問(wèn)快速檢索并返回說(shuō)明書(shū)中相關(guān)的文檔作為答案。

在國(guó)內(nèi)外均有大量研究人員進(jìn)行問(wèn)答相關(guān)的研究。根據(jù)答案類(lèi)型,問(wèn)答系統(tǒng)可以被分為3類(lèi)。第1類(lèi)是在大規(guī)模文檔集中返回相關(guān)文檔作為答案,等價(jià)于文檔檢索(Document Retrieval)任務(wù)。文檔檢索的方法可以分為2種:1)無(wú)監(jiān)督的基于特征的方法。研究者根據(jù)不同的特征改進(jìn)文檔排序的算法。Robertson[1]等人使用BM25作為加權(quán)函數(shù),利用詞項(xiàng)排序的方式檢索文檔。Ponte[2]等人以及Laffert[3]等人利用語(yǔ)言模型進(jìn)行文檔檢索。2)有監(jiān)督的方法。一些研究者將文檔檢索看作二分類(lèi)任務(wù),Nallapati[4]利用SVM和最大熵來(lái)解決該問(wèn)題。另一些則將其看作排序任務(wù),Gao[5]等人使用線(xiàn)性判別函數(shù)對(duì)相關(guān)文檔進(jìn)行排序。Burges[6]等人則使用相對(duì)熵以及梯度下降的算法訓(xùn)練用于文檔檢索的神經(jīng)網(wǎng)絡(luò)模型。

第2類(lèi)是在一篇文檔或多個(gè)候選答案句中選取包含答案的句子,即答案句選擇(Answer Sentence Selection)任務(wù)[7]。通常,研究者將該任務(wù)轉(zhuǎn)化為計(jì)算問(wèn)題和候選答案句間的相似度計(jì)算任務(wù)。Bordes[8]等人設(shè)計(jì)了Siamese網(wǎng)絡(luò)去計(jì)算問(wèn)題和候選答案句間的相似度,將問(wèn)題和候選答案句映射到聯(lián)合空間上。Yu[9]等人考慮了問(wèn)題和答案句間的語(yǔ)義表示,提出了一種二元CNN網(wǎng)絡(luò)進(jìn)行匹配。Yin[10]等人使用注意力機(jī)制建模問(wèn)題和候選答案句間的交互關(guān)系,將兩者的信息進(jìn)行融合,而非對(duì)兩者進(jìn)行獨(dú)立的建模,提出了基于注意力的CNN模型(ABCNN)。與其思想相似,Wang[11]等人提出了基于內(nèi)部注意力機(jī)制的RNN模型(IARNN)。與傳統(tǒng)的具有注意力機(jī)制的RNN模型不同,其在RNN的輸入端使用注意力機(jī)制而非在輸出端使用。

第3類(lèi)是在一篇文檔中找到精準(zhǔn)的答案片段,其中答案片段通常由一個(gè)或兩個(gè)詞組成。這類(lèi)任務(wù)也可稱(chēng)為閱讀理解(Reading Comprehension,RC)任務(wù)[12]。大多數(shù)閱讀理解模型都使用相似的框架:編碼層、交互層和答案層。編碼層將問(wèn)題和文檔轉(zhuǎn)化為向量表示;交互層抽取問(wèn)題和文檔之間的交互信息,輸出問(wèn)題和文檔的聯(lián)合表示;答案層則基于聯(lián)合表示預(yù)測(cè)答案。Wang[13]等人結(jié)合Match-LSTM模型和邊界模型,將預(yù)測(cè)答案的過(guò)程簡(jiǎn)化為預(yù)測(cè)答案的開(kāi)始和結(jié)束位置。另外,R-Net[14]模型使用雙層交互架構(gòu),第1個(gè)交互層用來(lái)捕捉文檔和問(wèn)題簡(jiǎn)單交互信息,第2個(gè)交互層用來(lái)捕獲文檔中單詞之間的交互信息。而Adams[15]等人則結(jié)合CNN和Transformer,拋棄了LSTM結(jié)構(gòu),其可以并行進(jìn)行訓(xùn)練,可以使用更為龐大的語(yǔ)料,而耗時(shí)也更少,同時(shí)可以達(dá)到更好的結(jié)果。

本文的任務(wù)是問(wèn)答系統(tǒng)的一個(gè)實(shí)際應(yīng)用,與文檔檢索相類(lèi)似,也借鑒了答案句抽取和閱讀理解中的相關(guān)方法。以奇瑞汽車(chē)的說(shuō)明書(shū)作為文檔集,共包含181篇文檔,每篇文檔包括三個(gè)部分:標(biāo)題、摘要和內(nèi)容。表1給出了一個(gè)例子,當(dāng)用戶(hù)提出問(wèn)題“制動(dòng)報(bào)警信號(hào)燈在哪里?”時(shí),通過(guò)計(jì)算問(wèn)題和每篇文檔之間的相關(guān)程度,對(duì)文檔進(jìn)行排序,排名最高的文檔“制動(dòng)報(bào)警信號(hào)燈”將作為答案返回給用戶(hù)。

該任務(wù)主要有3個(gè)難點(diǎn):1)如何充分利用文檔信息對(duì)文檔進(jìn)行建模。標(biāo)題是文檔的主題,包括文檔最核心的信息。但標(biāo)題信息太過(guò)精煉,不能完全涵蓋文檔的全部信息。同時(shí),部分文檔的標(biāo)題非常相似,但文檔內(nèi)容卻千差萬(wàn)別。因此不能只根據(jù)標(biāo)題判斷一篇文檔是否為正確答案。摘要是文檔內(nèi)容的高度概括,同時(shí)包含的信息要多于標(biāo)題信息,摘要信息可以幫助區(qū)分文檔間的不同。文檔內(nèi)容則包含了文檔的全部信息,但文檔內(nèi)容相對(duì)較長(zhǎng),包含許多噪聲,較難建模。這三者相輔相成,因此要充分利用這三類(lèi)信息對(duì)文檔進(jìn)行建模。

2)汽車(chē)說(shuō)明書(shū)中包含大量領(lǐng)域詞。這些特殊詞匯會(huì)對(duì)問(wèn)題、文檔的建模造成很大的困擾。在分詞過(guò)程中,這些領(lǐng)域詞可能會(huì)被識(shí)別為短語(yǔ),被分割為多個(gè)詞匯的組合,而不是獨(dú)立的詞匯。更為關(guān)鍵的是,在不同的句子中,由于分詞錯(cuò)誤或分詞規(guī)則原因,同一領(lǐng)域詞可能會(huì)被分為不同的詞匯組合。在使用詞向量對(duì)其建模時(shí),同一領(lǐng)域詞可能會(huì)被建模為多個(gè)完全不同含義的短語(yǔ)向量。同時(shí),同一含義的領(lǐng)域詞可能會(huì)有多種不同的表示,即一個(gè)領(lǐng)域詞可能會(huì)有很多復(fù)述存在。因此需要正確地識(shí)別這些復(fù)述,將它們聚類(lèi)在一起。另外部分領(lǐng)域詞或其復(fù)述不存在于詞向量的詞表中,屬于未登錄詞,這也極大地影響了模型的效果。

表1 汽車(chē)說(shuō)明書(shū)數(shù)據(jù)樣例

3)針對(duì)某一問(wèn)題,文檔集中只有一篇文檔是正確答案,其他文檔均為錯(cuò)誤答案。當(dāng)將該任務(wù)轉(zhuǎn)化為計(jì)算問(wèn)題和候選文檔間的相關(guān)度的任務(wù)時(shí),正例數(shù)量遠(yuǎn)遠(yuǎn)小于負(fù)例數(shù)量,正負(fù)樣本的比例極不均衡。這會(huì)導(dǎo)致模型在預(yù)測(cè)時(shí)傾向于將所有候選文檔標(biāo)記為負(fù)例,給所有候選文檔相對(duì)較低的分?jǐn)?shù),從而導(dǎo)致模型的效果不佳。

為了解決這些問(wèn)題,本文提出了一個(gè)新的問(wèn)答系統(tǒng),先計(jì)算問(wèn)題和每個(gè)候選文檔間的相關(guān)度作為每篇候選文檔的得分,然后根據(jù)得分對(duì)候選文檔進(jìn)行排序,選擇得分最高的文檔作為答案予以返回。為了能更好地利用候選文檔的信息,分別對(duì)候選文檔的標(biāo)題、摘要和內(nèi)容進(jìn)行建模,并分別計(jì)算這3部分與問(wèn)題的相關(guān)度,然后根據(jù)3個(gè)得分綜合判斷候選文檔是否為問(wèn)題的答案。同時(shí),為了更好地將領(lǐng)域詞及其復(fù)述聚類(lèi)在一起,手工構(gòu)建了領(lǐng)域詞的復(fù)述詞典。而為了避免領(lǐng)域詞的分詞問(wèn)題,放棄了分詞,并將文本轉(zhuǎn)化為字符級(jí)別的向量表示,而非詞級(jí)別的向量表示。最后,為了改善數(shù)據(jù)集正負(fù)樣本不均衡的問(wèn)題,設(shè)計(jì)了兩種訓(xùn)練策略。第1種是將分類(lèi)模型轉(zhuǎn)換為基于Pairwise思想[16]的排序模型,即將一對(duì)正例和負(fù)例同時(shí)輸入到模型中進(jìn)行訓(xùn)練。排序模型的訓(xùn)練目標(biāo)是使正負(fù)例間的得分差距變大,使正例的得分相對(duì)更高,負(fù)例的相對(duì)更低。第2種是直接復(fù)制正例,增大正例的數(shù)量。數(shù)據(jù)集中共有181篇文檔,為此針對(duì)1個(gè)問(wèn)題復(fù)制180個(gè)正例,使正負(fù)例比例變?yōu)?∶1。實(shí)驗(yàn)結(jié)果顯示兩種訓(xùn)練策略均是有效的,在測(cè)試集上達(dá)到了93.07%的準(zhǔn)確率,可以實(shí)際應(yīng)用到真實(shí)場(chǎng)景中。

1 系統(tǒng)介紹

系統(tǒng)包括2個(gè)部分:復(fù)述替換和相關(guān)度計(jì)算。在復(fù)述替換中,手工構(gòu)建了一份領(lǐng)域詞的復(fù)述詞典,再根據(jù)復(fù)述詞典對(duì)問(wèn)題和文檔進(jìn)行復(fù)述替換。之后,用神經(jīng)網(wǎng)絡(luò)模型對(duì)問(wèn)題和文檔進(jìn)行建模,計(jì)算問(wèn)題和文檔間的相關(guān)度作為文檔得分,并根據(jù)得分對(duì)文檔進(jìn)行排序。

1.1 復(fù)述替換

眾所周知,許多詞和短語(yǔ)有著相同或相近的含義。對(duì)于同一含義的詞,可能有著很多不同的表達(dá)形式。尤其是針對(duì)特殊領(lǐng)域的詞匯,由于大規(guī)模訓(xùn)練語(yǔ)料的缺失,很難訓(xùn)練具有針對(duì)性的詞向量。而使用在通用語(yǔ)料上預(yù)訓(xùn)練的詞向量則很難將多個(gè)具有相同含義的領(lǐng)域詞聚類(lèi)在一起。同時(shí),許多領(lǐng)域詞可能根本不會(huì)出現(xiàn)在預(yù)訓(xùn)練的詞向量中,屬于未登錄詞。因此針對(duì)同一領(lǐng)域詞的不同表達(dá)形式會(huì)對(duì)模型的建模造成很大的負(fù)面影響。為了減少這些負(fù)面影響,從數(shù)據(jù)集中收集具有相同或相近含義的領(lǐng)域詞對(duì),手工構(gòu)造了領(lǐng)域詞的復(fù)述詞典。復(fù)述詞典的規(guī)模較小,只有97條。表2展示了詞典中的一些樣例。

表2 復(fù)述樣例

1.2 相關(guān)度計(jì)算

根據(jù)復(fù)述詞典對(duì)問(wèn)題和文檔中的句子進(jìn)行復(fù)述替換。以“ABS是什么?”一句為例,如表2所示“ABS”是“防抱死制動(dòng)系統(tǒng)”的復(fù)述,因此將其進(jìn)行替換,得到新的問(wèn)句“防抱死制動(dòng)系統(tǒng)是什么?”。使用一個(gè)神經(jīng)網(wǎng)絡(luò)模型去計(jì)算問(wèn)題和每篇文檔間的相關(guān)程度。模型由3部分組成,如圖1所示。先將問(wèn)題和文檔的標(biāo)題、摘要、內(nèi)容轉(zhuǎn)化為獨(dú)立的向量表示,接著用不同的編碼器將它們分別編碼為不同的特征向量,最后利用這些特征向量計(jì)算問(wèn)題和文檔間的相關(guān)程度。

Fig.1 Model architecture圖1 模型架構(gòu)

1.2.1 詞向量表示

由于領(lǐng)域詞和領(lǐng)域短語(yǔ)在不同的句子中可能會(huì)產(chǎn)生不同的分詞結(jié)果,而在向量的維度上,不同的分詞結(jié)果的向量組合可能會(huì)產(chǎn)生完全不同的語(yǔ)義。以“手剎指示燈亮”為例,如表3所示,其在不同的句子中可能會(huì)被分多種不同的組合。這些組合在向量維度上的語(yǔ)義不完全相同,有的甚至有著很大的差別。

同時(shí),某些領(lǐng)域詞不存在于詞向量中,如表3中的“手剎指示燈”,屬于未登錄詞,無(wú)法使用詞向量對(duì)未登錄詞的語(yǔ)義進(jìn)行建模。為了避免分詞和未登錄詞對(duì)模型帶來(lái)的影響,放棄了分詞以及詞級(jí)別的向量表示,轉(zhuǎn)而使用字符級(jí)別的向量表示。本文使用基于word2vec[17]算法在百度百科上預(yù)訓(xùn)練得到的字符向量表示問(wèn)題和文檔,對(duì)模型進(jìn)行初始化。同時(shí),在模型的訓(xùn)練過(guò)程中持續(xù)更新字符級(jí)的向量,以保證其包含語(yǔ)義的有效性。

表3 同一領(lǐng)域短語(yǔ)的不同分詞結(jié)果

1.2.2 編碼器

任務(wù)中存在2種長(zhǎng)度的文本:短文本和長(zhǎng)文本。短文本一般在30個(gè)字以?xún)?nèi),而長(zhǎng)文本則通常多于50個(gè)字。將問(wèn)題、文檔標(biāo)題以及文檔摘要視為短文本,將文檔內(nèi)容視為長(zhǎng)文本,并針對(duì)長(zhǎng)短文本設(shè)計(jì)了兩種不同的編碼器。針對(duì)短文本,設(shè)計(jì)了一種基于CNN的編碼器,短文本中包含的信息一般都是關(guān)鍵信息,比如標(biāo)題和問(wèn)題中可能都包含相同的領(lǐng)域詞。CNN編碼器和傳統(tǒng)的n-gram模型相類(lèi)似,可以很好地建模局部信息并對(duì)文本進(jìn)行匹配。但由于CNN沒(méi)有遺忘機(jī)制,在對(duì)長(zhǎng)文本建模時(shí)會(huì)抽取并存儲(chǔ)大量不重要的信息,這些信息會(huì)干擾模型的判斷。而針對(duì)長(zhǎng)文本,希望通過(guò)在全局的視角下對(duì)文本建模,因此設(shè)計(jì)了一種基于Bi-LSTM的編碼器。由于遺忘機(jī)制的存在,Bi-LSTM可以很好地對(duì)長(zhǎng)文本建模,并保留相對(duì)重要的信息,對(duì)長(zhǎng)文本的核心語(yǔ)義進(jìn)行建模。

如圖2所示,令xi為文本中第i個(gè)字符的向量表示,則一段長(zhǎng)度為n的文本可以表示為x(1:n)=x1?x2?…?xn,其中?表示連接操作。

Fig.2 Architectures of the two encoders圖2兩種編碼器的架構(gòu)

CNN編碼器結(jié)構(gòu)如圖2(a)所示,包括卷積層、池化層和隱含層。在卷積層中,設(shè)計(jì)了k組過(guò)濾器{w1,w2,…,wk},每個(gè)過(guò)濾器的窗口大小為{d×h},其中d為字符向量的維度。過(guò)濾器wi每次從h個(gè)字符中抽取特征ci,j,其過(guò)程為:

ci,j=f(wix(j:j+h-1)+b),

(1)

其中b是偏移項(xiàng),f是非線(xiàn)性函數(shù)。

通過(guò)卷積操作,過(guò)濾器wi生成一組特征向量ci=(ci,0,ci,1,…,ci,n),k組過(guò)濾器共生成k組特征向量c=(c0,c1,…,ck)。接著,將k組特征向量輸入到最大池化層,抽取每組特征中的最大值,得到文本的特征向量:

(2)

最后將文本的特征向量輸入到全連接層中,得到文本最終的向量表示。

Bi-LSTM編碼器的結(jié)構(gòu)如圖2(b)所示。其隱含層狀態(tài)可以表示為:

(3)

1.2.3 相關(guān)度計(jì)算

經(jīng)過(guò)編碼器,得到了問(wèn)題和文檔標(biāo)題、摘要、內(nèi)容的向量表示(vq,vt,va,vc)。分別計(jì)算問(wèn)題和其他3項(xiàng)間的余弦相似度:

st=cosine(vq,vt),

sa=cosine(vq,va),

sc=cosine(vq,vc).

(4)

基于這些余弦相似度計(jì)算問(wèn)題和文檔間的相關(guān)度作為文檔的得分:

s=sigmoid(wtst+wasa+wcsc+b),

(5)

其中wt,wa和wc是相應(yīng)的權(quán)重,b是偏移項(xiàng)。

2 訓(xùn)練策略

在數(shù)據(jù)集中,每一個(gè)問(wèn)題都有180個(gè)錯(cuò)誤答案和1個(gè)正確答案。正負(fù)樣本的比例為180∶1。由于正負(fù)樣本數(shù)量的不均衡,模型無(wú)法很好地學(xué)習(xí)問(wèn)題和正確答案之間的關(guān)系,傾向于將所有候選文檔標(biāo)記為負(fù)例。為此,設(shè)計(jì)了2種訓(xùn)練策略來(lái)改善這一問(wèn)題。第1種是將模型轉(zhuǎn)化為基于Pairwise思想的排序模型。這種策略可以幫助模型更好地區(qū)分正例和負(fù)例,學(xué)習(xí)到問(wèn)題和正例之間的關(guān)系。第2種是擴(kuò)展正例,增大正例的數(shù)量使正例和負(fù)例的比例變?yōu)?∶1,這種方法可以間接地讓模型學(xué)習(xí)到問(wèn)題和正例之間的聯(lián)系,從而改善正負(fù)例樣本不均衡的問(wèn)題。

2.1 排序模型

相關(guān)度計(jì)算模型可以看作是一個(gè)二分類(lèi)模型。它的輸入是問(wèn)題Q和文檔P的表示,輸出是問(wèn)題和文檔間的相關(guān)程度。這里使用二元交叉熵函數(shù)作為損失函數(shù),若事件X表示文檔P是問(wèn)題Q的答案,Pr(X=T)=p,則Pr(X=F)=1-p,則X的交叉熵為:

H(X)=Hb(p)=-(plog2(p)+(1-p)log2(1-p)).

(6)

這種方法計(jì)算了問(wèn)題和文檔間的相關(guān)度,可以學(xué)習(xí)到問(wèn)題和文檔間的內(nèi)在聯(lián)系,但無(wú)法很好地利用正例和負(fù)例之間的聯(lián)系和區(qū)別。為此嘗試將其轉(zhuǎn)化為基于Pairwise的排序模型,其訓(xùn)練目標(biāo)是使正確文檔的得分高于錯(cuò)誤文檔,在學(xué)習(xí)到問(wèn)題和文檔間內(nèi)在聯(lián)系的同時(shí),還擴(kuò)大了正例和負(fù)例之間的區(qū)別,利用了正負(fù)例之間的關(guān)聯(lián)信息。

Fig.3 Ranking model圖3 排序模型

圖3展示了排序模型的結(jié)構(gòu)。其輸入是由問(wèn)題Q、正確文檔R以及錯(cuò)誤文檔W構(gòu)成的三元組。將問(wèn)題-文檔對(duì)(Q,R)(Q,R)和(Q,W)分別輸入到相關(guān)度計(jì)算模型中,得到Q和R、Q和W之間的相關(guān)度sR和sW。最后使用Hinge Loss替代二元交叉熵函數(shù):

hingeloss=max(0,m-sR+sW),

(7)

其中m是自定義的超參數(shù)。

2.2 正例擴(kuò)展

當(dāng)發(fā)現(xiàn)正負(fù)例不均衡這一問(wèn)題時(shí),直覺(jué)就是調(diào)整它們的比例。同時(shí),當(dāng)分析排序模型時(shí),發(fā)現(xiàn)其輸入由問(wèn)題-文檔對(duì)變成了問(wèn)題-正確文檔-錯(cuò)誤文檔的三元組。模型每次訓(xùn)練均對(duì)正確文檔進(jìn)行了1次訓(xùn)練,對(duì)于同一個(gè)問(wèn)題訓(xùn)練了其正例180遍,其每個(gè)負(fù)例各1遍,也就相當(dāng)于對(duì)于每個(gè)負(fù)例都復(fù)制了其對(duì)應(yīng)的正例。因此,設(shè)計(jì)了正例擴(kuò)展的訓(xùn)練策略。該策略將仍然使用相關(guān)度計(jì)算模型,只需要對(duì)于每個(gè)問(wèn)題都復(fù)制180份正例,使語(yǔ)料的正負(fù)例比例變?yōu)?∶1。由于更多的正例參與到了模型的訓(xùn)練過(guò)程中,模型可以更好地學(xué)習(xí)到問(wèn)題和文檔之間的聯(lián)系,不再傾向于將所有文檔標(biāo)記為負(fù)例。

3 實(shí)驗(yàn)結(jié)果

將奇瑞汽車(chē)的說(shuō)明書(shū)作為文檔集進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)數(shù)據(jù)來(lái)源于真實(shí)用戶(hù)提問(wèn),并由多名相關(guān)專(zhuān)業(yè)人士進(jìn)行標(biāo)注,數(shù)據(jù)集共包含181篇文檔,用人工標(biāo)注了3 000條問(wèn)題作為訓(xùn)練集,800條問(wèn)題作為測(cè)試集。給定1個(gè)問(wèn)題,從181篇文檔中找出最相關(guān)的文檔作為正例,其余的作為負(fù)例,目標(biāo)是使正確答案得分最高,因此根據(jù)文檔的得分對(duì)所有文檔進(jìn)行排序,并將準(zhǔn)確率作為任務(wù)的評(píng)價(jià)指標(biāo),即只有排名第1的文檔是正確答案時(shí)模型的預(yù)測(cè)是正確的,其他情況均視為錯(cuò)誤。

3.1 實(shí)驗(yàn)設(shè)置

對(duì)于相關(guān)度計(jì)算模型和轉(zhuǎn)換得到的排序模型均使用相同的參數(shù)設(shè)置。在百度百科語(yǔ)料上使用word2vec算法訓(xùn)練詞向量,向量的維度為50。字向量是詞向量的一部分。對(duì)于CNN編碼器,設(shè)置了500個(gè)過(guò)濾器,過(guò)濾器的大小為{2,50},全連接層的維度是200。對(duì)于Bi-LSTM編碼器,設(shè)置其每一時(shí)間節(jié)點(diǎn)的輸出維度為100。除此之外,在排序模型中將hinge loss中的參數(shù)m設(shè)置為0.5。最后,使用Adam[18]算法作為優(yōu)化算法。

3.2 實(shí)驗(yàn)結(jié)果及分析

首先,用實(shí)驗(yàn)證明領(lǐng)域詞的復(fù)述替換和字符級(jí)向量的有效性。公平起見(jiàn),詞向量和字向量在模型訓(xùn)練時(shí)都會(huì)被更新。使用CNN作為短文本編碼器,Bi-LSTM作為長(zhǎng)文本編碼器,使用正例擴(kuò)展策略訓(xùn)練模型。

表4 復(fù)述替換和向量表示的對(duì)比實(shí)驗(yàn)

如表4所示,可以發(fā)現(xiàn)字向量的表現(xiàn)要優(yōu)于詞向量的表現(xiàn)。正如上文所說(shuō),不同的短語(yǔ)在不同的句子中有著不同的分詞結(jié)果,不同的分詞結(jié)果導(dǎo)致其詞向量的組合也不一致,這無(wú)疑會(huì)導(dǎo)致一定的語(yǔ)義偏差。以短語(yǔ)“指示燈亮”為例,其可能被分割為“指示”和“燈亮”,也可能被分割為“指示燈”和“亮”。很明顯這兩組分割有著不同的語(yǔ)義。因此使用詞向量,同一短語(yǔ)會(huì)有著不同的語(yǔ)義組合,導(dǎo)致模型判斷出錯(cuò)。字向量的缺點(diǎn)在于一個(gè)字在不同的詞中會(huì)有不同的語(yǔ)義,使用字向量無(wú)法解決語(yǔ)義的歧義性問(wèn)題。但由于語(yǔ)料是特定領(lǐng)域的語(yǔ)料,包含的詞的規(guī)模有限,因此該問(wèn)題造成的影響相對(duì)較小,與其帶來(lái)的效果提升相比可以暫時(shí)忽略。

另外,無(wú)論使用詞向量或是字向量,領(lǐng)域詞的復(fù)述替換均有效提升了模型的準(zhǔn)確率。無(wú)論在字符級(jí)還是詞級(jí)別,領(lǐng)域詞和其復(fù)述均有著不同的向量表示。雖然模型在訓(xùn)練的過(guò)程中會(huì)將這些不同表示聚類(lèi)在一起,但仍有可能出錯(cuò)。所以使用復(fù)述詞典將領(lǐng)域詞所有不同的表示轉(zhuǎn)化為單一的表示,使模型可以更簡(jiǎn)單地判斷出兩段文本是否相關(guān)。

表5 針對(duì)復(fù)述對(duì)“停車(chē)”和“關(guān)閉發(fā)動(dòng)機(jī)”模型是否使用復(fù)述替換的對(duì)比樣例

表5展示了1個(gè)樣例?!瓣P(guān)閉發(fā)動(dòng)機(jī)”和“停車(chē)”在語(yǔ)料中往往代表著幾乎相同的含義。在模型對(duì)“怎樣停車(chē)?”這一問(wèn)題進(jìn)行預(yù)測(cè)時(shí),如果使用復(fù)述替換,則可以找到正確的文檔“關(guān)閉發(fā)動(dòng)機(jī)”;而不使用復(fù)述替換時(shí),則找到了錯(cuò)誤的文檔“ISS啟停系統(tǒng)”。

接著,為了說(shuō)明2種訓(xùn)練策略是有效的,設(shè)計(jì)了另一組實(shí)驗(yàn)。同樣使用CNN作為短文本編碼器,Bi-LSTM作為長(zhǎng)文本編碼器?;A(chǔ)訓(xùn)練策略是只使用原始數(shù)據(jù)作為模型的輸入,既不擴(kuò)展正例,也不將模型轉(zhuǎn)化為排序模型。實(shí)驗(yàn)結(jié)果如表6所示。

從表6中可以看出,提出的兩種訓(xùn)練策略均可以提升系統(tǒng)的準(zhǔn)確率。而正例擴(kuò)展策略的實(shí)驗(yàn)結(jié)果要更優(yōu)于排序模型。通過(guò)分析實(shí)驗(yàn)結(jié)果和模型結(jié)構(gòu)發(fā)現(xiàn),與原始模型相比排序模型訓(xùn)練相對(duì)困難,不易找到最優(yōu)參數(shù),無(wú)法得到最優(yōu)解。而另一種策略則更加直接簡(jiǎn)單,同時(shí)由于訓(xùn)練樣例數(shù)量的增多,尤其是正例樣本的數(shù)量增多,模型可以學(xué)到更多關(guān)于正例的信息,訓(xùn)練也更加充分,并更容易學(xué)習(xí)到正例和負(fù)例之間的區(qū)別,獲取更優(yōu)的分類(lèi)效果。因此最終選擇了正例擴(kuò)展策略作為最終的訓(xùn)練策略。

表6 不同訓(xùn)練策略的對(duì)比實(shí)驗(yàn)

最后對(duì)不同的編碼器作用于不同長(zhǎng)度文本所產(chǎn)生的效果進(jìn)行對(duì)比,結(jié)果見(jiàn)表7。對(duì)于所有的模型,均使用字向量、復(fù)述替換和正例擴(kuò)展策略。

表7 編碼器對(duì)比實(shí)驗(yàn)

如表7所示,在短文本上,CNN的效果要優(yōu)于Bi-LSTM。正如上文所說(shuō),問(wèn)題、標(biāo)題、摘要的語(yǔ)義信息比較精煉,在文本上則通常包含了最關(guān)鍵的詞匯,一旦關(guān)鍵詞得到了匹配,就可以判定文檔和問(wèn)題是否相關(guān)。而CNN則擅于捕獲關(guān)鍵信息,因此在短文本上CNN的效果要更好。而在長(zhǎng)文本上,實(shí)驗(yàn)結(jié)果也驗(yàn)證了本文方法的有效性。由于文檔內(nèi)容過(guò)長(zhǎng),需要從全局的角度計(jì)算其與問(wèn)題的相關(guān)度。而B(niǎo)i-LSTM則可以將長(zhǎng)文本的語(yǔ)義信息熔煉到單一向量中,并忽略文本中不重要的信息,因此其效果要更好。

通過(guò)一系列實(shí)驗(yàn),系統(tǒng)最終選擇CNN作為短文本編碼器,Bi-LSTM作為長(zhǎng)文本編碼器,使用復(fù)述替換和字向量作為補(bǔ)充,并使用正例擴(kuò)展作為訓(xùn)練策略。

最后,將模型同傳統(tǒng)的基于特征抽取的算法進(jìn)行對(duì)比,使用了2-gram相似度、詞共現(xiàn)以及詞向量間的余弦相似度作為特征,對(duì)候選文檔進(jìn)行排序。

表8 模型對(duì)比實(shí)驗(yàn)

實(shí)驗(yàn)結(jié)果如表8所示,可以看出,本文算法要明顯優(yōu)于基于傳統(tǒng)的特征抽取的檢索算法。

4 結(jié)論

為了更好地幫助用戶(hù)使用汽車(chē)說(shuō)明書(shū),本文在汽車(chē)說(shuō)明書(shū)領(lǐng)域設(shè)計(jì)了一個(gè)新的問(wèn)答系統(tǒng)。為了解決該任務(wù)中的文檔表示問(wèn)題設(shè)計(jì)了CNN和Bi-LSTM相結(jié)合的神經(jīng)網(wǎng)絡(luò)模型,而為了解決領(lǐng)域詞相關(guān)問(wèn)題,結(jié)合了領(lǐng)域詞的復(fù)述詞典,并用字向量替代詞向量。同時(shí)為了解決數(shù)據(jù)不均衡問(wèn)題,設(shè)計(jì)了2種訓(xùn)練策略,并選擇其中的正例擴(kuò)展策略來(lái)解決數(shù)據(jù)不均衡的問(wèn)題。實(shí)驗(yàn)結(jié)果也驗(yàn)證了本文模型的有效性。但系統(tǒng)還有一定的不足,首先人工構(gòu)建的復(fù)述詞典規(guī)模較小,無(wú)法覆蓋所有復(fù)述詞;其次系統(tǒng)無(wú)法很好地回答過(guò)于細(xì)節(jié)和需要常識(shí)進(jìn)行推理的問(wèn)題。在未來(lái)的工作中,將嘗試自動(dòng)構(gòu)建領(lǐng)域詞的復(fù)述詞典,并嘗試新的深度學(xué)習(xí)模型來(lái)捕獲更為細(xì)節(jié)的問(wèn)題,并引入外部知識(shí)解決需要推理的問(wèn)題。

猜你喜歡
編碼器排序文檔
融合CNN和Transformer編碼器的變聲語(yǔ)音鑒別與還原
淺談Matlab與Word文檔的應(yīng)用接口
有人一聲不吭向你扔了個(gè)文檔
作者簡(jiǎn)介
恐怖排序
節(jié)日排序
基于雙增量碼道的絕對(duì)式編碼器設(shè)計(jì)
Word文檔 高效分合有高招
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
基于數(shù)字信號(hào)處理的脈沖編碼器
清河县| 米泉市| 霍山县| 延津县| 杭州市| 云南省| 祁阳县| 维西| 麻城市| 双柏县| 江西省| 揭东县| 邮箱| 滁州市| 大足县| 井研县| 大竹县| 德阳市| 咸丰县| 滨州市| 鹤壁市| 当阳市| 大竹县| 黄石市| 柳林县| 陆丰市| 宣化县| 息烽县| 安新县| 金溪县| 翼城县| 阳城县| 晋宁县| 和龙市| 伊宁县| 铁岭市| 马山县| 郴州市| 嵊泗县| 宜丰县| 漳浦县|