jojonki / arXivNotes

IssuesにNLP(自然言語処理)に関連するの論文を読んだまとめを書いています.雑です.🚧 マークは編集中の論文です(事実上放置のものも多いです).🍡 マークは概要のみ書いてます(早く見れる的な意味で団子).
https://github.com/jojonki/arXivNotes/issues
195 stars 8 forks source link

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

Open jojonki opened 5 years ago

jojonki commented 5 years ago

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は,知識グラフと関連性改善を,メディカル知識と診断知識履歴(医師の経験)をフルに活用して対話制御を行う.

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

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

これは疾患に対する尤度確率に乗算され下式で疾患確率を得る

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モデルを学習.

実験結果

まず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 commented 5 years ago

ポッドキャストでも解説しました https://anchor.fm/lnlp-ninja/episodes/ep23-End-to-End-Knowledge-Routed-Relational-Dialogue-System-for-Automatic-Diagnosis-e39tml