EGFR変異型非小細胞肺がんにおける耐性因子の特定に向けた新アプローチ

 

EGFR変異型非小細胞肺がん(NSCLC)における耐性因子を特定するための新しいアプローチ

初めまして。Logbiiインターンの小林です。

今回は、ライフサイエンス×AIのテーマの3回目です。

今回は、AstraZenecaの研究チームが開発した、EGFR変異型非小細胞肺がん(NSCLC)における耐性因子を特定するための新しいアプローチについて解説していきます。この新アプローチは、ナレッジグラフをベースしたレコメンデーションシステムで、このタイプのがんに対する新たな治療法の開発につながる可能性があります。

今回はその新アプローチKnowledge graph-based recommendation framework identifies drivers of resistance in EGFR mutant non-small cell lung cancerを紹介していきます。

背景

非小細胞肺がん(NSCLC)は、肺がんの中で最も一般的なタイプで、全例の約80%を占めます。NSCLCは、肺の気泡(肺胞)を覆う細胞で発生するがんです。

EGFRは、多くの細胞の表面に存在するタンパク質で、EGFRは細胞の成長や分裂を助ける働きがあります。EGFR阻害剤は、EGFRの働きをブロックする標的治療の一種です。これにより、がん細胞の成長や分裂が止まります。EGFR阻害剤は、体の他の部位に広がったNSCLC(転移性NSCLC)や治療後に再発したNSCLC(再発性NSCLC)の治療に使用されています。

課題: 時間がかかる耐性遺伝子探し

EGFR 阻害剤 に対する耐性は、非小細胞肺がん (NSCLC) の治療において大きな障害となります。この阻害剤は、肺がんの患者に対して効果の高い薬剤と言われています。しかし、EGFR遺伝子変異が認められた非小細胞肺がんに対して、EGFR阻害剤による治療をしていると、いったんは効果が得られても、いずれEGFR阻害剤が効きにくくなってしまうこと(耐性ができること)があります。この耐性を引き起こす遺伝子を見つけるために専門家たちは多くの時間を費やさなければなりません。

一般的にその耐性を引き起こす遺伝子を見つけるためには、CRISPR-Cas9 を用いたゲノムスクリーニングを行い、数百もの耐性を引き起こしうる遺伝子を選びます。その中から、最も薬への耐性を引起こす遺伝子を研究者たちは手作業で選び、その後、疾患に関する事前知識、臨床、前臨床試験などから得られるエビデンスをもとに、どの遺伝子を優先させるか決定していきます。しかし、その作業は耐性を引き起こしうる数百もの遺伝子の中から選ぶために膨大な時間がかかってしまいます。また、研究者個人のバイアスがかかってしまう可能性もあるのです。

課題解決アプローチ

本論文のアプローチによって、上記の研究者による手作業の遺伝子の選定の時間を短縮することができます。具体的には、本アプローチにより、3,000 を超える遺伝子から 57 の耐性を引き起こす可能性の高い遺伝子が特定され、ヒットの特定にかかる時間が数か月から数分に短縮することができるのです。本論文では、3,000 を超える遺伝子から 57 の耐性を引き起こす可能性の高い遺伝子を特定するために、前臨床、臨床、文献のエビデンスを統合した異種生物医学知識を学習したレコメンデーションシステムを構築しました。このシステムは、EGFRi耐性の潜在的なメカニズムに関連する様々なタイプのエビデンス間(臨床や文献など)のトレードオフに基づいています。それによって、耐性を最も引き起こす可能性の高い遺伝子をランク付けをしていくのです。

CRISPR スクリーニングとその課題

非小細胞肺がんを治療するために投与するEGFR阻害剤は、投与し続けるうちにその阻害剤に対して耐性ができてしまう可能性があります。その耐性を引き起こす遺伝子を見つけ、その遺伝子を壊さなければなりません。そのために使用されるのが、CRISPRスクリーニングです。CRISPR スクリーニングとは、CRISPR-Cas9というゲノム編集技術の一種を用いて、ゲノムワイドノックアウト、ノックダウン、ノックインを行うことを指します。具体的には、CRISPR-Cas9はDNA二本鎖を切断してゲノム配列の任意の場所を削除、置換、挿入することができます。ゲノムワイドノックアウト( genome-wide knock out)とは、その削除にあたります。ノックダウン(knock down)とはノックアウトとは異なり、遺伝子の機能を大きく減弱させるものの完全には失わせないことを指し、ノックイン(knock-in)とは、削除するだけでなく新たな配列を挿入することをいいます。つまり、CRISPRスクリーニングは任意の遺伝子の配列を変えることでできるハサミみたいなものです。このCRISPRスクリーニング(ハサミ)を用いて、薬剤耐性を引き起こす遺伝子を切断できるのです。

