ACL 2019より以下の論文を紹介。少し長め。
この論文は、異なるタグの付いたデータセットを組み合わせて固有表現認識を行う話。手法としては、異なるデータセットに出現するタグに対して以下のようなタグの階層を人手で定義し、その階層を認識に利用するというもの。実験はニュースと医療ドメインのテキストを組み合わせて行っている。結果としてはナイーブな手法と比べて良い結果となることを確認できた。
論文の背景として、ある状況下では異なるタグの付いたデータセットを使って固有表現認識を行いたい場合がある点を挙げている。このような場合は大きく2つに分けられる。一つは、同じタスクにアノテーションした際に異なるスキーマが使われた場合である。たとえば、医療ドメインの固有表現認識に使われるI2B2'14とI2B2'06というデータセットはドメインは同じだがタグは異なる。もう一つは、アノテーションの労力を削減するために既存のデータセットとは異なるタグだけをラベル付けしてデータセットを作成した場合である。
これらの場合に使われるアプローチとしては大きく3つある。一つは、タグ付けのスキーマの違いは無視して、すべての学習用データセットを連結する方法だ。2つめの方法では各学習データセットに対して独立したモデルを学習して結果を統合する。最後の方法は、複数の学習用データセットを複数のタスクとみなし、マルチタスク学習を行う手法だ。この手法では潜在表現を共有して最終層をデータセットごとに用意する。以下にマルチタスク学習のモデルを示す。
一つめの方法の課題として、学習用データセットの質が低くなる点を挙げられる。なぜなら、タグの異なるデータセットを連結すると、あるデータセットで使われているタグが別のデータセットで使われていなければ、該当するタグの固有表現が存在してもタグ付けされていない状態になるからである。2番目と3番目の手法の課題は、異なる予測タグ系列を統合するためにヒューリスティックな後処理を必要とする点である。これら2つの手法では一つの入力系列に対して複数の出力系列が得られるが、それらの系列は後処理で統合しなければならない。
これらの課題を解決するために、モデルをタグ階層と統合する方法を提案している。ざっくりと言えば、このモデルは学習時は階層内の最も詳細なタグだけに対して系列を予測することを学習する。たとえば、学習データセットにLocationというタグがあれば、HospitalやCityを予測するようにする。そして、予測時は予測したタグをテストセットに存在するタグに達するまで階層を上に探索する。そうすることで、モデルの出力をテストセットのタグに置き換える。このモデルの出力は一つの系列なので、複雑な後処理を必要としない。
実験は2つ行っている。最初の実験ではあるデータセットに存在しないタグを別のデータセットに存在するタグで拡張した場合について検証を行っている。たとえば、I2B2'14からはNameタグを除去し、I2B2'16にはNameタグだけを残して、これらのデータセットを組み合わせて学習を行うということをする。これにより、I2B2'16のNameタグでデータセットを拡張することになる。その結果は以下の表の様になる。ここでBase Datasetと書かれているのはテスト対象のデータセットを表している。
ほとんどの場合において、提案モデルのHier
が良い性能を出していることがわかる。
2つめの実験では、医療ドメインの2つのデータセット(I2B2'06とI2B2'14)を統合して学習をしている。その結果は以下の通り。階層を使ったモデルM{Hier}は、独立したモデルを組み合わせたモデル$M{Indep}$やマルチタスク学習のモデル$M_{MTL}$に比べて良い性能であることを確認できる。また、表の上2つの結果は、I2B2'06だけでモデルを学習して各データセットに対して評価した場合と同様のことをI2B2'14で行った場合の結果である。これをみると、単体のデータセットを使って学習させるより、提案したモデルでは結果が良くなる場合があることを確認できる。
そんなに難しいことをしているわけではないのだが、やっていることを短い言葉でわかりやすく説明するのが難しい論文であった。もし、既存のデータセットと組み合わせて学習を行いたい場合は検討してもいいかもしれない。