言語処理学会 第25回年次大会 発表論文集 (2019年3月)

データベースの説明文を利用した薬物相互作用抽出
浅田 真生

三輪 誠

佐々木 裕

豊田工業大学{sd17402, makoto-miwa, yutaka.sasaki}@toyota-ti.ac.jp

1

であり，より高い性能のために正解付きコーパスを増はじめにやすことはコストが大きい．また，相互作用抽出には
薬物相互作用とは，患者に薬物を併用投与する場合，薬物エンティティ周辺の単語の情報のみを利用してお薬物の本来の作用が増強・減弱したり，副作用が増強り，薬物エンティティの情報を利用できていない．

したりすることである．薬物相互作用は薬学論文等で日々報告されているが，そのデータベースへの登録は人手で行われており，その報告に対してデータベース相互作用自動抽出を行う研究は重要であり，近年は深層学習を用いた手法 [1, 2] が注目されている．深層学
習には薬学専門家により正解付けされたコーパスが必要であるが，コーパス作成はコストが大きいため増やすことが難しい．そこで，現在までに整備されている薬物データベースの情報の薬物相互作用抽出への有効活用が求められている．
多くの薬物相互作用抽出では，薬物エンティティ自身の情報を用いず，エンティティの周辺単語から薬物相互作用を予測する．薬物データベース DrugBank [3]には薬物についての説明文が記載されおり，薬物の説提案手法3の整備が追いついていない．このため，文書から薬物本研究では，データベース中の薬物の説明文を薬物相互作用抽出に援用するために，薬物相互作用を抽出する入力文およびデータベースに記載された薬物の説明文をそれぞれ CNN で表現し，二つの CNN を同時に学習しながら薬物相互作用抽出を行う手法を提案する．提案した手法の全体図を図 1 に示す．提案手法では，薬物ペアについて述べた文が，どの種類の薬物相互作用を持つかの分類問題を解くことによって薬物相互作用抽出を行う．入力文中の薬物エンティティに対応付けられた外部データベースの薬物エントリから薬物の説明文を獲得して CNN の入力とする．

明文を薬物の情報として利用できれば，他の薬物との相互作用を求める助けとなる可能性がある．

3.1

本研究では，データベースに記載された薬物の説明文を文献からの薬物相互作用抽出に援用することを目的として，薬物説明文と相互作用を抽出する入力文をそれぞれ畳み込みニューラルネットワーク (Convolutional

Neural Network; CNN) で表現し，二つの CNN を同時に学習する手法を提案する．提案したモデルを
SemEval-2013 Task 9 データセット [4] で評価したところ，説明文の追加により精度の向上を達成し，説明文の薬物相互作用抽出への有効性がわかった．

2

二つの薬物エンティティの説明文をそれぞれ S d1 ={w1d1 , w2d1 , · · · , wnd11 }，S d2 = {w1d2 , w2d2 , · · · , wnd22 } とする．S d1 を CNN の入力とし，薬物説明文を固定長の実数値ベクトルで表現する．単語 wid1 の単語ベクトルを wid1 ，畳み込みのフィルタサイズの集合をd{k1d , · · · , kL}，畳み込みのフィルタ数を Jd ，畳み込みdテンソル，バイアスをそれぞれ W dconv ，bdconv とし，畳み込みの処理を以下のように行う．

CNN を用いた薬物相互作用抽出

Liu ら [1] は CNN を用いた薬物相互作用抽出手法を提案し，高い性能を示している．しかし，モデルの学習に使用するコーパスは人手でタグ付けされたもの

薬物説明文の表現

d1d1d1zi,l= [(wi−(k), · · · , (wi−(k)]l −1)/2l +1)/2(1)

