陳 素, 楊 燕, 胡琴敏,2, 賀 樑, 陳成才
1(華東師范大學 計算機與軟件工程學院,上海 200062)
2(瑞爾森大學 計算機科學系,多倫多 ON M5B 2K3)
3(上海智臻智能網絡科技股份有限公司 小i機器人研究院,上海 201803)
文本檢索會議(TREC)臨床決策支持任務(CDS)的目的是構建一個信息檢索系統以支持臨床決策. 系統接受由醫生從電子病歷(EMR)中總結的查詢,然后從在線的醫學文獻集合返回相關文獻.
傳統的信息檢索系統是根據給定查詢中關鍵詞的統計量信息計算文章的相關性[1]. 根據文章的相關性得分從高到底進行排序,相關性最高的作為結果返回. 作為提高信息檢索系統性能的有效方法之一,查詢擴展是將包含信息的詞加入原始查詢,以便可以使用更多的統計信息來檢索相關文章[2-4]. 在TREC CDS任務中,大部分方法都是使用統計信息,例如單詞出現的次數,TF-IDF分數等來進行擴展單詞選擇. 這種類型的方法不考慮在語義級別查詢和擴展詞之間的關系,并且這類方法在選擇擴展詞數量的時候都是使用固定的K 值,但是不同的查詢應該使用不同的K值. 另一種方法便是利用資源庫對查詢進行擴展,例如Zhu[5]先找到查詢中的關鍵詞,再通過多個外部數據庫對查詢進行擴展. 國內的哈工大同義詞林[6],知網(HowNet)[7],國外的WordNet[8]等也經常應用在查詢擴展中. 但是在Guo[9],Bacchin[10]的實驗中發現,使用醫學知識進行查詢擴展幾乎沒有聲明改進甚至損害了檢索性能. 矛盾的結果表明,對于醫療信息檢索而言,并非所有的醫學知識都適用于檢索. 因此,我們有動力去研究CDS任務中合適的醫學知識對查詢進行擴展.
本文提出的方法不僅考慮了統計量信息,還考慮了查詢和擴展詞之間的關系. 考慮到醫學文本注釋的難度和成本,我們使用非醫療數據集STS數據集作為訓練數據來學習句子和實體之間的關系. 我們選擇這些數據的原因是因為我們認為學習句子和實體之間的關系對計算查詢和擴展醫學實體之間的關系是有用的.此外,在測試部分,我們不僅僅考慮單個醫學實體作為擴展的影響,還考慮了實體組合作為擴展的影響. 所以我們解決了使用固定K的問題. 因為LSTM能夠很好的處理序列問題,所以我們使用LSTM獲得句子表征.在實體部分,我們使用注意力機制獲得實體組表示,因為注意力機制可以幫助模型集中于實體組中重要程度大的實體.
在本文,我們提供了一種查詢擴展方式來支持醫學信息檢索中的臨床決策問題. 具體來說,我們提出了基于注意力機制的神經網絡來動態選擇擴展醫學實體.我們利用了遷移學習的思想,將在其他領域學習到的知識應用于醫學領域,以此來解決醫學標注成本高,標注難得問題. 此外,我們選擇最佳的醫學實體組合作為擴展來解決固定K的問題,并且能考慮到醫學實體之間的影響. 本文方法使用注意力機制得到實體組表征,能夠讓模型關注實體組中更重要的實體. 本文的其余安排如下:我們首先介紹相關工作. 然后再介紹了提出的方法. 之后說明實驗設置并展示和分析實驗結果. 最后,我們給出結論和展望.
本章將介紹在醫學領域中基于注意機制網絡的查詢擴展方法. 該方法利用了遷移學習的思想,將在其他領域學習到的知識運用到醫學領域,以此來解決醫學領域中標注困難和成本高的問題. 由于在模型的訓練和測試部分我們使用的是不同的數據,所以我們將分兩部分介紹概念. 在訓練過程中,S={w1,w2,···wn}用來表示STS數據集中的句子,wi代表S中第i個單詞.JE={je1,je2,···,jem}代表用TagMe工具進行標注的通用實體. 在測試過程中,Q={qw1,qw2,···,qwn}代表查詢,其中的qwi代表查詢中的第i個詞,ME={me1,me2,···,mem}是利用MeSH[11]詞表映射得到的醫學實體集合.本文方法的目的是為Q選擇合適的擴展醫學實體. 在方法框架中,我們利用谷歌搜索引擎和MeSH[11]詞表得到候選擴展實體集合. 為了在擴展候選實體中選擇最佳的擴展實體,我們不僅僅考慮到每個候選實體的得分,我們還考慮到候選實體組合的得分.圖1展示了本文方法的大體框架. 簡單來說,我們首先將原始查詢提交到搜索引擎中并且選擇前N個結果; 其次,我們利用選擇模型得到最佳的擴展實體; 最后,我們將得到的最佳擴展實體加入原始查詢中進行檢索. 下面我們將分兩部分介紹本文的方法,一是如何得到候選擴展實體集,二是如何選擇出最佳的實體組合.
我們是利用網絡資源和MeSH得到擴展候選實體. 我們選擇使用網絡資源的原因是我們認為搜索引擎返回給我們結果是和原始查詢相關的并且結果是按照與查詢的相關性從高到低進行排序的. 在之前的工作[12,13],我們可以發現醫學實體對醫學查詢有正向作用,所以我們利用MeSH對查詢進行映射,得到擴展醫學實體. MeSH[11]是一種廣泛使用的醫學本體數據庫,由16類醫學概念組成. 作為外部知識資源,如果醫學實體可以在前N個搜索結果中找到,我們就認為醫學實體是候選擴展醫學實體.
因為候選實體之間也是存在一定的聯系和影響,所以我們不僅僅考慮單個候選實體的影響,而且考慮候選實體組合的影響. 考慮到計算的時間復雜性和空間復雜性,我們只結合任何K≤5個候選擴展醫學實體作為候選擴展醫學實體組合,這是因為如果將所有的擴展醫學實體進行全排序,則每個查詢需要計算2n,但是每個查詢的候選擴展醫學實體的數量都超過10個,這樣,需要計算的實體組數量較大,測試的過程需要消耗更大的空間和更多的時間. 例如,我們有“chest pain,disease,fatigue,heart failure,hypertension,nausea”6候選擴展醫學實體,那我們就會有個只包含1個醫學實體的擴展組合,包含2個醫學實體的擴展組合···個包含5個醫學實體的擴展組合,其中代表排列組合. 接下來我們便要計算每一個候選實體組合的得分.

