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

?

基于XLNET 的抽取式多級(jí)語義融合模型*

2020-07-19 02:03胡益淮
通信技術(shù) 2020年7期
關(guān)鍵詞:語義向量單詞

胡益淮

(杭州電子科技大學(xué)計(jì)算機(jī)學(xué)院,浙江 杭州 310018)

0 引言

在計(jì)算機(jī)算力越來越強(qiáng)的如今,許許多多的人工智能系統(tǒng)得到了發(fā)展與落地,諸如圖像風(fēng)格化、人臉識(shí)別技術(shù)、機(jī)器翻譯等等。但仍有不少的人工智能任務(wù)仍然處于研究之中,機(jī)器閱讀理解(Machine Reading Comprehension,MRC)任務(wù)便是其中之一。

MRC 任務(wù)一直是自然語言處理領(lǐng)域中最關(guān)鍵的一項(xiàng)任務(wù)之一。在2015 年各種大規(guī)模閱讀理解數(shù)據(jù)集公布之前,MRC 往往使用傳統(tǒng)的自然語言處理(Neutral Language Processing)采用基于人工規(guī)則的模式匹配方法,或者借鑒信息抽取的方法構(gòu)造關(guān)系型數(shù)據(jù)庫來尋得答案。但是這些方法均效率低下,且準(zhǔn)確率不高。

這種情況由于深度學(xué)習(xí)技術(shù)的發(fā)展,新模型、新機(jī)制的提出得到了不斷改善。詞向量與注意力機(jī)制的提出,使得基于深度學(xué)習(xí)的閱讀理解模型有了一個(gè)輪廓,可分為詞向量模塊、編碼模塊、注意力模塊以及答案預(yù)測(cè)模塊。

詞向量模塊將所有的單詞映射到一個(gè)向量空間中,使得每個(gè)單詞具有唯一的向量表示。

2013 年Google 開源了用于詞向量計(jì)算的工具-word2vec[1],用以替代詞袋模型,word2vec 基于局部語料庫訓(xùn)練的,其特征提取是基于滑窗的。次年Jeffrey Pennington,Richard Socher,Christopher D。Manning 公開了Glove 詞嵌入工具[2],有別于word2vec 的是glove 工具基于全局語料庫訓(xùn)練,從某種意義上看,Glove 是更換了目標(biāo)函數(shù)和權(quán)重函數(shù)的全局word2vec。但是這種做法有個(gè)明顯的缺點(diǎn),就是對(duì)于每一個(gè)單詞都有唯一的一個(gè)embedding表示,顯然對(duì)于多義詞顯然這種做法不符合直覺,而且單詞的意識(shí)又和上下文相關(guān)。2018 年,Matthew E Peters 和Mark Neumann 等人提出了ELMo(Embedding from Language Models 模 型[3]。ELMo模型是從深層的雙向語言模型(deep bidirectional language model)中的內(nèi)部狀態(tài)(internal state)學(xué)習(xí)而來的,他能夠?qū)W習(xí)到詞匯用法的復(fù)雜性,比如語法、語義,并且能夠?qū)W習(xí)到不同上下文情況下的詞匯多義性。雖然ELMo 模型結(jié)合了上下文的信息,但是其僅僅將節(jié)點(diǎn)的左右信息做了一次拼接,其左信息未包含右信息,反之亦然。從這個(gè)層面上來說,ELMo 依然只是單向的語言模型。同年OpenAI團(tuán)隊(duì)的Alec Radford 與Karthik Narasimhan 等人提出了GPT 預(yù)訓(xùn)練模型[4],他們第一個(gè)用Google 團(tuán)隊(duì)提出的Transformer 網(wǎng)絡(luò)替代LSTM 網(wǎng)絡(luò)作為語言模型來更好的捕獲長距離語言結(jié)構(gòu)。與ELMo 只提供詞向量不同的是,GPT 預(yù)訓(xùn)練的模型一同提供給下游任務(wù),供具體任務(wù)精調(diào)(Fine-Tune),但依然只是單向的語言模型。同年Google 提出了BERT(Pre-training of Deep Bidirectional Transformers for Language Understanding)預(yù)訓(xùn)練模型[5],其使用了Transformer 的編碼器作為語言模型,采用了全連接的網(wǎng)絡(luò)結(jié)構(gòu),并在語言模型預(yù)訓(xùn)練的時(shí)候,提出了兩個(gè)新的目標(biāo)任務(wù)(即遮擋語言模型MLM 和預(yù)測(cè)下一個(gè)句子的任務(wù)),使得訓(xùn)練出來的結(jié)果能夠充分表示理解上下文之后的單詞。但是BERT 沒有考慮到在訓(xùn)練過程中屏蔽的單詞與未屏蔽的單詞之間的關(guān)系。2019年Google團(tuán)隊(duì)又提出了XLNET模型[6],其基于自回歸(Autoregressive,AR)語言模型實(shí)現(xiàn)了新的雙向編碼,并且由于AR 方法的緣故,避免了BERT 的缺點(diǎn)。

