SQuAD文本理解挑战赛十大模型解读
在斯坦福大學(xué)發(fā)起的 SQuAD(Stanford Question Answering Dataset)文本理解挑戰(zhàn)賽中,微軟亞洲研究院和阿里巴巴的 R-NET 模型和?SLQA 模型在 EM 值(表示預(yù)測(cè)答案和真實(shí)答案完全匹配)上分別以 82.650 和 82.440 的成績(jī)率先超過人類(82.304)。
作者丨胡明昊
學(xué)校丨國(guó)防科學(xué)技術(shù)大學(xué)博士生
研究方向丨自動(dòng)問答系統(tǒng)
引言
教機(jī)器學(xué)會(huì)閱讀是近期自然語言處理領(lǐng)域的研究熱點(diǎn)之一,也是人工智能在處理和理解人類語言進(jìn)程中的一個(gè)長(zhǎng)期目標(biāo)。得益于深度學(xué)習(xí)技術(shù)和大規(guī)模標(biāo)注數(shù)據(jù)集的發(fā)展,用端到端的神經(jīng)網(wǎng)絡(luò)來解決閱讀理解任務(wù)取得了長(zhǎng)足的進(jìn)步。
本文是一篇機(jī)器閱讀理解的綜述文章,主要聚焦于介紹公布在 SQuAD(Stanford Question Answering Dataset)榜單上的各類模型,并進(jìn)行系統(tǒng)地對(duì)比和總結(jié)。
SQuAD 簡(jiǎn)介
SQuAD 是由 Rajpurkar 等人?[1]?提出的一個(gè)最新的閱讀理解數(shù)據(jù)集。該數(shù)據(jù)集包含 10 萬個(gè)(問題,原文,答案)三元組,原文來自于 536 篇維基百科文章,而問題和答案的構(gòu)建主要是通過眾包的方式,讓標(biāo)注人員提出最多 5 個(gè)基于文章內(nèi)容的問題并提供正確答案,且答案出現(xiàn)在原文中。
SQuAD 和之前的完形填空類閱讀理解數(shù)據(jù)集如 CNN/DM?[2],CBT?[3]?等最大的區(qū)別在于:SQuAD 中的答案不在是單個(gè)實(shí)體或單詞,而可能是一段短語,這使得其答案更難預(yù)測(cè)。
SQuAD 包含公開的訓(xùn)練集和開發(fā)集,以及一個(gè)隱藏的測(cè)試集,其采用了與 ImageNet 類似的封閉評(píng)測(cè)的方式,研究人員需提交算法到一個(gè)開放平臺(tái),并由 SQuAD 官方人員進(jìn)行測(cè)試并公布結(jié)果。
△ 圖1:一個(gè)(問題,原文,答案)三元組
模型
自從 SQuAD 數(shù)據(jù)集公布以來,大量具有代表性的模型紛紛涌現(xiàn),極大地促進(jìn)了機(jī)器閱讀理解領(lǐng)域的發(fā)展,下面就 SQuAD 榜單上代表性的模型進(jìn)行介紹。
總的來說,由于 SQuAD 的答案限定于來自原文,模型只需要判斷原文中哪些詞是答案即可,因此是一種抽取式的 QA 任務(wù)而不是生成式任務(wù)。
幾乎所有做 SQuAD 的模型都可以概括為同一種框架:Embed 層,Encode 層,Interaction 層和 Answer 層。
Embed 層負(fù)責(zé)將原文和問題中的 tokens 映射為向量表示;Encode 層主要使用 RNN 來對(duì)原文和問題進(jìn)行編碼,這樣編碼后每個(gè) token 的向量表示就蘊(yùn)含了上下文的語義信息;Interaction 層是大多數(shù)研究工作聚焦的重點(diǎn),該層主要負(fù)責(zé)捕捉問題和原文之間的交互關(guān)系,并輸出編碼了問題語義信息的原文表示,即 query-aware 的原文表示;最后 Answer 層則基于 query-aware 的原文表示來預(yù)測(cè)答案范圍。
△?圖2:一個(gè)高層的神經(jīng) QA 系統(tǒng)基本框架,來自[8]
Match-LSTM
Match-LSTM?[4]?的 Answer 層包含了兩種預(yù)測(cè)答案的模式,分別為 Sequence Model 和 Boundary Model。
Sequence Model 將答案看做是一個(gè)整數(shù)組成的序列,每個(gè)整數(shù)表示選中的 token 在原文中的位置,因此模型按順序產(chǎn)生一系列條件概率,每個(gè)條件概率表示基于上輪預(yù)測(cè)的 token 產(chǎn)生的下個(gè) token 的位置概率,最后答案總概率等于所有條件概率的乘積。
Boundary Model 簡(jiǎn)化了整個(gè)預(yù)測(cè)答案的過程,只預(yù)測(cè)答案開始和答案結(jié)束位置,相比于 Sequence Model 極大地縮小了搜索答案的空間。
最后的實(shí)驗(yàn)也顯示簡(jiǎn)化的 Boundary Model 相比于復(fù)雜的 Sequence Model 效果更好,因此 Boundary Model 也成為后來的模型用來預(yù)測(cè)答案范圍的標(biāo)配。?
在模型實(shí)現(xiàn)上,Match-LSTM 的主要步驟如下:?
Embed 層使用詞向量表示原文和問題;
Encode 層使用單向 LSTM 編碼原文和問題 embedding;
Interaction 層對(duì)原文中每個(gè)詞,計(jì)算其關(guān)于問題的注意力分布,并使用該注意力分布匯總問題表示,將原文該詞表示和對(duì)應(yīng)問題表示輸入另一個(gè) LSTM 編碼,得到該詞的 query-aware 表示;
在反方向重復(fù)步驟 2,獲得雙向 query-aware 表示;
Answer 層基于雙向 query-aware 表示使用 Sequence Model 或 Boundary Model 預(yù)測(cè)答案范圍。
BiDAF
相比于之前工作,BiDAF(Bi-Directional Attention Flow)[5]?最大的改進(jìn)在于 Interaction 層中引入了雙向注意力機(jī)制,即首先計(jì)算一個(gè)原文和問題的 Alignment matrix,然后基于該矩陣計(jì)算 Query2Context 和 Context2Query 兩種注意力,并基于注意力計(jì)算 query-aware 的原文表示,接著使用雙向 LSTM 進(jìn)行語義信息的聚合。
另外,其 Embed 層中混合了詞級(jí) embedding 和字符級(jí) embedding,詞級(jí) embedding 使用預(yù)訓(xùn)練的詞向量進(jìn)行初始化,而字符級(jí) embedding 使用 CNN 進(jìn)一步編碼,兩種 embedding 共同經(jīng)過 2 層 Highway Network 作為 Encode 層輸入。
最后,BiDAF 同樣使用 Boundary Model 來預(yù)測(cè)答案開始和結(jié)束位置。
Dynamic Coattention Networks
DCN?[6]?最大的特點(diǎn)在于 Answer 層,其 Answer 層使用了一種多輪迭代 pointing 機(jī)制,每輪迭代都會(huì)產(chǎn)生對(duì)答案開始和結(jié)束位置的預(yù)測(cè),并基于這兩個(gè)預(yù)測(cè)使用 LSTM 和 Highway Maxout Network 來更新下一輪的答案范圍預(yù)測(cè)。
而在 Interaction 層,DCN 使用和 BiDAF 類似的雙向注意力機(jī)制計(jì)算 query-aware 的原文表示。?
Multi-Perspective Matching
Multi-Perspective Matching [7]?在 Encode 層同樣使用 char,word 兩個(gè) embedding,只不過 char embedding 使用 LSTM 進(jìn)行編碼。
在 Encode 層之前,該模型使用一個(gè)過濾操作,作用是過濾掉那些和問題相關(guān)度低的原文詞。該模型最大的特點(diǎn)在 Interaction 層,該層針對(duì)每個(gè)原文詞使用一種 multi-perspective 的匹配函數(shù)計(jì)算其和問題的匹配向量,并使用 BiLSTM 來進(jìn)一步聚合這些匹配向量。
匹配的形式包括每個(gè)原文詞和整個(gè)問題的表示匹配,每個(gè)原文詞和每個(gè)問題詞匹配后進(jìn)行最大池化,和每個(gè)原文詞和每個(gè)問題詞匹配后進(jìn)行平均池化。
最后在 Answer 層,基于匹配向量聚合表示使用兩個(gè)前饋網(wǎng)絡(luò)來預(yù)測(cè)答案開始和結(jié)束位置。
FastQAExt
FastQAExt [8]?使用了一種輕量級(jí)的架構(gòu),其 Embed 層除了 word 和 char 兩種 embedding 作為輸入以外,還額外使用了兩個(gè)特征:
1. binary 特征表示原文詞是否出現(xiàn)在問題中;
2. weighted 特征表示原文詞對(duì)于問題中所有詞的相似度。并且這兩個(gè)特征同樣用在了問題詞上。
在 Interaction 層,FastQAExt 使用了兩種輕量級(jí)的信息 fusion 策略:
1. Intra-Fusion,即每個(gè)原文詞和其他原文詞計(jì)算相似度,并匯總得到原文總表示,接著將該原文詞和對(duì)應(yīng)原文總表示輸入 Highway Networks 進(jìn)行聚合,聚合后原文詞表示進(jìn)一步和上下文詞表示進(jìn)行類似的聚合;
2. Inter-Fusion,即對(duì)每個(gè)原文詞計(jì)算和問題詞的相似度,并匯總得到問題總表示,接著將將該原文詞和對(duì)應(yīng)問題總表示輸入 Highway Networks 進(jìn)行聚合,得到 query-aware 原文表示。
此外,在 Answer 層,FastQAExt 首先計(jì)算了一個(gè)問題的總表示,接著將 query-aware 原文表示和問題總表示共同輸入兩個(gè)前饋網(wǎng)絡(luò)產(chǎn)生答案開始和結(jié)束位置概率。在確定答案范圍時(shí),FastQAExt 使用了 Beam-search。
jNet
jNet [9]?的 baseline 模型和 BiDAF 類似,其在 Interaction 層除了對(duì)每個(gè)原文詞計(jì)算一個(gè)對(duì)應(yīng)的問題表示以外,還將 Alignment Matrix 按原文所在維度進(jìn)行池化(最大池化和平均池化),池化后的值表示原文各詞的重要程度,因此基于該值對(duì)原文表示進(jìn)行過濾,剔除不重要的原文詞。
在 Answer 層,jNet 不僅先預(yù)測(cè)答案開始位置再預(yù)測(cè)答案結(jié)束位置,還反向地先預(yù)測(cè)答案結(jié)束位置再預(yù)測(cè)答案開始位置。最后對(duì)兩方向概率求平均后作為總概率輸出。
jNet 的最大創(chuàng)新在于對(duì)問題的理解和適應(yīng)。為了在編碼問題表示時(shí)考慮句法信息,jNet 使用 TreeLSTM 對(duì)問題進(jìn)行編碼,并將編碼后表示作為 Interaction 層的輸入。
為了對(duì)不同問題進(jìn)行適應(yīng),jNet 首先使用了問題類型的 embedding,將該 embeeding 作為 Interaction 層輸入。
另外,jNet 定義了 K 個(gè) cluster 的中心向量,每個(gè) cluster model 了一個(gè)特定的問題類型比如"when","where"等,接下來的適應(yīng)算法分為兩步:adapting 和 updating。
Adapting 指根據(jù)問題總表示和 K 個(gè) cluster 的相似度來更新出一個(gè)新的問題表示,并輸入 Interaction 層;Updating 層旨在修改 K 個(gè) cluster 的中心以令每個(gè) cluster 可以 model 不同類型的問題。
Ruminating Reader
Ruminating Reader [10]?是 BiDAF 的改進(jìn)和擴(kuò)展,它將之前的單 Interaction 層擴(kuò)展為了雙 Interaction 層。
第一個(gè) Interaction 層和 BiDAF 的 Interaction 層相同,輸出 query-aware 的原文表示。query-aware 原文表示經(jīng)過一個(gè)雙向 LSTM 編碼,其輸出的最后一位隱層狀態(tài)作為 query-aware 原文表示的總結(jié)。
接著,該總結(jié)向量依次與各原文詞表示和各問題詞表示經(jīng)過一個(gè) Highway Network 處理,以將總結(jié)向量的信息重新融入原文和問題表示當(dāng)中。
最后,基于更新后的原文和問題表示,使用第二個(gè) Interaction 層來捕捉它們之間的交互,并生成新的 query-aware 的原文表示。Ruminating Reader 的 Embed 層,Encode 層和 Answer 層和 BiDAF 相同。
ReasoNet
和之前介紹的 Embed-Encode-Interaction-Answer 框架不同,ReasoNet [11]?使用了 Memory Networks 的框架[12]。
在使用 BiRNN 編碼問題和原文后,問題的最后一位隱層狀態(tài)初始化為一個(gè)中間狀態(tài) s,而原文和問題表示作為 Memory。
接下來是一個(gè)多輪迭代的過程,在每一輪迭代中,中間狀態(tài) s 首先經(jīng)過一個(gè)邏輯回歸函數(shù)來輸出一個(gè) binary random variable t,t 為真,那么 ReasoNet 停止,并且用當(dāng)前中間狀態(tài) s 輸出到 Answer 模塊產(chǎn)生對(duì)答案的預(yù)測(cè)。
否則,中間狀態(tài) s 會(huì)和 Memory(原文和問題)中每一位表示計(jì)算注意力,并基于注意力求原文和問題的加權(quán)表示 x,x 和 s 共同作為一個(gè) RNN 的輸入,產(chǎn)生新的中間狀態(tài) s 并進(jìn)入下一輪迭代。
由于出現(xiàn)了 binary random variable,ReasoNet 使用了強(qiáng)化學(xué)習(xí)的方法進(jìn)行訓(xùn)練。
R-NET
R-NET?[13] 同樣使用了雙 Interaction 層架構(gòu),其第一 Interaction 層負(fù)責(zé)捕捉原文和問題之間的交互信息,而第二 Interaction 層負(fù)責(zé)捕捉原文內(nèi)部各詞之間的交互信息。
具體來說,在第一 Interaction 層,r-net 首先使用了類似于 Match-LSTM 的方法,即對(duì)原文中每個(gè)詞,計(jì)算其關(guān)于問題的注意力分布,并使用該注意力分布匯總問題表示,將原文該詞表示和對(duì)應(yīng)問題表示輸入 RNN 編碼,得到該詞的 query-aware 表示。
不同的是,在原文詞表示和對(duì)應(yīng)問題表示輸入 RNN 之前,r-net 使用了一個(gè)額外的門來過濾不重要的信息。
接著,在第二 Interaction 層,r-net 使用了同樣的策略來將 query-aware 表示進(jìn)一步和自身進(jìn)行匹配,將回答答案所需的證據(jù)和問題信息進(jìn)行語義上的融合,得到最終的原文表示。
在其他方面,r-net 的 Embed 層同樣使用了 word 和 char 兩種 embedding 以豐富輸入特征。
在 Answer 層,r-net 首先使用一個(gè) attention-pooling 的問題向量作為一個(gè) RNN 的初始狀態(tài),該 RNN 的狀態(tài)和最終的原文表示共同輸入一個(gè) pointer networks 以產(chǎn)生答案開始概率。
接著基于開始概率和原文表示產(chǎn)生另一個(gè) attention-pooling 向量,該向量和 RNN 狀態(tài)共同經(jīng)過一次 RNN 更新后得到 RNN 的新狀態(tài),并基于新狀態(tài)來預(yù)測(cè)答案結(jié)束概率。
Mnemonic Reader
相比于之前的工作,我們的 Mnemonic Reader [14]?同樣使用了類似于 r-net 和 Ruminating Reader 的兩層 Interaction 層設(shè)計(jì)。
其中第一個(gè) Interaction 層負(fù)責(zé)捕捉原文和問題之間的交互信息,第二 Interaction 層負(fù)責(zé)捕捉原文內(nèi)部的長(zhǎng)時(shí)依賴信息。
不同于 r-net 的是,r-net 使用了單向注意力+門機(jī)制來編碼這些交互信息,而 Mnemonic Reader 使用了雙向注意力機(jī)制來編碼交互信息,因此能夠捕捉更加細(xì)粒度的語義信息。
在 Answer 層,我們使用對(duì)問題敏感的表示方法,具體來說,問題表示分為兩種:顯式的問題類型 embedding 和隱式的問題向量表示。
進(jìn)一步地,我們使用了 Memory Network?[12] 的框架來預(yù)測(cè)答案范圍,將問題表示作為一個(gè)可更新的記憶向量,在每次預(yù)測(cè)答案概率后將候選答案信息更新至記憶向量中。
該過程可以持續(xù)多輪,因此可以根據(jù)之前預(yù)測(cè)信息來不斷修正當(dāng)前預(yù)測(cè),直到產(chǎn)生正確的答案范圍。
性能對(duì)比
下圖是 SQuAD 榜單排名,其中 EM 表示預(yù)測(cè)答案和真實(shí)答案完全匹配,而 F1 用來評(píng)測(cè)模型的整體性能。
值得一提的是,人類在 SQuAD 數(shù)據(jù)集上的性能分別為 82.3 和 91.2,微軟亞洲研究院的 R-NET 模型和阿里巴巴的 SLQA 模型在 EM 值上分別以 82.650 和82.440 率先超過人類。
△ 圖3:SQuAD leaderboard上的各模型性能對(duì)比(2018年1月13日)
總結(jié)
總結(jié)以上工作,有以下幾點(diǎn)思考:
1) 大規(guī)模語料集的構(gòu)建是推進(jìn)機(jī)器閱讀理解發(fā)展的重要前提。從 15 年提出的 CNN/DM 完形填空數(shù)據(jù)集,到近期的 SQuAD 數(shù)據(jù)集,再到之后的若干新數(shù)據(jù)集,每一個(gè)新數(shù)據(jù)集都提出了當(dāng)前方法無法有效解決的新問題,從而促使研究人員不斷探索新的模型,促進(jìn)了該領(lǐng)域的發(fā)展。
2) 針對(duì)抽取式閱讀理解任務(wù),可以看到有如下幾個(gè)技術(shù)創(chuàng)新點(diǎn):
建立在單向或雙向注意力機(jī)制上的 Interaction 層對(duì)于模型理解原文和問題至關(guān)重要,而[10],[13]和[14]中更復(fù)雜的雙 Interaction 層設(shè)計(jì)無疑要優(yōu)于之前的單 Interaction 層設(shè)計(jì),原因是在問題-原文交互層之上的原文自交互層使得更多的語義信息能在原文中流動(dòng),因此在某種程度上部分解決了長(zhǎng)文本中存在的長(zhǎng)時(shí)依賴問題。
多輪推理機(jī)制如[6],[11]和[14]對(duì)于回答復(fù)雜問題具備一定幫助,尤其是針對(duì) SQuAD 中的答案不是一個(gè)單詞而可能是一個(gè)短語的情況,多輪推理機(jī)制可以不斷縮小預(yù)測(cè)范圍,最終確定正確答案位置。
對(duì)問題敏感的問題表示方法[9],[14]能夠更好地 model 各類型問題,并根據(jù)問題類型聚焦于原文中的特定單詞,比如 when 類問題更加聚焦于原文中的時(shí)間信息,而 where 類問題更關(guān)注空間信息。
參考文獻(xiàn)
[1] Pranav Rajpurkar, Jian Zhang, Konstantin Lopyrev, and Percy Liang. 2016. Squad: 100,000+ questions for machine comprehension of text. In Proceedings of EMNLP.
[2] Karl Moritz Hermann, Tomas Kocisky, Edward Grefenstette, Lasse Espeholt, Will Kay, Mustafa Suleyman, , and Phil Blunsom. 2015. Teaching ma- chines to read and comprehend. In Proceedings of NIPS.
[3] Felix Hill, Antoine Bordes, Sumit Chopra, and Jason Weston. 2016. The goldilocks principle: Reading childrens books with explicit memory representa- tions. In Proceedings of ICLR.
[4] Shuohang Wang and Jing Jiang. 2017. Machine comprehension using match-lstm and answer pointer. In Proceedings of ICLR.
[5] Minjoon Seo, Aniruddha Kembhavi, Ali Farhadi, and Hananneh Hajishirzi. 2017. Bidirectional attention flow for machine comprehension. In Proceedings of ICLR.
[6] Caiming Xiong, Victor Zhong, and Richard Socher. 2017. Dynamic coattention networks for question answering. In Proceedings of ICLR.
[7] Zhiguo Wang, Haitao Mi, Wael Hamza, and Radu Florian. 2016. Multi-perspective context matching for machine comprehension. arXiv preprint arXiv:1612.04211 .
[8] Dirk Weissenborn, Georg Wiese, and Laura Seiffe. 2017. Fastqa: A simple and efficient neural architecture for question answering. arXiv preprint arXiv:1703.04816 .
[9] Junbei Zhang, Xiaodan Zhu, Qian Chen, Lirong Dai, Si Wei, and Hui Jiang. 2017. Exploring question understanding and adaptation in neural- network-based question answering. arXiv preprint arXiv:1703.04617 .
[10] Yichen Gong and Samuel R. Bowman. 2017. Ruminating reader: Reasoning with gated multi-hop attention. arXiv preprint arXiv:1704.07415 .
[11] Yelong Shen, Po-Sen Huang, Jianfeng Gao, and Weizhu Chen. 2016. Reasonet: Learning to stop reading in machine comprehension. arXiv preprint arXiv:1609.05284 .
[12] Sainbayar Sukhbaatar, Arthur Szlam, Jason Weston, and Rob Fergus. 2015. End-to-end memory networks. In Proceedings of NIPS.
[13] Microsoft Research Asia. 2017. R-NET: MACHINE READING COMPREHENSION WITH SELF-MATCHING NETWORKS. In Proceedings of ACL.
[14] Minghao Hu, Yuxing Peng, and Xipeng Qiu. 2017. Mnemonic Reader for Machine Comprehension. arXiv preprint arXiv:1705.02798 .
? ? ? ? ??
?我是彩蛋
?解鎖新姿勢(shì):用微信刷論文!
PaperWeekly小程序上線啦
今日arXiv√猜你喜歡√熱門資源√
隨時(shí)緊跟最新最熱論文
?
?解鎖方式?
1. 識(shí)別下方二維碼打開小程序
2. 用PaperWeekly社區(qū)賬號(hào)進(jìn)行登陸
3. 登陸后即可解鎖所有功能
?
長(zhǎng)按識(shí)別二維碼,使用小程序
*點(diǎn)擊閱讀原文即可注冊(cè)
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結(jié)
以上是生活随笔為你收集整理的SQuAD文本理解挑战赛十大模型解读的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 专题解读 |「知识图谱」领域近期值得读的
- 下一篇: 多轮对话之对话管理:Dialog Man