圖1 查詢擴展方法框架
和之前只利用統計量信息不同,我們使用神經網絡模型自動的選擇最佳擴展醫學組合. 考慮到人工標注的困難和開銷,我們選擇其他領域的數據集來訓練模型. 我們之所以選擇其他領域數據集訓練模型是因為我們認為實體是句子理解的重要組成部分,而醫學實體是理解醫學句子的重要組成部分,所以學習到的實體和句子之間的知識也是可以用到醫學實體和醫學句子中. 圖2顯示了神經網絡選擇模型的結構,包括了嵌入層(Embedding Layer),LSTM層(LSTM Layer),注意力層(Attention Layer)和預測層(Predict Layer). 從圖2我們可以看出,最重要的部分是得到句子和實體組的表示.
嵌入層:因為我們是學習其他領域的知識并將其運用到醫學領域中,所以只使用詞嵌入是不合理的.如果我們只使用了詞嵌入,則在模型訓練期間無法訓練醫學單詞,為了解決這個問題,我們將詞嵌入和字符嵌入結合起來表示句子和實體. 和詞嵌入一樣,字符嵌入也是將每個單詞映射到高維向量空間,但是字符嵌入訓練的是每個字符的向量. 我們利用卷積神經網絡(convolutional neural networks)求得S(Q),JE(ME)中每個詞的字符嵌入. 在字符嵌入層中,每個單詞都被表示成C∈Rwl×d,其中wl表示單詞長度,d代表向量維度. 我們將線下訓練完成的詞向量和字符向量結合,得到每個單詞的表示,公式如下:

其中C(wi)和W(wi)分別表示S(Q)和JE(ME)中每個單詞的字符嵌入和詞嵌入. [a,b]表示連接兩個向量表示.
LSTM層:我們使用LSTM生成具有語義構成的句子表征. 眾所周知,LSTM是一種典型的遞歸神經網絡變體,通過引入記憶細胞和門機制,已被廣泛用于長文檔建模. 在每個位置t,隱藏狀態ht以及記憶細胞ct可以通過上一位置的隱藏狀態ht-1,記憶細胞ct-1以及當前位置的輸入xt來更新它們的信息. 公式如下:

圖2 基于注意力機制的網絡模型

其中,σ表示Sigmoid函數. it,ft,ot分別表示輸入門,遺忘門和輸出門. 這些門用來保護和控制輸入信息. 隱藏狀態ht表示當前位置信息的表征,這個表征包含了當前位置的上文信息. ?代表點乘.
注意力機制層:我們使用注意力機制來獲取實體組中比較重要的實體. 受到神經機器翻譯的影響,注意力機制得到了廣泛的使用,因為它可以幫助模型集中注意力于輸入信息中比較重要的部分. 實體組的表征S是所有實體的加權求和,公式如下:

其中ei代表第i個實體的表示,αi表示第i個實體的注意力權重,這個權重衡量了ei在整個實體組中的重要性.αi的計算公式如下

其中,E表示分數函數,用來計算實體組中每個實體的重要性,v 代表權重向量,vT代表v的轉置. Wh和Wa代表權重矩陣. FW代表查詢的句子表征.
預測層:在得到句子表征和實體組表征之后,我們將句子表征和實體表征點乘并與句子表征,實體表征拼接送入二層的深度神經網絡,具體公式如下:

其中,SP表示句子表征,即LSTM層的輸出. EP表示實體組表征,?表示點乘,y表示實體組作為擴展的得分.
這一章主要介紹實驗的配置,包括數據集、查詢、參數設置以及評測指標.
數據集:STS數據集包括了從2012年到2017年期間在SemEval中使用過的英文數據集的集合,一共有8628個句子對. 表1顯示的是根據類型和訓練-驗證-評測的具體劃分情況. 在我們的方法中,我們將STS的訓練數據集和驗證數據集都作為訓練數據集,STS的測試數據集作為驗證數據集. 我們在TREC CDS 2014,2015和2016上檢驗方法的效果. TREC CDS中的文章都是來自于Open Access Subset of PubMed Central(PMC). PMC是一個免費在線生物醫學文章數據庫,所有的文章都是以NXML的形式呈現.

表1 STS數據集結構
所有的實體都是用TagMe[14]進行注釋并且所有的注釋都被保留. 這是ClueWeb上最廣泛使用的基于實體的排名方法設置.
查詢:在TREC CDS中,查詢都是由專業查詢開發者從患者的實際醫療記錄中總結得到的自由文本. 檢索到的文章對于回答每個查詢的臨床問題應該是有用的,每一個TREC CDS任務都有30個查詢.
參數設置:我們使用5折交叉驗證評估該方法.LSTM設置:隱藏狀態設置為100維. 句子部分用ReLU激活函數. Batch大小在{32,64,128}中選擇,學習率在{0.0005,0.001,0.002}中選擇,迭代次數在{5,10,20}中選擇,醫療實體組合的個數從{1,2,3,4,5}中選擇. 另外,我們為每個查詢選擇的是谷歌檢索的前10個結果.
評測指標:在這次實驗中,我們選擇NDCG和P@10作為評測指標. 其中P@10表示前10個檢索結果的準確率,NDCG則是衡量前10個檢索結果排序的評測指標.
在一章中,我們主要介紹比較方法和本文提出的方法在2014年,2015年,2016年數據集上的實驗效果.因為處理數據和建索引方法的不同,并且在TREC CDS數據集中未有神經網絡方法的實驗結果可做對比,為了驗證本文方法的有效性,我們選擇了下面幾種對比方法.
BM25:只用原始query進行檢索,沒有任何查詢擴展. 檢索模型為BM25[15].
WebAssistance:所有在谷歌檢索結果中出現過的醫學詞都作為查詢擴展.
WithoutCombination:只單單選擇前三個分數高的醫學實體作為查詢擴展. 該方法不考慮實體組合的效果.
LSTM+AdA:在得到實體表示部分,使用加權平均的方法獲得實體表示,并沒有使用注意力機制的方法.
表2展示了本文方法和對比方法在TREC CDS 2014年,2015年以及2016年數據上的實驗效果. 從表2中可以看出,和對比方法相比,本文提出的方法有很大的提升. 本文提出的方法在2014年數據集上,NDCG為0.2521,和BM25相比,有5.48%的提升,P@10值為0.3,和BM25相比,本文提出的方法有11.11%的提升. 在2016年數據集上,評測指標NDCG的值為0.2172,P@10的值為0.2733,同時我們可以看出,和BM25相比,NDCG有9.42%的提升,P@10有15.46%的提升,這是很顯著的提升. 雖然在2015年數據集上的P@10的效果有所降低,但是總體來說,本文提出的方法是對提升檢索的效果是有效的. 從表2中我們還可以看出,WebAssistance的實驗效果比BM25的效果好,但是還是沒有本文提出的方法效果好,這是因為WebAssistance將所有的醫學實體都作為查詢擴展詞,這樣會引入噪音,這也就可以解釋在2015年和2016年數據集上效果下降的現象. 同時,我們也可以從表中看出,考慮實體組合比只考慮單個實體的效果要好. 注意力機制也被驗證是有效的,因為LSTM+AdA忽略了實體之間的影響.