しかし、 薬剤耐性を引き起こす遺伝子の切断の方法はわかったものの、課題はその遺伝子を見つけるのに時間がかかるということです。生物学的に妥当性の高い耐性遺伝子に絞り込むために、研究者は手作業でトリアージとバリデーションを行わなければなりません。このプロセスは疾患に関するナレッジ、臨床や前臨床試験から得られるエビデンスを集約し、検証のためにどの遺伝子を優先させるかを決定するため、時間がかかります。また、深い専門的な知識に依存しているため、結果が研究者個人のバイアスに左右される可能性があります。本論文の目的は、このような手作業のトリアージを、なんとかレコメンデーションシステムを用いて、短縮できないかというものです。多様なエビデンス(ナレッジ、臨床や前臨床試験)を効率的に統合し、薬剤耐性をもたらす最も有望な候補遺伝子を同定することを本論文は目指します。

 

解決策:レコメンデーションシステムの概要

これまでは、様々なエビデンスと照らし合わせて手作業で耐性を引き起こす遺伝子を絞り込んでいました。しかし、その手作業で行っていた時間をどのように短縮するのでしょうか。本論文では、多目的最適化(multi-objective optimization)を用いたレコメンデーションシステムを使ってその時間を短縮することを実現させました。

では、多目的最適化とはなんでしょうか。多目的最適化とは、目的関数が複数ある最適化のことを指します。逆に、目的関数が「1つ」だけの最適化は単目的最適化といいます。図1は、それぞれ単目的最適化と多目的最適化を表しています。



左の図
図1:単目的最適化と多目的最適化

左の図のように単目的最適化における最適解は1つです。しかし、多目的最適化の最適解は、右の図の紫の点のように複数あります。複数の目的関数はトレードオフの関係にあります。目的関数1を大きくすると、目的関数2が小さくなってしまうのです。たとえば、ある性能を改善しようとすると、ほかの性能が悪化するような関係にある場合が多く存在します。右の図の円周上に、最適解があり、この紫の点の最適解の集合のことを「パレート最適解」と呼ぶのです。本論文で使用する多目的最適化というのは、このパレート最適解の集合を求めることを意味しています。

本論文では、図2にある「Betweenness」「Graph embeddings」「PageRank」「Node degree」「Clustering coefficient」「Literature evidence」「Clinical & preclinical evidence」を目的関数として使用します。つまり、これらの目的関数のパレート最適解の集合を求めることによって、耐性を引き起こす遺伝子を絞り込むのです。


Fig.1

図2:パレート最適解における目的関数

多目的最適化で使った特徴量

前提として多目的最適化を行う際に、多くの特徴量が必要になります。特徴量が多いと解の候補をより細かく評価し、より最適な解を選択できるからです。多目的最適化は、複数の目的関数を同時に最小化または最大化することを目的としています。解の候補を評価するためには、目的関数の値以外にも、その解の候補が満たすべき条件や限制などの情報を考慮する必要があります。例えば、工学設計において、コストと重量、強度と耐久性など、複数の目的関数を満たすことが求められます。しかしそれ以外に材料、環境条件、安全性などの情報を考慮し、多くの情報を扱うことで、最適な解を選択できます。

本論文では、最適解を探すために27の特徴量が選ばれました。

表

表:27の特徴量

表は、その27のそれぞれの特徴量を示しています。大きくカテゴライズすると、7つの特徴量に分類されます。Defaultの列における「exclude」は、最適化プロセスに含むべきではないという結果出た特徴量という意味です。多目的最適化のおいて、多くの特徴量を最初扱いますが、それらすべてが重要であるわけではありません。一部の特徴量は、最適化プロセスから除外され、問題を単純化し、計算上効率的にします。特徴量の除外は、関連性、重要性、その他の特徴量との相関などの基準に基づいて行うことができ、表の「exclude」とある特徴量は使用されない特徴量のことを指します。また、maximizeまたはminimizeと示しているものは、最適化の方向を表し、最適化プロセスとして使用されるものです。

この表は、「exclude」かどうか判断するための判断材料の一つとして各特徴量がどのくらい相関しているか示したものです。ここから2つのことが読み取れます。1つ目は、graphのカテゴリーが強く相関していることです。前の節で説明したpagerankやbetweennessなどがgraphのカテゴリーです。つまり、多目的最適化においてこの特徴量は外せないものと言えます。2つ目は、CRISPRのカテゴリーはマイナスに相関していることです。紫の部分がそのマイナスに相関している部分に当たります。

つまり、多目的最適化の精度をあげるために、図2の他に様々な特徴量をあげ、合計27の特徴量を多目的最適化プロセスに必要かどうか分析しました。それぞれの相関係数を調べ、「exclude」か「maximize/minimize」を決定し、まとめたものがこの表です。

SkywalkR インタラクティブ インターフェイス

図3と図4は、SkywalkRの対話型インターフェースであり、ユーザーはCRISPRヒットの再ランク付けを、様々な目的の組み合わせに基づいて行うことができます。

左の図

図3:メインのインターフェース

図3のサイドバーパネルには、EGFRi耐性の遺伝子推奨を最適化するために使用できる目的のリストが表示されています。各目的はスライダーで表され、ユーザーは最適化に含める目的を選択できます。また、ユーザーは最適化の方向を「最小化」または「最大化」で指定できます。

例えば、ユーザーがEGFRi耐性と高い関連性がある遺伝子を特定したい場合、目的の「EGFRi耐性」を選択し、最適化の方向を「最大化」に設定できます。これにより、EGFRi耐性と高い関連性がある遺伝子のリストが右に表示されます。