編碼模塊將尚未包含上下文信息的詞向量表示的文本序列作為輸入,通過雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Bidirectional Recurent Neural Network,BiRNN和向長短期記憶(Bidirectional Long Short-Term Memory,BiLSTM)[7]提取文本序列的特征,提取的特征擁有豐富的上下文信息以及語義信息。

每一篇文章的側(cè)重點(diǎn)并不相同,因此各個(gè)文本序列中的各個(gè)單詞所占的比重并不相同,需要通過注意力機(jī)制來挑選出與問題相關(guān)性最大的部分,排除不相干的部分。Karl Moritz Hermann 等學(xué)者在2015 年發(fā)表的論文“Teaching Machines to Read and Comprehend”中提出了兩個(gè)基礎(chǔ)模型——“Attentive Reader”和“Impatient Reader”,成為了后來許多研究的基礎(chǔ)。次年IBM 公司的Kadlec提出了Attention-Sum Reader,該模型直接利用attention 機(jī)制基于問句表示在文章中尋找最相關(guān)的詞作為答案。2017 年,Google 去掉RNN 僅僅依賴于Attention 機(jī)制實(shí)現(xiàn)了Transformer,并提出了多頭注意力(Multi-headed attention)機(jī)制方法,在編碼器和解碼器中大量的使用了多頭自注意力機(jī)制(Multi-headed self-attention)。由于attention 機(jī)制可以看到全文的特性,新的Transformer 效果顯著,并且加快了訓(xùn)練速度。

答案預(yù)測(cè)模塊是MRC 任務(wù)的核心部分。根據(jù)數(shù)據(jù)集的不同,答案的種類也不相同,新的答案預(yù)測(cè)模塊也被不斷提出。從最早的抽取式數(shù)據(jù)集(如SQuAD[8])到生成式數(shù)據(jù)集(如MS MARCO),不同的答案預(yù)測(cè)模塊生成的答案也從文中文本序列到文本生成。

2016 年,Rajpurkar 等人提出閱讀理解數(shù)據(jù)集SQuAD(Stanford Question Answering Dataset),該數(shù)據(jù)集包含10 萬個(gè)(問題,原文,答案)三元組,原文來自于536 篇維基百科文章,而問題和答案的構(gòu)建主要是通過眾包的方式,讓標(biāo)注人員提出最多5 個(gè)基于文章內(nèi)容的問題并提供正確答案,且答案出現(xiàn)在原文中。2018 年P(guān)ercy Liang 等研究者介紹了機(jī)器閱讀理解問答數(shù)據(jù)集SQuAD 的新版本SQuAD 2.0[9],相較于SQuAD 1.0 版本,其增大了數(shù)據(jù)集量,并且引入了不可回答問題,其難度要高于SQuAD 1.0.

基于上述研究現(xiàn)狀,本文針對(duì)于SQuAD 2.0 數(shù)據(jù)集提出一種基于XLNET 的機(jī)器閱讀理解模型,并獲得了78.2%的EM 與81.75%的F1 成績。

1 基于XLNET 的機(jī)器閱讀理解模型

當(dāng)前主流的機(jī)器閱讀理解模型在表示層一般都是選用GloVe 詞向量進(jìn)行文本表征,GloVe 詞向量的提出使得機(jī)器閱讀理解模型的表現(xiàn)向前進(jìn)了一步,模型在各個(gè)數(shù)據(jù)集的成績也得到了提升。但是GloVe 詞向量仍然存有不少的問題,其中之一就是無法處理自然語言文本當(dāng)中的一詞多義的情況。無論中文還是英文均存在一詞多義的情況,是自然語言處理中一個(gè)較難處理的點(diǎn)。BERT 模型解決了一詞多義的問題,因此其也成為了現(xiàn)今如何表示詞向量的一個(gè)選擇。BERT 模型還借鑒了圖像領(lǐng)域的遷移學(xué)習(xí)的模式,通過了精調(diào)階段使預(yù)訓(xùn)練的結(jié)果能夠更好地表示當(dāng)前數(shù)據(jù)集中各個(gè)單詞的詞義。但是BERT 模型仍然存在問題,即沒有考慮到單詞與單詞之間的獨(dú)立性,并且預(yù)訓(xùn)練階段與精調(diào)階段的過程存在不一致性的情況,不能更好地表示單詞的詞義。由于上述兩個(gè)詞向量在設(shè)計(jì)方面存在不足,本文提出的模型在表示層引入了XLNET 語言模型對(duì)文本進(jìn)行表示,以期能夠提升模型的效果,模型結(jié)構(gòu)圖如圖1 所示。