表2 實驗結果
N是決定最大組合數量的參數. 考慮到計算時間復雜度和空間復雜度,我們評測N從1到5,間隔為1對本文提出方法的性能影響. 根據實驗結果,在2014年和2016年,N 最優為4,在2015年N的最優值為2. 為了探尋這個結果的原因,我們計算了2014年,2015年和2016年查詢的平均長度(AL). 正如表3所顯示,我們發現2015年查詢的平均長度是最短的,同時2015年N的最優值為2,所以我們可以看出句子長度對N的選擇是有影響的. 這是因為長查詢需要更多的擴展詞才能影響查詢的效果.

表3 各年份查詢平均長度
在本文中,我們同樣對詞嵌入和字符嵌入對遷移學習的影響做了實驗. 在這里,使用詞嵌入和使用字符嵌入的區別是在得到單詞表示上. 詞嵌入是一種向量訓練,首先通過預訓練獲得向量,然后隨著模型的訓練進一步訓練. 字符嵌入的方法是隨機初始化字符向量,然后隨著模型的訓練進一步訓練出字符向量,最后得到字符向量,對字符向量的進一步操作才得到單詞表示. 從圖3,圖4和圖5中我們可以發現詞嵌入和字符嵌入在一定程度上都是有效的. 在2014年和2016年數據集中,使用詞嵌入的方法要比原始的方法效果好,使用字符嵌入的效果比使用詞嵌入的效果好. 在2014年中,只使用詞嵌入方法的NDCG值為0.2473,P@10為0.28,從圖6,圖7,圖8中我們可以看出和BM25方法相比,NDCG有3.47%的提升,P@10有3.70%的提升. 只使用字符嵌入方法的NDCG值為0.2501,P@10的值為0.29,和BM25相比,NDCG有4.64%的提升,P@10有7.41%的提升. 在2016年中,同樣可以發現,使用字符嵌入的效果比使用詞嵌入的效果要好. 這表明,當我們將從其他領域學習到的知識應用于醫學領域時,字符嵌入的性能優于字嵌入. 這個結果是因為我們只使用了醫學數據進行測試,并沒有使用醫學數據進行訓練,所以在測試時會出現大量未列出的單詞,這也導致了詞嵌入性能不顯著. 但是無論是哪個領域,里面的單詞都是由字符組成,并且字符表示會隨著模型的優化而更新,因此我們使用基于字符嵌入能獲得更好的單詞表示.
本文主要提出了一個基于知識的神經網絡查詢擴展模型以提高醫療信息檢索效果. 考慮到醫學文本注釋的難度和成本,我們將從其他領域學習到的知識應用于醫學領域. 與以前的工作不同,我們解決了固定K 的問題. 我們不再是選擇前K個擴展醫學實體,而是選擇最佳的醫學實體組合,因此不同的查詢可能有不同數量的擴展醫學實體. 在本文中,我們不僅展示了我們提出方法的有效性,而且還比較了詞嵌入和字符嵌入對遷移學習效果的影響. 在之后的研究中,我們可以嘗試使用不同的注意力機制得到實體組的表示以及不同的神經網絡對查詢擴展的影響.

圖3 2014年不同嵌入效果對比

圖5 2016年不同嵌入效果對比

圖6 2014年不同嵌入效果對比(rate)