左の図

図4:サブインターフェース

図4のサブインターフェースは、最適化の結果を調査するために使用されます。

相対ビュー(Relative view):図4の中の左の図は、相対ビューといいます。この相対ビューは、レコメンドされる遺伝子のプロファイルを表示し、各遺伝子は線で表されます。これらの線は、各遺伝子に対するさまざまな目的の値を示しています。これにより、遺伝子を比較し、複数の目的で高いパフォーマンスを発揮する遺伝子を特定できます。 例えば、EGFRi耐性と高い関連性があり、複数の証拠タイプによって支持される遺伝子を探し出すとしましょう。相対ビューでは、「EGFRi耐性」目的と「複数の証拠」目的の両方で高い値を持つ遺伝子を探し、画面上に表示します。

共起ヒートマップ(Co-occurrence heatmap):図4の右上のヒートマップは、共起ヒートマップと呼ばれます。これは、EGFRi耐性の文脈で一緒に言及されることが多い遺伝子のクラスターを示しています。これにより、関連する遺伝子を特定し、同じ生物学的経路に関与している可能性がある遺伝子を見つけることができます。 例えば、EGFRシグナル伝達経路に関与する遺伝子を特定する場合、共起ヒートマップでは、一緒に言及されることが多い遺伝子のクラスターを探します。これらの遺伝子のクラスターは、同じ生物学的経路に関与している可能性が高いを意味します。

棒グラフ:最後に、図4の右下のグラフについて説明していきます。この棒グラフは、上位の推奨遺伝子に対して目的ごとに標準化された値を示しています。これにより、遺伝子が各目的でどのように互いに比較されるかを確認できます。 例えば、EGFRi耐性と最も関連性が高い上位10の遺伝子を特定する場合、棒グラフでは、「EGFRi耐性」目的で最も高い値を持つ遺伝子を探し出し、表示させます。

このように、SkywalkRのインターフェースは、専門家が異なる目的に基づいてレコメンドがどのように変化するかを見ることができる貴重なツールであり、NSCLCの治療や薬剤開発に役立つ情報を提供することができます。

 

考察

本研究の発見は重要であり、ナレッジグラフを用いてEGFR変異型NSCLCの新たな治療標的を特定することができる可能性を示しています。これは、このタイプのがんの新たな治療法の開発において重要なステップです。

研究者たちは現在、特定した遺伝子のさらなる検証と、これらの遺伝子を標的とする新薬の開発に取り組んでいます。これは、がん研究の分野において刺激的な発展です。EGFR変異型NSCLCの新たな治療法の開発は緊急に必要とされており、この研究は、このタイプのがん患者に役立つ新薬の開発につながる可能性があります。

本ブログを読んでいただき、ありがとうございます!より詳しい情報や研究の詳細に興味を持たれた方は、オリジナル論文をぜひ一読してみてください。

 

参考文献

Knowledge graph-based recommendation framework identifies drivers of resistance in EGFR mutant non-small cell lung cancer

バイオメディカル関連の論文読解 「NERO」

初めまして。Logbiiインターンの高橋です。

今回は、ライフサイエンス×AIのテーマの2回目です。

現在の生物学においては様々な論文などで溢れかえっていますが、生物医学用語はとても曖昧で、1つのフレーズが論文を書く科学者によって意味が異なってしまう場合があります。例えば変異ヘモグロビンα2は遺伝子かタンパク質を指します。さらに論文の著者がタンパク質Aとし、機械学習などに用いるアノテーションを遺伝子Aとした場合、アノテーションの有用性が低くなってしまいます。これを解決するべく、この論文では生物医学のための先進的なアノテーションツール、NERO: a biomedical named-entity (recognition) ontology with a large, annotated corpus reveals meaningful associations through text embedding[1]を開発したとのことです。

今回はこのNEROという論文のピックアップをして紹介していきます。

概要

NEROは以下の6つの要素で構成されています:

  1. 分子生物学、遺伝学、生化学、医学における、新しい固有表現抽出のためのオントロジー(Named Entity Recognition Ontology:NERO)
  2. アノテーターへのガイドライン
  3. 固有表現の絵文字表記
  4. 190,679の固有表現と2つ以上の表現を繋ぐ43,438のイベントをカプセル化
  5. 検証した固有表現抽出(Named Entity Recognition : NER)モデル
  6. このコーパスを用いた生物医学的な関連性を示す埋め込みモデル

ontology

図1 NEROのイメージ図

NEROのイメージを表しているのが図1です。

この図では、多分木ツリーとしてオントロジーが示されています。分類ノードはオントロジーの各クラスに対応しています。各クラスの下の括弧は、コーパス内のクラス言及数を表しています。NEROでは35,865文のアノテーションを行い、うち190,679は固有表現、43,438は2つ以上の表現を繋ぐイベントで構成されています。

