自然語言推理 (Natural Language Inference, NLI) 是一個(gè)活躍的研究領(lǐng)域,許多基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNNs),卷積神經(jīng)網(wǎng)絡(luò)(CNNs),self-attention 網(wǎng)絡(luò) (SANs) 的模型為此提出。盡管這些模型取得了不錯(cuò)的表現(xiàn),但是基于 RNNs 的模型難以并行訓(xùn)練,基于 CNNs 的模型需要耗費(fèi)大量的參數(shù),基于 self-attention 的模型弱于捕獲文本中的局部依賴。為了克服這個(gè)問題,我們向 self-attention 機(jī)制中引入高斯先驗(yàn) (Gaussian prior) 來更好的建模句子的局部結(jié)構(gòu)。接著,我們?yōu)?NLI 任務(wù)提出了一個(gè)高效的、不依賴循環(huán)或卷積的網(wǎng)絡(luò)結(jié)構(gòu),名為 Gaussian Transformer。它由用于建模局部和全局依賴的編碼模塊,用于收集多步推理的高階交互模塊,以及一個(gè)參數(shù)輕量的對(duì)比模塊組成。實(shí)驗(yàn)結(jié)果表明,我們的模型在SNLI 和 MultiNLI 數(shù)據(jù)集上取得了當(dāng)時(shí)最高的成績(jī),同時(shí)大大減少了參數(shù)數(shù)量和訓(xùn)練時(shí)間。此外,在 HardNLI 數(shù)據(jù)集上的實(shí)驗(yàn)表明我們的方法較少受到標(biāo)注的人工痕跡(Annotation artifacts) 影響。
1 引言
1.1 任務(wù)簡(jiǎn)介
自然語言推理 (Natural Language Inference, NLI) ,又叫文本蘊(yùn)含識(shí)別 (Recognizing Textual Entailment, RTE), 研究的是文本間的語義推理關(guān)系, 具體來講, 就是識(shí)別兩句話之間的蘊(yùn)含關(guān)系,例如,蘊(yùn)含、矛盾、中性。形式上是,NLI 是一個(gè)本文對(duì)分類問題。
1.2 動(dòng)機(jī)
這里簡(jiǎn)要介紹一下我們提出 Gaussian Self-attention 的動(dòng)機(jī)。我們觀察到,在句子中,與當(dāng)前詞的語義關(guān)聯(lián)比較大的詞往往出現(xiàn)在這個(gè)單詞的周圍, 但是普通的 Self-attention, 并沒有有效地體現(xiàn)這一點(diǎn)。如圖1所示,在句子 ”I bought a newbookyesterday with a new friend in New York. ” 中,共出現(xiàn)了三個(gè) ”new”,但對(duì)于當(dāng)前詞 book 來說,只有第一個(gè)new 才是有意義的。但是普通的 self-attention(在不使用 position-encoding 的情況下),卻給這三個(gè) ”new” 分配了同樣大小的權(quán)重,如圖1(a)所示。我們的想法是,應(yīng)當(dāng)鼓勵(lì) self-attention 給鄰近的詞更大的權(quán)重,為此,我們 在原始的權(quán)重上乘以一個(gè)按臨近位置分布的高斯先驗(yàn)概率,如圖 1(b),改變 self-attention 的權(quán)重分布,如圖 1(c),從而更加有效地建模句子的局部結(jié)構(gòu)。
圖 1. Gaussian self-attention 示例
事實(shí)上,RNNs 和 CNNs 能夠自然而然地賦予臨近的單詞更大的權(quán)重,例如,RNNs 會(huì)傾向忘記遠(yuǎn)處的單詞,CNNs 會(huì)忽略所有不在當(dāng)前窗口內(nèi)的單詞。在這篇文章中,我們把 Gaussian self-attention 應(yīng)用到了 Transformer 網(wǎng)絡(luò)上, 并在自然語言推理 (Natural language Inference)這一任務(wù)上進(jìn)行了驗(yàn)證,實(shí)驗(yàn)表明我們所提出的基于 Gaussian self-attention 的 Gaussian Transformer 效果優(yōu)于許多較強(qiáng)的基線方法。同時(shí),該方法也保留了原始 Transformer 的并行訓(xùn)練,參數(shù)較少的優(yōu)點(diǎn)。
2 模型簡(jiǎn)介
在實(shí)現(xiàn)上, 我們可以通過一系列化簡(jiǎn) (具體細(xì)節(jié)請(qǐng)參看我們的論文原文), 把 Gaussian self-attention 轉(zhuǎn)化為 Transformer 中的一次矩陣加法操作, 如圖 2 所示, 從而節(jié)省了運(yùn)算量。 此外,我們發(fā)現(xiàn),與使用原始的 Gaussian 分布作為先驗(yàn)概率相比,適當(dāng)?shù)囊种频絾卧~自身的 attention可以對(duì)最終的實(shí)驗(yàn)結(jié)果有少許的提升,如圖 3(b) 所示。
圖 2. Attention 示例: (a) 原始的 dot-product attention;(b)&(c) Gaussian self-attention 的兩種實(shí)現(xiàn)
圖 3. 先驗(yàn)概率示例: (a) 原始的 Gaussian prior;(b) 抑制到自身的 Gaussian prior 變種
圖 4 展示了我們模型的整體框架。 如圖所示, 模型自底向上大致分為四個(gè)部分:Embedding模塊、編碼 (Encoding) 模塊、交互 (Interaction) 模塊和對(duì)比 (Comparison) 模塊。
圖 4. Gaussian Transformer 整體框架
Embedding 模塊的作用是把自然語言文本轉(zhuǎn)化為機(jī)器方便處理的向量化表示, 我們使用了單詞和字符級(jí)別的 Embedding,以及 Positional Encoding。
Encoding 模塊與原始的 Transformer 的 Encoder 非常類似,只是我們?cè)黾恿饲拔囊氲?Gaussian self-attention 以便更好的建模句子的局部結(jié)構(gòu)。 但事實(shí)上, 句子中也存在長(zhǎng)距離依賴, 僅僅建模句子的局部結(jié)構(gòu)是不夠的。為了捕獲句子的全局信息,我們堆疊了 M 個(gè) Encoding 模塊。這種方式類似于多層的 CNNs 網(wǎng)絡(luò),層數(shù)較高的卷積層的 receptive ?eld 要大于底層的卷積。
Interaction 模塊用于捕獲兩個(gè)句子的交互信息。 這一部分與原始的 Transformer 的 Decoder 部分類似, 區(qū)別是我們?nèi)サ袅?Positional Mask 和解碼的部分。 通過堆疊 N 個(gè) Interaction 模塊,我們可以捕獲高階交互的信息。
Comparison 模塊主要負(fù)責(zé)對(duì)比兩個(gè)句子,分別從句子的 Encoding 和 Interaction 兩個(gè)角度對(duì)比,這里我們沒有使用以前模型中的復(fù)雜結(jié)構(gòu),從而節(jié)省了大量的參數(shù)。
3 實(shí)驗(yàn)與分析
3.1 實(shí)驗(yàn)結(jié)果
首先,我們驗(yàn)證各個(gè)模塊的有效性,如圖 5 所示,采用多層的 Encoding 模塊和多層的 Interaction 模塊的效果要優(yōu)于使用單層的模型,證明了前面所提到的全局信息和高階交互的有效性。其次,我們想要驗(yàn)證一下 Gaussian prior 的有效性。如表 1 所示,我們發(fā)現(xiàn) Gaussian prior 及其變種的性能要優(yōu)于其他諸如 Zipf prior 等方法,也要優(yōu)于原始的 Transformer。最后, 我們?cè)?SNLI、MultiNLI 和 HardNLI 的測(cè)試集上與其他前人的方法進(jìn)行了橫向比較。如表 2、 3、4、5 和 6 所示,我們的方法在 Accuracy、模型參數(shù)量、訓(xùn)練與預(yù)測(cè)一輪同樣的數(shù)據(jù)的時(shí)間上都優(yōu)于基線方法。
圖 5. MultiNLI 開發(fā)集上的 Accuracy 熱圖。
表1.MultiNLI 開發(fā)集上各 Gaussian transformer 變種的 Accuracy
表2.SNLI 測(cè)試集上 Gaussian Transformer 與其他模型的橫向比較
表3.MultiNLI 測(cè)試集上 Gaussian Transformer 與其他模型的橫向比較
表4.在 SNLI 數(shù)據(jù)集上訓(xùn)練或預(yù)測(cè)一輪所需的時(shí)間對(duì)比
表5.當(dāng)引入外部資源時(shí),各個(gè)模型的性能比較
表6.HardNLI 上的對(duì)比結(jié)果
3.2 分析
Q:原始的 Transformer 中已經(jīng)有了 Positional encoding,已經(jīng)能夠捕獲單詞的位置信息,為什么還要用 Gaussian Prior ?
A:Positional Encoding 僅僅使模型具有了感知單詞位置的能力;而 Gaussian Prior 告訴模型哪些單詞更重要,即對(duì)于當(dāng)前單詞來說,臨近的單詞比遙遠(yuǎn)的單詞更重要,這一先驗(yàn)來自于人的觀察。
Q:為什么 Gaussian Transformer 在時(shí)間和參數(shù)量上優(yōu)于其他的方法?
A:Gaussian Transformer 沒有循環(huán)和卷積結(jié)構(gòu),從而能夠并行計(jì)算,同時(shí)我們?cè)谠O(shè)計(jì)模型時(shí),盡量保持模型簡(jiǎn)化,摒棄了以往方法中的復(fù)雜結(jié)構(gòu) (例如,在 Comparison block 中的簡(jiǎn)化),使我們的模型更加輕量。
4 結(jié)論
針對(duì)自然語言推理任務(wù)的前人工作的不足,我們提出了基于 Gaussian self-attention 的 Gaussian Transformer 模型。實(shí)驗(yàn)表明所提出的模型在若干自然語言推理任務(wù)上取得了State-of-the-Art的實(shí)驗(yàn)結(jié)果。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4820瀏覽量
106264
原文標(biāo)題:AAAI 2019 Gaussian Transformer: 一種自然語言推理的輕量方法
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
python自然語言
【推薦體驗(yàn)】騰訊云自然語言處理
深度視頻自然語言描述方法

什么是自然語言處理_自然語言處理常用方法舉例說明

一種注意力增強(qiáng)的自然語言推理模型aESIM

PyTorch教程16.4之自然語言推理和數(shù)據(jù)集

PyTorch教程16.5之自然語言推理:使用注意力

PyTorch教程16.7之自然語言推理:微調(diào)BERT

PyTorch教程-16.5。自然語言推理:使用注意力
自然語言處理的概念和應(yīng)用 自然語言處理屬于人工智能嗎
一種基于自然語言的軌跡修正方法

評(píng)論