Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2019: End-to-End Knowledge-Routed Relational Dialogue System for Automatic Diagnosis #206

Open
jojonki opened this issue Feb 22, 2019 · 1 comment

Comments

@jojonki
Copy link
Owner

jojonki commented Feb 22, 2019

End-to-End Knowledge-Routed Relational Dialogue System for Automatic Diagnosis
Lin Xu, Qixian Zhou, Ke Gong, Xiaodan Liang, Jianheng Tang, Liang Lin
8 pages, 5 figues, AAAI 2019
https://arxiv.org/abs/1901.10623

概要

患者との対話を通して,病気の症状を聞き出し,自動で診断を行う対話システムの開発.自動医療診断システムは,医療知識や症状と病気の関係性などを加味して,理にかなった対話を行っていく必要がある.既存の対話システムの多くは会話データから学習するため,外部のエキスパート知識を活用することができない.
本研究では,End-to-End Knowledge-routed Relational Dialogue System (KR-DS)を提案.これは対話制御のトピック遷移に対して,豊富な医療知識グラフを取り込むことができ,それをNLUとNLGを利用して協力的に実現できる.Knowledge-routed DQN (KRDQN)はトピック遷移の管理に利用さる.KRDQNは,異なる症状と症状-疾患のペアの関係をエンコードするための,関連性改善ブランチ,及びトピック意思決定のための知識グラフを統合する.
公開されている医療対話データセットを利用した実験で,KR-DSはSOTAを診断正解率で8%以上上回る.更に新しく集めた医療対話データセットにおいても,KR-DSの優位性を示した.

イントロ

医療対話システムは医師を手助けできる可能性がある.しかし医療診断のための対話要件はかなり厳しい.医療知識に基づいて対話を行う必要がある上に,症状と疾患の関係も理解する必要がある.システムが患者に対して尋ねる症状は,医療知識に基づいて行われなければ行けない.
医療診断対話としては,(Wei et al. 2018) が最初に行った.それはマルコフ決定過程とRLで鍛えた対話ポリシーを利用したものだった.彼らの研究はトピック遷移の管理にデータドリブン学習(外部知識なし?)のDQNを利用しただけで,結果は複雑で繰り返し表現などがあるものだった.しかもDSTとポリシー学習だけの研究で,外部のテンプレートベースのNLPを利用する必要があったため実対話では対話は失敗する.
この問題にトライするため,我々は医療知識グラフと症状・疾患関連を対話制御のトピック遷移に取り込むKR-DSを提案し,NLU及びNLGも含む.(Fig 1)
一般に医師の診断は,医療知識と診断経験に基づく.そこでKR-DQNを提案.KR-DQNは,知識グラフと関連性改善を,メディカル知識と診断知識履歴(医師の経験)をフルに活用して対話制御を行う.

  • 関連性改善パートは,簡単なDQNが生成したラフな結果を改善するため,症状と症状・疾患ペアの関連性を過去の診断データから学習する.
  • 知識グラフパートは,条件付き確率に基づいて事前情報をルーティングする,適切に設計された医療知識グラフを通して,ポリシー決定を支援する.

screen shot 2019-02-24 at 10 31 02 am

本研究の貢献ポイント

  1. 医療知識グラフを対話制御のトピック遷移に取り込むKR-DSの提案
  2. 症状と症状・疾患ペアの関係のエンコードのための,関連性改善パート,及び知識グラフに基づくトピック意思決定を行うパート,KR-DQNの提案
  3. 自己申告を含む患者と医師の対話データの構築
  4. 2つの医療対話データにおける実験

関連研究

医療対話に関連する研究は2つ (Tang et al. 2016; Wei et al. 2018). ただし彼らは対話制御(DST及びポリシー学習)のみをターゲットにしている上に,データはシミュレーションか簡略化されている.

提案手法

KR-DSはFig 1.NLU, DM, NLGから構成される.

NLU

中国語のウェブサイトで集めた中国語データを利用して,インテント及びスロットの識別を行う.診断のためのインテントは6つ,ユーザーは,4つのインテント(request+disease, confirm+symptom, deny+symptom, not-sure+symptom).Hakkani (2016)の手法に習い,Bi−LSTMを利用してスロットとインテントは同時に識別する.コンテキスト理解に関しては,ルールベースのDSTを管理し,症状状態を記憶する.また症状はスロットとして固定ベクトルで表現する.またシステムが症状を尋ねてユーザーが答えなくても,リクエストスロットとして記録される.