DomainEntity“のクラスターの下には”AnatomicalPart“, “Chemical“, “Process“の代表的なクラスがあり、全ての固有表現の半分以上がこの3つのクラスに由来しています。また、各クラスにおいて、コーパスを使用する際に手動でアノテーションを付ける事を簡略化し、さらにビジュアル的にもわかりやすいようにそれぞれの要素を表す絵文字が用意されています。例えば、”Gene“であれば遺伝子の絵、”BodyPart“であれば体の一部分を示しています。

コーパスを作る際にポスドク・生物医学業界の専門家たちのチームを採用することにより、大規模な生物医学コーパスにアノテーションをつけて、幅広い自然言語処理と生物医学の機械学習タスクを可能にしています。

NEROにおいてのアノテーションは、”GeneOrProtein“のような曖昧な概念を”Gene“と”Protein“で分離し、これらのいずれかもしくは両方に対応するというパターンを利用して、アノテーションに関する適切な曖昧さを表現し、テキストの不確実さを保持します。

また、アノテーションされた35,865文のうち8,650文は、非常に高いアノテーターたちの合意によって付けられており、合意が取れている割合は表1のようになっています。

aggreement
表1 アノテーター間での合意の割合

IAAとはInter-annotator Agreementと言い、アノテーションをするアノテーターの間で合意が取れている割合を表しています。

 

NERO内の固有表現の出現頻度は以下の図2のようになっています。

freq

図2 NEROに含まれる固有表現の出現頻度

[a] 時計回りに降順で表現頻度が表示されており、”GeneOrProtein”が最も一般的(14.7%)で、”Process”(9.0%),”MedicalFinding”(8.8%),”Chemical”(6.7%)…と続きます。
[b] イベントの頻度をZipf分布に従って表示しています。縦軸はイベントの頻度を、横軸はイベントの頻度に対するランク(頻度が高ければ高いランク)となっており、例えば”bind”は1番頻繁に出てくるイベントで、これは[a]の”GeneOrProtein”に関連づけられています。 

 

これらを元に、アノテーション付きコーパスを使用したい研究者向けに、NERO-nlpというパッケージ[2]も開発しています。

 

実験内容

NEROの実用的なアプリケーションとして、以下の2つを提案・実験しています。

  1. 固有表現を識別する機械学習モデル
  2. 単語の埋め込み

 

・実験1 機械学習モデル

まず初めにNERsuite[3]を使用しデータセットを教師データ・テストデータに分割し、交差検証をしました。分類結果は表2のようになりました。全体的な固有表現抽出のパフォーマンスは中程度で、適合率は54.9%、再現率は37.3%、F値は43.4%となっています。最も数値が高かった”GeneOrProtein“は、ベースラインで適合率は67.0%、再現率は65.3%、F値は66.2%を出しました。また、NERsuiteのデフォルトのベースライン実装に加え、さらに精度を向上させるために、専門用語の辞書を参照する辞書機能を追加しました。その結果、適合率は54.7%、再現率は37.9%、F値は43.8%となり、辞書機能を追加してもF値の向上は0.35%に留まりました。次に、NERsuiteをベースモデルとして、スタッキングと呼ばれるアンサンブル手法を実装しました。その結果、ベースライン結果と比較してF値が0.27%増加しました。

 

ml_results

表2 データセットの10%で評価された固有表現抽出の実験結果

[Baseline] NERsuiteを使用し学習した基準とする機械学習モデル
[Baseline-Dict Features] Baselineに辞書機能を追加したもの
[Stacking] スタッキングを用いたモデル

 

このNERsuiteでの結果と精度を比較するために、spaCy[4]を使用した場合も検証されており、全体的にNERsuiteよりも精度が低くなっているそうです。
NERsuite以外のモデルとの比較として、spaCy, ScispaCy, Spark NLP libraryのBERT, nested NER neural learningの検証と考察をしています。興味がある方は、元論文をぜひご覧ください。

 

・実験2 単語埋め込み

この実験では単語埋め込みモデルとしてword2vec[5]を使用し、NEROのアノテーション付きコーパスの埋め込まれた意味を構築し、疾患や薬剤に関するエビデンスと比較しました。使用したコーパス(ウィキペディア、Elsevierの記事、ロイターの記事)について、疾患や薬剤に関連する固有表現を300次元の空間に埋め込みました。今回はgensim[6]というパッケージを用いてword2vecを実装しています。

NEROに基づいて単語埋め込みを評価するために、2つの疾患の観点(「重症度」と「性別」)、2つの薬剤の観点(「毒性」と「費用」)について分類しました。

まず疾患について、ここでは以下のように対称的な用語のペアを使用して、疾患の重度・軽度の軸を構築しました。

  • “harmful”, “beneficial”
  • “serious”, “benign”
  • “life-altering”, “common”
  • “disruptive”, “undisruptive”
  • “dying”, “recovering”
  • “dangerous”, “safe”
  • “threatening”, “low-priority”
  • “high mortality”, “harmless”
  • “costly”, “cheap”
  • “hospitalized”, “self-administered”
  • “hospital”, “work”
  • “debt”, “savings”
  • “low quality of life”, “undisruptive”
  • “hazard”, “routine”

また、この軸での疾患の埋め込みを、各疾患との生活の負担に関するWHOのデータ(DALYs13)[7]と比較しました。その結果、0.329 (p=0.0614, n=33)の相関関係を見つけることが出来ました。

