本申請(qǐng)涉及自然語(yǔ)言理解技術(shù)領(lǐng)域,尤其涉及一種文本語(yǔ)義理解方法、裝置和系統(tǒng)。
背景技術(shù):
作為人工智能領(lǐng)域中重要方向之一的自然語(yǔ)言理解技術(shù),一直是相關(guān)領(lǐng)域研究人員研究的熱點(diǎn)。特別是近年來(lái),隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,信息化程度日益提高,人們?cè)桨l(fā)渴望能讓機(jī)器理解自然語(yǔ)言,從而實(shí)現(xiàn)減少人工投入、海量數(shù)據(jù)共享等目標(biāo)。
相關(guān)技術(shù)中,主流方法是基于循環(huán)神經(jīng)網(wǎng)絡(luò)的文本語(yǔ)義理解方法和基于卷積神經(jīng)網(wǎng)絡(luò)的文本語(yǔ)義理解方法。但是,通常的循環(huán)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)都難以優(yōu)化,具體而言,如果不增加深度,文本語(yǔ)義理解效果較差,而如果增加深度,訓(xùn)練和優(yōu)化的錯(cuò)誤率就會(huì)增加,難以得到準(zhǔn)確的訓(xùn)練模型,從而語(yǔ)義理解錯(cuò)誤率也較高。因此,相關(guān)技術(shù)中的文本語(yǔ)義理解方法的效果并不理想。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問(wèn)題之一。
為此,本申請(qǐng)的一個(gè)目的在于提出一種文本語(yǔ)義理解方法,該方法可以提升文本語(yǔ)義理解效果。
本申請(qǐng)的另一個(gè)目的在于提出一種文本語(yǔ)義理解裝置。
本申請(qǐng)的另一個(gè)目的在于提出一種文本語(yǔ)義理解系統(tǒng)。
為達(dá)到上述目的,本申請(qǐng)第一方面實(shí)施例提出的文本語(yǔ)義理解方法,包括:接收待語(yǔ)義理解的文本;根據(jù)預(yù)先構(gòu)建的深度殘差網(wǎng)絡(luò)模型,對(duì)所述待語(yǔ)義理解的文本進(jìn)行語(yǔ)義理解,得到語(yǔ)義理解結(jié)果。
為達(dá)到上述目的,本申請(qǐng)第二方面實(shí)施例提出的文本語(yǔ)義理解裝置,包括:接收模塊,用于接收待語(yǔ)義理解的文本;語(yǔ)義理解模塊,用于根據(jù)預(yù)先構(gòu)建的深度殘差網(wǎng)絡(luò)模型,對(duì)所述待語(yǔ)義理解的文本進(jìn)行語(yǔ)義理解,得到語(yǔ)義理解結(jié)果。
為達(dá)到上述目的,本申請(qǐng)第三方面實(shí)施例提出的文本語(yǔ)義理解系統(tǒng),包括:客戶端,用于接收用戶輸入的待語(yǔ)義理解的文本;服務(wù)端,用于接收客戶端發(fā)送的所述待語(yǔ)義理解的文本,以及,根據(jù)預(yù)先構(gòu)建的深度殘差網(wǎng)絡(luò)模型,對(duì)所述待語(yǔ)義理解的文本進(jìn)行語(yǔ)義理解,得到語(yǔ)義理解結(jié)果。
本申請(qǐng)實(shí)施例中,在文本語(yǔ)義理解時(shí)引入深度殘差網(wǎng)絡(luò)模型,由于深度殘差網(wǎng)絡(luò)存在捷徑(shortcut),使得網(wǎng)絡(luò)間的數(shù)據(jù)流通更為順暢,利于增加網(wǎng)絡(luò)深度,進(jìn)而可以采用更深層網(wǎng)絡(luò)對(duì)數(shù)據(jù)進(jìn)行更好擬合以及對(duì)特征進(jìn)行更高層的抽象,從而提升文本語(yǔ)義理解效果。
本申請(qǐng)附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本申請(qǐng)的實(shí)踐了解到。
附圖說(shuō)明
本申請(qǐng)上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
圖1是本申請(qǐng)一個(gè)實(shí)施例提出的文本語(yǔ)義理解方法的流程示意圖;
圖2是本申請(qǐng)另一個(gè)實(shí)施例提出的文本語(yǔ)義理解方法的流程示意圖;
圖3是本申請(qǐng)實(shí)施例中構(gòu)建深度殘差網(wǎng)絡(luò)模型的方法的流程示意圖;
圖4是本申請(qǐng)實(shí)施例中的深度殘差網(wǎng)絡(luò)模型的一種拓?fù)浣Y(jié)構(gòu)示意圖;
圖5是本申請(qǐng)實(shí)施例中注意力層的一種運(yùn)算過(guò)程示意圖;
圖6是本申請(qǐng)一個(gè)實(shí)施例提出的文本語(yǔ)義理解裝置的結(jié)構(gòu)示意圖;
圖7是本申請(qǐng)另一個(gè)實(shí)施例提出的文本語(yǔ)義理解裝置的結(jié)構(gòu)示意圖;
圖8是本申請(qǐng)一個(gè)實(shí)施例提出的文本語(yǔ)義理解系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面詳細(xì)描述本申請(qǐng)的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的模塊或具有相同或類似功能的模塊。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本申請(qǐng),而不能理解為對(duì)本申請(qǐng)的限制。相反,本申請(qǐng)的實(shí)施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
圖1是本申請(qǐng)一個(gè)實(shí)施例提出的文本語(yǔ)義理解方法的流程示意圖。
如圖1所示,本實(shí)施例的方法包括:
S11:接收待語(yǔ)義理解的文本。
具體應(yīng)用時(shí),可以由用戶在客戶端輸入待語(yǔ)義理解的文本,再由客戶端發(fā)送給服務(wù)端,從而服務(wù)端接收到客戶端發(fā)送的待語(yǔ)義理解的文本。
S12:根據(jù)預(yù)先構(gòu)建的深度殘差網(wǎng)絡(luò)模型,對(duì)所述待語(yǔ)義理解的文本進(jìn)行語(yǔ)義理解,得到語(yǔ)義理解結(jié)果。
具體的,服務(wù)端可以預(yù)先構(gòu)建深度殘差網(wǎng)絡(luò)模型,當(dāng)服務(wù)端接收到客戶端發(fā)送的待語(yǔ)義理解的文本后,根據(jù)預(yù)先構(gòu)建的深度殘差網(wǎng)絡(luò)模型,對(duì)待語(yǔ)義理解的文本進(jìn)行語(yǔ)義理解,得到語(yǔ)義理解結(jié)果。具體的構(gòu)建深度殘差網(wǎng)絡(luò)模型的內(nèi)容可以參見后續(xù)描述。
進(jìn)一步的,為了與深度殘差網(wǎng)絡(luò)模型匹配,在語(yǔ)義理解之前,還可以先對(duì)待語(yǔ)義理解的文本進(jìn)行預(yù)處理。比如,在構(gòu)建深度殘差網(wǎng)絡(luò)模型時(shí),需要先收集訓(xùn)練文本,再對(duì)訓(xùn)練文本進(jìn)行預(yù)處理,以便依據(jù)預(yù)處理后的訓(xùn)練文本構(gòu)建得到深度殘差網(wǎng)絡(luò)模型。
一般來(lái)講,對(duì)待語(yǔ)義理解的文本或訓(xùn)練文本進(jìn)行的預(yù)處理包括:分詞、向量化等;分詞是指將文本劃分為各個(gè)詞,向量化是指對(duì)分詞后的每個(gè)詞進(jìn)行向量化,得到每個(gè)詞的詞向量。具體的分詞和向量化方法可以參見包括已有技術(shù)在內(nèi)的各種相關(guān)技術(shù),在此不再詳述。
在對(duì)待語(yǔ)義理解的文本進(jìn)行分詞和向量化后,可以得到待語(yǔ)義理解的文本中詞的詞向量,由這些詞向量可以組成詞向量矩陣,假設(shè)詞向量用行向量表示,則詞向量矩陣的每行為待語(yǔ)義理解的文本中每個(gè)詞的詞向量。在得到詞向量矩陣后,將詞向量矩陣作為預(yù)先構(gòu)建的深度殘差網(wǎng)絡(luò)模型的輸入,模型輸出即為待語(yǔ)義理解的文本的語(yǔ)義理解結(jié)果。以預(yù)測(cè)判決結(jié)果為例,待語(yǔ)義理解的文本為案情內(nèi)容,語(yǔ)義理解結(jié)果為預(yù)測(cè)得到的判決結(jié)果,如罪名、罰金、刑期等信息中的一項(xiàng)或多項(xiàng)。
需要說(shuō)明的是,本申請(qǐng)實(shí)施例中所涉及的文本語(yǔ)義理解一般是指任務(wù)型語(yǔ)義理解,即需要完成特定任務(wù),比如需要預(yù)測(cè)罪名、罰金、刑期等信息中的一項(xiàng)或多項(xiàng)。
依據(jù)要完成的任務(wù),深度殘差網(wǎng)絡(luò)模型的類別可以相應(yīng)設(shè)置,比如,深度殘差網(wǎng)絡(luò)模型可以是回歸模型,比如預(yù)測(cè)罰金和/或刑期時(shí)使用回歸模型;或者,深度殘差網(wǎng)絡(luò)模型可以是分類模型,比如預(yù)測(cè)罪名時(shí)使用分類模型;或者,深度殘差網(wǎng)絡(luò)模型可以是回歸-分類聯(lián)合模型,比如既要預(yù)測(cè)罪名,還要預(yù)測(cè)罰金和/或刑期時(shí)使用回歸-分類聯(lián)合模型。
進(jìn)一步的,如果要完成多個(gè)任務(wù),可以采用多任務(wù)同步處理機(jī)制。比如要預(yù)測(cè)罪名、罰金和刑期這三項(xiàng)信息時(shí),在構(gòu)建深度殘差網(wǎng)絡(luò)模型時(shí),通過(guò)對(duì)整體損失函數(shù)進(jìn)行最小化確定模型參數(shù),整體損失函數(shù)是基于各個(gè)任務(wù)的損失函數(shù)得到的,比如整體損失函數(shù)為上述三個(gè)任務(wù)的損失函數(shù)的線性加權(quán)函數(shù),從而在文本語(yǔ)義理解時(shí),可以由深度殘差網(wǎng)絡(luò)模型同步輸出這三項(xiàng)信息。
需要說(shuō)明的是,上述以在線的文本語(yǔ)義理解為例,在實(shí)際實(shí)施時(shí),并不限于在線方式,還可以采用離線方式,比如在終端本地完成文本語(yǔ)義理解,此時(shí),可以是由終端接收待語(yǔ)義理解的文本,以及由終端根據(jù)預(yù)先構(gòu)建的深度殘差網(wǎng)絡(luò)模型,對(duì)所述待語(yǔ)義理解的文本進(jìn)行語(yǔ)義理解,得到語(yǔ)義理解結(jié)果?;蛘?,也可以理解為,在實(shí)際實(shí)施時(shí),上述的客戶端和服務(wù)端分別位于不同設(shè)備中,如客戶端位于終端中,服務(wù)端位于與終端網(wǎng)絡(luò)連接的服務(wù)器中;或者,上述的客戶端和服務(wù)端可以位于同一個(gè)設(shè)備中,比如客戶端和服務(wù)端均位于終端中。
本實(shí)施例中,在文本語(yǔ)義理解時(shí)引入深度殘差網(wǎng)絡(luò)模型,由于深度殘差網(wǎng)絡(luò)存在捷徑(shortcut),使得網(wǎng)絡(luò)間的數(shù)據(jù)流通更為順暢,利于增加網(wǎng)絡(luò)深度,進(jìn)而可以采用更深層網(wǎng)絡(luò)對(duì)數(shù)據(jù)進(jìn)行更好擬合以及對(duì)特征進(jìn)行更高層的抽象,從而提升文本語(yǔ)義理解效果。
圖2是本申請(qǐng)另一個(gè)實(shí)施例提出的文本語(yǔ)義理解方法的流程示意圖。
本實(shí)施例以客戶端與服務(wù)端結(jié)合實(shí)施為例。
參見圖2,本實(shí)施例的方法包括:
S21:服務(wù)端構(gòu)建深度殘差網(wǎng)絡(luò)模型。
具體內(nèi)容可以參見后續(xù)描述。
S22:客戶端接收用戶輸入的待語(yǔ)義理解的文本。
比如,待語(yǔ)義理解的文本為待預(yù)測(cè)判決結(jié)果的案情內(nèi)容。
S23:客戶端將待語(yǔ)義理解的文本發(fā)送給服務(wù)端。
S24:服務(wù)端接收客戶端發(fā)送的待語(yǔ)義理解的文本。
S25:服務(wù)端對(duì)待語(yǔ)義理解的文本進(jìn)行預(yù)處理,得到預(yù)處理后的文本。
預(yù)處理例如包括:對(duì)文本進(jìn)行分詞以及對(duì)分詞后的各個(gè)詞進(jìn)行向量化,之后還可以將各個(gè)詞的詞向量組成詞向量矩陣。
S26:服務(wù)端根據(jù)預(yù)先構(gòu)建的深度殘差網(wǎng)絡(luò)模型,對(duì)預(yù)處理后的待語(yǔ)義理解的文本進(jìn)行語(yǔ)義理解,得到語(yǔ)義理解結(jié)果。
比如,將詞向量矩陣作為預(yù)先構(gòu)建的深度殘差網(wǎng)絡(luò)模型的輸入,模型輸出即為待語(yǔ)義理解的文本的語(yǔ)義理解結(jié)果。以預(yù)測(cè)判決結(jié)果為例,待語(yǔ)義理解的文本為案情內(nèi)容,語(yǔ)義理解結(jié)果為預(yù)測(cè)得到的判決結(jié)果,如罪名、罰金、刑期等信息中的一項(xiàng)或多項(xiàng)。
S22-S26的具體內(nèi)容可以參見上一實(shí)施例中的相關(guān)描述,在此不再詳述。
S27:服務(wù)端將語(yǔ)義理解結(jié)果發(fā)送給客戶端。
S28:客戶端將語(yǔ)義理解結(jié)果反饋給用戶。
下面對(duì)深度殘差網(wǎng)絡(luò)模型的構(gòu)建進(jìn)行說(shuō)明。
如圖3所示,構(gòu)建深度殘差網(wǎng)絡(luò)模型的方法包括:
S31:收集訓(xùn)練文本,并對(duì)所述訓(xùn)練文本進(jìn)行預(yù)處理,以及,獲取所述訓(xùn)練文本的標(biāo)注信息,所述標(biāo)注信息包括語(yǔ)義理解結(jié)果。
本實(shí)施例以依據(jù)案情內(nèi)容進(jìn)行判決預(yù)測(cè)為例進(jìn)行詳細(xì)說(shuō)明。
基于上述示例,可以收集大量已有的案情內(nèi)容所在的文本作為訓(xùn)練文本。案情內(nèi)容是指對(duì)案件情況進(jìn)行說(shuō)明的內(nèi)容,比如包括當(dāng)事人信息、發(fā)生的案件事件信息等。
在收集到上述的訓(xùn)練文本后,對(duì)其進(jìn)行預(yù)處理。
預(yù)處理包括分詞和向量化,從而得到訓(xùn)練文本中各個(gè)詞的詞向量,以及由詞向量組成訓(xùn)練文本對(duì)應(yīng)的詞向量矩陣。
另外,在構(gòu)建模型時(shí),還需要對(duì)訓(xùn)練文本進(jìn)行標(biāo)注,以將標(biāo)注結(jié)果作為模型輸出,從而訓(xùn)練生成模型。在標(biāo)注時(shí)可以由專家等進(jìn)行人工標(biāo)注,標(biāo)注的信息為訓(xùn)練文本的語(yǔ)義理解結(jié)果,基于上述示例,標(biāo)注信息主要包括判決結(jié)果,比如標(biāo)注罪名、罰金、刑期等。
S32:確定深度殘差網(wǎng)絡(luò)模型的拓?fù)浣Y(jié)構(gòu)。
具體的拓?fù)浣Y(jié)構(gòu)可以根據(jù)應(yīng)用需求設(shè)定。
本實(shí)施例采用的一種拓?fù)浣Y(jié)構(gòu)如圖4所示。對(duì)圖4所示的拓?fù)浣Y(jié)構(gòu)中各層的說(shuō)明如下:
輸入層:用于輸入文本的詞向量矩陣,以詞向量為行向量為例,則詞向量矩陣的每一行為文本中每個(gè)詞的詞向量。例如,限定文本長(zhǎng)度為500個(gè)詞,每個(gè)詞向量維度為100,那么詞向量矩陣的大小就是500*100(行數(shù)為500,列數(shù)為100,下同)。上述的文本在構(gòu)建模型時(shí)是指訓(xùn)練文本,在語(yǔ)義理解時(shí)是指待語(yǔ)義理解的文本。
卷積層:用于采用卷積窗,對(duì)輸入的詞向量矩陣進(jìn)行卷積運(yùn)算。與圖像處理時(shí)通常采用的二維方向上大小相同(如3*3)的卷積窗不同的是,本實(shí)施例采用的卷積窗的一個(gè)維度的大小與詞向量的大小相同,另一維度的大小可設(shè)置。以詞向量為行向量為例,則卷積窗的寬度與詞向量的維度相同,高度是可設(shè)置的值,假設(shè)高度設(shè)置為5,則卷積窗的大小就是5*100。卷積窗的步長(zhǎng)也是可設(shè)置的,比如設(shè)置步長(zhǎng)為1,則通過(guò)一個(gè)卷積窗的滑動(dòng)及卷積運(yùn)算,可以得到維度為496(500-5+1)的向量。進(jìn)一步的,卷積窗的個(gè)數(shù)可以為多個(gè),多個(gè)卷積窗的高度和/或步長(zhǎng)可以選為相同或不同。當(dāng)多個(gè)卷積窗存在不同的參數(shù)信息時(shí),經(jīng)過(guò)卷積運(yùn)算后可以得到不同長(zhǎng)度詞組的特征,這些不同長(zhǎng)度詞組的特征組合在一起,可以更加全面地對(duì)文本進(jìn)行抽象表示,從而獲得更好的效果。比如,卷積窗的個(gè)數(shù)為256個(gè),每個(gè)卷積窗的參數(shù)基于上述的卷積窗大小和步長(zhǎng),則可以組成大小為496*256的矩陣,該矩陣的每一列為一個(gè)卷積窗對(duì)應(yīng)的維度為496的向量,該矩陣可以表征256種詞組的特征。
池化層:與卷積層輸出直接連接的池化層可以稱為一次池化層,用于對(duì)卷積層得到的向量進(jìn)行池化。具體的,對(duì)應(yīng)卷積層的每個(gè)卷積窗對(duì)應(yīng)的向量,采用池化窗進(jìn)行池化,假設(shè)卷積窗對(duì)應(yīng)的向量為列向量,則池化窗的寬度為1,高度和步長(zhǎng)是可設(shè)置的值,比如,基于上述示例,卷積窗對(duì)應(yīng)的向量的維度是496,假設(shè)池化窗的高度步長(zhǎng)分別是5和1,則經(jīng)過(guò)池化運(yùn)算后,可以得到維度為492(496-5+1)的向量。如果卷積層采用了多個(gè)卷積窗,則分別對(duì)每個(gè)卷積窗對(duì)應(yīng)的向量進(jìn)行池化處理,比如,卷積層得到的向量可以組成496*256的矩陣,則經(jīng)過(guò)上述池化運(yùn)算后,可以得到492*256的矩陣,該矩陣的每一列為對(duì)每個(gè)卷積窗對(duì)應(yīng)的向量進(jìn)行池化后的向量。
需要說(shuō)明的是,雖然依據(jù)語(yǔ)義理解場(chǎng)景對(duì)卷積窗和池化窗的大小進(jìn)行了上述說(shuō)明,但具體的卷積運(yùn)算和池化運(yùn)算可以采用包括已有技術(shù)在內(nèi)的各種相關(guān)技術(shù)實(shí)現(xiàn),比如卷積運(yùn)算采用卷積窗內(nèi)的元素與設(shè)置的濾波參數(shù)相乘后再相加的運(yùn)算,池化運(yùn)算采用池化窗內(nèi)的元素取最大值的運(yùn)算等。
殘差單元層:由兩部分組成,一部分為卷積層級(jí)聯(lián),另一部分為捷徑(shortcut)。卷積層級(jí)聯(lián)部分包括多個(gè)相互級(jí)聯(lián)的卷積層,具體所包括的卷積層個(gè)數(shù)、每個(gè)卷積層所采用的卷積窗的個(gè)數(shù)、卷積窗的高度和步長(zhǎng)可根據(jù)實(shí)際應(yīng)用情況和大量實(shí)驗(yàn)結(jié)果和經(jīng)驗(yàn)等進(jìn)行調(diào)節(jié)。捷徑部分是指將輸入直接或?qū)斎脒M(jìn)行線性變換后與卷積層級(jí)聯(lián)部分的輸出相加,再經(jīng)過(guò)激活函數(shù)對(duì)相加后的值進(jìn)行激活。需要說(shuō)明的是,為了加深網(wǎng)絡(luò)層數(shù),提取更高層次特征,提高模型效果,整個(gè)殘差單元層可以進(jìn)行多次重復(fù)運(yùn)算。卷積層級(jí)聯(lián)部分每個(gè)卷積層的運(yùn)算可以參照上述已描述的卷積層的運(yùn)算,在此不再詳述。
池化層:與殘差單元層輸出直接連接的池化層可以稱為二次池化層,用于對(duì)殘差單元層輸出的向量進(jìn)行池化。
丟棄層(dropout)、融合層(merge)、全連接層、隱層(具體也可以為全連接層)的具體內(nèi)容可以參見相關(guān)技術(shù),在此不再詳述。
輸出層:用于輸出文本語(yǔ)義理解結(jié)果。基于上述示例,在對(duì)待語(yǔ)義理解的文本進(jìn)行語(yǔ)義理解時(shí),輸出層的輸出為預(yù)測(cè)得到的判決結(jié)果;在構(gòu)建深度殘差網(wǎng)絡(luò)模型時(shí),輸出層的輸出為標(biāo)注的判決結(jié)果。以多任務(wù)為例,輸出的具體信息如罪名、刑期和罰金;以單任務(wù)為例,輸出的具體信息如罪名、刑期、罰金中的一項(xiàng)。
輔助輸入層:用于輸入先驗(yàn)信息,先驗(yàn)信息是一些人工整理的對(duì)文本語(yǔ)義理解有幫助的特征,基于上述示例,如是否自首、犯罪嫌疑人年齡等。
輔助輸入層具體可以包括兩部分,一部分是輸入部分,另一部分是變換部分。輸入部分用于輸入先驗(yàn)信息,并對(duì)先驗(yàn)信息進(jìn)行向量化;變換部分用于對(duì)向量化后的先驗(yàn)信息進(jìn)行向量變換。
對(duì)先驗(yàn)信息進(jìn)行向量化時(shí)可以采用詞向量的方案實(shí)現(xiàn),即得到先驗(yàn)信息的詞向量;或者,也可以采取0-1向量的方式,即當(dāng)一個(gè)要素出現(xiàn)那么把對(duì)應(yīng)維度設(shè)為1,否則未出現(xiàn)則設(shè)置為0,例如先驗(yàn)信息總共有10種要素,那么就是一個(gè)10維的二進(jìn)制(binary)向量,其中某個(gè)要素如果出現(xiàn),那么就將此維設(shè)為1,未出現(xiàn)則設(shè)置為0。
對(duì)先驗(yàn)信息進(jìn)行向量化后,一般可根據(jù)實(shí)際情況選擇卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)、長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)或者多層感知器(Multi-Layer Perceptron,MLP)進(jìn)行向量變換,以得到更全面準(zhǔn)確的特征向量,比如如果認(rèn)為要素之間存在前后聯(lián)系,那么采用LSTM效果會(huì)更好,圖4中以將向量化后的先驗(yàn)信息稱為輔助特征向量,向量變換選為MLP為例。
需要說(shuō)明的是:輔助輸入的特征往往是一些比較重要的特征,所以這一層一般放在dropout層之后。在輔助輸入特征中對(duì)于不可枚舉詞(如數(shù)詞)因其在訓(xùn)練數(shù)據(jù)中數(shù)據(jù)量稀疏的問(wèn)題,會(huì)使得該特征作用大大減小,從而會(huì)對(duì)一些對(duì)數(shù)詞敏感的問(wèn)題產(chǎn)生較大影響,因此可采用標(biāo)簽(label)抽象的形式解決,具體做法:將數(shù)詞規(guī)整為離散化標(biāo)簽的方式來(lái)解決這個(gè)問(wèn)題,如把數(shù)詞規(guī)整為【小于1000】、【1000-5000】等,區(qū)間的劃分則需根據(jù)具體任務(wù)確定。
注意力層(Attention):主要功能在于將輸入中的重要詞凸顯出來(lái),把非重要詞影響降低。
具體實(shí)現(xiàn):所述注意力層包括:
非線性變換部分,用于對(duì)輸入矩陣進(jìn)行非線性變換,得到非線性變換后的矩陣,所述輸入矩陣由各個(gè)詞組的詞向量組成;比如,對(duì)應(yīng)輸入矩陣中的各個(gè)詞向量,先采用轉(zhuǎn)換矩陣和偏移向量進(jìn)行線性變換,再采用非線性的激活函數(shù)進(jìn)行轉(zhuǎn)換,得到各個(gè)轉(zhuǎn)換后的詞向量,再由轉(zhuǎn)換后的詞向量組成轉(zhuǎn)換后的矩陣,各個(gè)詞向量對(duì)應(yīng)的轉(zhuǎn)換矩陣和偏移向量可共享,即可設(shè)置為相同的。
權(quán)重控制部分,用于采用預(yù)設(shè)向量分別與非線性變換后的矩陣中的各個(gè)詞組的詞向量做內(nèi)積,得到控制向量;預(yù)設(shè)向量是可設(shè)置的,并且預(yù)設(shè)向量與詞向量的大小相同,比如詞向量是N維的,則預(yù)設(shè)向量也為N維的。
權(quán)重分配部分,用于對(duì)所述控制向量進(jìn)行權(quán)重分配,得到權(quán)重向量;權(quán)重分配時(shí)可以采用分類函數(shù)對(duì)控制向量進(jìn)行操作,如分類函數(shù)是softmax時(shí),分別求取控制向量中各個(gè)元素的概率值,再由計(jì)算得到的概率值組成權(quán)重向量;
組合部分,用于采用所述權(quán)重向量對(duì)所述輸入矩陣中不同詞組的詞向量進(jìn)行線性組合,得到注意力層的輸出;具體也可以采用內(nèi)積運(yùn)算,可理解為權(quán)重向量是各個(gè)詞向量的權(quán)重,通過(guò)權(quán)重向量與不同詞向量進(jìn)行內(nèi)積運(yùn)算,可以得到不同詞向量的加權(quán)和,將加權(quán)和作為線性組合的結(jié)果。
如圖5所示,為attention層運(yùn)算的一個(gè)具體示例。對(duì)于待語(yǔ)義理解文本:“被告人王某入室盜竊被害人財(cái)物1000元”,經(jīng)過(guò)分詞、向量化、卷積、一次池化、殘差單元運(yùn)算及二次池化之后,假設(shè)變成一個(gè)M*N維的矩陣I,即M行N列的矩陣,可認(rèn)為是M個(gè)詞組,每個(gè)詞組用N維的行向量表示。經(jīng)過(guò)attention層具體實(shí)現(xiàn)包括:
(1)對(duì)輸入矩陣I進(jìn)行非線性變換,當(dāng)各個(gè)詞向量共享參數(shù)時(shí),用公式表示為:
其中,I’是對(duì)輸入矩陣I進(jìn)行非線性變換后得到的矩陣;Ii'是矩陣I'的第i行的行向量;Ii是矩陣的第i行的行向量;是行向量Ii轉(zhuǎn)置后得到的列向量;σ是非線性變換函數(shù),如sigmoid或tanh等慣用激活函數(shù);W和b是變換參數(shù),可設(shè)置;假設(shè)W是N’*N維的矩陣,b是一維的數(shù)值,則為一個(gè)N’維的列向量;是列向量轉(zhuǎn)置后得到的行向量;從而,非線性變換后的矩陣I’是M*N’維的矩陣;上述的N’與后續(xù)引入的變量U的維度相同;
(2)引入外部變量U(N’維向量,具體元素可設(shè)置),與非線性變換后的矩陣I’中的每一行的行向量分別做內(nèi)積,得到一個(gè)M維的向量,假設(shè)該向量用列向量v表示;
(3)對(duì)列向量v做softmax操作,得到權(quán)重向量P,用公式表示為:P=softmax(v),P是一個(gè)M維的列向量;
(4)用權(quán)重向量P對(duì)輸入矩陣I的不同詞組的詞向量進(jìn)行線性變換,具體可以采用權(quán)重向量P分別與輸入矩陣I的每一個(gè)列向量進(jìn)行內(nèi)積操作,用公式表示為:O={Oj}={dot(P,Ij)},j=1,2,…,N,O是一個(gè)N維的向量,假設(shè)用行向量表示,作為attention層的輸出,O的各個(gè)元素分別用Oj表示,Oj=dot(P,Ij),j=1,2,…,N,Ij表示矩陣I的第j列的列向量,dot(P,Ij)表示向量P和向量Ij進(jìn)行內(nèi)積運(yùn)算。
S33:基于預(yù)處理后的訓(xùn)練文本、所述標(biāo)注信息和所述拓?fù)浣Y(jié)構(gòu)進(jìn)行模型訓(xùn)練,構(gòu)建得到深度殘差網(wǎng)絡(luò)模型。
比如,將訓(xùn)練文本的詞向量作為模型輸入,標(biāo)注的案件判決結(jié)果作為模型輸出,基于拓?fù)浣Y(jié)構(gòu)、模型輸入和模型輸出可以得到損失函數(shù),通過(guò)最小化損失函數(shù)進(jìn)行模型訓(xùn)練,訓(xùn)練出模型各層參數(shù),從而構(gòu)建得到深度殘差網(wǎng)絡(luò)模型。最小化損失函數(shù)時(shí)可以采用各種相關(guān)算法,如誤差反向傳播(Error Back Propagation,BP)算法。
進(jìn)一步的,當(dāng)應(yīng)用于多任務(wù)場(chǎng)景時(shí),模型訓(xùn)練采用的損失函數(shù)可選擇為每個(gè)任務(wù)的損失函數(shù)的線性加權(quán)函數(shù)。
本實(shí)施例中,在文本語(yǔ)義理解時(shí)引入深度殘差網(wǎng)絡(luò)模型,由于深度殘差網(wǎng)絡(luò)存在捷徑(shortcut),使得網(wǎng)絡(luò)間的數(shù)據(jù)流通更為順暢,利于增加網(wǎng)絡(luò)深度,進(jìn)而可以采用更深層網(wǎng)絡(luò)對(duì)數(shù)據(jù)進(jìn)行更好擬合以及對(duì)特征進(jìn)行更高層的抽象,從而提升文本語(yǔ)義理解效果。通過(guò)多任務(wù)同步處理,既減少了訓(xùn)練代價(jià),又實(shí)現(xiàn)多任務(wù)間信息共享,從而提升模型效果,進(jìn)一步提高語(yǔ)義理解效果。通過(guò)引入注意力層,可以對(duì)輸入文本的各個(gè)詞組進(jìn)行權(quán)重分配,從而使得某些重要的詞組得以凸顯出來(lái),進(jìn)一步提升語(yǔ)義理解效果;通過(guò)引入輔助輸入層,可以豐富語(yǔ)義理解特征,進(jìn)一步提升語(yǔ)義理解效果;通過(guò)卷積窗的一個(gè)維度的大小選擇為與詞向量的大小相同,可以對(duì)詞向量整體進(jìn)行操作,進(jìn)一步提升語(yǔ)義理解效果。
圖6是本申請(qǐng)一個(gè)實(shí)施例提出的文本語(yǔ)義理解裝置的結(jié)構(gòu)示意圖。
如圖6所示,該裝置60包括:接收模塊61和語(yǔ)義理解模塊62。
接收模塊61,用于接收待語(yǔ)義理解的文本;
語(yǔ)義理解模塊62,用于根據(jù)預(yù)先構(gòu)建的深度殘差網(wǎng)絡(luò)模型,對(duì)所述待語(yǔ)義理解的文本進(jìn)行語(yǔ)義理解,得到語(yǔ)義理解結(jié)果。
一些實(shí)施例中,參見圖7,該裝置60還包括:
預(yù)處理模塊63,用于對(duì)所述待語(yǔ)義理解的文本進(jìn)行預(yù)處理。
一些實(shí)施例中,參見圖7,該裝置60還包括:用于構(gòu)建深度殘差網(wǎng)絡(luò)模型的構(gòu)建模塊64,所述構(gòu)建模塊64具體用于:
收集訓(xùn)練文本,并對(duì)所述訓(xùn)練文本進(jìn)行預(yù)處理,以及,獲取所述訓(xùn)練文本的標(biāo)注信息,所述標(biāo)注信息包括語(yǔ)義理解結(jié)果;
確定深度殘差網(wǎng)絡(luò)模型的拓?fù)浣Y(jié)構(gòu);
基于預(yù)處理后的訓(xùn)練文本、所述標(biāo)注信息和所述拓?fù)浣Y(jié)構(gòu)進(jìn)行模型訓(xùn)練,構(gòu)建得到深度殘差網(wǎng)絡(luò)模型。
一些實(shí)施例中,所述構(gòu)建模塊64在存在多任務(wù)時(shí),基于多任務(wù)同步處理機(jī)制進(jìn)行模型訓(xùn)練。
一些實(shí)施例中,所述構(gòu)建模塊64在模型訓(xùn)練時(shí),通過(guò)對(duì)整體損失函數(shù)進(jìn)行最小化確定模型參數(shù),其中,所述整體損失函數(shù)為各個(gè)任務(wù)的損失函數(shù)的線性加權(quán)函數(shù)。
一些實(shí)施例中,所述語(yǔ)義理解模塊62采用的深度殘差網(wǎng)絡(luò)模型的拓?fù)浣Y(jié)構(gòu)中包括:輔助輸入層,所述輔助輸入層用于輸入先驗(yàn)信息。
一些實(shí)施例中,所述輔助輸入層包括:
輸入部分,用于輸入先驗(yàn)信息,并對(duì)先驗(yàn)信息進(jìn)行向量化;
變換部分,用于對(duì)向量化后的先驗(yàn)信息進(jìn)行向量變換。
一些實(shí)施例中,所述語(yǔ)義理解模塊62采用的深度殘差網(wǎng)絡(luò)模型的拓?fù)浣Y(jié)構(gòu)中包括:注意力層,所述注意力層包括:
非線性變換部分,用于對(duì)輸入矩陣進(jìn)行非線性變換,得到非線性變換后的矩陣,所述輸入矩陣由各個(gè)詞組的詞向量組成;
權(quán)重控制部分,用于采用預(yù)設(shè)向量分別與非線性變換后的矩陣中的各個(gè)詞組的詞向量做內(nèi)積,得到控制向量;
權(quán)重分配部分,用于對(duì)所述控制向量進(jìn)行權(quán)重分配,得到權(quán)重向量;
組合部分,用于采用所述權(quán)重向量對(duì)所述輸入矩陣中不同詞組的詞向量進(jìn)行線性組合,得到注意力層的輸出。
一些實(shí)施例中,所述語(yǔ)義理解模塊62采用的深度殘差網(wǎng)絡(luò)模型的拓?fù)浣Y(jié)構(gòu)中包括:殘差單元層,所述殘差單元層包括卷積層級(jí)聯(lián)部分和捷徑部分,所述卷積層級(jí)聯(lián)部分包括多個(gè)相互級(jí)聯(lián)的卷積層,所述捷徑部分用于將輸入直接或?qū)斎脒M(jìn)行線性變換后與卷積層級(jí)聯(lián)部分的輸出相加,再對(duì)相加后的值進(jìn)行激活。
可以理解的是,本實(shí)施例的裝置與上述方法實(shí)施例對(duì)應(yīng),具體內(nèi)容可以參見方法實(shí)施例的相關(guān)描述,在此不再詳細(xì)說(shuō)明。
本實(shí)施例中,通過(guò)在文本語(yǔ)義理解時(shí)引入深度殘差網(wǎng)絡(luò)模型,由于深度殘差網(wǎng)絡(luò)存在捷徑(shortcut),使得網(wǎng)絡(luò)間的數(shù)據(jù)流通更為順暢,利于增加網(wǎng)絡(luò)深度,進(jìn)而可以采用更深層網(wǎng)絡(luò)對(duì)數(shù)據(jù)進(jìn)行更好擬合以及對(duì)特征進(jìn)行更高層的抽象,從而提升文本語(yǔ)義理解效果。
圖8是本申請(qǐng)一個(gè)實(shí)施例提出的文本語(yǔ)義理解系統(tǒng)的結(jié)構(gòu)示意圖。
如圖8所示,本實(shí)施例的系統(tǒng)包括:客戶端81和服務(wù)端82。
客戶端81,用于接收用戶輸入的待語(yǔ)義理解的文本;
服務(wù)端82,用于接收客戶端發(fā)送的所述待語(yǔ)義理解的文本,以及,根據(jù)預(yù)先構(gòu)建的深度殘差網(wǎng)絡(luò)模型,對(duì)所述待語(yǔ)義理解的文本進(jìn)行語(yǔ)義理解,得到語(yǔ)義理解結(jié)果。
一些實(shí)施例中,所述服務(wù)端82還用于:將所述語(yǔ)義理解結(jié)果發(fā)送給客戶端;所述客戶端81還用于:接收所述服務(wù)端發(fā)送的語(yǔ)義理解結(jié)果,并將所述語(yǔ)義理解結(jié)果反饋給用戶。
圖8中以客戶端與服務(wù)端通過(guò)無(wú)線網(wǎng)絡(luò)連接為例,可以理解的是,客戶端與服務(wù)端也可以通過(guò)有線網(wǎng)絡(luò)連接,或者,如果客戶端與服務(wù)端集成在同一設(shè)備中,客戶端與服務(wù)端可以通過(guò)設(shè)備內(nèi)部的總線連接。
可以理解的是,服務(wù)端的功能與上述的裝置一致,因此,服務(wù)端的具體組成可以參見圖6或圖7所示的裝置,在此不再詳述。
本實(shí)施例中,通過(guò)在文本語(yǔ)義理解時(shí)引入深度殘差網(wǎng)絡(luò)模型,由于深度殘差網(wǎng)絡(luò)存在捷徑(shortcut),使得網(wǎng)絡(luò)間的數(shù)據(jù)流通更為順暢,利于增加網(wǎng)絡(luò)深度,進(jìn)而可以采用更深層網(wǎng)絡(luò)對(duì)數(shù)據(jù)進(jìn)行更好擬合以及對(duì)特征進(jìn)行更高層的抽象,從而提升文本語(yǔ)義理解效果。
可以理解的是,上述各實(shí)施例中相同或相似部分可以相互參考,在一些實(shí)施例中未詳細(xì)說(shuō)明的內(nèi)容可以參見其他實(shí)施例中相同或相似的內(nèi)容。
需要說(shuō)明的是,在本申請(qǐng)的描述中,術(shù)語(yǔ)“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性。此外,在本申請(qǐng)的描述中,除非另有說(shuō)明,“多個(gè)”的含義是指至少兩個(gè)。
流程圖中或在此以其他方式描述的任何過(guò)程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過(guò)程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本申請(qǐng)的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來(lái)執(zhí)行功能,這應(yīng)被本申請(qǐng)的實(shí)施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。
應(yīng)當(dāng)理解,本申請(qǐng)的各部分可以用硬件、軟件、固件或它們的組合來(lái)實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來(lái)實(shí)現(xiàn)。例如,如果用硬件來(lái)實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來(lái)實(shí)現(xiàn):具有用于對(duì)數(shù)據(jù)信號(hào)實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場(chǎng)可編程門陣列(FPGA)等。
本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法攜帶的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合。
此外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理模塊中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。
上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
在本說(shuō)明書的描述中,參考術(shù)語(yǔ)“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本申請(qǐng)的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書中,對(duì)上述術(shù)語(yǔ)的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。
盡管上面已經(jīng)示出和描述了本申請(qǐng)的實(shí)施例,可以理解的是,上述實(shí)施例是示例性的,不能理解為對(duì)本申請(qǐng)的限制,本領(lǐng)域的普通技術(shù)人員在本申請(qǐng)的范圍內(nèi)可以對(duì)上述實(shí)施例進(jìn)行變化、修改、替換和變型。