医療分野でトピックモデルを利用した研究(その5)

[9]Mining fda drug labels using an unsupervised learning technique


論文概要


医薬品添付文書(FDA-approved drug labels)にLDAを適用して医薬品の安全性や効能の観点からグルーピングを行ったという論文。
医薬品添付文書が解析対象のドキュメント。ただし、そのまま使うのではなくMedDRAを使って標準的なADR用語に変換している。そして安全性や効能のパターンをLDAを用いてトピックとして抽出するというシナリオ。

モデル選択


トピック数は天下り的に100としている。根拠は示されていない。

評価方法


トピックを構成する医薬品に安全性と薬効の観点から共通性があるかどうかで評価を行っている。安全性については添付文書に囲み警告文書(BW: Boxed Warning)があるものがどの程度あるか、効能については解剖治療化学分類法(ATC: Anatomical Therapeutic Chemical Classification System)で分類される医薬品がどの程度あるか調べて、それらが7割以上あれば有効であるとしている。

読後感


評価方法が理解しづらかった。
医薬品にトピックを対応させる際、その医薬品のトピック含有率が最大のトピックを割り当てている。つまりこの段階で他のトピックの役割を切り捨てている。
次に、こうして各医薬品に割り当てられたトピックのうち、少なくとも10以上の医薬品を持つトピックのみ残して他は解析対象から除外した。
これは意味のある統計解析とバイアスを取り除くためと述べている。

Bisgin H, Liu Z, Fang H, Xu X, Tong W. Mining FDA drug labels using an unsupervised learning technique--topic modeling. BMC Bioinformatics. 2011;12 Suppl 10(Suppl 10):S11. Published 2011 Oct 18. doi:10.1186/1471-2105-12-S10-S11

医療分野でトピックモデルを利用した研究(その4)

[8]Evaluating disease similarity using latent Dirichlet allocation

テキストで記述された疾患からLDAを用いて疾患間の類似性を求める研究。
LDAによって(疾患ラベルを割り当てた)1,311のドキュメントのトピック分布を求め、トピック分布間のKL-divergenceで疾患間の類似性を測っている。

評価方法:この手法で求めた疾患間の類似性をDO(Disease Ontology)による基準(DOの階層で3階層以内に同一の祖先がいれば同じ疾患とみなすという基準)をGold Standardとして感度特異度分析を行った。

疾患1 疾患2 KL-divergence
D1 D2 d1,2
D1 D3 d1,3
・・・ ・・・ ・・・
D1 D1310 d1,1310
図1.疾患間の類似性

ある疾患Diとそれ以外の疾患Dj (i != j)の組み合わせについてトピック分布のKL-divergenceを計算し(図1)、KL-divergenceの昇順(類似している準)に並べ替え、上からn個がPositive、残りがNegativeとしてGold Standardを使ってnを変えながら感度特異度分析を行う。これによってAUCを1つ得ることができる。

図2.ROC曲線(原論文のFigure 2)

これをすべてのiについて行えば、全部で1,311個のAUCが得られる。

モデル選択(トピック数の決定):トピック数を変えながら感度特異度分析を行って最大AUCを与えるトピック数を最適なトピック数とした。

図3.平均AUCのトピック数依存性(原論文のFigure 3)
なお、図3において抽出単語数を5k, 7k, 10kと変えて実験を行っている。ここで、抽出単語とはあらかじめ設定した基準を上回る出現頻度の単語の集合のことである。

読後感


テキストを対象とした典型的なLDAの応用例。疾患に関するテキストをコーパスとし、LDAによってテキストのトピック分布を求めている。これによって疾患のベクトル表現を得ている。これは広大な単語空間を小数次元のトピック空間に次元削減するのと等価で、これもLDAの一側面を表している。
興味深いのは、テキストを単語空間のベクトルとみなして主成分分析(PCA)を行い、次元削減したものとLDAを比較していることである。
トピック数と同数の主成分を残し、その主成分空間上のユークリッド距離で疾患間の類似性を定義し、LDAの場合と同じやり方でDOをGold Standardに用いて感度特異度分析を行ったところ、なんとほぼ同様な特性を示した。