同様にして、性別における対称的なペアを使用し、性別の軸を以下のように構築しました。

  • “male”, “female”
  • “prostate”, “ovary”
  • “penile”, “uterine”
  • “penis”, “uterus”
  • “man”, “woman”
  • “men”, “women”
  • “masculine”, “feminine”
  • “he”, “she”
  • “him”, “her”
  • “his”, “hers”
  • “boy”, “girl”
  • “boys”, “girls”

この軸での疾患の埋め込みを、2003年から2011年までのアメリカの保険記録を用いて、男性と女性の疾患の有病率と比較しました。この結果、0.436 (p=1.46×10−13, n=261)の相関が見つかりました。

次に薬剤について、以下の対称的な用語のペアを使用して、薬剤の毒性の軸を構築しました。

  • “harmful”, “beneficial”
  • “toxic”, “nontoxic”
  • “noxious”, “benign”

薬剤の毒性の軸での疾患の埋め込みを、薬剤固有の半数致死量(LD50データベース[8]に記載されているモデル動物の50%致死量)と比較しました。その結果、0.32(p=1.1×10-4)の相関関係を見つけることが出来ました。

同様にして、費用における対称的なペアを使用し、費用の軸を以下のように構築しました。

  • “expensive”, “inexpensive”
  • “costly”, “cheap”
  • “brand”, “generic”
  • “patented”, “off-patent”

薬剤の費用の軸での疾患の埋め込みを、IBM MarketScanデータベース[9]と比較しました。その結果、費用の軸と各薬剤の実際の価格への薬剤予測の相関は0.42(p=1.5×10-15)でした。

疾患の観点(「重症度」と「性別」)、2つの薬剤の観点(「毒性」と「費用」)での埋め込みを表すのが、図4になります。

 

embed

図4 疾患と薬剤の二次元投影

[左] 疾患のグラフ。横軸は性別(女性-男性)、縦軸は疾患の程度(軽度-重度)
[右] 薬剤のグラフ。横軸は毒性(良性-毒)、縦軸は価格(安い-高い)

 

オウム病など、疾患が性別の軸で低くなると、男性よりも女性を苦しめる可能性が高くなります。ハンセン病のように、疾患の重症度の軸で高く突き出た場合、かなりの苦痛を被る可能性があります。毒性の軸で負の値の薬は、より深刻な副作用と関連する傾向があります。たとえば、筋萎縮性側索硬化症の治療薬であるリルゾールは、異常な出血から吐き気や嘔吐に至るまでの副作用があります。費用の軸で値が高い薬剤は、特許を失う前は多くの費用がかかっていたシンバスタチンのように、厳しい医療費を表します。これらの結果の頑健性は、科学的コーパスが、追跡調査に値する仮説の自動生成に使用できることを示唆しています。

議論

この研究の主な制限として、エンティティの分類におけるすべてのレベルの粒度をカバーしなかったこと、オントロジークラスの頻度がヘビーテイルで分布しているため、いくつかの概念タイプが十分に表現されていないことなどが挙げられています。

また、最近の研究では、生物医学などの特殊なドメインの場合、ドメイン内のテキストを最初から事前トレーニングすると、一般ドメインのテキストでの事前トレーニングと比較した場合に精度が高いという報告があるため、実験1の機械学習モデルでは生物医学の注釈付きコーパスを最初からトレーニングしたとのことです。
 この研究の活用用途として、大規模テキストマイニング、グラフニューラルネットワークでの埋め込みエンティティの学習、この研究のコーパスを自己教師あり学習の微調整に用いる、などが挙げられています。

 

参考文献

[1] NERO: a biomedical named-entity (recognition) ontology with a large, annotated corpus reveals meaningful associations through text embedding

[2] NERO-nlp

[3] Labelling Sequential Data in Natural Language Processing

[4] Spacy・Industrial-Strength Natural Laguage Processing

[5] word2vec: Distributed Representations of Words and Phrases and their Compositionality

[6] Gensim: Topic modelling for humans

[7] History of global burden of disease assessment at the World Health Organization

[8] ChemIDplus Help – A structure searchable database of 400,000+ chemical substance records

[9] IBM MarketScan Research Databases for life sciences researchers

 

薬剤有害反応を検出するために開発された自然言語処理モデルの可能性

はじめまして。Productチーム エンジニアの井殿です。
Logbiiの技術ブログでは、今後当面はライフサイエンス×AIをテーマとした論文の紹介や実装などを掲載していく予定です。

今回は、退院サマリーから薬剤有害反応(Adverse Drug Reaction:ADR)の自動抽出を行なった論文「Developing A Deep Learning Natural Language Processing Algorithm For Automated Reporting Of Adverse Drug Reactions」[1]をピックアップして紹介していきます。

論文の概要

ADRの検出は、薬剤の安全性とリスク・ベネフィット・プロファイルを理解する上で非常に重要です。ADR は患者の罹患率において重大な原因であり、世界中の急性期病院入院患者の 5-10%を占めています。ADR の自発的な報告は長い間、標準的な報告方法でしたが、この方法は過少報告の割合が高いことが知られており、ファーマコビジランスの取り組みを制限する問題になっています。ADR 報告の自動化は、報告率を高めるための代替手段となりますが、これは他の薬剤に関連する有害事象の過剰報告につながるリスクがあります。

