Data Driven Developer Meetup #4 の発表資料。 協調フィルタリング(Matrix Factorization)、文書の埋込(SCDV)、XGBoostで類似度計算をした話。
医療用語に注目した文書の類似度計算エムスリー 西場正浩 (@m_nishiba)Data Driven Developer Meetup #4
View Slide
自己紹介● 西場正浩(@m_nishiba)● エムスリー株式会社● AI・機械学習チームリーダー● 自然言語処理や推薦システム● 絶賛採用中!!○ 最低年間60本以上論文読む or データ基盤等エンジニアリングが得意○ WebアプリケーションエンジニアやSIerも絶賛募集中!● 新規プロダクト・サービス立ち上げ勉強会 with PLAID
今日話すこと● 実際のビジネス課題を機械学習で解決した事例の紹介○ 医療用語という観点で文書の類似度を計算したい。○ ※資料は公開済みなのでメモとらなくていいよ。● 話さないこと○ データ基盤○ データパイプライン → Data Pipeline Casual Talk○ チームマネジメント → Machine Learning Casual Talk● ソースコード: github/m3dev/gokart, redshells#d3mOSS化中!
問題の背景様々なサービス横断で医療用語に関連するアイテムを探したい。インフルエンザサービスA サービスCサービスBインフルエンザアイテム1 (from A)アイテム2 (from B)アイテム3 (from C)アイテム4 (from C)アイテム5 (from A)アイテム6 (from A)アイテム7 (from B)各サービスの各アイテムはテキストを含む。が、形式は様々
よく使われているテキストの類似度計算手法● テキストの特徴量化(分散表現):○ Doc2Vec (ほとんど使えない)○ Skip-Thought○ Average+Word2Vec○ TFIDF+Word2Vec○ SCDV○ etc…● 類似度の計算○ 教師なし: Cos類似度など○ 教師あり: XGBoostなど
問題の課題点①要件: 同じ疾患・薬剤の文書であれば類似度が高くなる糖尿病患者に実践してほしい ○○○○○・演者:〇〇先生(大阪府立大学 地域保健学域)【ライブ放送】 18:00〜18:40(17:30サイトオープン)※ライブのみの1回限りの講演会です。 糖尿病は、血糖値やヘモグロビンA1c(HbA1c)値が一定の基準を超えている状態をさす疾患である。
問題の課題点②要件: 疾患や薬剤が関連すれば類似度が高くなる。糖尿病は、血糖値やヘモグロビンA1c(HbA1c)値が一定の基準を超えている状態をさす疾患である。インスリン製剤の価格高騰により、患者の4人に1人が本来必要なインスリン治療を...
問題の課題点③要件: 医療用語以外の用語が類似しても類似度が低くなる。糖尿病患者に実践してほしい ○○○○○・演者:〇〇先生(大阪府立大学 地域保健学域)【ライブ放送】18:00〜18:40(17:30サイトオープン)※ライブのみの1回限りの講演会です。 喘息患者に実践してほしい ○○○○○・演者:〇〇先生(名古屋大学 地域保健学域)【ライブ放送】18:00〜18:40(17:30サイトオープン) ※ライブのみの1回限りの講演会です。
実際に作ったモデルアイテムのテキストアイテムのクリックキーワードマッチング協調フィルタリング 類似度①類似度②SCDV アイテム分散表現次元削減 アイテム分散表現(次元削減後)XGBoostアイテム分散表現(次元削減後)キーワード分散表現(次元削減後)XGBoost 類似度医療用語訓練予測SCDV
モデルの詳細(訓練)● 入力データ○ アイテムのクリックデータ■ クリックしたデータ○ アイテムのテキストデータ■ タイトルや本文など○ 医療用語■ 疾患名■ 薬剤名
モデルの詳細(訓練)● 類似度の計算①○ "クリックしていないデータ"■ クリックデータからサンプリングしてを作成○ アイテム同士のcos類似度■ Matrix Factorization■ latent factorを使って類似度を計算○ 組み合わせをサンプリング■ 類似度が0.8以上のものを”1”■ 類似度が0.0以下のものを”0”アイテムのクリック協調フィルタリング 類似度①
モデルの詳細(訓練)● 類似度の計算②○ 医療用語でキーワードマッチング■ 同じキーワードを含む場合"1"■ 同じキーワードを含まない場合"0"アイテムのテキストキーワードマッチング 類似度②
モデルの詳細(訓練)● テキストの分散表現○ SCDV■ SCDV : Sparse Composite Document Vectors using soft clusteringover distributional representations○ 次元削減■ SCDVの次元は「単語の埋込の次元」×「GMMの次元」■ 医療用語の分散表現で全単語を次元ごとの2乗和のトップ1000アイテムのテキストSCDVアイテム分散表現次元削減 アイテム分散表現(次元削減後)医療用語 SCDV
モデルの詳細(訓練)● 類似度のモデル○ XGBoostで類似しているかを予測■ 入力は2つのテキスト分散表現の要素積類似度①類似度②アイテム分散表現(次元削減後)XGBoost
モデルの詳細(予測)● キーワードとアイテムの類似度○ キーワードの分散表現■ キーワードを含むアイテムの分散表現の平均アイテム分散表現(次元削減後)キーワード分散表現(次元削減後)XGBoost 類似度テキストのみ。Cold-Startにも対応
結果● 肺癌○ 「持続可能な最善の がん医療」、実現できる医療費制度とは?○ 高額薬オプジーボ登場で議論○ オプジーボ、「最適使用推進ガイドライン」(案)公表○ 抗がん剤「オプジーボ」治験開始○ 欧州臨床腫瘍学会:「免疫」治療、新薬に効果● 白内障○ DM患者の視力低下原因、実は…【研修最前線】○ 唯一治せる眼疾患「白内障」【研修最前線】○ 重圧のしかかる「白内障手術」【研修最前線】○ 超音波白内障術の新装置、7月上市○ 白内障で知っておくべき3項目【米国眼科学会】
まとめSCDVが結構いい感じ!新しい論文読んで実務に応用できる。機械学習楽しいですね!!※ 実装はredshellsで一部公開(すべて公開予定)