Google發布自然語言處理解析器,免除模塊化分析級聯效應產生的缺陷

jopen 7年前發布 | 12K 次閱讀 SLING Google

Google發布自然語言處理解析器,免除模塊化分析級聯效應產生的缺陷

日前,Google 發布自然語言框架語義解析器 SLING,它能以語義框架圖(semantic frame graph)的形式,將自然語言文本直接解析為文本語義表示。這一系統避免了級聯效應,另外還減少了不必要的計算開銷。

詳細消息雷鋒網 AI 科技評論編譯整理如下:

直到最近,大多數實際的自然語言理解(NLU)系統都采用的是從詞性標簽和依存句法分析(dependency parsing)到計算輸入文本的語義表示的分析。雖然這使得不同分析階段易于模塊化,但前期的錯誤會在后期和最終表示上產生層疊效應,中間階段的輸出也可能會與這一階段本身并不相關。

例如,一個典型的 NLP 系統可能在早期執行依存句法分析的任務,在結束階段時執行共指解析(coreference resolution)任務,早期依存句法分析階段出現的任何錯誤都會產生級聯效應,影響共指解析的輸出。

今天我們發布 SLING 實驗系統,它能以語義框架圖(semantic frame graph)的形式,將自然語言文本直接解析為文本語義表示。

輸出框架圖能直接捕獲用戶感興趣的語義標注(semantic annotation),因為沒有運行任何中間階段,所以避免了上述那種管道系統的缺陷,另外還減少了不必要的計算開銷。

SLING 使用具有特殊用途的循環神經網絡模型,通過框架圖上的增量編輯操作(incremental editing operation)來計算輸入文本的輸出表示。框架圖足夠靈活,可以捕獲大家感興趣的許多語義任務(下面有更多介紹)。SLING 中的分析器(parser)只使用輸入詞來進行訓練,不需要額外再生成標注(例如依存句法分析)。

SLING 通過提供高效的、可擴展的框架存儲實現(frame store implementation)和 JIT 編譯器來生成高效的代碼來執行循環神經網絡,從而在推理(inference)時能快速進行句法分析。

盡管 SLING 還處于實驗階段,但得益于高效的框架存儲和神經網絡編譯器,它在臺式機 CPU 上能實現超過 2500 符號/秒的解析速度。

SLING 使用C++,目前可以在 GitHub 上下載。這個系統在技術報告中有詳細描述。

框架語義句法分析(Frame Semantic Parsing)

框架語義表示文本的含義(例如一句話),是一套正規表述。每個正規表述都被稱為一個框架,可以被看作是知識或語義的一個單元,還包含與與它相關的概念或其他框架的相互作用。

SLING 將框架組織成屬性槽(slot)列表,其中每個屬性槽都有對應的名稱(角色)和值(可能是 literal 或是到另一個框架的鏈接)。

下面是一個例句:

“很多人都宣稱自己預測到了黑色星期一。”(Many people now claim to have predicted Black Monday)

下圖是 SLING 識別提到的實體(例如人物、地點或事件)、度量(例如日期或距離)和其他概念(例如動詞),并將它們放置在正確的語義角色中的說明。

Google發布自然語言處理解析器,免除模塊化分析級聯效應產生的缺陷

上面的例子相當簡單,框架圖的功能強大到可以模擬各種復雜的語義標注任務。對于初學者來說,這種框架可以非常方便地將語言的內外部信息類型(例如知識庫)結合起來。這可以用于處理復雜的語言理解問題,例如引用、隱喻、轉喻等。這些任務的框架圖只在框架類型、角色和鏈接約束條件上有所不同。

SLING

SLING 通過優化語義框架來訓練循環神經網絡。網絡隱藏層中學到的內部表示取代了在前面那種管道系統中的手工特性組合和中間表示。

解碼器使用伴隨反復出現的特征一起的表示,來計算用于框架圖更新的一系列過渡,以獲得輸入語句的預期框架語義表示。在 SLING 中用 TensorFlow 和 DRAGNN 來訓練模型。

下面的動圖展示了使用過濾操作將框架和角色逐漸添加到框架圖中的構建過程。

Google發布自然語言處理解析器,免除模塊化分析級聯效應產生的缺陷

正如一開始討論的那個簡單例句,SLING 使用 ARG1 角色將動詞和事件框架連接起來,表示事件框架是被預測的概念。

這個過渡系統的一個關鍵層面是,有一個很小的固定大小的框架緩沖區,它代表了最近被喚起或修改的框架,用橙色方框標記。這個緩沖區會捕捉到我們傾向于記住的最近被喚起、提及或強化的知識的直覺。如果一個框架不再使用,那么當新的框架出現時,它最終會從這個緩沖區中被清除掉。我們發現這種簡單的機制在捕捉大量框架間鏈接的片段時非常有效。

下一步

上面所描述的實驗僅僅是對諸如知識提取、解析復雜引用和對話理解等語義句法分析研究任務的啟動研究。

在 Github 上發布的 SLING 中有上述任務的預訓練模型,還有一些示例和方法,大家可以在提供的綜合數據或自己的數據上來訓練解析器。希望 SLING 能對大家有所幫助有用,我們期待著在其他語義句法分析任務上應用和擴展 SLING。

Github 地址:https://github.com/google/sling

來自: 雷鋒網

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!