著者は、大学病院における退院サマリーで ADR を識別するために、深層学習の自然言語処理アルゴリズムを開発しました。そのモデルは 2 段階で開発されました。まず、学習済みモデル(DeBERTa[2])を、ラベル付けされていない 15 万件の退院サマリーでさらに事前学習し、アノテーション付き退院サマリー 861 件のコーパスで ADR の言及を検出するために追加学習しました。このアルゴリズムが ADR と他の薬剤に由来する有害事象を確実に区別できるように、アノテーション付きコーパスには、検証済みの ADR レポートと、交絡する他の薬剤に由来する有害事象の両方を準備しました。最終的なモデルは、ADR に関する記述を含む退院サマリーを識別するタスクに対して、ROC-AUC が 0.934(95%CI 0.931 – 0.955)と良好な性能を示しました。

本研究は、ADR の自動検出のために開発された自然言語処理(Natural Language Processing:NLP)モデルの可能性を示しています。このアプローチは、現在の手法の報告不足を解決し、現在の臨床ワークフローのリソースの制限を回避し、病院内の ADR 報告率を向上させることができます。著者らの医療ネットワークに特有の電子医療記録(Electronic Medical Records:EMR)データで追加学習することで、モデルは退院サマリーのフォーマットのパターンを学習することができ、様々なクラスに分類できるようになりました。

NLP を用いた ADR 検出

・研究目的

本研究の目的は、退院サマリーにおける ADR を特定するための NLP アルゴリズムを開発し、ADRを他の薬剤有害事象(Adverse Drug Events:ADE)から区別してADR 報告を補強することです(図 1 参照)。そのため、ADR と ADE の両方についてアノテーションした新しいコーパスを開発しました。著者らはBERT[3]BioBERT[4]のような、事前に学習した巨大な言語モデル(Large Language Models:LLM)を使用しました。国(オーストラリア)および業界の文書作成慣習と語彙に適応するために、著者らの大学病院からアノテーションなしの退院サマリーの大規模コーパスでモデルを事前学習した上で、上記のアノテーション付きコーパスで追加学習をしました。ADR と ADE の両方に特化したデータを使用することでこの目的を達成します。

F1.large

図1 ADR報告の流れ
[上]従来の自発的報告とICD-10コードによるADR報告

[下]NLPアルゴリズムを用いたADR報告

 

・研究データ

オーストラリア・メルボルンにある 900 床の大学病院の臨床研究データウェアハウスから、5 年間(2015 ~ 2020 年)にわたる 861 件の退院サマリーを収集しました。すべての退院サマリーは、Y40-59 ICD-10 コード(ADE コード)でコード化された入院患者からのものであり、これは「すべての入院患者に ADE が生じていた」と臨床コーダーによって評価されたことを意味しています。この結果には、著者らの施設の ADR 委員会によって事前に審査・検証された 231 件の真の ADR も含まれていました。入院患者の診療科は多岐に渡っていました(一般内科 23%、老年科 10%、外科 15%)。

検証方法

・アノテーション

退院サマリーの薬剤名と既知の副作用のアノテーションには、アノテーションツール「Prodigy[5]」を使用しました。初めに、最初のアノテーション付きコーパスを手動で作成しました。その後、オープンソースのMed7[6]モデルを用いて、以降のすべてのバッチ(バッチあたり 100-200 テキスト)でアクティブラーニングを実施しました。このプロセスを、すべての文書にアノテーションが施されるまで繰り返しました。ラベルは「DRUG」と「ADR」の 2 種類を用いて、NER トレーニングデータを作成しました。1 人のアノテーターがすべてのアノテーションを行い、上級臨床医がレビューしました。

・処理とモデル学習

著者は、多くの類似した NLP タスクにおいてBERT[3]よりも優れた結果を示すDeBERTa[2]を使用しました。事前学習済みバージョンは、HuggingFace Transformers library[7]から入手可能です。臨床テキストを用いた事前学習は、EMR から 15 万件のアノテーションのない退院サマリーのコーパスを用いて、マスク言語モデリング(Masked Language Modeling:MLM)で行いました。このステップでは、未アノテーションコーパスの 15%のトークンがマスクされ、モデルは周囲のテキストからマスクを予測するように学習しました。

アノテーション付き文書は WordPiece トークナイザーを用いてトークン化しました。これらのトークン化された文書を、薬剤および ADR の NER タスクのために追加学習しました(図 2 参照)。最大確率の NER 単語ラベルを、退院サマリーが ADR を含むか否かの分類に使用し、最終モデルは K-分割交差検証を用いて文書レベルで評価しました。

検証環境としては、Python 3.9.6 と Nvidia 1080ti を用いました。すべてのコードはhttps://github.com/AustinMOS/adr-nlpで入手可能です。

F2.large

図2 モデルのトレーニングと評価プロセス

