張瑩瑩 錢勝勝 方 全 徐常勝
1(中國科學院大學 北京 100049)2(模式識別國家重點實驗室(中國科學院自動化研究所) 北京 100190)
隨著互聯網的發展,更多人選擇在網上尋找醫療健康相關知識.通過醫療健康問答網站,如春雨醫生、丁香醫生等,咨詢者可以與專業的醫生面對面交流,或者查看以往的問答記錄.而額外的知識信息,能夠幫助咨詢者接受這個回答,從而增強醫療問答系統的可信性和透明度.圖1即為1個在線醫療問答的實例和與之相關的知識.

Fig. 1 An example of question and answer圖1 問答實例
基于深度學習的問答算法可以分為2類,即基于表示學習的算法[1-2]與基于交互的算法[3-4].然而,這些算法都致力于提高答案檢索的準確度,卻忽視了領域知識.在實際場景中,為了解答患者的醫療問題,醫生往往需要學習豐富的領域知識.前人的工作[5-6]也表明,運用知識圖譜,可以減少專家與普通公眾之間的知識鴻溝,從而幫助公眾理解專家的決策.例如GRAM(graph-based attention model)[5]和KAME(knowledge-based attention model)[7]利用層次化的實體結構,學習醫療實體的表示,并將其用于病情預測.KABLSTM(knowledge-aware attention bidirectional long short-term memory)[8]則設計了一種上下文導向的卷積神經網絡,有效地將知識的表示融入到問題和回答的表示中.因此,將知識圖譜應用于問答系統具有很大潛力.然而,上述的方法將知識用于豐富問題和回答表示,卻忽視了問答對之間潛在的邏輯交互關系與多模態信息.
在醫療問答系統中,知識圖譜(knowledge graph, KG)包含了潛在的問答對之間的交互.如圖1所示,當問題中提到醫療實體“膠樣癌”與“心臟”時,醫生首先想到疾病“心臟膠樣癌”,然后思考這種疾病的起因和治療方法.除此之外,與實體相關的圖片描述了該實體的外觀信息,并可以將實體之間的關系細粒度化.如醫療知識圖譜中“膠樣癌”與“心臟膠樣癌”的關系為“疾病相關疾病”,而額外的圖像和文本信息則提供了兩者是以何種形式相關的.這種隱含的語義也可以豐富實體的表示.這些基于知識圖譜的交互顯式地告訴患者為什么醫生建議“手術移除”.這些觀察到的現象驅使我們將問題/回答映射到知識圖譜的實體,然后通過在知識圖譜中找到連接實體對的路徑,作為問答對之間潛在的交互.此外,如何用高質量的嵌入來表示路徑,也是我們將多模態知識圖譜應用到醫療問答系統時需要著重考慮的問題.知識圖譜中不同的路徑能反映醫療實體間不同的關系,但是其中一些路徑可能與問答的上下文不符合,也與醫生的推理邏輯不一致.問題和回答中會提到許多不同的實體,從而形成多個實體對.與此同時,同一個實體對之間也有可能存在多條路徑.例如在知識圖譜中,存在“痛→腫瘤→腫”與“痛→發炎→腫”2種不同的路徑.雖然這2個路徑包含一樣的癥狀,但卻與不同的疾病關聯.因此,如何通過衡量不同路徑的重要程度,是刻畫問答對之間復雜關系的關鍵點.
為了解決上述挑戰,我們提出了基于多模態知識感知注意力機制的醫療問答方法,它刻畫了問答對基于多模態知識圖譜的交互信息,并將之很好地融合到醫療問答的匹配中.為了刻畫問答對之間豐富的交互,我們構建了一個多模態知識圖譜,學習實體的表示.為了學習問答對中潛在的交互語義信息,我們使用了一種注意力機制,根據問題的上下文語義,判別每個路徑的重要性.最后,我們將問題的表示、回答的表示、基于知識圖譜的問答交互路徑一起,輸入到全連接網絡,用于對結果的預測.
總體而言,我們的工作主要有3方面貢獻:
1) 提出了新穎的多模態知識感知注意力機制的醫療問答方法,具體而言,我們用領域知識挖掘問答對之間潛在的交互信息,并將之用于問答匹配.
2) 構建了一個多模態醫療知識圖譜,并將結構、文本語義、圖像信息結合到知識圖譜的表示學習中.
3) 構建了一個真實的醫療問答數據集,并用之評估我們的模型,與當前最好方法相比,我們的方法提升了2%檢索準確度.
現有的與醫療相關的工作十分豐富,包括疾病預測[9-10]、診斷[11-12]和醫療問答[6,13].DeepEHR(deep electronic health record)[14]中列舉了幾種分析電子病歷的方法,包括多輸出預測[15],住院預測[16]、電子病歷表示學習[17-18]和自殺率預測[19]等.
然而,上述工作只適用于結構化數據.例如在DeepEHR中列出的方法,很大程度上依賴于電子病歷;大多數醫療問答的方法,都基于TREC-CDS(text retrieval conference clinical decision support track)競賽,在該競賽中,問答的主題、總結和期望的回答類型都已被標注,并且可在訓練的時候利用.因此,上述方法并不適用于非結構化的在線醫療問答數據.
基于翻譯的方法,包括TransE(translation embedding)[20],TransH(translation on hyperplanes)[21],TransD(translation via dynamic mapping matrix)[22],TransR(entities and relations in distinct semantic space bridged by relation-specific matrices)[23]等,在知識圖譜表示學習中取得了巨大的成功.這些方法將實體和關系映射到同一個低維向量空間,然后將關系看成是三元組(head,relation,tail)中head到tail的翻譯過程.TransE基于head與relation的表示之和接近tail的表示的假設,即h+r≈t,但是它無法處理自反/一對多/多對多的關系.為了克服這個缺點,TransH將head和tail映射到與relation相關的超平面上,TransR方法將head/tail與relation映射到不同的向量空間.此外,TransD方法使用多個映射矩陣,學到實體的在不同情況下的多種表示.將多模態信息融合到知識圖譜的表示學習中也是近期的一個研究熱點.IKRL(image-embodied knowledge repre-sentation learning)[24]方法首先將視覺的信息融入到知識圖譜的表示學習中,而文獻[25]進一步地融入了文本語義信息.然而文獻[24-25]都基于TransE的假設,并不能處理自反/一對多/多對多的關系.
上述方法不是未利用豐富的模態信息,就是無法處理自反/一對多/多對多的關系,為了解決上述問題,我們提出了一種方法,不僅能夠將多模態信息中豐富的信息融合到知識圖譜的表示學習中,也能夠很好地處理自反關系.
回答檢索與排序是醫療問答網站的關鍵功能.許多已有的方法應用長短期記憶網絡(long short-term memory, LSTM)、卷積神經網絡(convolu-tional neural network, CNN)來學習問題、回答的表示,然后考慮詞級別的交互[26-27]或社交關系[28],SMatrix(similarity matrix)[26]使用相似度矩陣來刻畫語義和序列信息.K-NRM(kernel based neural model)[4]首先是由轉換矩陣來刻畫詞級別的相似度,然后使用核池化的方法提取多層次的匹配特征,最后使用排序網絡將這些特征結合在一起并用于預測.
然而,從上述基于交互的問答匹配方法只是從文本的角度挖掘問答對之間的交互.本文將連接問答對的知識圖譜的路徑看成是問答對之間的交互,并將之用于問答對的匹配,這樣可使問答對之間的交互包含語義信息.
我們的目標是計算給定問答對的匹配得分.圖2列出了我們所提出的多模態知識感知的注意力的醫療問答模型,它由3個部分組成:1)多模態知識圖譜的表示學習;2)基于注意力機制的路徑重要性學習及問答表示學習;3)問答匹配模塊.

