王思語, 程 兵
(1 中國科學(xué)院 數(shù)學(xué)與系統(tǒng)科學(xué)研究院, 北京 100049; 2 中國科學(xué)院大學(xué), 北京 100049)
對機(jī)器閱讀理解(MRC)的研究致力于提高機(jī)器的智能水平,從大量的文本信息中提取最關(guān)鍵的部分。 由于其在各個領(lǐng)域的廣泛應(yīng)用,MRC 已成為人工智能前沿研究中最熱門的方向之一。 應(yīng)用于機(jī)器閱讀理解的模型在訓(xùn)練時長上存在不足,且存在同質(zhì)性的問題。
為克服模型訓(xùn)練極慢的問題,Weissenborn 等學(xué)者[1]提出的FastQAExt 模型使用了輕量級的架構(gòu),節(jié)約了時間成本,但本質(zhì)上仍是RNN 類模型,無法并行化。 Zhang 等學(xué)者[2]提出的jNet 模型,對文章與問題的相似度矩陣進(jìn)行池化,過濾不重要的文章表征。 微軟亞研的R-Net 模型使用門限注意力機(jī)制,屏蔽掉一些無關(guān)信息,是首個在某些指標(biāo)中接近人類的深度學(xué)習(xí)模型[3]。 谷歌提出的QANet,將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于文本特征的提取,克服了RNN 網(wǎng)絡(luò)無法并行的問題[4]。
同質(zhì)性現(xiàn)象指隨著層數(shù)的增加,更深層、更抽象的一些表征被抽取出來,這就使得某一位置與其他位置相似的可能性增加。 Dai 等學(xué)者[5]分析了近年來特征融合存在的問題,提出了注意力特征融合機(jī)制(AFF)。 Chen 等學(xué)者[6]設(shè)計了鏈?zhǔn)絃STMs 推斷模型, 特征融合時計算差和點(diǎn)積,體現(xiàn)兩特征的差異性。 Wang 等學(xué)者[7]基于此方法,對模型中部分表征進(jìn)行融合,且有研究表明在TriviaQA 數(shù)據(jù)集上表現(xiàn)最好。 Chen 等學(xué)者[6]基于BERT 模型,采用自適應(yīng)的方法直接將各編碼器的輸出表征加權(quán)加和,超過了原模型的表現(xiàn)。 Huang 等學(xué)者[8]提出歷史單詞的概念,將文章與問題的表征通過注意力函數(shù)融合起來得到歷史單詞,從而幫助推斷出答案。
本文針對抽取式機(jī)器閱讀理解任務(wù),提出一個快速多粒度推斷深度神經(jīng)網(wǎng)絡(luò)(FMG)。 以CNN 網(wǎng)絡(luò)和注意力機(jī)制為基層網(wǎng)絡(luò),融合函數(shù)在縱向上的使用,使得淺層表征貫穿整個模型,參與到最終答案的推理中,橫向上,交互模塊打破以往模型一貫采用單交互模塊的方式,以多個交互模塊接受問題和不同層次文章表征,形成多個不同層次問題導(dǎo)向的文章表征,以指導(dǎo)答案推理,這種機(jī)制可稱為多粒度推斷機(jī)制。
研究中,首先給出抽取式機(jī)器閱讀理解的形式化定義。
定義1 抽取式MRC(Extraction-based MRC)給定三元組(P,Q,A) 的樣本,其中P表示文章,Q表示問題,A表示答案,通過訓(xùn)練學(xué)習(xí)(P,Q) →A的映射關(guān)系,即學(xué)習(xí)函數(shù)f(·,·) 使得f(P,Q)=A。具體地,A =(astart,aend),這里astart表示答案在文章中開始的位置,aend表示答案在文章中結(jié)束的位置。
對于一篇文章P與一個問題Q,經(jīng)過監(jiān)督學(xué)習(xí)訓(xùn)練得到答案A的過程如下:
(1)P與Q分別經(jīng)由嵌入處理,把維數(shù)為所有詞的數(shù)量的高維空間嵌入到一個維數(shù)低得多的連續(xù)向量空間中,每個單詞被映射為實(shí)數(shù)域上的向量,得到文章嵌入向量VP與問題嵌入向量VQ。
(2)VP與VQ向量分別經(jīng)由特征提取模塊,將文本數(shù)據(jù)轉(zhuǎn)換為可用于機(jī)器學(xué)習(xí)的數(shù)字特征,得到特征向量UP=g(VP)與UQ=g(VQ), 其中g(shù)(·) 是編碼函數(shù)。
(3)UP與UQ進(jìn)行交互處理,將問題的信息整合融入到文章的特征向量中,得到文章與問題之間的交互信息后的向量X =[UP;Att(UP,UQ)], 其中[·;·] 表示粘接,Att(·,·) 表示注意力機(jī)制。
(4) 交互向量X經(jīng)由預(yù)測器處理,解碼得到預(yù)測出的答案A =Pred(X)。
嵌入處理最早的方法為獨(dú)熱(One-h(huán)ot) 字詞嵌入,而后發(fā)展出Word2Vec、Glove 等方法,字符嵌入、命名實(shí)體信息、詞性特征等語義關(guān)系規(guī)則也在后續(xù)發(fā)展中被考慮到嵌入過程中。 一般情況下,特征提取模塊常用的方法有CNN、RNN、Transfomer 等。 其中,著名的預(yù)訓(xùn)練模型BERT 就是以Transfomer 為基本模塊。 從文本交互方法上,交互處理過程一般有單向的注意力機(jī)制交互以及雙向的注意力機(jī)制交互;從迭代輪次方面而言,一般分為單跳交互與多跳交互,主要對應(yīng)著單個問題與連續(xù)提問的情況。 答案預(yù)測過程常用的方法有Ptr-Net、Memory Networks等,預(yù)測類型對應(yīng)于4 種不同的MRC 任務(wù),分別為單一單詞預(yù)測、多項選擇、范圍抽取、答案生成。
本文提出以CNN 網(wǎng)絡(luò)和注意力機(jī)制為基層網(wǎng)絡(luò),融合函數(shù)在縱向上的使用,使得淺層表征貫穿整個模型,參與到最終答案的推理之中。 橫向上,交互模塊打破以往模型一貫采用單交互模塊的方式,以多個交互模塊接受問題和不同層次文章表征,形成多個不同層次問題導(dǎo)向的文章表征,以指導(dǎo)答案推理,這種機(jī)制可稱為快速多粒度推斷機(jī)制。 縱向上的特征提取以CNN-A 模塊來實(shí)現(xiàn),橫向上的交融采用P-Q 多粒度交融方式完成。
在一個CNN-A 模塊(CNN-A Block)中,包含自下而上的自適應(yīng)CNN 融合層(Adaptive CNN fusion layer)、自注意機(jī)制層(Self-attention layer) 以及前饋-前向?qū)樱‵eedforward layer),如圖1 所示。圖1 中,“?”表示特征融合操作,(1) 表示輸出矩陣為傳入融合操作的第一矩陣,(2) 表示輸出矩陣為傳入融合操作的第二矩陣。
自下而上的自適應(yīng)CNN 融合層為圖1 中子圖(b),共由5 個CNN-Layers 堆疊而成。 每個CNNlayer 由下層的layernorm 層標(biāo)準(zhǔn)化,再傳入至深度可分離卷積層[8],深度可分離卷積的使用,減少了大量參數(shù),提高了訓(xùn)練速度。 在此基礎(chǔ)上, 采用融合操作對相鄰兩層的特征進(jìn)行融合。 融合操作公式具體如下:
其中,“°”表示元素逐點(diǎn)乘積,λ是待訓(xùn)練的參數(shù),函數(shù)經(jīng)由投影算子Wf與輸入的原始輸入矩陣的大小保持一致,這里Wf∈Rd×4d。
淺層表征、即靠前的CNN-Layer 得到的表征,作為融合操作的第一輸入矩陣。 相應(yīng)地,深層表征作為第二輸入矩陣,充分捕捉了文本表征的局部信息并加以縱向融合。
自下而上的自適應(yīng)CNN 融合層結(jié)果傳入自注意機(jī)制層,捕捉到全局的信息。 自注意機(jī)制層對上層特征先進(jìn)行Layernorm 層標(biāo)準(zhǔn)化,再計算自注意力。
研究中將自注意機(jī)制得到的表征(第二輸入矩陣) 與自適應(yīng)CNN 融合層得到的表征(第一輸入矩陣) 再次進(jìn)行融合傳入前饋-前向?qū)又小?/p>
交互層旨在將文章與問題的信息進(jìn)行交融,生成以問題為導(dǎo)向的文章表征。 在早期的問答系統(tǒng)模型中,通常將文章信息與問題信息整合成為一個特征向量,BiDAF(Seo 等學(xué)者, 2016)[9]的提出,為模型交互層制定了一個新的標(biāo)準(zhǔn),即每個時間步驟的注意力向量、以及來自前一層的嵌入,均被傳輸?shù)诫S后的建模層,這就減少了早期匯總造成的信息損失。同時BiDAF 從以下2 個方向計算注意力向量:
(1)問題關(guān)于文章方向的注意力(Passage-toquestion Attention):度量對每個文章詞而言,問題中哪些詞與其相關(guān)程度較高,從而依據(jù)相關(guān)程度給問題中詞分配權(quán)重,得到關(guān)于這一文章詞的問題詞向量的加權(quán)和,每個文章詞均得到一個向量。
(2)文章關(guān)于問題方向的注意力(Question-topassage Attention): 度量哪個文章詞與問題中某個詞有更強(qiáng)的相關(guān)性,從而對問題的回答更加重要。對問題中每個詞,尋找出與其相似度最高的文章詞,再將整個問題所匹配的這些文章詞進(jìn)行加權(quán)求和,得到一個向量,隨后將這一向量進(jìn)行平鋪,與每個文章詞對應(yīng)。
本文中提出的FMG 在文章與問題的交互上采用類似BiDAF 的模式,從2 個方向分別計算注意力向量。 但本文的模型出于對早期匯總造成信息損失的考量,將文章在縱向上捕捉到的3 個層級的特征,分別與問題特征進(jìn)行橫向上的交互,交互層包含3個橫向的、彼此不相連的交互模塊,分別接收文章不同層次粒度的表征與問題的表征。
FMG 中每個交互模塊接收到關(guān)于文章的表征H∈Rd×T與關(guān)于問題的表征U∈Rd×T,交互信息的計算首先確定相似度矩陣S∈RT×J,其中Stj表示第t個文章詞與第j個問題詞之間的相似度,可由式(2) 進(jìn)行描述:
其中,α是一個待訓(xùn)練的尺度函數(shù),編碼2 個向量間的相似度;H:T是矩陣H的第t列向量;U:j是矩陣U的 第j列 向 量, 此 處 選 擇α(h,u)=wT[h;u;h°u] ,這里w∈R3d是待訓(xùn)練的權(quán)重向量,[ ;] 表示向量粘接串聯(lián)。 得到相似度矩陣S后,便可從2 個方向計算注意力向量:
(1)問題關(guān)于文章方向的注意力(Passage-toquestion Attention)。 通過softmax函數(shù)對相似度矩陣S的每一行進(jìn)行歸一化,得到矩陣中第t行=softmax(St:) ∈RJ,表示所有問題詞關(guān)于第t個文章詞的關(guān)注權(quán)重,由此問題關(guān)于文章方向的注意力將被計算為:
(2)文章關(guān)于問題方向的注意力(Question-topassage Attention)。 FMG 網(wǎng)絡(luò)采用了一種更加簡單有效計算此方向注意力的方法。 與上述類似,對S進(jìn)行列歸一化,得到矩陣, 第j列softmax(S:j) ∈RT,表示所有文章詞關(guān)于第j個問題詞的關(guān)注權(quán)重,最終Q2P attention 的計算為:
得到2 個方向的attentions 之后,將這些結(jié)果結(jié)合起來作為雙向注意流機(jī)制的輸出G∈R4d×T,其中G =[H:t;A:t;H:t?A:t;H:t?B:t] ∈R4d。
本 文 提 出 的 FMG ( Fast multi granularity inference deep neural networks)模型包含以下5 層(詳見圖2):
圖2 快速多粒度推斷深度神經(jīng)網(wǎng)絡(luò)Fig. 2 Fast multi-granularity inference deep neural networks
(1)嵌入層(Embedding Layer):將每個單詞通過詞嵌入與字符嵌入轉(zhuǎn)化為一個向量。
(2)編碼層(Encoder Layer):通過CNN-A 模塊搭建而成的3 個CNN-A 編碼塊提取文章的不同深淺層次的語義特征。
(3)交互層(Interaction Layer):不同粒度的文章向量分別與問題向量利用雙向注意流進(jìn)行匹配。
(4)建模層(Modeling Layer):遍歷不同深淺層次的上下文信息并融合。
(5)輸出層(Output Layer):得到文章每個位置為答案開始與結(jié)束位置的概率,給出問題的答案。
至此可知,模型的創(chuàng)新點(diǎn)包含CNN-A 編碼器與模型編碼器中自適應(yīng)融合機(jī)制、交互層中多粒度交互模式、輸出層特征融合操作。
首先將每一個單詞轉(zhuǎn)化為p1=300 維的向量,此處采用Glove 的單詞預(yù)訓(xùn)練向量,對于袋外的詞匯,用<UNK>表示,并將其隨機(jī)初始化,作為單詞嵌入。 字符嵌入將每個單詞映射到一個高維向量空間。 每個單詞的長度被截斷或填充為16,每個字符表示為p2=200 維的可訓(xùn)練向量,每個單詞可以視為其每個字符的嵌入向量的跨行粘接,得到的矩陣每行取最大值,從而得到每個單詞固定大小的詞嵌入向量表示。 將單詞嵌入與字符嵌入粘接,再采用與BiDAF 相同的方法,使用兩層Highway 網(wǎng)絡(luò)得到整嵌入層的輸出,此階段過后,得到2 個矩陣,分別是關(guān)于文章輸入結(jié)果的矩陣P′∈Rd×T,以及關(guān)于問題輸入結(jié)果的矩陣Q′∈Rd×J,其中T,J分別是文章和問題的長度。
FMG 模型的編碼層采用3 個CNN-A 模塊堆疊而成的CNN-A 編碼器(CNN-A encoder) 構(gòu)建。kenrel 大小設(shè)置為7,filters 的數(shù)量d =128。 自注意力機(jī)制的多頭個數(shù)為h =8。 為利用不同粒度級別的文章信息,與問題信息進(jìn)行交互融合,文中用3 個CNN-A 編碼器串聯(lián)編碼文章,1 個CNN-A 編碼器編碼問題。 因此,研究得到關(guān)于文章嵌入P′的矩陣H1,H2,H3∈Rd×T, 關(guān)于問題嵌入Q′的矩陣U∈Rd×J。
FMG 模型出于對早期匯總造成信息損失的考量,將文章在縱向上捕捉到的3 個層級的特征,分別與問題特征進(jìn)行橫向上的交互,見圖2, P2Q Attention and Q2P Attention 模塊、即為交互模塊,交互層包含3 個橫向的、彼此不相連的交互模塊,分別接收文章不同層次粒度的表征與問題的表征。 每個交互模塊分別利用雙向注意流方法計算文章關(guān)于問題方向的注意力和問題關(guān)于文章方向的注意力。
P-Q 多粒度交互方法得到問題關(guān)于文章方向的注意力分別是A1,A2,A3∈Rd×T, 文章關(guān)于問題方向的注意力分別為B1,B2,B3∈Rd×T。 研究將這些結(jié)果結(jié)合起來作為整個交互層的輸出Gi∈R4d×T,其中i ={1, 2, 3}。
本層模型編碼塊(Model Encoder) 的結(jié)構(gòu)由3個CNN-A 模塊堆疊而成。
研究中對于開始與結(jié)束概率的預(yù)測,所采用的不是同樣的上下文最終編碼矩陣,而是采用融合方法,將M1與M2融合并計算開始位置概率的最終編碼,此結(jié)果再與M3融合并計算結(jié)束位置概率的最終編碼,即:
其中,F(xiàn)use(·,·) 為2.1 節(jié)中的融合操作,線性化算子為ws∈Rd是待訓(xùn)練參數(shù)向量,線性化得到一個T維的向量,對應(yīng)文章的T個位置;接著,對線性化結(jié)果進(jìn)行歸一化, 使用的仍舊是歸一化函數(shù)softmax(·);最后,歸一化的結(jié)果作為每個位置對應(yīng)的開始概率,輸出概率最高的位置作為預(yù)測答案開始位置。 同理,每個位置結(jié)束概率以及預(yù)測答案結(jié)束位置的產(chǎn)生過程可依上述過程給出,在此不再贅述。
答案區(qū)間的得分是其開始位置與結(jié)束位置概率的乘積,研究中的損失函數(shù)定義為所有示例正確答案開始與結(jié)束位置所對應(yīng)預(yù)測概率的負(fù)對數(shù)和的平均,即:
其中,θ表示所有待訓(xùn)練參數(shù)的集合(包括Wf,bf,λ,w,ws,wt,CNN 過濾器的權(quán)重與偏差,自注意力機(jī)制層的投影矩陣等);N是參與訓(xùn)練的樣例數(shù);是第i個樣例的正確答案開始位置與正確結(jié)束位置。
模型預(yù)測過程中, 得到答案區(qū)間A =(astart,aend) ,區(qū)間開始與結(jié)束位置的選擇原則為使得最大且astart≤aend,動態(tài)規(guī)劃方法下可以在線性時間內(nèi)得到結(jié)果。
SQuAD 數(shù)據(jù)集為斯坦福大學(xué)發(fā)布的機(jī)器閱讀理解數(shù)據(jù)集,包含107700 個基于536 篇維基百科文章的問題-答案對,其中87500 用于訓(xùn)練,10100用于驗證,另外的10100 用于測試。 每個問題均由人工標(biāo)注出其答案,答案均來源于文章段落中的一個序列。 每篇文章的長度大約為250 個詞,答案的長度一般不超過10 個詞。
首先,仿真中使用了L2權(quán)重衰減,衰減參數(shù)μ =3×10-7。 在詞嵌入間的dropout概率是0.1,字符嵌入的dropout概率為0.05,層間的dropout概率為0.1。在相鄰的CNN-A Block 與模型編碼塊間采用隨機(jī)深度層dropout。 在訓(xùn)練中,使用AdamW 優(yōu)化器,β1=0.8,β2=0.999,∈=10-7。 在初始階段使用預(yù)熱技術(shù)(warm-up),前1000 個steps學(xué)習(xí)率以負(fù)指數(shù)速率從0 增長到0.01,后續(xù)每3 個epochs學(xué)習(xí)率變?yōu)橄惹暗?.5 倍。
本文提出的FMG 模型,有FMG 標(biāo)準(zhǔn)模型(Standard FMG) 和FMG 超輕模型(Utral lightweight FMG) 兩種形式,兩者的模型結(jié)構(gòu)一樣,只是為了訓(xùn)練效率,將FMG 標(biāo)準(zhǔn)模型的一些結(jié)構(gòu)簡化,得到FMG 超輕模型,后文的表3 中列出了兩模型在層級結(jié)構(gòu)上的數(shù)量選擇。
研究提出的FMG 超輕模型在驗證集上獲得了70.96%/81.54% 的EM/F1分?jǐn)?shù),標(biāo)準(zhǔn)模型獲得了73.72%/81.15%的EM/F1分?jǐn)?shù),其中標(biāo)準(zhǔn)模型在驗證集上的表現(xiàn),超越了其他對比模型,見表1。 表1中,第一列表示Dev set,第二列表示Test set。
表1 SQuAD 數(shù)據(jù)集上不同模型的表現(xiàn)Tab. 1 The performances of different models on SQuAD datset
文中在同樣的環(huán)境下測試了QANet 與FMG 模型的訓(xùn)練速度。 研究結(jié)果見表2,分析發(fā)現(xiàn),F(xiàn)MG 標(biāo)準(zhǔn)模型的訓(xùn)練速度是QANet 的1.2 倍,而這發(fā)生在本次實(shí)驗的參數(shù)量多于QANet 的情況下。 FMG 超輕模型的訓(xùn)練速度是QANet 的8.7 倍。 FMG 標(biāo)準(zhǔn)模型在訓(xùn)練速度為1.2 倍的情況下,獲得了高于同為CNN 模型的QANet 2.33%/ 1.78%的EM/F1分?jǐn)?shù),在訓(xùn)練速度大于4 倍的基礎(chǔ)上,獲得了高于基線模型3.56%/3.97%的EM/F1分?jǐn)?shù)。 FMG 超輕模型在訓(xùn)練速度大于24 倍的情況下,獲得了高于基線模型1.23%/1.83%的EM/F1分?jǐn)?shù)。
多粒度推斷結(jié)構(gòu)的效應(yīng)對比結(jié)果見表3。 表3中,Model1 與Model2 模型是去除本次研究多粒度推斷結(jié)構(gòu)的模型,也即在CNN-A Blocks 中去除Fusion 操作,交互層將橫向的多粒度交互模式改為編碼層最終輸出的交互模式,最終結(jié)果輸出時不融合表征而是直接將建模層后2 個編碼塊的輸出線性化歸一化。 整個信息的流向是縱向的。 在層數(shù)相同的情況下,本次研究的多粒度推斷機(jī)制顯然提高了EM/F1分?jǐn)?shù),F(xiàn)MG(Standard) 獲得高于Model20.91%/1.54% 的分?jǐn)?shù),F(xiàn)MG2 獲得了高于Model10.72%/1.03%的分?jǐn)?shù)。 甚至在CNN 層數(shù)條件弱于Model2 的條件下,F(xiàn)MG2 模型也憑借著多粒度推斷機(jī)制的作用,超越了Model2 模型的表現(xiàn)。
本文提出的FMG 超輕模型,在滿足一些準(zhǔn)確率需求的情況下,是值得推薦的短時間內(nèi)完成文本推斷過程的模型,該模型的訓(xùn)練速度,大約是RNN 模型的24 倍之多。 FMG 標(biāo)準(zhǔn)模型,準(zhǔn)確率高于FMG超輕模型,訓(xùn)練速度上是RNN 類模型的4 倍之多。
本文提出了一個快速多粒度推斷深度神經(jīng)網(wǎng)絡(luò)FMG。 FMG 模型在縱向上以卷積神經(jīng)網(wǎng)絡(luò)和注意力機(jī)制為基本底層架構(gòu),橫向上以多粒度的文章文本表征與問題表征分層交互融合, 共同實(shí)現(xiàn)答案的推斷。 實(shí)驗結(jié)果表明,多粒度推斷機(jī)制在提高模型表現(xiàn)上具有一定的有效性。 基于本文的成果,下一步的工作擬將本文提出的多粒度推斷機(jī)制應(yīng)用于BERT 模型,對CNN-A 模塊進(jìn)行微調(diào),來替換BERT 模型中的編碼器和解碼器,以探索本文多粒度推斷機(jī)制的更多可能性。