當前位置:
首頁 > 知識 > 神經規則引擎:讓符號規則學會變通

神經規則引擎:讓符號規則學會變通

機器之心專欄

深度好奇研究組(DC-SQUAD)

近年來,神經符號學習成為一個很熱門的方向,很多科研工作把符號知識引入神經網路模型,在一些經典的 NLP 任務上都取得了不錯的效果。本文介紹了一種神經規則引擎(Neural Rule Engine,NRE),可以從規則中學習知識,同時又通過神經網路來泛化知識,這與人類學習知識的方式有異曲同工之妙。

論文題目:Generalize Symbolic Knowledge With Neural Rule Engine

論文地址:https://arxiv.org/abs/1808.10326

目前的自然語言處理任務中,神經網路模型在學術界佔據了絕對的優勢,然而,基於符號知識的規則系統仍然在工業界大有用武之地。人類語言是一種非常複雜的現象,為了更好地構建語言智能系統,可以將神經網路和符號知識融合使用,集成二者的優勢。

近兩年來,神經符號學習(Neural Symbolic Learning)成為一個非常熱門的方向,不少優秀的科研工作把符號知識引入神經網路模型,增強了模型的學習能力和可解釋性,在一些經典的 NLP 任務上都取得了不錯的效果。與這種融合方式相反,近日,深度好奇的研究者們提出了一種全新的融合策略——利用 NN 模型來改進規則的效果。NN 模型的優點是靈活性高、泛化能力強、魯棒性好,如果將 NN 模型的這些優勢賦予規則系統,會產生出怎樣的火花呢?

本文介紹了一種神經規則引擎(Neural Rule Engine,NRE),NRE 可以從規則中學習知識,同時又通過神經網路來泛化知識,這與人類學習知識的方式有異曲同工之妙。

具體來說,NRE 由神經模塊網路(Neural Module Networks)構成,其中的每一個模塊代表了規則中的一種操作,而模塊的實現形式既可以是神經網路,也可以是符號演算法。並且,給定少量的標註樣本,可以使用強化學習來微調(Finetune)學習效果。實驗證明,NRE 可以大幅提升規則的召回率(Recall),同時還能將精確率(Precision)維持在較高的水準。

舉個具體的規則例子,對於一個判斷案件類型的分類任務來說,案件內容如下:

「2003 年 12 月 21 日中午 12 時,東浦村張某與王某某二人到臨西縣遊玩,被三名男子跟蹤,後用刀威逼,搶走手機一隻。」

根據經驗來看,如果案件表述中有「跟在.*後面|跟蹤」,一般屬於「尾隨作案」,但是如果其中有「事主.*跟隨」的話就不是。所以,針對「尾隨作案」類別,可以寫一條規則:

「跟在.*後面|跟蹤@@事主.*跟隨」

其中「@@」左邊藍色的是正規則,也就是句子中必須匹配上的內容,「@@」右邊紅色的是負規則,也就是句子中不能包含的內容。

由於正則表達式是有限狀態機的一種,所以可以定義一些操作(Action)來解析正則表達式規則,比如:

用預先定義好的操作來表示規則,如下圖所示:

每一條規則都可以被拆解成樹狀結構,拆解的過程依賴於 Rule Parser。由於整個系統的設計既考慮了符號性又考慮了神經網路的特性,所以對於規則的拆解上既可以用符號演算法來實現也可以用 Neural Rule Parser 來實現。由於樹狀結構可以轉變成逆波蘭表達式(Reversed Polish Notation)的形式(如下圖):

因此可以採用一個 Seq2Seq 的神經網路模型來實現對規則的拆解。具體如下:

給定一條規則,鑒於同時預測模塊和模塊所需參數較為困難,所以可以採取分步的方式來預測。第一步先預測操作序列,第二步根據規則和已經預測出來的操作來預測每個操作所對應的參數。為了讓預測的結果更加可靠,在訓練階段,我們加入了微調(Finetune)過程,對於預測出來的操作序列根據在真實事例上的表現用強化學習來進行模型的調整。

得到 rule parsing 的結果後,即可對模塊進行組裝。在本文中,Find 模塊和 And_Ordered 模塊都採用了神經網路的設計。

Find 模塊

Find(x) 模塊是用來查找句子中匹配 x 部分的內容,可以用正則表達式的匹配來實現,也可以用神經網路來實現。神經網路的 Find 模塊如下:

對於每一個句子來說,Find(x) 操作就是在句子中找到 x,x 可以是一個字、一個詞或者是一個 N-gram。無論用神經網路實現還是用正則表達式的 match(x) 來實現,任務都可以看作是對句子做序列標註,也就是對句子中的每一個單位都標註「是否匹配」的標籤。具體來說,對於句子中的每一個單位,先獲取到它滑動窗口的上下文,並令上下文和要查找的 x 都通過相同的編碼器(Encoder),之後用評價函數來對二者的相似程度進行打分,最後根據每個位置的所有分數來判斷當前位置的標籤。

And_Ordered 模塊

And_Ordered 模塊可以採取如下設計:

And_Ordered 操作是用來判斷兩個輸入之間是否滿足一定的距離關係。通常來說,輸入就是子節點給出的標記結果,如 r0 和 r1。為了讓神經網路更容易判斷輸入之間的距離,我們可以引入距離標記 d0 和 d1。結合句子原文,And_Ordered 模塊可以判斷出兩個子節點的輸入是否滿足距離關係。

模型訓練

在訓練過程中,模塊和 Neural Rule Parser 都採取了預訓練+微調的策略。在訓練時,先對數據和規則進行訓練集/驗證集/測試集的劃分,為了避免數據泄漏,各部分之間不能混用。訓練模塊的時候,先根據數據隨機生成各個模塊的訓練樣本,在訓練到一定程度時,把訓練集中的規則真實應用於訓練集中的數據,按照數據的真實標籤採用強化學習的方式對模塊進行微調。對於 Neural Rule Parser 也按照類似策略,依前文方式進行訓練。

Neural Rule Engine (NRE)

NRE 集合了上述的組件:NN/演算法實現的模塊,NN/演算法實現的 Rule Parser。NRE 的整體架構如下圖所示:

對於給定的一條事例和一條規則,NRE 先將規則拆解成由模塊組成的樹狀結構,之後根據樹狀結構將規則應用於具體的語句上,從而給出匹配後的結果。

實驗

論文在中文案情分類(Chinese crime case classification)任務和 SemEval-2010 relation classification 任務上進行了實驗。實驗結果如下:

NRE 在中文案情分類數據集上的結果

NRE 在關係分類數據集上的結果

上面的結果顯示,RE 的 Precision 很高,但是 Recall 相對較低。而第二組 Baseline 是傳統意義上的序列模型,並不能處理好正則表達式,特別是正則表達式除了局部的匹配還需要考慮有層級關係的全局匹配,傳統的序列模型很難處理好這些情況。NRE 則能帶來 Recall 接近翻倍的效果,同時 Precision 仍維持在較高的水平。需要關注的是,微調(Finetune)對 NRE 來說是至關重要的,因為 NRE 在預訓練階段是單純地在訓練各個模塊,而微調是讓規則在真實場景中調整的關鍵。

同時,由於 NRE 可以充分利用神經網路和符號二者的優勢,為了探究規則的泛化性從何處而來,我們還進行了額外的實驗。我們通過對不同部分分別採用神經網路和符號演算法,從而得到了混合的模型(見下表)。隨著神經網路的介入,NRE 整體的 Recall 表現會更好,而 Precision 在合理的範圍內有所下降。實際上,這是因為神經網路的靈活性所帶來的優勢,彌補了規則匹配的僵硬。

神經網路和符號演算法的不同組合,其中「_」左邊是神經網路的實現,右邊是演算法實現,「P」是「Find_Positive」,「N」是「Find_Negative」,「A」是「And_Ordered」,「S」是「Rule Parser」。

另一方面,研究模型給出的結果可以發現,Find 模塊帶來了巨大的泛化能力。傳統的正則表達式是對樣式進行匹配,而 NRE 在一定程度上是對語義進行匹配。如下述兩圖的中英文案例所示,查找「pushed into」會合理地找到「put inside」,而像「進入室內」被「入室」整體匹配上更能說明 NRE 對詞語的查找會超越樣式本身。

與此同時,用 Neural Rule Parser 對規則進行拆解也是對規則本身進行修正。比如下圖中的「落水管」和「不鏽鋼管」被合併成為了「管」,而且「打牆洞」中的「洞」被刪去。

總結

我們提出了一種全新的學習策略來對符號規則進行改進,神經規則引擎(Neural Rule Engine)使得規則獲得了神經網路帶來的靈活性、魯棒性和泛化能力,同時又保持了規則的精確性和可解釋性。

NRE 包含了 Rule Parser 和一系列操作模塊,他們既可以是定製化的神經網路,又可以是符號演算法。對於一條給定的規則,NRE 先對規則進行拆解,使其成為操作序列,之後根據操作序列來裝配模塊,最終給出預測結果。此外,我們還提出了分步的訓練方法使得構建 NRE 成為可能,即先對模塊和 Rule Parser 隨機生成數據進行預訓練,之後根據真實的樣本標註用強化學習進行微調,從而得到具有泛化能力的規則表示。

實驗表明 NRE 可以大幅提升規則的 Recall,同時還能維持較高的 Precision。NRE 不僅是一種新的神經符號學習範式,同時也為現有的工業應用帶來了一種高效的改進,它可以被用來對已有的規則系統進行升級,或者在訓練數據不大的情況下快速開發出神經規則系統。

本文為機器之心專欄,轉載請聯繫原作者獲得授權。

------------------------------------------------


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

最優傳輸理論你理解了,傳說中的推土機距離重新了解一下
傳說中的推土機距離基礎,最優傳輸理論了解一下

TAG:機器之心 |