Fig. 2 Framework of our multi-modal knowledge-aware medical question answering model圖2 多模態知識感知的醫療問答模型結構
我們首先構建一個多模態醫療知識圖譜,然后融合知識圖譜結構、實體文本、實體圖像來表示實體.多模態知識圖譜指的是每個節點除了包括圖譜結構信息之外,還考慮了實體的文本、圖像的信息.
2.3.1 視覺模態的表示學習


Fig. 3 Example of noise images圖3 噪聲圖片示例
大多數實體都有不止一張圖片與之關聯,因此需要融合多張圖片的信息,得到實體最終的視覺表示.簡單地將多張圖片的表示求和或者求平均,會造成信息缺失.因此,我們還是在噪聲值的基礎上得到實體的視覺表示:
(1)

2.3.2 多模態知識圖譜表示學習
為了處理自反的關系,如“疾病相關疾病”,我們采用基于TransH的方法.給定實體的結構特征eS∈d,文本特征eT∈d與視覺特征eI∈d,我們首先將它們映射到同一個空間,并將映射后head和tail的結構特征記為hS與tS.對于多模態特征,我們首先拼接文本與圖像的特征,然后將它們輸入到全連接層,并將映射后的多模態特征記為hM和tM.在約束的情況下,實體在relation超平面上的投影可以表示為

