作者: 車萬翔、郭江
引言
統計自然語言處理系統依賴於標註資料,對一些較為複雜的任務,如句法、語義分析等,由於存在標註難度及代價較高、標註一致性差等問題,使得大規模的標註資料往往不易獲取。然而與其它人工智慧問題不同,自然語言處理往往存在多種語言、多種標註規範以及多種任務的標註資料,深度多工學習框架可以充分地利用這些資料有效提升自然語言處理的分析精度。本文以多語言多標註規範依存句法樹庫融合為例,介紹深度多工學習在自然語言處理中的應用,並希望對其它類似的問題產生一定的借鑑作用。
一. 多工學習
機器學習方法為解決自然語言處理所面臨的歧義性、動態性和非規範性問題提供了一種可行的解決方案。其中,有監督學習(Supervised Learning)的方法利用人工標註的訓練資料進行學習,在大多數自然語言處理任務中取得了令人滿意的結果。同時,也應注意到,對於自然語言處理中一些較為複雜的任務,如句法、語義分析等,由於存在標註難度及代價較高、標註一致性差等問題,使得大規模的標註資料往往不易獲取,這也為有監督學習帶來了困難。
針對這個難題,人們沿著不同的研究路線進行了探索,如從未標註資料中進行無監督學習(Unsupervised Learning),融合有標註和未標註資料的半監督學習(Semi-supervised Learning)等。近年來興起的多工學習(Multi-task Learning)技術為解決自然語言處理任務標註資料不足,提高自然語言處理系統的準確率提供了一種新的解決方案。
多工學習是一種歸納遷移機制,基本目標是提高泛化效能。多工學習透過相關任務訓練訊號中的領域特定資訊來提高泛化能力,利用共享表示採用並行訓練的方法學習多個任務。多工學習的基本假設是多個任務之間具有相關性,因此能夠利用這種相關性互相促進。
二. 自然語言處理的特點
目前,多工學習常被應用於影像、視覺等領域。然而,與這些領域不同,自然語言處理具有一定的特殊性。首先,自然語言處理包括詞法、句法、語義分析等多種任務,這些任務表面上看各不相同,但是之間同樣存在緊密的內在聯絡,在一個任務上的良好表現對於其在相關任務上的泛化能力有很大的促進作用,因此我們可以很自然的將多工學習應用於這些任務,以提升各個任務的分析精度。
其次,由於自然語言所具有的複雜性,很多具體任務的資料標註規範並不統一。例如,中文分詞任務中不同資料集的標註粒度不盡相同。然而,儘管標註規範存在差異,這些資料所蘊含的語言知識卻有較強的共性,存在互補的可能,所以還可以將不同標註規範的資料看做不同的任務,應用多工學習提升它們各自的分析精度。
最後,世界上存在多種語言,雖然各種語言的詞彙甚至語法結構等都不盡相同,但是既然語言都是表達人類思想的工具,它們之間也存在一定的共性。因此我們可以將不同語言看作不同的任務,利用多工學習機制,使它們互相幫助以提高各自的分析精度。
三. 深度多工學習
一直以來,由於傳統自然語言處理技術所採用的離散形式的符號化特徵表示以及淺層學習模型所帶來的限制,很難使用統一且有效的方法進行多工、多標註規範以及多語言的學習。人們往往針對不同的處理物件,提出不同的學習方法,如我們之前所提出的分詞、詞性標註、句法分析聯合模型以及多句法分析樹庫融合模型等,雖然一定程度上也能利用多個任務或多種型別的資料資源提高系統的準確率,但是這些方法很難被推廣到更多的自然語言處理任務中。
近年來,隨著深度學習技術的發展,研究者們開始普遍認識到其對於自然語言處理的重要性。所謂深度學習,一般是指建立在含有多層非線性變換的神經網路結構之上,對資料的表示進行抽象和學習的一系列機器學習演算法。深度學習強大的表示能力,為多工學習帶來了新的技術思路,兩者的結合便產生了深度多工學習的新方法。在深度多工學習中,共享表示層可以使得幾個有共性的任務更好的結合相關性資訊,任務特定層則可以單獨建模任務特定的資訊,實現共享資訊和任務特定資訊的統一。
本文以多語言多標註規範依存句法樹庫融合為例,介紹深度多工學習在自然語言處理中的應用,希望對其它類似的問題產生一定的借鑑作用。
四. 多語言多標註規範依存句法樹庫融合[1]
依存句法樹庫的標註(也包括其它自然語言處理任務)不僅對專家知識的要求較高,而且對於語法較為自由的語言(如中文)而言,標註的一致性較低。這也在很大程度上限制了很多語言上句法樹庫的規模。另一方面,依存句法的標註規範近10年來也在不斷地演變,從早期只反映句法關係的依存結構到近幾年逐漸成為主流的偏語義的依存結構,從而導致很多語言中存在不同標註規範的依存樹庫,這類樹庫通常稱為異構樹庫(Heterogeneous Treebanks)。
樹庫融合的挑戰主要在於多種樹庫之間在句法結構上的差異,這種差異在不同型別的源樹庫上又有所不同。對於多語言樹庫,其不一致性主要是由不同語言之間型別學(typology)特徵的不同所導致的,如德語、英語之間的動賓結構差異(圖1)。對於單語異構樹庫,不一致性則主要體現在標註規範的差異。對於依存句法分析而言,則具體反映在核心結點的選擇以及依存關係的定義。比如在CoNLL依存體系中,往往是以功能詞(functional words)作為核心結點,同時依存關係的定義也是以句法為主,語義粒度較粗;而在Stanford依存體系以及通用依存體系中,則主要以內容詞(content words)作為核心結點,其依存關係集粒度較細,深入到了語義層面。
圖1: 多語依存結構(左圖)以及單語異構依存結構(右圖)
儘管不同樹庫之間存在不一致性,但也有相當一部分結構是一致的。我們期望從這些一致的結構中充分萃取知識,而儘量規避那些不一致性所帶來的影響。我們採用的深度多工學習框架,將每種樹庫下的學習過程視作一個單獨的任務,並透過分佈表示層面上的引數共享來控制不同任務之間的資訊互動。
我們採用基於轉移的依存句法分析方法,其中最關鍵的因素是對於每個轉移狀態的表示。每個轉移狀態通常可以表示為由一個棧(S)、一個快取(B)以及當前已經生成的依存弧集合(A)所構成的三元組。傳統的依存句法分析模型透過人工定義的大量特徵模板從該三元組中抽取特徵,一般為指定位置(如:棧頂,快取頂等)的某種屬性(如:詞,詞性等)或者組合。這種依賴“特徵工程”的方式表達能力有限,對轉移狀態的表達並不充分。
我們採用基於長短時記憶網路(LSTM)的依存句法分析模型,並使用基於字的雙向LSTM對詞表示進行建模。採用該結構的原因如下:
- 與傳統的模型相比,該模型使用LSTM以及遞迴神經網路對當前轉移狀態的各個組成部分(棧、快取、歷史轉移序列,以及當前依存子樹集合)進行全域性的編碼,充分利用了歷史轉移資訊。
- 透過對詞、棧、快取、轉移序列等部分細粒度地建模,使得在多工學習框架中能夠更加靈活地控制引數共享。圖2展示了模型的具體結構。
圖2:基於LSTM的依存句法分析模型結構
我們將每種樹庫的學習過程視為一個單獨的任務,對應的深度多工學習框架如圖2所示。透過引數共享機制,實現不同樹庫學習時的資訊互動,以提升目標樹庫上的分析效能。
圖3:基於深度多工學習的樹庫融合框架
具體訓練過程如下:
1. 隨機選擇一個任務;
2. 從該任務(所對應的樹庫)中隨機選擇一個句子,並構建用於學習分類器的訓練例項;
3. 根據這些訓練例項,利用反向傳播計算相應引數的梯度,並更新引數;
4. 返回第1步。
最後,我們在多種語言、多種設定下進行了相關的實驗,並與傳統的有監督學習系統以及級聯學習系統進行了對比。實驗結果表明,我們的框架在絕大多數情況下能夠取得比基準系統更優的效能,證明了深度多工學習在樹庫融合上的有效性。
五. 結語
深度多工學習框架可以充分地利用多種任務、多種標註規範以及多種語言的標註資料,有效防止學習模型過擬合於特定任務或者特定資料,增強系統的泛化能力,從而提升自然語言處理的分析精度。本文以多語言多標註規範依存句法樹庫融合為例,介紹了深度多工學習在自然語言處理中的應用,對其它類似的問題具有一定的借鑑作用。
References
[1]相關工作發表於:Jiang Guo, Wanxiang Che, Haifeng Wang and Ting Liu. A Universal Framework for InductiveTransfer Parsing across Multi-typed Treebanks. COLING 2016.
本文來源於哈工大SCIR