Ahogrammer

Deep Dive Into NLP, ML and Cloud

Tweetから薬の副作用に関する分類と抽出を行う手法

ACL 2019より以下の論文を紹介。

この論文は、Tweet中に出現する薬の副作用に関するメンションの分類と抽出を行う手法を提案している。背景として、投薬治療後の主な死亡原因に薬の副作用が関係しており、その監視が重要な点を挙げている。最近ではSNSに薬の効果が投稿されるので、それを監視に役立てるという話になる。関連するシェアドタスクとして「ヘルスアプリケーションのためのソーシャルメディアマイニング(SMM4H)」があり、この論文ではその内の2つのタスク(副作用の分類と抽出)に取り組んでいる。結果として、分類では最高性能(F1で0.6457)、抽出では今後に期待できる性能が得られた。

タスク1では与えられたTweetに薬の副作用が含まれる(1)か否か(0)を分類するタスクに取り組むことになる。統計情報は以下の通り。学習用データセットは25,678件、テスト用データセットは4,575件存在する。ラベルの統計情報は以下の表で示される。これを見ると、ラベルが不均衡なデータセットであることが確認できる。

f:id:Hironsan:20190926075438p:plain
タスク1のラベル統計情報

タスク2では与えられたTweetから薬の副作用のメンションを抽出するタスクに取り組むことになる。統計情報は以下の通り。学習用データセットは3,225件でメンション数は1830件、テスト用データセットは1,537件存在する。ラベルの統計情報は以下の表で示される。これを見ると、メンションが含まれないTweetも存在することがわかる。

f:id:Hironsan:20190926075807p:plain
タスク2のラベル統計情報

提案手法ではタスク1はBERTと知識ベースを組み合わせて解いている。アーキテクチャは以下の図で示される。TweetはBERTから得られたベクトルと知識ベースから得られた特徴ベクトルを結合したベクトルを使って分類される。知識ベースをどう使うのかと言うと、知識ベースから薬とその副作用のペア<薬, 副作用>を抽出し、それがTweetに含まれているか否かという2値の特徴を作成している。

f:id:Hironsan:20190926080201p:plain
タスク1を解くモデルのアーキテクチャ

タスク2はBERTとCRFを組み合わせて解いている。これはよくある系列ラベリングのモデルなので説明は割愛する。

f:id:Hironsan:20190926080236p:plain
タスク2を解くモデルのアーキテクチャ

タスク1の結果は以下の通り。結果を見ると、BERTをTweetで再学習させたBERT_Retrainedが最も良いF1の値を出している。提案した知識ベースを組み合わせた手法は、F1ではBERT_Retrainedに及ばないものの、適合率では大きく上回る結果となっている。

f:id:Hironsan:20190926081050p:plain
タスク1の結果

タスク2の結果は以下の通り。結果を見るとBERTにCRFを組み合わせたモデルが最も良いF1の値となっている。

f:id:Hironsan:20190926081117p:plain
タスク2の結果

感想

こちらの論文も以下の記事で紹介した論文と同様に興味深い分野であった。

hironsan.hatenablog.com

タスク1で知識ベースから薬とその副作用のペアを抽出して特徴として使っているが、今後このペアを使ってDistant Supervisionで大量の学習データセットを作って性能を上げる論文が出てくる可能性が高い。また、タスク2は以下の記事で紹介したスペル修正の方法と組み合わせることで、どのくらい性能が向上するかは検証する価値があるかもしれない。

hironsan.hatenablog.com

ユーザ生成型医療テキストのスペル修正

ACL 2019より以下の論文を紹介。

この論文では、ユーザ生成型の医療テキストに対するスペル修正を行う手法を提案している。ユーザ生成型の医療テキストとは、たとえばTwitterでつぶやかれた健康情報やRedditの病気関連のフォーラムに投稿されたメッセージを指す。このようなテキストは病気のトレンドを追うのに役立つが、口語調かつスペルミスが含まれ処理しにくいという特徴がある。そこで、この論文では教師なしでスペル修正をする手法を提案。実験の結果、該当ドメインのテキストに対して最高性能を記録した。

手法の全体像は、以下のパイプラインで表される。最初にテキストを小文字化し、トークナイズを行っている。次に、英語の正規化としてイギリス英語をアメリカ英語に変換する。それが終わると、一般的な略語の正規化(e.g. EU→European Union)を行う。その後、ドメイン固有の略語の正規化とスペル修正を行い、すべての処理が完了する。

f:id:Hironsan:20190925081253p:plain
前処理のプロセス

スペル修正のプロセスは以下の図で表される。手法としてはスペル修正用の辞書と編集距離を使った手法となっている。最初に、スペル修正用辞書とCELEXと呼ばれる2つの辞書を使ってフィルタリングを行う。その結果得られた修正候補のトークンに対して、辞書中のトークンとの編集距離を計算し、しきい値以上の値であれば、スペル修正を行い、辞書を更新するというプロセスになっている。