(2)

(3)

(4)
同式(4)可得EM,EC,別代表利用多模態信息得到的能量與利用全部信息得到的能量.
我們定義結構多模態的能量函數,它是為了驅使結構和多模態的表示映射到同一空間.

(5)
同式(5)可得EMS,考慮以上所有的能量函數,一個三元組的能量可以最終定義為它們之和:
E(h,r,t)=ES+EM+EC+EMS+ESM.
(6)
與文獻[25]中的思想相似,采集負樣本時我們同時以head和tail為中心,定義2個用于負樣本的集合:

(7)

(8)
我們分別定義損失函數:

(9)

(10)
其中,γ是間隔,最終的loss是兩者之和.

(11)
1) 路徑編碼
基于多模態知識圖譜的表示學習,我們可以定義實體最終的特征.因此,我們可以定義路徑的初始表示為Xp∈L×2d,它是由路徑上L個節點的表示拼接而成.然后我們定義帶有殘差連接的自注意力操作:

(12)
其中,WQ,WK,WV是輸入X的3種變換矩陣,最終,我們路徑的表示為每個單詞的表示之和:
xp=sum(A(Xp))∈2d.
(13)
2) 文本編碼
問題q與回答a中的詞首先輸入到一個嵌入層,并在詞嵌入矩陣W∈|V|×d中找到對應的詞的嵌入.我們用Xq∈m×d與Xa∈n×d來表示問題q與回答a然后考慮序列信息,生成q,a的表示:
xq=sum(A(Xq)),
xa=sum(A(Xa)).
(14)
3) 基于路徑的問答對交互表示
路徑模擬了醫生回答問題時的邏輯,也可以看成是問答對之間的交互與上下文.


(15)

(16)
其中,W(1),b(1),W(2),b(2)為模型的參數,f(·)是ReLU函數,⊕為拼接操作.然后我們對權值歸一化:
(17)
并根據權重對路徑加權,得到最終路徑的表示.
(18)
cq→a即為問答對基于知識圖譜的交互,它以路徑的重要性為權重進行加權,并揭示了回答問題時推理的過程.
至此,我們得到了問題、回答與基于路徑的問答對交互的表示,下一步即為計算該問答對的匹配得分,我們首先將這些表示拼接在一起,得到該問答對的表示:
xq,a=xq⊕xp⊕xa,
(19)
然后將問答對的表示輸入到一個多層感知機s(q,a),計算得到最終的分數.
我們用一個成對損失函數作為最終的優化目標:

(20)
其中,a+是與問題q相關的回答,a-是無關的回答.
為了構建端到端的網絡,我們迭代更新知識圖譜表示部分以及問答匹配部分.我們首先從問答對中提取對應的實體,然后以這些實體作為訓練數據,在知識圖譜中隨機采樣正樣本,然后根據式(7)(8)采樣負樣本,然后根據式(11)更新知識圖譜表示學習模塊;然后找出問答對及連接問答對之間的路徑,根據式(20)更新問答匹配模塊.
3.1.1 知識圖譜
在實驗中,我們使用開源知識圖譜中文癥狀庫.它是從8個中文醫療問答網站、3個中文醫療知識庫和一些電子病歷中構建得到的.我們從中選擇了6類醫療實體,即疾病、癥狀、檢查、科室、藥品、身體部位,以及17種他們之間的關系用于實驗.除此之外,我們還從谷歌圖片中為每個實體爬取多個圖片,并構建了多模態知識圖譜.知識圖譜的統計信息如表1所示:

