Ahogrammer

Deep Dive Into NLP, ML and Cloud

バイオ医療分野と固有表現認識

最近、職場の同僚が「医療/製薬分野に自然言語処理を使えないか」というような話をしていた。私自身はその分野にそれほど関心が高かったわけではないが、固有表現認識系の論文で医療/化学ドメインに対する取り組みが行われているのは今までに目にしていた。ちょうど良い機会なので、知識のシェアのために簡単にまとめておく。

バイオ分野と情報抽出

最近のバイオ医療分野の課題として、提出される論文数が非常に多い点を挙げられる。どのくらい多いのかというと、医学分野の文献のデータベースであるPubMedには、毎年数十万件の文献が追加されていることから、その数が窺い知れる。

提出される論文数が多いことで、論文のアブストラクトだけ読んで全体像を把握するのも困難になっている。こういう状況だと、有用な実験結果が報告されていても、それを見逃して自身の研究に活かすことができないということが起きる。

そういうわけで、大量の文献から必要な情報だけ抽出する技術が求められている。これはここ数年の問題というわけではなく、少なくとも十数年前から問題になっている。

情報抽出に機械学習が必要な理由

テキストからの情報抽出には、抽出のためのテンプレートを人手で作成しておき、テンプレートとのマッチングによって情報を抽出するということが行われてきた。この方法はテンプレートを作り込めば結構使えるのだが、バイオ分野では新しい用語が次々と増えるためテンプレートの更新が必要になるという状況がある。しかし、テンプレートを更新できるような知識を持った人材を確保しておくのは難しいため、最近ではなるべく人手をかけずに済むように機械学習が使われる。

情報抽出と固有表現認識

機械学習を使ったテキストからの情報抽出では、最初に固有表現認識が行われることが多い。その目的は、テキストからバイオ分野の固有表現を自動的に認識して分類することにある。使われる固有表現タイプとしては、遺伝子、化学物質、タンパク質、病名といったタイプがあり、抽出後は関係認識や知識ベースの構築、知識発見といった下流タスクで使うことができる。

バイオ分野固有の問題

バイオ分野の情報抽出でも最初に固有表現認識を行うことが多いわけだが、分野特有の問題がある。以下は「バイオ自然言語処理のための機械学習技術」からの引用だが、3つの問題を取り上げている。

  1. 機能をそのまま説明的に記述したような固有表現
  2. 固有表現がand, orなどの接続詞で長くつながった表現
  3. 短い略称名となっている固有表現

最初の問題の例として引用元ではadenylate cyclase activating polypeptide 1(アデニル酸シクラーゼ活性化ポリペプチド1)を挙げている。この表現は、その全体が一つの固有表現でありつつ、adenylate cyclase(アデニル酸シクラーゼ)という固有表現がネストされているという点にある

2つ目の例として、alpha- and beta-globin(αグロビンとβグロビン)を挙げている。固有表現としてはαグロビンとβグロビンの2つを抽出したいわけだが、このような形式になっていると2つを抽出するのは難しい。

ここまでの2つに共通する難しさとして、固有表現であるにもかかわらず、大文字で始まっていない点を挙げられる。基本的に英語では固有表現は大文字から始まるというルールがあり、最近の固有表現認識器ではその情報を利用しているため、大文字でない場合は認識精度が落ちてしまう。これは以前作ったリアルタイム固有表現認識で確かめられる。

f:id:Hironsan:20190520100151p:plain

最後の問題の例として、IL2を挙げている。これはタンパク質Interleukin 2の略称名となっている。この難しさとしては、認識そのものの難しさに加えて、認識後の正規化にある。どういうことかというと、IL2をタンパク質として認識するだけでなく、Interleukin 2と同じ対象を指していることを明らかにする必要がある。これは、Entity Linkingというタスクに近い。

手法の概要

以前は人間が素性を定義してSVMやCRFを使って認識していたが、現在は研究ベースではニューラルネットワークが使われることが多くなっている。モデルとしてはBiLSTM-CRFをベースにしたモデルが使われることが多い点は通常の固有表現認識と同様となっている。

私見ではあるが、バイオ分野の場合、少ないデータから学習できることを目指した研究が多いように感じる。これは、バイオ分野のテキストにアノテーションをするのは専門的な知識が必要であり、そのような専門家を確保するのが難しい点が関係しているのだと思われる。そういうわけで、転移学習やマルチタスク学習といった手法を使って学習データの少なさを補っているように感じる。

最近はBERTのバイオ分野版であるBioBERTもリリースされているので、今後はBioBERTベースの手法が多く出てくる可能性が高い。

github.com

BioNLP

最後にBioNLPについて書いておく。BioNLPはACLのワークショップの一つであり、バイオ医療分野の自然言語処理にフォーカスしているので、この分野のサーベイをしたい場合はまず当たると良いのではないかと思う。

aclweb.org

また、BioNLPではShared Taskが行われることがある。今まで2009, 2011, 2013, 2016で行われ、今年も開催される。今年のBioNLP 2019では、MEDIQAという医療ドメインでのテキスト推論と質問の含意関係認識を行うタスクが行われる。詳細は以下を参照。

sites.google.com

こちらはEMNLPのワークショップで行われるBioNLPのShared Task。固有表現認識や関係抽出といった情報抽出系のタスクが行われる。詳細は以下を参照。

2019.bionlp-ost.org

参考資料