図4.LDAとPCAにおけるAUCのトピック数(主成分数)依存性

図4では、トピック数がほぼ20あたりでLDAと主成分数が同数のPCAが同程度のAUCを実現している。この結果からトピック数は主成分分析における主成分の数とほぼ同じ役割をしていることがわかる。すなわちデータを要約する上で最適な次元数を表しているものと考えられる。
この知見は当然と言えば当然かもしれない。なぜならLDAであれPCAであれ、次元削減モデルは同じ最適な次元を導き出すだろうから。もし、モデルによって異なる次元数が得られたなら、むしろその方が奇妙である。


医療分野でトピックモデルを利用した研究(その3)

[7]Predicting inpatient clinical order patterns with probabilistic topic models vs conventional order sets


【論文概要】


トピックモデルを使って入院患者に発行するオーダパターンを予測するという論文。入院患者がドキュメント、オーダが単語、そしてオーダパターンがトピックになるのかな・・・。
評価はモデルが予測するオーダパタンと人手で作成した既存のオーダセットと比較して行っている。
評価指標として精度(Precision)と適合率(Recall)を次のように定義する。
精度(Precision)
モデルが予測したオーダのうち実際に発行されたオーダの割合
適合率(Recall)
発行されたオーダのうちモデルが予測したオーダの割合
ここでモデルは20,000人の患者からランダムに抽出した10,655人(~50%)の患者のオーダを用いて構築した。
評価は20,000人の患者からランダムに抽出した4,820人(~25%)の患者の各々に対して入院後最初のオーダセットが発行されてから時間 t 以内に発行された実際のオーダ(これを「正しい」オーダセットと呼ぶ)とモデルが予測したオーダについて表1に示す混同行列を作成して精度と適合率を計算した。

表1.混同行列
    そのオーダは発行されたか
    Yes No
そのオーダは予測されていたか Yes p q
No r s

精度 = p ÷ (p + q)
適合率 = p ÷ (p + r)

なお、あらかじめ人手によって作成された既存のオーダセットに含まれるオーダはすべて発行されるとは限らないので、実際に発行された「正しい」オーダセットと既存のオーダセットは一般に異なる。

ここで、p + r は時間 t 以内に発行された「正しい」オーダセットの数で、そのうちモデルによって予測されたオーダの数が p である。また、 p + q はモデルが予測したオーダの数で、そのうち時間 t 以内に発行されたオーダの数が p である。はトピックモデルに基づくオーダセットにも「正しい」オーダセットにも入っていないオーダ数であるが、これがなくても精度と適合率の計算には支障はない。

