Ahogrammer

Deep Dive Into NLP, ML and Cloud

固有表現辞書を使って固有表現認識の性能を向上させる

ACL 2019より以下の論文を紹介。

この論文は、固有表現辞書を使って固有表現認識の性能を向上させる手法を提案した論文。手法としては、BiLSTMの最終層にHybrid Semi-Markov CRFs(HSCRFs)を使ったモデルに辞書の情報を組み込んだ手法。結果は固有表現認識でよく使われるCoNLL 2003とOntoNotes 5.0で検証している。検証の結果、OntoNotes 5.0では今までで最高の性能となった。

最近の固有表現認識では、ニューラルネットワークを用いることにより特徴エンジニアリングに頼ることなく高い性能を叩き出している。そのような手法の問題点として、学習データに出現しないエンティティに対して誤った認識をする可能性が増す場合がある。たとえば、CoNLL 2003で出現する"Clinton"という単語はすべて人名であるためモデルはこの単語を人名と学習するが、実際には"Clinton"は地名となる場合もある。

そこで、この論文ではニューラルネットワークのモデルに固有表現辞書を組み合わせた手法を提案している。辞書を組み合わせた手法は以前から存在するが、大きくは辞書から得られた離散的な特徴をニューラルネットワークの出力に連結するか、辞書中の単語分散表現を追加の特徴として加えるかであった。この論文では"softdict"と呼ばれる手法を使っている。この手法については理解しきれていないので、理解できたら書き足す。

f:id:Hironsan:20190902074102p:plain
モデルのアーキテクチャ

実験設定として、まずデータセットにはCoNLL 2003の英語版とOntoNotes 5.0を使っている。固有表現辞書としては先行研究で得られた150万語規模の辞書を用いている。この辞書では固有表現のタイプ数が79タイプであるため、今回は各データセットに合うようにタグを揃えた。その結果130万のエンティティが残った。

実験結果は以下の表の通り。CoNLL 2003ではF1で92.75となり、SOTAに近い性能を出すことはできている。また、OntoNotes 5.0ではF1で89.94となりSOTAとなっている。

f:id:Hironsan:20190902074652p:plain
CoNLL 2003とOntoNotes 5.0の実験結果

また、固有表現辞書や学習データに出現するか否かでテストデータに対する性能がどれだけ変わるのかを検証したのが以下の表になる。この結果を見ると、辞書にも学習データにも現れないエンティティの認識性能に対して、辞書か学習データに現れたエンティティの認識性能が格段に向上していることがわかる。最も良いのは両方に出現することであるが、辞書と学習データのどちらかに現れればかなりの性能向上を見込むことができることを示している。

f:id:Hironsan:20190902074854p:plain
詳細な性能

感想としては、HSCRFが優秀であるということと、辞書を加えても思ったほどは性能上がらないなと言う点。解析結果を見ると、エンティティ数130万の辞書を使っても36.5%のエンティティは辞書にも学習データにも現れない。辞書でカバーできているのは全体の10%程度なので、この数字をどう上げていくのかが一つの課題であると感じた。