Policy Learning with KR-DQN

DMはユーザーシミュレーターを通して対話制御を学習.Mの疾患とNの症状を考える.システムアクションの4つのタイプは,inform+request, request+sympotom, thanks, closingを含む.そのため,システムアクション空間Dは,num_greeting+M+N.
ユーザーアクションは,request+disease, confirm/deny/not-sure+symptom, closing,また症状の状態はpositive, negative, not-sure, not mentioned,で表現される (ベクトルは1, -1, -2, 0になる).状態stでは,ユーザーとエージェントの前回行動と既知の症状表現と現在のターン情報を含む.RLの報酬として,成功診断には+44,失敗には-22を割り当てる.各ターンは-1のみのペナルティ(タスク指向対話は一般に長い対話にペナルティが大きく発生するが,医療診断は慎重に行うためターンペナルティはこのタスクは小さい),報酬設定に関してはablation studyで色々試した.最後に,対話ポリシーπは,状態stを受け取って行動を決定するπ(at | st).
またDQNベースのKR-DQNはFig 2.事前の知識情報の利用,及び,アクション選択のモデリング.
screen shot 2019-02-24 at 11 31 48 am

  • Basic DQN
    状態stを入力として1レイヤ+RELUのMLPでラフ行動(R^D)を予測する

screen shot 2019-02-24 at 2 58 31 pm

  • Relational Refinement
    全行動Dの依存性を表現するマトリクスR(DxDの学習パラメタ)によって,関連性改善モジュールをデザインする.先程のラフアクションにかけてa_t^fを得る(式2)

screen shot 2019-02-24 at 3 04 32 pm

Rはデータセットの統計情報から初期化される.Rijは,ユニットxjがユニットxiを条件とすることを指す(各要素は症状や疾患を指す)
  • Knowledge-routed Graph
    医師は患者からの自己申告を聞いて疾患候補を絞り,症状の問診を行うことで更に絞っていく.ここでは,その医師の診断決定プロセスを模倣する.
    まず,Fig2に示すように2つのノード(疾患と症状)を持つ,有向医療知識グラフの重みとして,疾患と症状間の条件付き確率を計算する.エッジは疾患と症状ノードの間のみに存在.各エッジは重みを持ち,P(dis|sym)(MxN)とP(sym|dis)(NxM)の条件づき確率として表す.

screen shot 2019-02-24 at 3 39 14 pm

患者とのコミュニケーションを通して医師はいくつかの疾患候補を持つ.症状の事前確率P_{prior}(sym)は下記のルールで計算される.

  • 指摘された症状について,関連疾患をに対して陽性であれば1陰性であれば−1をセット
  • 他の症状(not sure/not mention)は,データセットから事前確率がセットされる

これは疾患に対する尤度確率に乗算され下式で疾患確率を得る
screen shot 2019-02-24 at 3 46 19 pm

同様に症状確率は下記で獲得
screen shot 2019-02-24 at 3 46 25 pm

そしてこれらのP(dis)とP(sim)をconcatし,知識に基づく行動確率a_t^k (R∈D)を得る.

最終的に下式で連結して最終的なKR-DQNのアクションatを得る
screen shot 2019-02-24 at 3 53 21 pm

またリピートリクエストを抑えるため,症状フィルターをKR-DQNの出力レイヤに入れる.// 説明がないが各症状は1度しか聞かないようにしていると思う

ユーザーシミュレーター

Schatzmann and Young, 2009のアジェンダベースの手法を採用.下記のゴールGを与えられ4パートから成る:病気タグ,自己報告,暗黙症状(医師と患者のトークに潜在),リクエストスロット(ユーザーがリクエストしたい疾患?).ここにかかれていることを通して,医師からの症状の問診にTrue/False/Not sure(記載なし)で答える.対話は診断が成功,失敗,規定ターン超えで終了する.

screen shot 2019-02-24 at 3 58 10 pm

NLG

各アクション4,5テンプレートからなる言語生成モジュールを作った(過去研究は1テンプレート).ターゲットネットワーク利用とエクスペリエンスリプレイ採用.またベルマン方程式を用いてQ-valueを得る.

DQNによるE2E学習

fine-tuneされたNLUとNLGを用いてDMをDQNを利用して学習(Mnih, 2015)

実験

DX Medical Dialogue Dataset

医師が患者に症状を聞いたり診断を行う中国のサイトでデータを集めた.5種の疾患と41の症状(implicit/explicit両方)が含まれ,医療知識のある4人のアノテーターを採用した.対話はすべてで527,他データ統計は下記の通り.
screen shot 2019-02-24 at 4 39 19 pm