在深度學(xué)習(xí)領(lǐng)域,特征的提取顯得極為重要,選擇優(yōu)秀的特征還是平庸的特征會(huì)在很大程度上影響模型的效果。這一特性在計(jì)算機(jī)視覺領(lǐng)域得到了充分的證明,除此之外,計(jì)算機(jī)視覺方向的圖像識(shí)別領(lǐng)域有人認(rèn)為,一副圖像是由不同層次的特征構(gòu)成的,不同層次的特征擁有不同的信息,所有信息匯聚即可識(shí)別目標(biāo)。自然語言的文本內(nèi)容也可類比于計(jì)算機(jī)視覺領(lǐng)域的一幅幅圖像,可以認(rèn)為文本是由大量的語義構(gòu)成的。因此,本文提出的模型在編碼區(qū)采用了多層雙向LSTM 網(wǎng)絡(luò)對(duì)文本的語義進(jìn)行提取。由于機(jī)器性能的限制,本文中在實(shí)驗(yàn)階段僅采用了兩層雙向LSTM 網(wǎng)絡(luò)來獲取文本的語義,將其表示為低級(jí)語義與高級(jí)語義。

圖1 基于XLNET 的機(jī)器閱讀理解模型

在將文本表示為兩層語義后出現(xiàn)了問題。多層次的語義會(huì)使得文本內(nèi)容變得片面,若是僅僅將多層次的語義分別通過后續(xù)網(wǎng)絡(luò),則后續(xù)網(wǎng)絡(luò)無法利用片面的信息得出正確的結(jié)果。FusionNet 模型[10]的出現(xiàn)為多層次信息融合提供了方法,而之前的模型受制于學(xué)習(xí)能力、計(jì)算能力的限制通常只利用了文本的部分信息。因此本文提出的模型在交互層采用了多層注意力機(jī)制對(duì)多層次語義的融合表征。

本文提出的模型參考了DenseNet 模型[11],DenseNet 模型是圖像領(lǐng)域的優(yōu)秀模型,其核心思想是網(wǎng)絡(luò)每一層的輸入為前面所有層的輸出,該模型有效地降低了梯度消失問題,并加強(qiáng)了特征的傳遞。在獲取到多層次語義的融合表征后,將其與文章、問題的原始輸入進(jìn)行組合,并在組合后通過雙向LSTM 對(duì)文章、問題的信息進(jìn)行編碼。

SQuAD 數(shù)據(jù)集的答案是原文中的文本片段的起始位置與終止位置,為了對(duì)這兩個(gè)位置進(jìn)行預(yù)測(cè),模型的輸出層選用了指針網(wǎng)絡(luò)[12]。

1.1 基于XLNET 生成詞向量

目前,自然語言處理任務(wù)的數(shù)據(jù)是都是基于詞向量表示的形式,把文本符號(hào)先用向量表示出來,然后使用深度學(xué)習(xí)的方法在不同層面抽取和具體下游任務(wù)相關(guān)的文本特征??梢钥闯觯~向量表示是所有自然語言處理任務(wù)的基礎(chǔ),所有的深度學(xué)習(xí)模型都是建立在詞向量表示的基礎(chǔ)上的。因此,通過學(xué)習(xí)得到更具有表達(dá)性、具有豐富語義的向量表示,可以提高整個(gè)模型的性能。在機(jī)器閱讀理解任務(wù)上,將文本表示成向量是機(jī)器閱讀理解模型架構(gòu)中的第一步。目前主流的模型使用詞向量Glove 和字符向量表示(character embedding)組合的方式去實(shí)現(xiàn)。在本文的工作中,使用了XLNET 語言模型生成詞向量,為了對(duì)比不同詞向量對(duì)機(jī)器閱讀理解模型的影響,本文在實(shí)驗(yàn)的過程中還實(shí)現(xiàn)了以GloVe 詞向量以及BERT 模型生成的詞向量作為輸入的對(duì)照組。

由于數(shù)據(jù)集均以json 的形式存儲(chǔ),需要將網(wǎng)頁數(shù)據(jù)解析成結(jié)構(gòu)化的數(shù)據(jù)。首先采用ujson 模塊快速解析json 文件,并將所有的中文引號(hào)處理成英文的引號(hào),避免在利用spacy 工具處理數(shù)據(jù)時(shí)遇到特殊字符出現(xiàn)錯(cuò)誤。

由于XLNET語言模型不同于傳統(tǒng)的語言模型,如word2vec、GloVe。故其輸入文本數(shù)據(jù)的格式也不同。

由于數(shù)據(jù)集的每一條數(shù)據(jù)均以文本形式讀取,而詞向量以單詞為單位,故需要進(jìn)行分詞操作以得到單詞。不同于GloVe 的是,XLNET 語言模型采用了Sentence Piece 來實(shí)現(xiàn)分詞和WordPiece 切分,得到單詞列表以及數(shù)字序列,數(shù)字序列代表原文本中的單詞在單詞列表中的序號(hào)。

XLNET 預(yù)訓(xùn)練語言模型預(yù)訓(xùn)練的數(shù)據(jù)格式如圖2 所示。

圖2 預(yù)訓(xùn)練數(shù)據(jù)格式

其中的CLS 特殊符號(hào)代表一個(gè)文章、問題的結(jié)束,并且用SEP 符號(hào)來隔離文章與問題。序列總長度可自行設(shè)定,在本次實(shí)驗(yàn)中的序列長度為512,并且問題內(nèi)容為主。假設(shè)問題長度為48,則文章長度不可超過461 個(gè)單詞。若是總序列超出了設(shè)定的序列長度,則將文章序列后多余的部分截?cái)?,反之若是總序列不足設(shè)定的序列長度,則在文章序列后面以0 填充。SQuAD 數(shù)據(jù)集的答案是兩個(gè)數(shù)字,意味著答案在文本中對(duì)應(yīng)字符的位置,在對(duì)文章進(jìn)行截?cái)嗪髮⒃斐梢粋€(gè)問題,即該問題無解(無解是SQuAD 2.0 新引入的一個(gè)概念)。為了應(yīng)對(duì)這個(gè)問題,若答案序列在文章中的內(nèi)容被截?cái)啵瑒t以一個(gè)特殊的標(biāo)識(shí)代替,意味著本題無法回答。在SQuAD數(shù)據(jù)集中,以-1 來表示無法回答的問題。

將預(yù)處理好的數(shù)據(jù)作為XLNET 語言模型的輸入,通過XLNET 語言模型提供的get_sequence_output 方法來獲取文本中每一個(gè)句子(由問題、答案組成)的詞向量。

1.2 基于注意力機(jī)制的多層語義融合

在表示層得到XLNET 語言模型輸出的詞向量后,經(jīng)由編碼層得到了低級(jí)語義Hl、高級(jí)語義Hh以及混合語義Hf等三層語義,在交互層經(jīng)由多層注意力機(jī)制將文章與問題的語義相互結(jié)合,最終得到一個(gè)擁有所有語義編碼的輸出序列,本小節(jié)將詳細(xì)介紹這一過程。

在第一層多級(jí)注意力機(jī)制中,將三級(jí)語義以文章、問題進(jìn)行分離重新組合,得到與。之后采用FusionNet 模型的理念將兩類語義在各個(gè)級(jí)別上進(jìn)行交互。這里以低級(jí)語義為例,先計(jì)算出兩者的仿射矩陣S:

接著采用一個(gè)雙向注意力機(jī)制來計(jì)算交互表示

其中的softmax(·)是標(biāo)準(zhǔn)化函數(shù)。

之后運(yùn)用同樣的注意力機(jī)制得到三層語義的交互表示之后,再將其重新組合構(gòu)成。緊接著將三層語義及文章與問題的交互表示拼接在一切,并經(jīng)由一層雙向LSTM 得到HA:

HA即代表著文章與問題不同層次之間所有語義及關(guān)系。

最后將原始的詞嵌入后的文章、答案的內(nèi)容V=[P;Q]與HA相拼接,先通過自注意力機(jī)制,再經(jīng)由最后一層雙向LSTM 網(wǎng)絡(luò),得到最終的文章、答案表示的內(nèi)容O=[Op;Oq],公式化描述如下:

1.3 基于指針網(wǎng)絡(luò)的答案預(yù)測(cè)模塊

指針網(wǎng)絡(luò)(Pointer Networks)是Seq2Seq 模型與注意力機(jī)制結(jié)合產(chǎn)生的一個(gè)網(wǎng)絡(luò)。它不是把 一個(gè)序列轉(zhuǎn)換成另一個(gè)序列,而是產(chǎn)生一系列指向輸入序列元素的指針。最基礎(chǔ)的用法是對(duì)可變 長度序列或集合的元素進(jìn)行排序。在本章節(jié)中在SQuAD 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),只需要預(yù)測(cè)答案的起始位置與終止位置即可,故由指針網(wǎng)絡(luò)來作為本章模型的輸出層。

由于指針網(wǎng)絡(luò)需要一個(gè)初始狀態(tài)進(jìn)行計(jì)算,所以需要使用上一層中問題的表示向量算一個(gè)初始狀態(tài)向量。計(jì)算公式如下:

其中,Wq是可學(xué)習(xí)的權(quán)重矩陣,代表著第i個(gè)單詞在問題中的表示,然后我們將cq作為指針網(wǎng)絡(luò)的初始狀態(tài)向量。

接下來根據(jù)指針網(wǎng)絡(luò)公式,計(jì)算答案的起始位置和終止位置:

起始位置:

終止位置:

在訓(xùn)練時(shí),使用交叉熵?fù)p失函數(shù),其中第n條數(shù)據(jù)的答案片段在原文中的開始位置和終止位置分別用xn,yn來表示:

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

為了評(píng)估本文提出模型的性能,將本文模型在SQuAD 2.0 數(shù)據(jù)集中測(cè)試的結(jié)果與其他模型的結(jié)果進(jìn)行了對(duì)比,實(shí)驗(yàn)結(jié)果如表1 所示。

表1 本文模型與其他模型準(zhǔn)確率對(duì)比

本文提出的模型獲得了78.32%的EM 分?jǐn)?shù)以及81.75%的F1 分?jǐn)?shù),超過了Match-LSTM 模型與BiDAF 模型,表明本文提出的多層語義融合的方法比早期模型能夠獲取更多文本語義。但 是本文提出的模型準(zhǔn)確率沒有R-NET 模型的高,說明本文所提出的模型仍舊存在局限性,可能原因?yàn)槎鄬诱Z義的獲取數(shù)量不夠,在實(shí)驗(yàn)過程中由于機(jī)器性能的緣故,僅僅采用了兩層BiLSTM 進(jìn)行了語義獲取,如果借鑒圖像領(lǐng)域?qū)矸e神經(jīng)網(wǎng)絡(luò)模型的研究,可以猜測(cè)更多層次的語義能夠 幫助模型獲得更加優(yōu)異的成績,但是這個(gè)層次數(shù)量并不是越多越好,需要經(jīng)過不斷的調(diào)整獲取最 佳數(shù)量,該部分內(nèi)容有待后續(xù)研究。

3 結(jié)語

本文針對(duì)SQuAD 2.0 數(shù)據(jù)集提出了基于XLNET的機(jī)器閱讀理解模型,該模型由四個(gè)部分組成:表示層、編碼層、交互層以及輸出層。表示層通過XLNET 生成詞向量,編碼層通過雙向LSTM 網(wǎng)絡(luò)來對(duì)文本進(jìn)行編碼,并抽象成多級(jí)語義,交互層將語義進(jìn)行融合并讓答案與文本進(jìn)行信息交互,輸出層利用指針網(wǎng)絡(luò)輸出答案。該模型引入了XLNET 語言模型來生成詞向量,使得詞向量能夠富含豐富的語義,并為機(jī)器閱讀理解的研究提供了新的模型思路。

猜你喜歡
語義向量單詞
真實(shí)場(chǎng)景水下語義分割方法及數(shù)據(jù)集
向量的分解
聚焦“向量與三角”創(chuàng)新題
單詞連一連
看圖填單詞
向量垂直在解析幾何中的應(yīng)用
“吃+NP”的語義生成機(jī)制研究
向量五種“變身” 玩轉(zhuǎn)圓錐曲線
情感形容詞‘うっとうしい’、‘わずらわしい’、‘めんどうくさい’的語義分析
漢語依憑介詞的語義范疇