アノテーションは4つのステップに分割されます。「Annotation」の ステップ2(Active learning annotation) と ステップ3(Concatenate & update model)は、毎回 N個の退院サマリーで順番に繰り返されます。全データのアノテーションが終わるか、更新された NER モデルの改善が最小限になった時点でこのプロセスを終了します。

結果

モデルは、ROC-AUC 0.934(95%CI:0.931-0.955)(図 3 参照)および PR-AUC 0.906(95%CI:0.885-0.926)で、ドキュメントレベルで優れた識別パフォーマンスを示しました。 ROC に関しては、5 つのフォールド全てで一貫して良好なパフォーマンスが得られました(図 3 参照)。特に最終モデルのパフォーマンスは最高で、 中間の事前学習により PR-AUC が 0.12、ROC-AUC が 0.13 改善され、最終的なモデルの ROC-AUC は、過去に発表された ICD-10 モデルよりも高くなりました(表 1 参照)。

 

F3.large

図3 5-分割交差検証によるROC曲線

※平均パフォーマンスは黒い実線で表され、灰色の網掛け部分は平均 ± 標準偏差を表します。

T1.large

表1 本論文のNLPモデル(事前学習あり/なし)と過去に発表されたICD-10モデルのPR-AUC、ROC-AUCの比較

※事前学習ありの NLP モデルがROC-AUC 0.934、PR-AUC 0.906と最高のパフォーマンスを示した。

NER の出力確率を見ると、モデルは「好酸球」や「発疹」といった適切な単語を一般的な ADR の特徴として正しく認識しています(図 4 参照)。これをみると、多少のスペルミスがあっても堅牢で、該当の単語が ADR クラスの分類に重要度高く寄与していることが分かります。

F6.large

図4 単語レベルでのADRの確率予測

※カラーグラデーションは、赤(非常に低い確率)から緑(非常に高い確率)に変化し、各単語が ADR クラスに属する確率を表します。

退院サマリーの修正を検証した結果、このアルゴリズムは薬剤の記載に敏感であることが判明しました(表 2 参照)。「アセトアミノフェン」のようなオーストラリア以外の医薬品名には頑健であるように見えますが、商品名は誤分類につながる可能性があります。これは、一般名が多く使用されている著者らの機関での文書化の慣行を反映しているように見えます。薬剤の言及を削除するか、それを病気の寄与や「a medication」などの一般的な用語に置き換えると、予測される ADR の確率が大幅に低下します。事前学習ありのモデルとなしのモデルを比較すると、事前学習ありのモデルは、ADR とその原因となる薬剤の記述が離れている場合でも堅牢な予測を生成します。事前学習を行わないモデルでは、これらの単語がテキスト内で密接に関連している必要があります。

Table2

表2 テキストレベルのADR検出率の比較

※事前学習ありのモデルとなしのモデルの ADR 検出率比較。

課題と展望

データセットに関しては、モデルは EMR データの全領域ではなく、ICD-10 でコーディングされた Y40-Y59 の退院サマリーのみを用いてトレーニングされました。ICD-10 コーディングは、臨床医と臨床コーダーが ADE と考えられるイベントを文書化して特定したことに依存しています。このため、コーディングの範囲外にある退院サマリーでは、重要な交絡因子が見落とされている可能性があります。退院サマリー以外にも、他の EMR の記録(例:入院患者の記録、病理報告書など)を包含するようにデータセット を拡張することも今後の研究の方向性の一つです。

参考文献

[1] Christopher McMaster et al., “Developing A Deep Learning Natural Language Processing Algorithm For Automated Reporting Of Adverse Drug Reactions”, medRxiv: 2021.12.11.21267504, 2021

[2] Pengcheng He et al., “DeBERTa: Decoding-enhanced BERT with disentangled attention.”, arXiv:2006.03654, 2020

[3] Jacob Devlin et al., “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”, arXiv:1810.04805, 2018

[4] Jinhyuk Lee et al., “BioBERT: a pre-trained biomedical language representation model for biomedical text mining”, arXiv:1901.08746, 2019

[5] Prodigy – Radically efficient machine teaching. An annotation tool powered by active learning.

[6] Andrey Kormilitzin et al., “a transferable clinical natural language processing model for electronic health records”, arXiv:2003.01271, 2020

[7] HuggingFace Transformers library

画像認識の応用研究論文解読「DEEPEYE」

はじめまして。Logbiiのヤンと申します。

Logbiiの技術ブログでは、最近の技術動向についてや、社内で扱っている技術などについて紹介していきます。主に、機械学習・ディープラーニングに関する論文の紹介や実装などを中心にしていく予定です。

初回のテーマとしては、画像認識の自動運転への応用にフォーカスして紹介していきます。

物体認識アルゴリズムの有名なものとしてはSSD[1]、YOLO[2]などがあります。今年の4月には、処理速度が向上したYOLOv3[3]が発表されるなど、アルゴリズムは常に進化しています。

アルゴリズムとしてパフォーマンスを出すのは重要です。実用化、例えば自動運転の物体認識を考えると、エッジ側での効率的な計算、周囲画像の取得方法、小さな標識の認識なども考えないといけないです。実用化の場合には、アルゴリズム、利用シーンと分析シナリオをケースバイケースで考える必要があると思います。

