劉月峰,段毅
(內蒙古科技大學信息工程學院,包頭014010)
關系抽取[1]是自然語言處理領域的熱點任務之一,它是信息抽取、自動問答和知識圖譜補全等領域的子任務之一。關系抽取的目標是識別出文本語句中標記實體對之間的預先定義好的語義關系。例如,“姚明的妻子是葉莉”,姚明和葉莉是文本中的標記實體,關系抽取的目標就是去識別出姚明與葉莉兩個實體之間的夫妻關系。目前的關系抽取方法大致可以分為兩類,它們分別是基于依存句法關系的方法和基于序列的方法。基于依存句法關系的方法是將文本序列的語義依存樹提取到機器學習模型中,通過沿著語義依存樹形成的計算圖構建出句子的分布式表示,然后再進行分類,但是這種方法易受符號間語義鴻溝的影響。基于序列的模型對單詞序列進行編碼,使用卷積神經網絡或循環神經網絡將句子的文本序列編碼為向量化的語義特征,具有更高的魯棒性。另外,在實際環境下,由于人工數據標注的成本較為昂貴,精確而豐富的訓練數據不易獲得,我們在實踐過程中收集到的往往是小樣本量的樣本數據,現有的大多數機器學習模型往往依賴大量而且精確的訓練數據,并且由于樣本量過少,模型容易產生過擬合問題,導致在小樣本數據集上卻無法獲得令人滿意的結果。
本文提出一種基于密集連接思想的小樣本關系抽取框架。時間卷積網絡[2-3]如圖1所示,是一種在CNN的基礎上進行改進,能夠有效捕捉到更多長依賴數據,減少信息損失,處理時間序列數據的網絡結構。時間卷積網絡結合了全卷積和因果卷積的優點,進行padding處理使模型的輸入和輸出長度相同,同時通過使用因果空洞卷積,獲取了更大的感受野,捕捉到了更長的語義依賴關系,卷積后的特征較少丟失。該框架借助于深度學習網絡強大的學習能力,將經過預訓練的文本序列的語義向量輸入到TCN網絡,其中的空洞卷積過程能在問句向量序列中獲取更大的感受視野,提取到沒有“漏接”的過往問句語義信息,更好地減少了問句語義信息的損失。針對CNN[4-5]模型需要使用多層卷積才能延長對時間序列特征數據的建模問題,如圖1所示,TCN通過采用空洞卷積方法增大每層的感受野范圍,從而減少常規方法堆疊普通卷積層的數量。空洞卷積與普通卷積的不同之處在于空洞卷積允許進行卷積操作時采用間隔采樣的方式,采樣率取決于膨脹因子設置的尺寸大小。增大TCN感受野有兩種方法:設置更大的卷積核尺寸和增加膨脹因子的大小。在空洞卷積操作過程中,膨脹因子的大小會隨著網絡深度的增加以指數方式增長,故卷積網絡能用較少的層數依然可以獲得較大的感受野。

圖1 原始TCN結構圖
雖然TCN網絡結構簡單,但是當使用小樣本數據集訓練TCN網絡時,會十分容易產生過擬合現象。DenseNet網絡是計算機視覺領域中一個非常重要的結構。DenseNet網絡將之前所有層的輸入和當前層輸出的特征向量拼接,再進行非線性變換。因為DenseNet通過這樣的拼接,所以輸出向量中包含了盡可能多的特征信息,該網絡每層卷積的通道數可以設計的相對較小。因此,針對小樣本數據集,它能很好地解決過擬合問題。本文的方法就是使用DenseNet密集連接的思想對時間卷積網絡進行在小樣本數據集進行改進。改進的密集連接時間卷積計算公式如公式(1)所示,f(x)代表時間卷積網絡的因果空洞卷積操作,y代表模型最終輸出的預測向量。

如圖2所示,改進TCN網絡使用密集連接思想取每個輸出通道的最后一個值進行拼接作為空洞卷積層的輸入特征,進行特征映射與空洞卷積操作。

