Ahogrammer

Deep Dive Into NLP, ML and Cloud

単語分散表現の履歴を使って固有表現認識の性能を向上させる

NAACL 2019より以下の論文。あのAkbikの手法がパワーアップして帰ってきた!

この論文では、固有表現認識を行う際に、今までの認識に使った単語の分散表現を記憶しておき、その情報を使って性能を向上させる手法を提案している。最近の固有表現認識では言語モデルによって得られる分散表現を利用するが、そこでの課題として、文脈が十分にないまれ語に対しては良い表現を得られないという問題がある。たとえば、以下の文の「Indra」は文脈が十分ではないまれ語なので、組織なのか人名なのかの解釈が難しい。

f:id:Hironsan:20190913071930p:plain
上手くいかない例

直感的には、文脈が十分にないまれ語について読者が正しく解釈するためには、その単語について知っておく必要がある。では、読者はどこで知るのかというと、そのまれ語が出現する文以前に、十分な文脈を伴って同じ語についての説明があるはずだというのが著者らの主張となっている。つまり、さきほどの「Indra」の例であれば、「Indra Wijia(Indonesia) beat Ong Ewe Hock」のような文があるはずだと言っている。このような文があれば「Indra」を人名だと解釈するのは難しくない。

そこで、提案するモデルでは、今までに出現した文脈を伴った単語分散表現を記録しておき、その情報を利用して固有表現認識を行う。図にすると以下のようになる。手法としては、まずは文字レベルの言語モデルから単語の分散表現を得る。次に、認識対象となる単語の分散表現をメモリ上から取得する。このメモリ上にはこれまでの認識に使った言語モデルから出力された単語分散表現が格納されている。その後、メモリから得られた分散表現をプーリングして、元の単語分散表現と連結する。そうすることで、現在の文脈を使いつつ、これまでに出現した文脈を利用できるようになる。

f:id:Hironsan:20190913071902p:plain
提案手法の概要

実験はCoNLL 2003とWNUT-17をコーパスとして使っている。WNUT-17はSNSのテキストから作成された固有表現認識用のコーパスで、対象とするテキストの性質から新語が多いという特徴がある。様々なモデルとの比較実験の結果を以下に示す。この結果を見ると、比較対象のモデルと比べて良い結果を示していることがわかる。

f:id:Hironsan:20190913072032p:plain
比較実験

また、履歴の分散表現の効果についても調査している。以下の表では、メモリ上から得られた分散表現だけを使って認識した場合と、現在の文脈から得られた分散表現を使って認識した場合の性能について検証している。この結果を見ると、現在の文脈から得られた分散表現を使うより、履歴を使ったほうが性能が一貫して良いことがわかる。

f:id:Hironsan:20190913072137p:plain
提案手法の効果の検証

感想としては、たしかに性能は向上しているのだけど、WNUT-17の結果を見ると、当初意図していたような文脈の不十分なまれ語に対する認識性能が向上したとは言えないと思う。それよりは、同じエンティティに対して過去の認識結果と一貫性のある認識をできた結果として性能が向上した可能性がある。