ある患者(これを とする)に対してトピックモデルに基づくオーダセットを以下のようにして作成する。
まず患者 のトピック含有率P(Topicj|Patientk)を推定し、トピック にオーダ が含まれる確率P(Itemi|Topicj)を用いて、患者 にオーダ が発行される確率P(Itemi|Patientk)を次式で計算する。
P(Itemi|Patientk) = Σj P(Itemi|TopicjP(Topicj|Patientk)
確率P(Itemi|Patientk)の降順にN個のオーダを並べたものがトピックモデルに基づくオーダセットとなる。ここで、は既存のオーダセットに含まれるオーダ数である。

トピック含有率P(Topicj|Patientk)は患者 に発行された実際のオーダデータを使ってトピックモデルが推定する。その際、患者 は一般にモデルを作成するのに使用した訓練データではなく検証用データである。従ってモデルから検証用データに対するトピック含有率を求める必要があるが、Rのtopicmodelsパッケージを調べてもそのようなメソッドは見当たらない。しかし、PythonのGensimのmodels.ldamodelライブラリにはget_document_topicsという与えられたドキュメントからトピック分布を得るメソッドがある。

次に、表1の混同行列においてトピックモデルによる予測の当否の代わりに既存のオーダセットに含まれているかどうかで区分するとそのオーダセットの精度と適合率が計算できる。これとトピックモデルによる精度と適合率を比較することによりトピックモデルの評価を行う、というのがこの論文での評価方法である。

図1(論文ではFigure 4)に比較した結果を示す。

図1.オーダセットの精度の比較

図1の横軸の は最初にオーダセットが発行されてからの時間(検証時間:followup verification time)である。t によって精度や適合率がどのように変化するのかを見ているのだろう。

最上段のグラフは「正しい」オーダの数の時間変化である。時間とともに「正しい」オーダ(Possible Items)の数は増加する。なぜなら実際に発行されたオーダを「正しい」オーダとしているからである。また、実際に発行されるオーダの中にはモデルが予測したオーダセットに含まれるオーダ(図中のTopic Models)や既存のオーダセットに含まれるオーダ(図中のOrder Sets)があり、その数も時間とともに増えている。

二段目のグラフはトピックモデルと既存のオーダセットの適合率の時間変化である。実際に発行されるオーダの中に、最初のころはトピックモデルが予測するオーダや既存のオーダセットに含まれるオーダの割合は高いだろうから適合率は高いが、時刻とともにその割合も減ってくるだろうから適合率も低くなっていくものと考えられる。

三段目のグラフはトピックモデルと既存のオーダセットの精度の時間変化である。
t が小さいうちは実際に発行されるオーダの数は N に比べて少ないので精度(p / N)は低いが、時間とともに発行されるオーダの数が増えると、その中に含まれるトピックモデルが予測するオーダや既存のオーダセットに含まれるオーダの割合も増えていくので精度も上がっていく。

最下段のグラフはAUC(Area Under Curve)をプロットしたものである。AUCを算出するにはROC曲線をプロットする必要があるが、そのためには多数の(精度, 適合率)の組が必要である。論文のFigure 3の説明には次の記述がある。
Average discrimination accuracy (ROC AUC) when predicting additional clinical orders occurring within t followup verification time of the invocation of a pre-authored order set during the first 24 hours of hospitalization for 4820 validation patients.
また、figure 4 (D)の説明には次の記述がある。
evaluating full ranking of possible orders scored by topic model or included/excluded by order sets
さらに、本文中には次のように書いてある。
Prediction of these subsequent orders is evaluated by the area under the receiver operating characteristic curve (c-statistic) when considering the full score-ranked list of all possible clinical orders. Existing order sets will have N suggested orders to choose from, so we evaluated those N items vs the top N score-ranked suggestions from the topic models toward predicting subsequent orders by precision (positive predictive value) at N and recall (sensitivity) at N.
を大きくしていくと実際に発行されたオーダはほとんどモデルが予測するオーダの中にあるだろう。すると、表1において pr に比べて大きくなるので適合率は1に近づく。一方、N を大きくしていくとモデルが予測するオーダにあって実際に発行されないオーダの数も増えるだろうから qp に比べて大きくなり、精度は0へ近づく。

一方、N を小さくしていくと実際に発行されたオーダのうちモデルが予測したオーダの数は減るので r に比べて p は小さくなり、適合率は小さくなる。その反面、N 自体が小さくなるのでモデルが予測するオーダのトップ N は実際に発行される確率が高くなり、p は q に比べて相対的に大きくなり、その結果精度が大きくなる。

そのため図2のようになると考えられる。

図2.ROC曲線


【モデル選択】


モデル選択、すなわちトピック数Kの決定はAUCのトピック数依存性(図3)をプロットして決定している。

図3.AUCのトピック数依存性

これは、最も「正しい」オーダセットを予測するトピック数を最適なトピック数とみなす考え方である。確かに現実を最も忠実に再現するモデルが良いモデルに違いないのでこの考え方は合理的である。

【読後感】


非常にシンプルなLDAの医療への適用例である。特徴はトピック数Kの決定法とモデルの評価法にある。モデルが実際に発行されたオーダをどのくらい忠実に再現(予測)しているかによってモデルのパラメタであるトピック数を決定している。これはPerplexityによるトピック数決定の手法やheld-outデータによる尤度最大基準による方法と等価である。
モデルの評価に人手で作成した既存のオーダセットを外部基準として用いている。
  1. 果たして既存のオーダセットはモデル評価のための外部基準となりえるのだろうか
  2. オーダセットには様々な種類があると思われるが、それを無視して単にP(Itemi|Patientk)だけでオーダを予測していいのだろうか
  3. 「正しい」オーダセットや既存のオーダセットにはオーダの「発行順序」という概念があるが、トピックモデルによるオーダセットにはない。あるのはその患者に対してそのオーダがどの程度発行され易いかという確率だけである。しかるに精度や適合率を計算するのにオーダの出現準を暗黙に仮定しているが、これはよいのだろうか
といった疑問が残った。


Jonathan H Chen, Mary K Goldstein, Steven M Asch, Lester Mackey, Russ B Altman: Predicting inpatient clinical order patterns with probabilistic topic models vs conventional order sets. Journal of the American Medical Informatics Association, 24(3), 472-480, 2017.


モデル選択

LDAにおけるモデル選択とは最適なトピック数の決定である。最適なトピック数の決定方法として次のようなものがある。

  1. Perplexity
  2. log-likelihood
  3. predictive log-likelihood
  4. HDP (Hierarchical Dirichlet Process)

Perplexityはモデルがどのくらい単語を絞ることができるかという指標。小さいほど良い。これを最小とするトピック数を最適なトピック数と考える。

図1.Perplexityのトピック数依存性

図1はDPCデータに対してPerplexityのトピック数依存性を描いたものである。トピック数が500になってもまだPerplexityは減少傾向にある。

log-liklihoodは訓練データを用いて作成したモデルのパラメタを使って訓練データの対数尤度(の調和平均)を求めたものである。あるブログ記事を読むと、GriffithとSteyvers (2004) によってこの近似法が提案されたとのことである。
DPCデータに対してこの値のトピック数依存性を描いたものを図2に示す。

図2.log-likelihoodのトピック数依存性
図2を見ると、トピック数が350あたりでlog-liklihoodが最大になっている。

predictive log-likelihoodは前回のブログにも書いたように、未知のデータに対して求めた対数尤度である。訓練データで求めた対数尤度はデータにオーバーフィッティングする可能性があるのでこれを避けるのがpredictive log-likelihoodである。
しかし、LDAに対してこれを計算するライブラリが見当たらず計算しあぐねている。

HDPはデータから自動的に最適なトピック数を求める手法である。まだ勉強していないので詳細はわからない。

これら以外に、先に紹介したあるブログ記事IdtuningというRパッケージで最適なトピック数を求めることができると紹介されていた。
ここでは、次の4つの指標が紹介され、それらを計算してトピック数依存性をグラフ表示する例が掲載されている。

  1. Arun2010
  2. CaoJuan2009
  3. Deveaud2014
  4. Griffiths2004

上述したブログ記事によれば最初の3つ(1~3)はトピック間の単語分布の類似性に注目した手法であるとのこと(2はcosine類似性、3はKLダイバージェンスによって類似性を計算し、1も何らかの距離を計算しているらしい)。そして4はlog-likelihoodを用いる方法と同じである。
DPCデータに対してこのIdtuningを使って4つの指標のプロット依存性をプロットしたものを図3に示す。

図3.Idtuningの結果

図3によるとArun2010とCaoJuan2009はトピック数が250~300あたりで最小(最適)になっており、Deveaud2014はトピック数が100で最大(最適)になっている。そしてGriffiths2004はトピック数が450で最大(最適)になっている。

ドキュメントに相当する病院数が1600程度しかないのにトピック数が300~400というのはあまりに多すぎはしないだろうか。


医療分野でトピックモデルを利用した研究(その2)

[4]Identifying Patterns of Associated-Conditions through Topic Models of Electronic Medical Records


【論文概要】


電子カルテ(EMR)に蓄積された患者記録をドキュメント、SNOMED-CTでコーディングされた患者の健康状態(health conditions)を単語とみなしてトピックモデルを適用し、潜在的な健康状態のパターン(latent patterns of associated-conditions:これがトピック)を抽出するという研究。トピック数は20としている。

構築したトピックモデルを評価する方法として以下の2つの評価を行った。

  1. 医学的な妥当性の評価(定性的な評価)
  2. 弁別性(distinctiveness)と気密性(tightness)による定量的な評価

前者は、同一トピック内に高確率で出現する健康状態が関連しあっているかどうかを医学文献で検証することによって妥当性の評価を行っている。

後者の弁別性(distinctiveness)は、トピックの単語分布間のJensen-Shannon Divergenceを計算してトピック間の違いを定量的に評価している。
気密性(tightness)は1つのトピックがどのくらい少ない健康状態(SNOMED-CTコード)で表されるかを計算して評価している。

代表的な6つのトピックについて、出現確率の大きいものを10個抽出したところ、疾患の共起が医学文献で裏付けられたトピックが得られた。

20個のトピック間のJensen-Shannon Divergenceを計算したところ、平均値は0.666、中央値は0.692、そして最小値は0.483となった。Jensen-Shannon Divergenceは、2つの確率分布間の"距離"を表す量で、2つの分布が同一の場合は0に、まったくオーバーラップしない場合はln2 (~0.693)になるので、この結果は十分な弁別性を示している。
トピック内の出現確率が閾値(0.01)を超える健康状態(SNOMED-CTコード)の数を数えたところ、180あるSNOMED-CTコードのうち10以下のコードを合わせたものが9割を超えており、このことから十分な気密性を示していることがわかる。

【読後感】


LDAのテキストマイニング以外への応用としては興味深いものであった。しかし、医学文献による定性的な評価方法は説得力に欠く印象をぬぐえない。すべてのトピックについて検証したわけでもなさそうだし、類似したSNOMED-CTコードがLDAによってうまくグルーピングされたという客観的な証拠にはならないような気がする。
定量的評価方法については、弁別性(distinctiveness)といい気密性(tightness)といい計算が簡単な割には興味深い指標だと思った。しかし、これらはトピック間は健康状態空間における分布として大きく異なり、各トピックはわずかな健康状態で記述できる(高次元健康状態空間上のトピックが低次元健康状態空間で表現されている)ということを言っているだけで、トピックの解釈については何も触れていない。
最後に、なぜトピック数が20なのか根拠が示されていない(トピック数を14にしても結果はあまり変わらなかったとは書いていたが)。



[5]Interpretable Topic Features for Post-ICU Mortality Prediction.


【概要】


ICU退院後の死亡率(post-discharge ICU mortality)の正確な予測と透明性のある予測モデルの作成を目的に、ICD-9-CMコードをラベルに用いたLabeled-LDA (Latent Dirichret Allocation)を使って患者の診療記録(medical notes)から理解可能なトピック特性表現(topic feature representations)を取り出した。

近年、トピックモデルを用いて死亡率の予測精度を改善しようという試みが行われているが、トピックそのものはフラットな単語の集まりに過ぎず、その臨床的な解釈には専門家による吟味が必要となる。

この研究では解釈可能なトピックを自動的に定義する手法を提案している。その手法とは、ICD-9-CMコードをLabeled-LDAのトピックに用いてモデルの学習を導き、診療記録から理解可能なトピック特徴表現(understandable topic feature representations)を抽出するという方法である。

Labeled-LDAのラベルとしてICD-9-CMを用いる利点には次の2つがある。

  1. ある患者の診療記録はその患者に割り当てたICD-9-CMコードに対応するトピックにのみ寄与する
  2. トピックの解釈はICD-9-CMコードの定義とそのトピックに含まれる単語集合をとおして達成される

モデルを訓練する段階ではICD-9-CMコードを使っている。しかしながら、患者が退院してしまうとICD-9-CMコードは利用できなくなるので、予測モデルの特徴量としてICD-9-CMコードを直接含めることができない。Labeled-LDAを使えばこの問題を回避できる。なぜならば、予測段階ではICD-9-CMコードに対応するトピックの割合を推測するのにICD-9-CMコードを必要としないからである。これは、トピックに高確率で含まれる単語を特徴量に用いて文書のトピック含有率を予測するからである。

【評価方法】


提案手法の評価は、得られたトピック含有率を特徴量に用いてSVMでICU退院後の死亡率(post-discharge ICU mortality)を予測することによって行っている。すなわち、外部基準として予測の精度を用いているわけである。死亡率の予測は、もとをただせば死亡/生存の分類問題であるから本質的にこれまで読んできた文献と同じである。トピックモデルの評価はやはりこれしかないのだろうか。
予測する死亡率は30日後と6か月後の2つで、6か月後死亡率の予測SVMモデルの特徴量に用いるのは以下の3パターンである。

  1. ベースライン:年齢、性別、入院時のSAPS-Ⅱスコア(ICUの重症度スコア)、最小SAPS-Ⅱスコア、最大SAPS-Ⅱスコア、Elixhauser Comorbidity Index(30個のへ依存症を考慮に入れたICU重症度の補正指標)
  2. ベースライン+通常のLDAから得られた50個のトピック含有率
  3. ベースライン+Labeled-LDAから得られた50個のトピック含有率(提案手法

30日死亡率予測モデルでは、最小SAPS-Ⅱスコア、最大SAPS-Ⅱスコア、ICD-9-CM由来のElixhauser Comorbidity Indexを特徴量から取り除いている。これは、ICD-9-CMコードの割り当ては通常退院後2週間まで有効とされているからで、それ以降はICD-9-CM由来のElixhauser Comorbidity Indexを特徴量に用いることは適切ではないからである。

【結果】


最も予測精度が高かったのは、baseline + LDA with 50 topicsで、30日死亡率の予測でAUCが0.860、6か月死亡率は0.842だった。次いで baseline + Labeled-LDA with 111 labelsで、各々0.835、0.829だった。これに対してbaselineのみでは、それぞれ0.736、0.776であった。
この結果からLDAで得たトピック成分を特徴量に用いると予測精度が高くなることが分かったが、Lableled-LDAよりも純粋なLDAの方が精度が高いという結果となった(Table 2)。これは、本文に書かれていることと矛盾する。
しかし、Discussionに書かれているように純粋なLDAは専門家によるトピックの解釈が必要になる。これに対してLabeled-LDAを用いればTable 3に示すようなトピック別(つまりICD-9-CMコード別)死亡率を推定できる。
また、興味深いことにLabeled-LDAモデルは、トピックに関連付けられた単語によって、潜在的に異なる疾患の間の関係を発見する能力を持っている。例えば、"Other metabolic and immunity disorders(他の代謝疾患及び免疫疾患)"に関連付けられたトピックに頻出する単語に、chest(胸部)、artery(動脈)、coronary(冠状)、cabg(冠動脈バイパス手術)などがあるが、これは循環器疾患と代謝疾患に関連性があることを示している。これは、ラベルの頻度や相互依存性を考慮したLabeled-LDAを用いれば異なるラベル間の相関を探索できる可能性があることを示唆している。

【読後感】


Labeled-LDAというものをはっきりと勉強したわけではないのでぼんやりとしか理解できないのだが、この手法は、LDAの大きな欠点である「得られたトピックの解釈困難性」を緩和する手法のように思われる。
モデルを学習するときラベルを与えることにより、トピックを明示的に定義できる。つまり、当該トピックに関連するドキュメントのみを与えることによってトピックの意味をモデルに教えている。LDAと同じように得られたトピックは単語分布になる。これを用いてトピックの予測は単語を使って行うが、トピックにはラベルが対応しているので、それを用いてトピックの意味を解釈できる。つまり、こうだ。モデルに文書を与えると、モデルは文書のトピック分布を返す。各トピックにはラベルがついているので、その文書の解釈が可能となる。

これは文献[2]と手法が似ていると感じた。文献[2]では請求データというドキュメントから疾患というトピックを推測し、その中で最もコストのかかったトピック(疾患)を最大資源投入疾患としている。そこでもLabeled-LDAを用いている(ラベルはDPCコード?)。

この論文を読んで感心したのは、

  1. 退院後はICD-9-CMコードが付与されていないにも拘わらず、ICD-9-CM別の死亡率を予測できること
  2. トピックに高確率で含まれる単語を用いて疾患間の関係を調べることができること

である。

Yen-Fu Luo, Anna Rumshisky: Interpretable Topic Features for Post-ICU Mortality Prediction. AMIA 2016 Annual Symposium Proceedings, 827-836, 2016.


[6]Identifying prescription patterns with a topic model of diseases and medications


【論文概要】


DMPM(disease-medicine pattern model)という拡張版トピックモデルを使って大量の保険請求データを解析し、疾患と処方薬の関係から処方パターンを抽出した。
この研究では処方せんをドキュメント、その中に含まれる疾患(ICDコード)や処方薬を単語、処方パターンをトピックとみなしている。
DMPMの生成プロセスを図1に示す。

図1.DMPMの生成プロセス

また、グラフィカルモデルを図2に示す。

図2. DMPMのグラフィカルモデル

DMPMはLDAを拡張して各々の処方せんについて処方薬と疾患を生成するプロセスを加えている。
疾患は、図1のBのiiで生成し、医薬品はBのiiiのaで生成している。
通常のLDAであれば、図2において、ハッチのかかったノードDが単語に相当し、一番外側の四角はドキュメントの繰り返し、その内側の四角は単語の繰り返しを表し、ノードMに相当する確率変数はない。
これに対してDMPMでは、個々の患者pに対してトピック分布(この論文ではトピックという用語ではなくパターンという用語を使っている)θpをαをパラメタとするディリクレ分布から生成し、その患者に対して発行された個々の処方せんのトピックzp,rをθpをパラメタとする多項分布から生成する。疾患d(図2中のノードDのインスタンス)は、トピックzp,r=kに対するβkをパラメタとする多項分布から生成する。また、処方薬m(図2中のノードMのインスタンス)は、トピックzp,r=kに対するγkをパラメタとする多項分布からNpr個生成する。
このモデルで推定するパラメタは

  1. θp = {θp,k}:患者pにトピックkが含まれる割合(患者pのトピックk含有率)
  2. βk = {βk,d}:トピックkに疾患dが含まれる割合(トピックkの疾患d含有率)
  3. γk = {γk,m}:トピックkに医薬品mが含まれる割合(トピックkの医薬品m含有率)

の3つである。

【評価方法】


得られたモデルの評価方法としては、これまでは最大トピック含有率を与えるトピックでドキュメントを分類したり[1]、トピック含有率を新たな特徴量に使って分類問題の精度を比較する[5]といった外部基準を使った評価手法が多かった。
この研究では{βk,d}や{γk,m}でパターン(トピック)間の類似度(cosine類似度、K-L divergence、Jensen-Shannon divergence)を計算し、他の手法(ICDコードによるグルーピングや疾患LDA、医薬品LDA)に比べて年齢、性別、居住地などの患者属性による違いをどのくらい顕著に区別できるかを定量的に評価している。
一例として年齢による患者の多様性をDMPMとICDによるカテゴリ化で比べたのが図3である。

図3. 年齢による多様性の捕捉(上:DMPM、下:ICD)

図4.他のグルーピング手法との比較

【読後感】


著者らはICDのような標準コードを用いた疾患のカテゴリ化を「トップダウン方式」と呼び、それに対して提案手法によるデータに基づいたカテゴリ化を「ボトムアップ方式」と呼んで両者の比較を行っている。
また、それらの類似点や差異をもとに本手法の妥当性(ICDによるカテゴリをある程度再現しているから妥当だ)の評価と有効性(ICDによるカテゴリ化では説明できない事実を捉えているので有効だ)を議論している。
たとえば同じ疾患でも使用する医薬品が異なるとか逆に異なる疾患に同じ医薬品を処方しているかといった知見を得ている。
この研究の興味深い点は疾患と医薬品の両方を単語とみなしてLDAを拡張しているところである。これによってパターン(トピック)を疾患含有率ベクトル{βk,d}と医薬品含有率ベクトル{γk,m}の2通りで表現し疾患と医薬品の相関を議論している。

ドキュメントにラベルが付けられていたら図3のようなグラフを描いて、トピックモデルを使った場合とラベルだけを使った場合でどのような違いが見られるか(ラベルだけでは捕捉できないどのような特徴をトピックモデルで捉えることができるか)を議論するのは興味深い。

また、図5のようなグラフを描いてラベル別のトピック含有率を比較するのも面白いかもしれない。

図5.ICDによるカテゴリ化とDMPMによるパターンとの比較

【モデル選択】


この論文ではモデル選択(最適なトピック数の推定)手法としてPerplexityとpredictive log-likelihoodの2つの方法を用いてトピック数=15が最適であるとしている。
RのtopicmodelsパッケージにはPerplexityを計算するメソッドはあるが、predictive log-likelihoodの計算メソッドは見当たらない。
predictive log-likelihoodは未知データRnewを使ってP(Rnew)で計算する。topicmodelsのLDAメソッドは訓練データからモデルを作成する。LogLiksというメソッドを使えば作成したモデルからlog-likelihoodを計算できるが、これはP(Rtrain)なので、トピック数Kを増やせばいくらでも大きくすることができる(オーバーフィッティング)。
P(Rtrain)を計算するメソッドはないのだろうか。"Perplexity To Evaluate Topic Models"にはPerplexityはpredictive log-likelihoodと等価であると書いてあるが・・・。

P(Rnew)を計算する方法を考えてみよう。LDAの生成モデルでは、ドキュメントr∈Rnewのトピック分布θkからトピックkを選び、トピックkの単語分布φk,wから単語wを選択した結果、単語wがrに現れると考える。これをRnewだけで計算するにはどうすればよいのだろう?そもそも、単語wがどのトピックから生成されたなどどうしてわかるのだろうか?単語wはトピックkからφk,wの確率で生成されるのだから単語だけではトピックは決定できない。
これがpredictive log-likelihoodの計算メソッドが提供されていない理由なのかもしれない。
しかし、この論文では(8)式を使ってpredictive log-likelihoodを計算している。ポイントはwのトピックkなどわからないので、期待値E[θk|Robs,Θ]を使って近似しているところだ。これを使えば最終的にpredictive log-likelihoodはモデルのパラメタ{βk,d}、{γk,m}を使って(9)式で求めることができるとのこと(途中の式の展開はよくわからないのでフォローできていない)。これを用いて図6に示すpredictive log-likelihoodのトピック数K依存性が得られたということである。

図6.predictive log-likelihoodのパターン数(トピック数)依存性
訓練データを用いて計算したlog-likelihoodはトピック数の増加に伴っていくらでも増加する。これはモデルがデータにオーバーフィッティングしているためだと考えられる。したがってトピック数Kの決定にはpredictive log-likelihoodを用いるべきではないだろうか。
論文中の式(8)のE[θk|Robs,Θ]はどのようにして求めるのだろうか?

Park S, Choi D, Kim M, Cha W, Kim C, Moon IC: Identifying prescription patterns with a topic model of diseases and medications. Journal of Biomedical Informatics archive, 75C, 35-47, 2017.

ChatGPT は、米国の医師免許試験に太刀打ちできるか?

A Gilson et al.: How Does ChatGPT Perform on the United States Medical Licensing Examination? The Implications of Large Language Models for ...