Table 1 Statistics of Multi-modal Medical Knowledge Graph表1 多模態醫療知識圖譜統計數據
3.1.2 問答數據集
我們從醫療問答網站春雨醫生(2)https://www.chunyuyisheng.com/pc/qalist/中得到了問答數據,數據集中共有245 085個問答對,問題平均詞數為32,回答平均詞數為75,共涉及16個科室的疾病.其中預處理的過程為去除標點以及使用Jieba(3)https://github.com/fxsjy/jieba將它們分詞.
3.1.3 路徑提取
我們使用深度優先搜索提取路徑.實驗過程中,從知識圖譜中提取路徑費時費力.路徑的數量隨著路徑的長度指數增長.然而,長的路徑在帶來更多可能連接的同時,同時也加入了更多的噪聲.KBQA(knowledge base question answering)[30]中指出,在路徑的跳數由2增加到3時,實驗的性能明顯下降.因此,我們限定路徑的長度為3.
我們選取了5種方法作為比較:
1) BOW(bag of words).詞袋模型是一個在自然語言處理過程中簡單而有效的模型.
2) Doc2Vec[22].它在Word2Vec的基礎上學習句子的低維向量的表示.
3) SMatrix[26].它使用相似度矩陣來刻畫問答對之間復雜的關系.
4) K-NRM[4].它刻畫了問答對詞級別的交互,并將這種交互用于文檔匹配.
5) KABLSTM[8].它將知識圖譜運用于問題與回答的表示.
我們使用精確度(Precision)和nDCG作為評估指標.精確度指的是正確的回答得到最高得分的比例,nDCG則用于評估排序.由于Precision與nDCG需要對掃描整個數據集并計算每個回答的得分,時間花費巨大,因此在評估時,我們對每個問題,采樣1個正樣本與n個負樣本,然后在這個候選集上計算得到最終的評估結果.
至于參數設置,對于所有的方法,問題、回答、實體、關系的嵌入維度都設置為150.我們分別測試了負樣本個數n=5和n=19的情況.同時,為了驗證我們的方法能從大量數據中受益,我們分別使用p=30%,50%,70%的數據訓練,余下數據用于測試.
3.4.1 定量分析
我們在表2、表3中列出了實驗結果,觀察實驗結果,得到3個結論:
1) 隨著訓練數據的增加,BOW方法的表現十分穩定,而其他方法的表現都隨著訓練數據的增加而變好.這表明基于表示的方法能夠有效利用數據.
2) SMatrix方法與K-NRM方法的結果比BOW方法與Doc2Vec方法好,說明考慮問答對之間的交互信息后,醫療問答檢索性能提高.
3) KABLSTM方法優于K-NRM方法與SMatrix方法,可以看出加入知識圖譜是有效的.

Table 2 nDCG and Precision on Chunyu Dataset when n is 5
Note:pis the training data size.

Table 3 nDCG and Precision on Chunyu Dataset when n is 19
Note:pis the training data size.
3.4.2 消去分析
為了分析單模態、多模態特征對實驗結果的影響,我們在春雨醫生數據集上做了消去分析.如表4所示,設計了輸入分別為僅含知識圖譜結構信息(S)、結構信息與文本信息相結合(S/T)、結構信息與圖像信息相結合(S/I),以及三者相結合(S/I/T)這4個變體.從實驗結果可以看出,在4種變體中,包含了結構、文本、圖像3個模態的信息結果最好,而僅包含2種模態的信息次之,并且好于僅包含單模態信息的模型.實驗結果證明了我們將構建并表示多模態知識圖譜對醫療問答任務的有效性.

Table 4 nDCG and Precision on Chunyu Dataset with Variants when n is 5
Note:pis the training data size.
3.4.3 注意力與問答交互分析
我們分析了連接問答對路徑之間的權重.如圖4所示,問題與回答中的詞可以映射到知識圖譜中的實體,下方為多模態醫療知識圖譜上的路徑,路徑上實體顏色的深淺代表該路徑的重要性.一條從問題中的實體到回答中實體的路徑可以看成是醫生回答問題時推理的過程.如當用戶提到“脫皮”時,醫生首先對其起因進行思考,如可能患有“手部濕疹”等,然后給出他的建議.

Fig. 4 Answer example圖4 回答示例
3.4.4 知識圖譜表示學習分析
盡管加入了知識圖譜之后,我們模型的問答準確性相比有所提升,證明多模態知識圖譜表示學習的方法能夠提升實體與關系的表示.由于與問答模塊一起訓練時,知識圖譜被部分訓練,因此很難評估多模態信息對知識圖譜表示學習的影響.因此,我們將知識圖譜表示學習模塊單獨割裂出來,并與另外知識圖譜表示學習的方法進行比較.將我們的方法和TransH方法與Base方法[25]相比較,同時處理三元組分類的任務.我們使用70%的三元組用于訓練,測試數據中包括50%的真樣本與50%的假樣本.表5列出了3種方法在17種關系上三元組分類的平均準確率、方差與最大值.結果表明:我們的方法很好地融合了兩者的優勢,既有效地利用了多模態信息,又可以處理復雜的自反/一對多/多對多關系.

Table 5 Classification Accuracy of Triples表5 三元組分類準確度
在本文中,我們提出了一個端到端的多模態知識感知的醫療問答框架,利用多模態醫療知識圖譜,生成了問答對之間潛在的交互.我們首先構建了一個多模態知識圖譜,并學習了實體的表示,從而形成路徑的表示,然后應用注意力機制,判別不同路徑的重要性,從而得到問答對交互豐富表示.