dconv
d1
md1
⊙ zi,l+ bdconv )i,j,l = relu(Wj(2)ここで ⊙ は要素積である．得られた表現について max
プーリングを行い，S d1 の表現を次のように得る．
d1
d1
d1
d1
hd1
l = [h1,l , · · · , hJd ,l ], hj,l = max mi,j,li― 795 ―

(3)

Copyright(C) 2019 The Association for Natural Language Processing.
All Rights Reserved.

入力文

正解付き
コーパス

単語
単語位置
ベクトル ベクトル

Grepafloxacin
inhibits
themetabolismofTheophylline

max
プーリング

畳み込み
𝑾𝑐𝑜𝑛𝑣

相互作用の種類

薬物データベース
単語ベクトル

Mechanism
EffectAdviceInt
薬物相互作用なし

𝑾𝑑𝑐𝑜𝑛𝑣

𝑾𝑑𝑐𝑜𝑛𝑣…

薬物名 :Theophylline
説明文 :A methylxanthinederivative from tea
with diuretic, …

max
プーリング

畳み込み

…

薬物名 :
Grepafloxacin
説明文 :Grepafloxacin is anoral broadspectrum …

図 1: 提案手法の全体図(4)

フィルタサイズが kl であるとき，単語 wi とその前

ここで，[; ] はベクトルの連結を表す．同様にして，S d2

後 kl2−1 単語のベクトルを連結し，以下のように表現の表現 hd2 を得る．二つの説明文の表現を連結し，する．

d1
hd1 = [hd11 ; . . . ; hL ].

hdesc = relu(W desc [hd1 ; hd2 ] + bdesc )と変形することで説明文の表現 hdesc を得る．ここで，W

desc，bdesc

zi,l = [(wi−(kl −1)/2 )T , · · · , (wi−(kl +1)/2 )T ]T(5)は重みとバイアスである．

(8)

畳み込みのテンソルを W conv ，バイアスを bconv ，畳み込みのフィルタ数を J とする．zi に畳み込み処理を行い，以下の結果を得る．

3.2入力文の表現

mi,j,l = relu(Wjconv ⊙ zi,l + bconv )二つの薬物エンティティ e1 , e2 の間の薬物相互作用について述べた入力文 S = (w1 , w2 , · · · , wn ) が与えら

(9)

全単語の畳み込みの出力のうち，max プーリングにより以下のように入力文の表現 hsent を得る．

れたときに入力文を CNN により実数値ベクトルで表

ml = [m1,l , m2,l , · · · , mJ,l ], mj,l = max mi,j,l (10)

現する．単語 wi の単語ベクトルを wi ，エンティティipp
e1 , e2 に対する単語位置ベクトルをそれぞれ wi,1, wi,2hsent = [m1 , · · · , mL ]とする．単語ベクトルと単語位置ベクトルを連結して(11)

以下のように表現する．
p Tp T T) ; (wi,2) ]wi = [(wiw )T ; (wi,1(6)3.3

また，フィルタサイズの異なる L 個の畳み込みフィル
タを用意する．フィルタサイズの集合を式 (7) のように表す．

データベース中の薬物説明文を利用した薬物相互作用抽出

入力文の表現と薬物の説明文の表現を以下のように連結する．

k = {k1 , k2 , · · · , kl , · · · , kL }(7)

― 796 ―

hall = [hsent ; hdesc ](12)

Copyright(C) 2019 The Association for Natural Language Processing.
All Rights Reserved.

薬物相互作用の予測 ŷ を以下のように得る．

4.2

薬物データベースと説明文

使用した薬物データベース DrugBank [3] には

hall1 = relu(W all1 hall + ball1 )(13)ŷ = softmax(W all2 hall1 + ball2 )(14)

薬物の一般的な事実や組成について述べた説明文が付はバイ与されている．説明文を GENIA Sentence Splitter2アスである．正解ラベルとの交差エントロピー損失をにより文分割を行い，GENIA Tagger を用いて単語分最小にするように学習を行う．

割を行った．

ここで，W

all1,W

all2

は重み行列，ball1,b10,000 件以上の薬物が収録されており，それぞれに

all2

4.3

4

実験設定

4.1

正解付きコーパス

薬物エンティティとデータベースエントリの対応付け

コーパス中の薬物エンティティとデータベースエン

正解付きコーパスには SemEval-2013 Task 9 デー

トリとの対応付けは部分文字列一致により行った．文

タセット [4] を用いた．このデータセットは，薬物を字列には DrugBank の薬物エントリが持つ以下の項目含んだ文から構成され，どの単語が薬物であるかはあを利用した．

らかじめ特定されている．データセットは以下に示す

Name: 薬物の見出し語

4 種類の薬物相互作用が正解付けされており，本実験Internatinal-brand: 薬物の製品名

では薬物のペアの薬物相互作用の有無および，薬物相Product: 薬物の製剤名

互作用を持つ場合は 4 種類のうちのどの薬物相互作用

文字列一致を取る際には，コーパスのエンティティ，薬を持つかを求める．

物エントリの項目どちらも小文字に変換して行った．

Mechanism: 二つの薬物が薬物動態的作用を持つ．

文字列一致した薬物エントリが複数存在した場合は，

Eﬀect: 二つの薬物が薬力学的作用を持つ．

一致率が最も高いエントリを使用した．コーパス中のAdvice: 二つの薬物を併用する際の推奨を表す．

訓練データの 2,242 個の薬物のうち，一致が取れたもInt: 薬物相互作用を持つことのみを表す．のは 1,934 個 (86.26%)，評価データの 854 個の薬物のデータセットの内訳を表 1 に示す．表 1 より，薬物相互うち，一致が取れたものは 748 個 (87.58%) であった．

作用を持つペアよりも薬物相互作用を持たないペアが多いことがわかる．入力文は GENIA Tagger1 により単語分割を行った．また，Liu ら [1] と同様に，ターゲッ

4.4

単語ベクトルの事前学習

トの二つの薬物はそれぞれ “DRUG1 ”，“DRUG2 ” に，単語ベクトルの事前学習は Skip-gram [5] によってそれ以外の薬物は “DRUGOTHER” に置き換える前行った．事前学習に用いたコーパスは PubMed 2014

処理を行った．のデータで，語彙数は 215,840 であった．前処理によって置き換えられた “DRUG1 ” および “DRUG2 ” の単表 1: 正解付きコーパスの内訳
訓練データ 評価データ
文数

6,976

1,299

ペア数

27,792

5,716

薬物相互作用あり

4,021979

Mechanism

1,319

302

Eﬀect

1,687

360

Advice826

221

Int

1899623,771

4,737

薬物相互作用なし

語ベクトルの初期値は “drug” と同じ値を用いた．訓練データ中に新しく出現した単語のベクトルは，事前学習した全単語の単語ベクトルの平均値を使用した．
訓練データ中の単語のうち，出現頻度が 1 である単語を未知語として扱った．

4.5

学習設定

単語位置ベクトルの初期値は，最小値 −0.01, 最大値 0.01 の一様分布によって決定した．

1 http://www.nactem.ac.uk/GENIA/tagger/

2 http://www.nactem.ac.uk/y-matsu/geniass/― 797 ―

Copyright(C) 2019 The Association for Natural Language Processing.
All Rights Reserved.

最適化アルゴリズムには Adam [6] を用い，学習率に学習しながら薬物相互作用抽出を行う手法を提案しは 0.001, ミニバッチサイズ 50 として，ミニバッチ学た．モデルを SemEval-2013 Task 9 データセットで習を行った．L2 正則化を行い，係数は 0.0001 とした．

学習，評価した結果，薬物の説明文を用いることで薬更新ごとにモデルのパラメータを保存し，予測時は，物相互作用抽出の F 値が向上することが分かった．今

これまでに保存したパラメータを平均化したモデルを後は，薬物データベースの様々な情報を統合的に利用用いた．入力文の CNN と説明文の CNN は単語ベクする手法を検討したい．

トルを共有せず，どちらもファインチューニングした．
入力文の表現に用いた CNN と説明文の表現に用いた CNN のハイパーパラメータを表 2 に示す．

謝辞
本研究は JSPS 科研費 JP17K12741 の助成を受けた5ものである．

結果
SemEval 2013 Task 9 コーパスにおける薬物相互作用抽出精度を表 3 に示す．Liu ら [1]，Quan ら [2] は提案手法と同様に CNN を用いて薬物相互作用抽出を行っている．また，Asada ら [7] は薬物エンティティ

参考文献[1] Liu et al. Drug-Drug Interaction Extraction via
Convolutional Neural Networks. Computationalの分子構造情報を用いて，CNN による薬物相互作用

and mathematical methods in medicine, 2016.

抽出を行い，高い精度を示している．表 3 から，デー
タベースに記載された薬物の説明文を利用することに[2] Quan et al. Multichannel Convolutional Neu-より，薬物相互作用抽出の Precision，Recall，F 値がral Network for Biological Relation Extraction.

向上することが分かった．

BioMed research international, 2016.
[3] Wishart et al. DrugBank 5.0: a major update to6

the DrugBank database for 2018. Nucleic acids

おわりにresearch, Vol. 46, No. D1, pp. D1074–D1082,

本研究では，データベース中の薬物の説明文が薬物2017.

相互作用抽出に有用であるか調べるために，相互作用を抽出する入力文，およびデータベース中の薬物の説[4] Segura-Bedmar et al. SemEval-2013 task 9 : Extraction of drug-drug interactions from biomed-

明文をそれぞれ CNN で表現し，二つの CNN を同時

ical texts (DDIExtraction 2013). In Proceedingsof SemEval 2013, pp. 341–350, 2013.
表 2: 入力文 CNN・説明文 CNN のハイパーパラメータ
パラメータ名入力文 説明文
単語ベクトルの次元数

200200中間層の次元数

500

100{3,5,7}100{3,5,7}100

畳み込みのフィルタサイズ
畳み込みのフィルタ数[5] Mikolov et al. Distributed Representations ofWords and Phrases and Their Compositionality.
In Proceedings of NIPS, pp. 3111–3119, 2013.
[6] Kingma and Ba. Adam: A method for stochastic
optimization. In Proceedings of ICLR, 2015.
[7] Asada et al. Enhancing Drug-Drug Interaction手法

表 3: 薬物相互作用抽出精度Precision Recall F 値 (%)

コーパスのみ

71.97

68.44

70.16

コーパス＋説明文 72.87

71.09

71.97

Liu [1]

75.70

64.66

69.75

Quan [2]

75.99

65.25

70.21

Asada [7]

73.31

71.81

72.55

Extraction from Texts by Molecular Structure Information. In Proceedings of ACL, pp. 680–685.
ACL, 2018.

― 798 ―

Copyright(C) 2019 The Association for Natural Language Processing.
All Rights Reserved.