• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

    2020-07-19 02:03:40胡益淮
    通信技術 2020年7期
    關鍵詞:語義向量單詞

    胡益淮

    (杭州電子科技大學計算機學院,浙江 杭州 310018)

    0 引言

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

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

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

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

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

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

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

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

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

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

    1 基于XLNET 的機器閱讀理解模型

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

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

    圖1 基于XLNET 的機器閱讀理解模型

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

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

    SQuAD 數據集的答案是原文中的文本片段的起始位置與終止位置,為了對這兩個位置進行預測,模型的輸出層選用了指針網絡[12]。

    1.1 基于XLNET 生成詞向量

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

    由于數據集均以json 的形式存儲,需要將網頁數據解析成結構化的數據。首先采用ujson 模塊快速解析json 文件,并將所有的中文引號處理成英文的引號,避免在利用spacy 工具處理數據時遇到特殊字符出現錯誤。

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

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

    XLNET 預訓練語言模型預訓練的數據格式如圖2 所示。

    圖2 預訓練數據格式

    其中的CLS 特殊符號代表一個文章、問題的結束,并且用SEP 符號來隔離文章與問題。序列總長度可自行設定,在本次實驗中的序列長度為512,并且問題內容為主。假設問題長度為48,則文章長度不可超過461 個單詞。若是總序列超出了設定的序列長度,則將文章序列后多余的部分截斷,反之若是總序列不足設定的序列長度,則在文章序列后面以0 填充。SQuAD 數據集的答案是兩個數字,意味著答案在文本中對應字符的位置,在對文章進行截斷后將造成一個問題,即該問題無解(無解是SQuAD 2.0 新引入的一個概念)。為了應對這個問題,若答案序列在文章中的內容被截斷,則以一個特殊的標識代替,意味著本題無法回答。在SQuAD數據集中,以-1 來表示無法回答的問題。

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

    1.2 基于注意力機制的多層語義融合

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

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

    接著采用一個雙向注意力機制來計算交互表示

    其中的softmax(·)是標準化函數。

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

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

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

    1.3 基于指針網絡的答案預測模塊

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

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

    其中,Wq是可學習的權重矩陣,代表著第i個單詞在問題中的表示,然后我們將cq作為指針網絡的初始狀態(tài)向量。

    接下來根據指針網絡公式,計算答案的起始位置和終止位置:

    起始位置:

    終止位置:

    在訓練時,使用交叉熵損失函數,其中第n條數據的答案片段在原文中的開始位置和終止位置分別用xn,yn來表示:

    2 實驗結果分析

    為了評估本文提出模型的性能,將本文模型在SQuAD 2.0 數據集中測試的結果與其他模型的結果進行了對比,實驗結果如表1 所示。

    表1 本文模型與其他模型準確率對比

    本文提出的模型獲得了78.32%的EM 分數以及81.75%的F1 分數,超過了Match-LSTM 模型與BiDAF 模型,表明本文提出的多層語義融合的方法比早期模型能夠獲取更多文本語義。但 是本文提出的模型準確率沒有R-NET 模型的高,說明本文所提出的模型仍舊存在局限性,可能原因為多層語義的獲取數量不夠,在實驗過程中由于機器性能的緣故,僅僅采用了兩層BiLSTM 進行了語義獲取,如果借鑒圖像領域對卷積神經網絡模型的研究,可以猜測更多層次的語義能夠 幫助模型獲得更加優(yōu)異的成績,但是這個層次數量并不是越多越好,需要經過不斷的調整獲取最 佳數量,該部分內容有待后續(xù)研究。

    3 結語

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

    猜你喜歡
    語義向量單詞
    向量的分解
    聚焦“向量與三角”創(chuàng)新題
    語言與語義
    單詞連一連
    看圖填單詞
    看完這些單詞的翻譯,整個人都不好了
    “上”與“下”語義的不對稱性及其認知闡釋
    現代語文(2016年21期)2016-05-25 13:13:44
    向量垂直在解析幾何中的應用
    向量五種“變身” 玩轉圓錐曲線
    認知范疇模糊與語義模糊
    中西区| 大渡口区| 九江县| 沙坪坝区| 颍上县| 乐东| 乳源| 本溪| 乳山市| 无为县| 沧州市| 二连浩特市| 安阳县| 青神县| 益阳市| 华亭县| 饶河县| 揭西县| 莱西市| 天镇县| 遵义市| 潞西市| 双柏县| 兖州市| 弥勒县| 隆化县| 兴隆县| 灵寿县| 丰县| 兴仁县| 南雄市| 平江县| 密山市| 桐乡市| 阿拉善左旗| 根河市| 上犹县| 桐柏县| 阳信县| 徐州市| 藁城市|