Ahogrammer

Deep Dive Into NLP, ML and Cloud

近傍検索によって解く固有表現認識と品詞タグ付け

ACL 2019より以下の論文を紹介。こういう系列ラベリングのやり方もあるか、と思った一本。

この論文では、入力文中のトークンをラベルの付いたデータベース中のトークンに対して近傍検索を行うことで系列ラベリングを行う手法を提案している。一般的な系列ラベリングを解く手法と異なり、検索によって系列ラベリングを行うのが面白いところ。実験は品詞タグ付けと固有表現認識に対して行い、まずまずの性能と高いzero-shot learning性能を示した。

この論文で提案する手法では、系列ラベリングを検索によって行う。入力系列をx、予測を\hat{y}とする。そのとき、データベースからM個の文と対応する出力系列のペアD=(x'^{(m)}, y'^{(m)})を検索する。その情報を基に、t番目の入力x_tのラベル\hat{y}_tを予測する。以下に品詞タグ付けのイメージを挙げた。たとえば、入力文中の「Ms」のラベルは、データベース中の「Mr」と「Ms」が近いことがわかれば決定できることを示している。

f:id:Hironsan:20190910075318p:plain
品詞タグ付けの例

検索によってラベルを決めるので、必要なのは入力文中のt番目のトークx_tとデータベース中のm番目の文のk番目のトークx'^{(m)} _ kの類似度を計算することになる。式にすると以下のように計算することになる。ここで、\boldsymbol{x} _ t\boldsymbol{x'^{(m)} _ k}はそれぞれ、文脈を考慮したトークンの表現方法となっている。以下ではこれらの表現はBERTから得たものとしている。

\displaystyle{
p(y_t=y'^{(m)}_k |x, D) \propto \exp(\boldsymbol{x}_t^\mathrm{T} \boldsymbol{x'^{(m)}_k})
}

BERTから得たトークンをそのまま使ってもいいのだが、この論文ではそれらのトークンの表現を以下の目的関数を最大化することでFine-tuningしている。式の意味としては、入力文中のトークンとデータベース中のトークンでラベルが一致するものがあればその確率が大きくなるようにトークンの表現をチューニングするというような意味になっている。

f:id:Hironsan:20190910081911p:plain
目的関数

実験は固有表現認識と品詞タグ付けについて行っている。品詞タグ付けは通常のPenn Treebankの品詞タグとUniversal品詞タグを使っている。その結果は以下の通り。著者たちはBERTをFine-tuneした場合に匹敵する性能を得られたと主張している。ただ、この表のBERTの値はBERTの論文から持ってきたものではないことに注意する必要がある。

f:id:Hironsan:20190910074639p:plain
品詞タグ付けと固有表現認識の性能

次に、Zero-shot Learningの性能を示している。設定としては、3つあり、CoNLLで学習させてOntoNoteで予測を行うパターン、Universal品詞タグを学習させて通常の品詞タグを予測するパターン、チャンキングを学習させて固有表現認識を学習させるパターンとなっている。その結果は以下の通り。BERTをFine-tuneするより遥かに良い結果を得られていることが確認できる。

f:id:Hironsan:20190910074707p:plain
Zero-shotの性能

勉強不足なもので、こういった方法で系列ラベリングをできることに感心した。普通に固有表現認識や品詞タグ付けをする分にはそれほど性能は高くないが、タスク間のZero-shot learningの性能はなかなか優秀に見える。この手法が言語間の転移も可能になるのかは気になるところではある。