圖2 小樣本知識庫預測框架
由于提取出來的部分特征直接來自于進行詞嵌入處理后的數據,直接進行關系抽取,在這個數據集上最終的準確度會有所損失,因此需要再連接一個映射模塊將特征進一步處理,此處的映射模塊舍棄了池化層,由卷積核大小為3的卷積層和BatchNorm層構成,該模塊利用卷積操作對特征進行處理的同時可減少通道數量,從而有效降低最后的特征維度,而BatchNorm層具有抑制過擬合的能力,能夠緩解過擬合問題,最后使用log_softmax函數對上一層輸出的特征進行處理就得到了對應各個關系類別分類概率的概率預測向量,跟文本對應的標簽對比,進行梯度更新。
本文使用的訓練數據是從新華網、人民網、中國新聞網等網站中抽取出來的新聞語料,這些新聞語料都是國家權威新聞單位發布的,語料質量比較可靠、客觀、規范。我們使用Python爬蟲技術爬取了從2019年12月1日至2019年12月31日新聞語料,把這些語料排除標題、關鍵字,把新聞正文文本分割出單個語義樣本,并進行關系標注,最后根據合理的比例把這些語義樣本隨機劃分為訓練集、驗證集、測試集,構建成為小樣本關系抽取數據集。關系抽取的任務是識別出單個語言樣本中的關系類別。
原始新聞語料的提取使用Python爬蟲技術,從獲得新聞網頁的URL地址到提取出新聞語料的標題、關鍵字、正文,最終形成原始新聞語料,需要進行以下幾個過程:首先,利用requests請求獲得新聞網頁的URL列表;然后在瀏覽器的開發者工具查看頁面的DOM樹,根據網站的DOM樹結構映射出新聞頁面的標題、作者、正文的HTML標簽;最后利用XPath API提取出相應的內容,構造出最后的原始新聞語料。
實驗運行在谷歌CoLab平臺上,CoLab平臺顯卡型號為NVIDIA Tesla P100,驅動版本SIM為410.129,CUDA版本為10.0,顯存11G。所用深度學習框架為CUDA 10.1和PyTorch 1.6.0。本文采用Adam算法進行參數更新。我們采用glove詞向量,詞嵌入維度input_size設置為300,卷積核尺寸k設置為3,每層的隱藏單元數hidden設置為300,卷積層的dropout設置為0.45,初始學習率設置為0.03。網絡的膨脹因子設置為2,與TCN的膨脹因子相同。經感受野計算公式可知,網絡至少需要6層卷積,網絡通道數設置為12。實驗采取早停機制,當在驗證集上在10個epochs訓練獲得最好的結果,就停止訓練,保存模型的參數列表。
實驗結果如表1所示,我們分別比較CNN、LSTM、原始TCN以及我們的基于密集連接思想的關系抽取模型進行關系預測的效果,實驗表明使用密集連接思想的改進TCN模型的關系預測方法性能有明顯提升,這是因為基于密集連接思想的關系抽取方法采用計算機視覺領域密集連接的思想,盡可能多地提取出文本序列中的語義信息,再進行關系抽取,緩解了模型過擬合問題,有效提高了小樣本預測分類的性能、取得了在小樣本關系預測問題上相對有競爭力的結果。

表1 關系抽取測試結果
為了更有效地證明基于密集連接思想的關系預測模型的有效性,本文對比了測試集上CNN模型和改進TCN模型的Top5準確度,如圖3所示,基于密集連接思想的關系預測模型(Improving TCN)在不同學習率設置的情況下,小樣本關系分類性能明顯優于普通的CNN模型。

圖3 CNN和基于密集連接模型的準確率對比
本文為了能夠充分利用小樣本數據來訓練關系抽取模型,更加有效地獲取小樣本訓練數據中包含的語義信息,預防模型產生過擬合問題,借鑒計算機視覺領域的經驗,提出了一種基于密集連接思想的小樣本關系預測模型,對文本序列數據使用因果空洞卷積操作取代堆疊CNN的方式捕捉文本序列依賴關系;使用密集連接機制取代殘差處理盡可能多地保留語義信息,能夠緩解由于數據量過少產生的過擬合問題,獲取更多的語義特征。實驗結果表明,本文使用的模型與其他單一模型相比在小樣本關系抽取的準確度上有著進一步的提高。