f:id:Hironsan:20190925071827p:plain
スペル修正のプロセス

ユーザ生成型の医療テキストに関するスペル修正の性能は以下の通り。比較対象のSakerの手法やTISCと比べて大きく性能が向上していることが確認できる。

f:id:Hironsan:20190925074000p:plain
スペル修正の正解率

一方、一般的なソーシャルメディアのテキストに対するスペル修正の性能は以下の通り。この結果を見ると、Sakerの手法と比べて性能が大きく劣ることがわかる。上の実験結果と合わせて考えると、一般的なソーシャルメディアのテキストに対するスペル修正がうまく行っても、ドメインが絞られたテキストに対しては上手くいかないし、逆もまた然りということがわかる。

f:id:Hironsan:20190925075010p:plain
W-NUT 2015の性能

スペル修正を行った後に、ヘルス関連の分類タスクを解いた場合の性能は以下の通り。6つのデータセット中5つで性能の改善が見られた。

f:id:Hironsan:20190925074944p:plain
ヘルス関連の分類タスクの性能

感想

個人的には読みにくい論文であった。最終的に、分類タスクで評価しているが性能の改善は僅かなものであった。これはスペル修正された単語の割合が1%程度であることと、分類タスクの場合、知らない単語が多少あっても解けてしまうことが原因なのではないか。単語修正の影響が大きいと考えられるショートテキストの分類に対してどの程度効果があるかは知りたいところ。あとは、固有表現認識のようなOOVの影響が大きなタスクではより効果的だと思われるので、今後の発展に期待したい。

個人の健康に関するTweetか否かの分類を行う手法

ACL 2019より以下の論文を紹介。

この論文では、与えられた文が個人の健康状態に関する言及(PHM: Personal Health Mention)を含むか否かを分類する手法を提案している。過去の研究では興味のある症状の名前が比喩的(Figurative)に使われていた場合に予測が失敗しがちだった。そこで、比喩的使用検知を行うモジュールををCNNベースの分類モデルと統合したモデルを提案した。結果として、ベースラインモデルよりF1で2.21ポイントの改善が見られた。

個人の健康に関する言及(PHM)というのは、個人あるいはその周りの人に関する健康状態に関する言及のことを指している。たとえば、「朝から咳が止まらない」という文はそれに当たる。一方、「3週間以上咳をすることは、がんの徴候である可能性がある」という文は違う。なぜならこの文は一般論であるからである。こういった分類を行うときに問題となるのが健康状態に関する単語を比喩的に使用している場合である。たとえば、「パリがくしゃみをするとき、ヨーロッパは風邪をひく」という文は「くしゃみ」や「風邪」という単語を含んでいるが、PHMではない。こういった文を上手く扱ってPHMの分類性能を向上させるのがこの論文の目的となっている。

PHMの分類は以下のようなCNNベースのモデルで行っている。最初に、文長を合わせるためにパディングを行う。次に、単語分散表現を結合し、CNNで畳み込み。その後、プーリングとドロップアウトを適用し、最後に全結合層から確率を出力するというモデルになっている。

f:id:Hironsan:20190924055231p:plain
PHMの検知

アプローチは比喩的使用検知のモジュールの扱い方の違いで2パターンある。一つがパイプラインアプローチで、以下の図では左側で表される。このアプローチでは、最初に比喩的使用検知が行われ、そこで比喩だと判断されるとPHMが含まれないと判断する。もう一つのアプローチが特徴拡大アプローチで、以下の図では右側で表される。このアプローチでは、比喩的使用検知の結果を畳み込んで特徴に変換し、モデルの最終層に入力する方法となっている。

f:id:Hironsan:20190924073624p:plain
パイプラインアプローチ(左)と特徴拡大アプローチ(右)

実験結果は以下の通り。実験には、PHM2017と呼ばれるデータセットを使っている。このデータセットは5837のTweetから構成され、アルツハイマー、心臓病、パーキンソン病、がん、鬱、脳梗塞に関するTweetが含まれている。結果を見ると、パイプラインアプローチはベースラインより性能が低いのに対し、特徴拡大アプローチではベースラインより性能が改善された。この結果は、比喩使用検知モジュールの性能がF1で76.46であることに起因すると考えられる。

f:id:Hironsan:20190924074459p:plain
実験結果

以下は病気の種別による分類性能の結果となっている。結果を見ると、心臓病以外の病気に関するTweetでは特徴拡大アプローチがベースラインを上回っている。

f:id:Hironsan:20190924075103p:plain
病気の種別による分類性能

感想

最新の固有表現認識に関する手法をあらかた押さえたので、なにか別の分野がないか探しているときに見つけた論文。手法はあまり洗練されていないが、このあたりは今後改善されてくると思う。それより、これの性能が向上すると、エピデミックの予測に役立つだけでなく、Ad techと組み合わせて受診や薬の購入を促したり、対話システムと組み合わせて検診に使うといった応用が考えられる。