🍣

MLE が医師と働くってどんなかんじ?~Ubie での症状クラスタリングによる業務効率化の例~

2023/12/14に公開

Ubie で ML Engineer (MLE), Product Owner (PO) をやっているくんぺーです。今日は MLE の人格で記事を書いています。

今回は、Ubie で全く異なる専門性を持つ MLE と医師が、ひとつのスクラムのなかでどう協力しあっているか?を紹介します。

Ubie では主力の toC サービスとして 症状検索エンジン ユビー を展開しています。対話的なインタフェースを介していくつかの質問に答えると関連する病名リストを調べられるサービスで、適切な医療サービスへのアクセスを促すものです。おかげさまで累計1億回利用される規模のサービスになり、Google Play ベスト オブ 2023 において「優れた AI 部門」大賞に選んでいただきました。わいわい。


Ubie株式会社 会社紹介資料

課題: 医師作業をデータサイエンスってやつで効率化したい

さて、私達の toC サービスの肝は、なんといっても関連する疾患をリストアップする機能です。医学知識を詰め込んだデータベース (以下、知識データベース) があり、エンジニアとドメインエキスパートの混合チーム (現状、MLE 3名 + 医師2名) が日々改善に取り組んでいます。この知識データベースは世の中の疾患・症状の情報をカバーするべく、割と膨大なものになっています。

これまで我々 MLE は分析やアルゴリズム開発だけでなく、知識データベースの運用にもリソースを投下してきました。例えば GitHub でデータを管理したり、変更影響を計測するためのシミュレーションを呼び出せるようにしたり、非エンジニアでも直感的に操作できる UI を用意したり…。それでもなお、知識データベースの規模に対して医師リソースは常に足りていません。

ある日、タスクに取り組んでいる医師が無邪気にこう言いました。「改修作業がスケールしないんだよな〜似た症状をまとめて扱えると楽なんだけどな〜」と。

手法: 疾患ベースの症状クラスタリング

ここで、我々にとっての「似た症状」とはなんでしょう。今回のケースでは、アウトプットである疾患の傾向が似ているものを「似ている」とみなせそうです。内部的な機構は完全にブラックボックスとして、症状「発熱」を持ったユーザと「寒気」をもったユーザが似た疾患の結果に繋がっている場合に「発熱」と「寒気」が似ていることとしよう、という具合です(※ 架空の例です)。ちなみに、一般的に疾患と症状の間には因果関係が仮定されることが多く、Ubie でもその関係性を知識データベースに表現しています。

やりたいことを決めたら、データを作ってみます。まず (症状数, 疾患数) の行列を用意してみます。症状 s を訴えたユーザが結果的に疾患 d が表示された回数を (関連度で weighting しつつ) 合計して各要素の値としました。レコメンドシステムでよく見るログ集計みたいな感じですね。


イメージはイメージです

出現頻度などは不要なので適切にスケーリングしてから、PCA + 階層クラスタリングで一旦おしまいです。一応技術面に触れておくと、これはかなり解釈性に倒した選択かと思います。PCA は累積寄与率を、階層クラスタリングはクラスタの集まり方を可視化できるので便利でした。クラスタ数は自分で決める必要がありますが、何パターンか用意して出力して医学的妥当性の観点から最も使いやすいものを選んで使ってもらいます。今回は医師による知識データベース改良作業の効率化でしたが、目的によっては選択の余地があると思います。

というわけで、課題設計とデータ加工の工夫でほとんど終わってしまいました。正直書くことがあまりなくてすみません。

https://bsky.app/profile/yubessy.bsky.social/post/3k7uxfyrzez2g

こういうのでいいんだよな〜。

活用と振り返り

トータルの所要時間は半日くらいでした。個人的には、枯れた技術で問題を解決できて楽しいタスクでした。結果的に知識データベースの改良プロセスに組み込まれたので ROI は良かったのではないでしょうか。ユーザは同僚ですし、ミニマル & クイックに60点くらいを出して、要望が強くなったら改善していくのがいいですね。例えばユーザ属性を反映したい・こういうケースをうまく分離したいなどの要望は出てきてから考えると良さそうです。

今回のタスクで一番良かったのは、チーム内で共有して議論が盛り上がった点だと思っています。Ubie では各メンバーが権限を持って他チームとコミュニケーションや意思決定を進めることが求められます。そのために、データと技術を使って何ができるか・できないかの肌感覚がチームに宿っていることが重要です。メンバーの専門性が全く異なる場合、議論を通じて暗黙知を増やしていくことが重要です。


大体わかってくれる医師たちの反応

まとめ

MLE と医師は普段こんな感じで協力してプロダクトを作っています、というお話でした。日々のスクラムの中では他にも「その医師作業は MLE がやっちゃったほうが早そうだから引き受けるわー」とか「一部のデータで医師観点のレビューがほしいのでこんな作業をしてくれー」などのやり取りがよく生じています。同じゴールに向かって専門性を持ち寄っている感じがしていいですね。

Ubie の医師は GitHub の PR を投げたり SQL を書いたり、ビジネス・プロダクト・組織・採用なども幅広くやっている人が多いです。そういう姿勢を備えたドメインエキスパートと働くのは楽しいですね。

最後に、関連しそうな MLE のアウトプットを以下に載せておきます。
これはほんの一例です。もっと詳しくお話できるので、少しでも気になったらぜひお話しましょう。

https://zenn.dev/ubie_dev/articles/a0b74af675d4bc

https://zenn.dev/ubie_dev/articles/6b6e9dd0d3d87d

そして JOIN US!

https://herp.careers/v1/ubiehr/RherO3xBRRSY

https://herp.careers/v1/ubiehr/o8WVRbYX-6bq

https://herp.careers/v1/ubiehr/_oeH0lYReImI

Ubie テックブログ

Discussion