Chinese NER Using Lattice LSTM [ACL 2018] 閱讀筆記

論文題目:Chinese NER Using Lattice LSTM
論文出處:ACL 2018
論文地址: https://arxiv.org/abs/1805.02023
源碼: https://github.com/jiesutd/LatticeLSTM

概要

論文提出了一種適用於中文NER任務的Lattice-Lstm結構。
在這裏插入圖片描述
主要思想,綜合利用字符級和單詞級信息。如上圖所示。在每一個字符節點,同時利用字符級輸出以及所有在詞典中以該字符結尾的詞語級輸出。

模型結構

在這裏插入圖片描述
整體結構如上圖所示。圖中爲了表達簡潔,只繪製了單方向的LSTM。
字符級信息處理方式使用標準的LSTM結構。其中 xjcx^{c}_j爲對應字符的字符嵌入。lattice lstm 與 一般lstm主要區別在於
cjcc^{c}_j的計算方式。
在這裏插入圖片描述
詞語級信息處理模塊如下:
在這裏插入圖片描述
注意,與字符級信息的處理模塊主要區別是此處沒有輸出門,因爲NER任務最終輸出label只在字符級級別進行。
綜合字符級信息與詞語級信息來計算cjcc^{c}_j
使用一個補充門結構計算每個詞語級信息對cjcc^{c}_j的貢獻。
在這裏插入圖片描述

cjcc^{c}_j的最終計算方式如下:
在這裏插入圖片描述
文章提出一種歸一化算法求出當前字符 Cell 各種輸入的權重,類似 Softmax 函數,如上圖公式所示。分母爲句子中以當前字符結尾的所有詞彙的權重以及當前字符輸入門,求指數後求和。

最終解碼層使用標準CRF層:
在這裏插入圖片描述

論文總結

以下僅代表個人觀點

  1. lattice-lstm的主要思想是綜合利用字符級和詞語級信息來做NER任務。因爲單純的字符級信息缺少詞語級的知識表示,而單純的詞語級表示會導致對分詞準確度十分依賴,分詞錯誤會直接導致實體邊界劃分錯誤。
  2. 文章中提到詞語級信息是基於文本數據集進行預訓練,生成詞典及向量(類似word2vec)。使用大量特定下游任務相關領域的語料進行預訓練可能對任務效果有幫助。
  3. 實際跑了一下作者提供的開源代碼,目前有一個問題,目前代碼只支持batch_size=1.可能是由於模型中信息流需要根據不同樣本單獨處理導致的,作者在issue中說明目前未編寫批量訓練版本。模型的運行速度相對較慢。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章