実験セットアップ

Wei 2018では,"Datasets"というデータセットをBaidu Muzhi Doctorウェブサイトから収集,MZ datasetと本論では呼ぶ.4種の疾患と66の症状を含む.MZではユーザーゴールしか含まれないため,ユーザーシミュレーターとエラーモデルコントローラを利用してDMモデルを学習.

  • 評価メトリクス
    Weiらの研究と同じで対話正解率として,正しい診断率を計測.更にシステムが暗黙症状を尋ねることができたかというマッチングレートという指標もあらたに導入

実験結果

まずMZデータセットを利用した診断正解率の結果をTable 3に.ベースラインとしてSVMを利用したものを2種(暗黙情報の利用しない,する)とBasic DQN(Wei).そして,本論の手法,関連性改善モジュールと知識グラフモジュールを片方ずつつけたものとフルにつけたもので比較.
まずSVMでは,暗黙情報を利用したほうが診断正解率が向上しており,重要な要素だとわかる.またKR-DSはWeiの手法よりも8%高い結果となった.
screen shot 2019-02-24 at 4 52 42 pm

つぎにDXデータセットを利用する.Weiの手法に加えてSOTAのタスク指向対話システムSequicityも比較対象に採用,これはビリーフスパン(今回は症状や疾患)を保存したりリクエストしたりできる,
Basic DQNでは高い性能を出したが,医療知識を活用していないため,理にかなわない質問をしたり,症状を繰り返し聞いたりした.我々のKR-DSは高い正解率だけでなくマッチングレートも高い,これはKR-DSによって得られた症状は理にかなっており,結果として正しい診断を行えたと考えられる.Sequicuityはワーストであり,症状と対話診断の関連性を無視し,対話内の文遷移にフォーカスしてしまったためと考えられる //よくわからん
screen shot 2019-02-24 at 4 52 49 pm

Ablation Studies

先程のTable 3からも分かる通り,関連改善と知識グラフの利用はどちらも性能に寄与.さらに*がついているのは,関連改善で利用した学習パラメタをランダムで行ったものだが,これよりも事前の医療知識で初期化したほうが性能が良いというのがわかる

報酬設定

色々と報酬及びペナルティを変えて実験したが,基本的に似たような結果であり,いずれも既存研究を上回るスコアを出している
screen shot 2019-02-24 at 5 03 21 pm

人評価

3人の医療関係者を読んで,3つの要素で比較してもらった.1.診断の妥当性,2.最終診断の正しさ,3.対話の流暢さ,これらを1−5点で評価.104対話が3人によって評価された.すべての項目で一番良い結果になった.

screen shot 2019-02-24 at 5 03 32 pm

定性分析

2つのユーザーゴールの例を示す.
1つ目の例は,ベースラインとKR-DSは最終的にはどちらも診断は正しいが,ベースラインの1つ目は1ターン目でいきなり診察を下している.KR-DSは,他にも考えられる疾患を検討し,絞り込みを行った上で診察を行っているのがわかる.

2つ目の例ではベースラインは正しい疾患に関連しない質問を繰り返してしまっている.KR-DSと異なり医療知識がないためこれが発生している
screen shot 2019-02-24 at 5 03 27 pm

結論

本研究では,Knowledge-routed Relational Dialogue System (KR-DS)を提案.対話制御,言語理解,言語生成を行う.Knowledge-routed Deep Q-networkでは,トピック遷移を管理する.様々な症状と症状・疾患ペアをエンコードするための関連性改善モジュールと医療知識に基づくポリシー決定のためのknowledge-routed graphモジュールを持つ.加えて医師と患者の対話データセットも構築した.既存のデータセットと今回のデータセット両方で実験し,診断正解率や症状のマッチング成功率など高い性能を示した.

コメント

  • 報酬設定はヒューリスティックだが,慎重な判断ということでユニークで面白い.
  • ちゃんと医療関係者を読んで評価しているのは説得力ある
  • 単純なルールベースの診断も試してほしかった(事前データからの知識である程度高い性能が出そうだ)
@jojonki jojonki changed the title 🚧 2019: End-to-End Knowledge-Routed Relational Dialogue System for Automatic Diagnosis 2019: End-to-End Knowledge-Routed Relational Dialogue System for Automatic Diagnosis Feb 24, 2019
@jojonki
Copy link
Owner Author

jojonki commented Feb 24, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant