專欄 | 深度好奇提出文檔解析框架:面向對象的神經規劃

 2017-10-10 16:06:00.0

原標題:專欄 | 深度好奇提出文檔解析框架:面向對象的神經規劃

機器之心專欄

作者:深度好奇R&D

深度好奇(DeeplyCurious.ai)近日在 arXiv 上發佈的論文提出了一種基於神經符號智能(Neural-symbolic)的特定領域文本解析框架:Object-oriented Neural Programming(OONP)。

論文題目:用於文檔理解的面向對象神經規劃

論文鏈接:https://arxiv.org/pdf/1709.08853.pdf

該框架借用面向對象編程(OOP)的思想,利用解析出來的實體組成對象和對象間關係(如圖 1),構成結構清晰的本體圖。每個對象 (object) 都是一個類 (class) 的實例化,類的概念規定了其具有的內部屬性、外部關係和可執行的操作,以及與其他對象的關係類型。如圖 1 所示,左邊爲敘事文本,右邊爲經過 OONP 解析生成的本體圖。圖例中共包含三個類的對象,分別爲事件、人物、物品。人物類有姓名、性別、年齡屬性,同時與事件對象有嫌疑人、被害人等表徵人物角色的外部鏈接;物品類有名稱、數量、價值等屬性,與事件對象有表徵物品角色的外部鏈接;另事件類有事件類型、時間、地點等屬性。

圖 1. OONP 解析任務示意

下面我們拆解 OONP 框架並介紹其主要功能模塊。如圖 2 所示,OONP 由三部分組成,分別是主控模塊閱讀器(Reader)、表徵文檔的行間記憶(Inline Memory)模塊、以及總結對之前文本的理解的攜帶記憶(Carry-on Memory)模塊。

圖 2. OONP 解析的基本框架

  • 行間記憶(Inline Memory)模塊主要存儲保留了原始文檔時間順序的低級表徵。具體來說,行間記憶是由記憶單元按照原始文檔的順序排列組成的數組,每個單元對應着文檔的基本語言單位(比如字或者詞),有可微分部分和離散部分。這兩個部分可以方便的存儲多種類型的和文本相關的信息,從簡單的 Word Embedding、遞歸神經網絡(RNN)輸出等連續表示,到詞性分類結果、句法信息,以及起來自特定規則的離散表示。這既可以來自第三方的程序,也可以來自 OONP 自己的寫入。

  • 攜帶記憶(Carry-on Memory)模塊可分爲對象記憶(Object Memory)、矩陣記憶 (Matrix Memory) 和動作歷史 (Action History) 三部分。對象記憶存儲針對對象的具體表示,對象的內部屬性可以有不同的形式,比如字段或者類別,同時也對應着不同的形成方式:字段一般是從原文複製粘貼過來,類別則是通過分類模塊得到的。同時,每個對象也有可動態調整的可微分表示(object embedding)作爲其與其他模塊交互的接口。當 OONP 每次讀到文本中針對某個對象的描述,就會對對象記憶中該對象的相關部分信息中進行更新操作。

  • 閱讀器(Reader)是 OONP 解析器的核心模塊,它管理整個決策序列中所有連續的、離散的操作。它由多個符號處理器和一個神經網絡控制器構器。如圖 3 所示,閱讀器有神經網絡控制器(Neural Net Controller)和多個符號處理器(圖 3 中的黑色模塊)。類似神經圖靈機中控制器的設計,神經網絡控制器配有多個可微的讀頭(read-head)和寫頭 (write-head), 用於讀取行間記憶和攜帶記憶以及符號處理器的輸出但。與神經圖靈機中控制器不同,控制器的子模塊策略網絡(Policy-net)產生離散操作(action)序列,一部分操作序列將會更新本體結構和相關的對象記憶。各種符號處理器用來處理來自對象記憶、行間記憶、動作歷史中符號信息,用於規則約束、推理等,而這些符號處理器的部分結果將會重新作爲神經網絡控制器的輸入。

圖 3. 閱讀器的構成及信息流

OONP 解析器中基於神經網絡的閱讀器按照文本順序讀文檔,同時不斷豐富本體結構來增進對文檔的理解。對於某個待解析的文檔,OONP 首先將預處理之後的文檔放入行間記憶模塊,閱讀器順序讀取行間記憶中符號表示和連續表示,結合攜帶記憶,產生各種操作來增加和豐富本體圖,更新攜帶記憶模塊。這些操作包含可微分操作(作用於對象記憶的連續部分和矩陣記憶)和離散操作(作用於對象記憶和行間記憶的符號部分)。這些連續和離散操作互相依賴,構成了彼此的輸入,共同形成了圖 3 中複雜而靈活的信息流。

下面我們着重講解一下 OONP 的離散操作。閱讀器的策略網絡輸出的離散操作序列是形成本體結構主要操作。該操作集合包括三類,依照順序分別是「新增-指派」,「選擇更新屬性」,和「更新內容」。當然,「新增-指派」操作後,也可以沒有後續操作(空操作)。「新增-指派」可轉化爲多分類問題,如果提到內容是第一次出現,則「新增」,如果是已經出現過的,只是重新提及,則「指派」。具體的決策依賴於閱讀器在創建的臨時對象(公式中的)與已存在對象之間的相似度。具體公式如下:

公式第一行代表臨時對象和「新增」c 類的相似度,第二行表示臨時對象和 c 類第 k 個對象的相似度,第三行代表與空操作的「相似度」。圖 4 是對解析過程中的某個瞬間對上述匹配過程的形象化描述。

圖 4.「新增-指派」操作中,臨時對象與已存在對象之間相似性衡量示意,虛線表示「新增」,實線表示「指派」

通過上述的三種操作,OONP 解析器可以對複雜的文檔進行結構化解析。下面的圖 5 給出了一段短文本解析的示例:OONP 解析器做通過一個動作序列,逐步形成了包含六個對象和六條鏈接的本體結構。

圖 5. OONP 解析器解析文檔過程示意。假設在預處理階段,汽車的描述已經被抽取。

作者在三個數據集上對模型的性能進行了實驗。以公安報案數據爲例,OONP 使用瞭如圖 6 中列舉的 action。

圖 6. 公安報案數據中使用的 action

圖 7 比較了 OONP 的不同實現:論文衡量模型性能用了四個指標,Assign Acc 表示預測對象「新增和指派」的正確率,Type Acc 表示預測對象屬性的正確率,Ont Acc 表示單個樣本解析的本體結構和標籤 100% 重合的正確率,Ont Acc-95 表示單個樣本解析的本體結構和標籤 95% 重合的正確率。簡單的 OONP 模型較以 Bi-LSTM 爲基準模型有很大提升,具有豐富結構信息的 OONP(structured)則又有明顯提升。而在 OONP(structured)的基礎上,用強化學習來決定分類時機的模型 OONP(RL)則又進一步提高了效果。

圖 7. 多個 OONP 模型的比較

作爲總結,OONP 解析框架具有如下特點:

  • OONP 框架的中間狀態包含一個離散的對象本體圖結構,該圖結構被決策過程的操作序列創建和更新,並在解析的結尾作爲對最終的文本語義表示。

  • OONP 框架將解析過程轉化爲決策序列:按照文本閱讀順序做出各種離散動作,形成能夠表徵已讀文本的本體圖,模仿了人理解文本的認知過程。

  • OONP 框架提供了神經符號主義的一個實例:在 OONP 框架內,連續信號、表示、操作和離散信號、表示、操作緊密結合,形成信息閉環。這使得 OONP 可以靈活地將各種先驗知識用不同形式加入到行間記憶和策略網絡中。

  • OONP 框架利用監督學習和強化學習以及二者的各種混合態,以適應不同強度和形式的監督信號以訓練參數。

本文爲機器之心專欄,轉載請聯繫本公衆號獲得授權。

責任編輯:

文章來源:機器之心