最近、各大手企業はエッジコンピューティングをアピールする傾向になりました。(海外ではNVIDIA[4]、Microsoft[5]、日本では三菱電機[6]、NEC[7]、富士通[8]など)。ディープラーニングを活用した画像認識は2012年のAlexNet[9]以来、精度は毎年向上しています。最近のトレンドとしては、効率よくエッジ端末で処理するため、精度とパフォーマンスのバランスが重視されているように感じます。

今回は、画像認識の自動運転での応用研究の中で、エッジ側でのディープラーニングの利用を想定したDEEPEYE[10]という論文をピックアップして紹介します。

DEEPEYEの概要

これまで物体認識の学習と分析には多くのパラメータ、データの入力が必要なため、エッジ側(Terminal Device)でリアルタイムで使用するには、パフォーマンス面の課題がありました。著者は8bitの量子化(Quantization)を用いてYOLOを圧縮し訓練して、テンソル化(Tensorized)して圧縮したRNNを合わせて、従来のYOLOと比べて約1/4にモデル容量を圧縮し、通常のRecurrent Neural Network(RNN)を用いた場合と比べて2.87倍のスビートアップ、約1万5千分の1のパラメータの減少を達成しました。

deepeye
[10]より引用

著者はこの方法をDEEPEYEと命名しています。モデルのフレームワークはQ-YOLO(8 bit量子化:Quantizationで訓練したYOLO)とT-RNN(テンソルして圧縮化したRNN)を合わせて、画像に写った物を分類して行動をタグ付けします。(上図でのタグは”Playing with cat”) 。下図では上から、“Balancing”、“Cleaning”、“Fighting”というタグがつけられています。

 

result

[10]より引用

YOLOの量子化(Q-YOLO)

Q-YOLOで用いられる量子化とは、浮動小数点で表現される重みなどのパラメータを、8bitで表現する手法です。TensorFlowなどに実装されています[11]。
量子化のメリットとしては、以下のような点があげられます。
1、 ディスクリソースの削減
2、 計算リソースの削減と消費電力の削減

重みパラメータを量子化するイメージを下図に示します。重みパラメータを小数点の形ではなく8-Bitに変換します。例えば、PS4(64Bit)ゲームをファミコン(8Bit)に変換するような感じです。Q-YOLOでは、畳込みレイヤー(convolutional layers)、バッチ正規化レイヤー(batch normalization)、max-poolingレイヤーの重みを8Bit(-127)〜(+127)として量子化し、特徴マップ(Feature Map)は0〜255として量子化しています。

quantum

[10]より引用

T-RNNの評価

T-RNNの評価では、訓練データとしてUCF11[12]を使っています。

下図では、T-RNN (入力:Q-YOLOのアウトプット)、T-RNN (入力:動画フレーム)、通常の RNN(入力:動画フレーム)の3つのケースでLossとAccuracyを比較しています。epoch20を超えると最初のケースが精度が一番高くなっており、ピークの精度では通常のRNNよりも16.58%良い結果となりました。

trnn

[10]より引用

 

パフォーマンス比較

下の表では、通常のRNN(入力:動画フレーム)、T-RNN(入力:動画フレーム)、DEEPEYE(入力:Q-YOLOアウトプット+T-RNN)について、精度、パラメータ数、圧縮率、実行時間(learning epochの平均時間)とスピードについてまとめています。DEEPEYEは通常のRNNに比べて精度が高く、学習時間が削減されました。

 

result2

[10]より引用

 

まとめ

今回の研究は、画像認識アルゴリズムの更なる精度を追求するのではなく、コンピューターリソースと実効速度などを最適化するチャレンジとなっています。今後はこういった実用化に向けた応用研究が増えていくかもしれません。

 

 

参考文献

[1] Wei Liu et al., “SSD: Single Shot MultiBox Detector”, arXiv:1512.02325, 2016

[2] Joseph Redmon et al., “You Only Look Once: Unified, Real-Time Object Detection”, arXiv:1506.02640, 2016

[3] Joseph Redmon et al., “YOLOv3: An Incremental Improvement”, preprint 2018

[4] https://www.nvidia.co.jp/object/nvidia-jetson-tx2-enables-ai-at-the-edge-20170313-jp.html

[5] https://www.microsoft.com/ja-jp/internet-of-things/intelligentedge

[6] http://www.mitsubishielectric.co.jp/news/2018/0419-a.html

[7] https://jpn.nec.com/techrep/journal/g17/n01/170106.html

[8] http://www.fujitsu.com/jp/services/knowledge-integration/insights/20180604-02/index.html

[9] Alex Krizhevsky et al., “ImageNet Classification with Deep Convolutional Neural Networks”, NIPS 2013

[10] Yuan Cheng et al., “DEEPEYE: A Compact and Accurate Video Comprehension at Terminal Devices Compressed with Quantization and Tensorization”, arXiv:1805.07935, 2018

[11] https://www.tensorflow.org/performance/quantization

[12] J. Liu et al., ‘Recognizing realistic actions from videos “in the wild”‘, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2009