Ahogrammer

Deep Dive Into NLP, ML and Cloud

誤ったラベル付けが含まれるデータセットで学習させる固有表現認識手法

EMNLP 2019より以下の論文を紹介。モデルに依存しない手法なのがとても良い。

この論文では、誤ったラベル付けが含まれるデータセットから固有表現認識のモデルを学習させる方法を提案している。まず、固有表現認識の学習と評価で標準的に使われているCoNLL 2003のデータセットに誤ったラベル付けが含まれていることを示している。そして、このラベル付けを修正することで性能が向上することを示した。次に、誤ったラベル付けの含まれるデータセットから学習する方法を提案し、実験を行っている。実験の結果、性能が向上することを示した。

この論文の第一の貢献として、固有表現認識で標準的に使われているデータセットのCoNLL 2003に誤ったラベル付けがどのくらい含まれるか示したことだ。通常、私たちは学習に使うデータセットのラベルはすべて正しく付けられていると仮定する。しかし、CoNLL 2003のような長年使われてきたデータセットにも誤りは存在する。実にテストセットの全文中、5.38%の文に誤ったラベルが含まれることを示したのだ。現在のSOTAがF1で93.5ポイントであることを考えると、この数字は無視できない。以下に誤りの例を示す。

f:id:Hironsan:20190912080337p:plain
CoNLL 2003における誤りと修正の例

では、CoNLL 2003に含まれる誤りを修正したら性能はどう変化するのだろうか?テストデータセット中の誤りをエキスパートにより修正し、様々なモデルに対する評価を行ったところ、以下の結果を得られた。この結果を見ると、誤りを修正することで、一貫して性能が向上していることが確認できる。また、標準偏差も小さくなっていることから、学習したモデルによる予測のブレが小さくなっていることがわかる。このことからアノテーションの誤りが性能に影響を与えていることがわかる。

f:id:Hironsan:20190912080523p:plain
誤りを修正したデータセットでの評価

誤りを修正することで性能が向上することがわかったとはいえ、ラベル付けは人間が行うので誤りが含まれることは避けられない。「誤りが無いと性能が向上するから、誤りの無いようにラベル付けしてね♡」などと言われても現実的には何の問題も解決しないのだ。そもそも故意に入れているわけではないのだから。したがって、現実的には、誤りの含まれるデータセットに対してどう向き合うかということの方が重要になる。

そこで、この論文では誤ったラベルの付いたデータセットから学習する手法(CrossWeigh)を提案している。この手法は2つのモジュールから構成されている。一つは間違いの推定、もう一つは推定した間違いの再重み付けを行うモジュールとなっている。つまりどういうことかというと、間違っていそうなデータを見つけたら、それには低い重みを付けて学習させ、モデルが将来的に行う予測への誤ったデータによる影響を少なくしようという発想になる。以下に手法の概要を示した。

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

CrossWeighでは、以下に示す損失関数を使ってデータごとに重みを付けて損失を計算する。通常の損失関数では各データに対する重みはw _ i =1であるが、CrossWeighではこの重みを誤ったラベルの付いたデータとそうでないデータで変化させて学習させる。これにより、誤ったラベルのデータによる影響を抑える狙いがある。重みのw _ iはk分割交差検証の中で誤りの推定をした後、誤りの推定結果に基づいて決まる。詳しくは論文中の式(4)を参照して欲しい。

f:id:Hironsan:20190912084324p:plain
CrossWeighの損失関数

以下にCrossWeighを使った場合とそうでない場合のCoNLL 2003のテストセットに対するF1スコアを示した。CrossWeighはモデルによらない手法なので、3つのモデルに対して実験を行っている。実験結果を見ると、CrossWeighを使うことで性能が一貫して向上していることがわかる。また、標準偏差も小さくなっているので学習のブレが小さくなる傾向があることがわかる。

f:id:Hironsan:20190912083038p:plain
CrossWeighを使った場合とそうでない場合のF1スコア

また、CoNLL 2003以外のデータセットに対して検証した結果は以下の通り。2つのデータセットに対してCrossWeighを使った場合とそうでない場合で検証した結果、使ったほうが性能が向上することを確認できた。

f:id:Hironsan:20190912084833p:plain
別のデータセットでの評価結果

感想としては、CoNLL 2003の誤りを分析しているだけでも面白いのに、誤りの含まれるデータセットから学習する手法を提案していて更に良い。確かにCoNLLのデータを見ていると変なところがあるなぁとは思っていたが、5.38%も誤ったラベル付けが含まれる文があるとは驚きの一言。提案している手法自体もモデルに依存せず使えるので、実務的にもいいのではないかと感じた。k分割交差検証を必要とするので計算量は多くなるが、マシンパワーで解決可能なので、そこまで問題にならないのではないか。