王怡茹, 鄭建立, 周浩然
(上海理工大學健康科學與工程學院, 上海 200093)
隨著健康醫療數據資源的快速增長和網絡信息技術的蓬勃發展,各種電子化健康信息數據分散在不同的系統和應用中。對于同一醫學術語,不同的醫療衛生機構有不同的表達方式,醫療領域的數據共享性低、缺乏語義互操作性[1]。醫學數據的處理普遍依賴于專業人員手動查找和對齊,映射周期長、規范程度低,已成為醫學數據集成和再利用的主要瓶頸。標準化醫學術語作為醫學概念的形式化表示,是解決語義互操作性問題的基礎,術語對齊是提高異構數據語義互操作性的重要途徑[2]。因此,探索一種有效的醫學術語對齊方法有利于促進衛生保健領域的數據共享和臨床信息的電子交換。
20世紀50年代,國際醫學術語標準及體系初步建立。世界衛生組織、醫療信息標準委員會、美國病理學會、國際衛生術語標準開發組織等長期致力于醫學術語相關標準的制定、發布和更新工作。如今,醫學術語標準化工具的發展逐漸趨于穩定,成果頗豐。
針對國際標準醫學術語集同本地醫學術語的對齊工作已有許多的研究。例如,趙云松等[3]嘗試利用R語言相關技術的擴展包,建立體檢報告中的血脂四項檢驗項目及結果臨床描述與國際規范術語集觀測指標標識符邏輯命名與編碼系統(Logical Observation Identifiers Names and Codes,LOINC)、醫學系統命名法-臨床術語(Systematized Nomenclature of Medicine-Clinical Terms,SNOMED CT)英文術語集的對齊關系。厐絪等[4]選擇文本相似度算法WMD實現康復量表與國際功能、殘疾和健康分類(International Classification of Functioning, Disability and Health,ICF)編碼之間的對齊工作。尹帥龍等[5]提出了一種利用Skip-gram詞向量模型,以余弦相似度作為輸出,通過分析語義信息完成口語化疾病名稱與國際規范疾病術語集ICD-11專業術語的映射。
在國際醫學術語標準化工具的發展逐漸成熟和穩定后,多語種和多標準術語集的交叉映射和集成融合應運而生。例如,LOINC致力于完成與SNOMED CT的對齊編碼,同樣SNOMED CT也實現了與ICD-9-CM、ICD-10、ICD-10-CM、ICF等的交叉映射。隨著計算機科學技術的迅猛發展,NGUYEN等[6]研究了一種采用自然語言處理(Natural Language Processing,NLP)方法指導SNOMED CT和ICD-10-AM(澳大利亞修改)之間的編碼映射,通過評估和分析,基于NLP的計算機輔助編碼(Computer Assisted Coding,CAC)相較于其他的機器學習方法取得了較好的結果。DRENKHAHN等[7]基于LOINC和SNOMED CT的本體論工具對實驗室數據進行聚合和可視化。
國際標準術語集的更新維護頻繁,其手工映射非常耗時,雖然已有開發的映射工具用于加速各國際標準術語的對齊過程,但是當需要映射大規模術語時仍可行性不高,對術語對齊任務有一定的挑戰。本文利用自然語言的語義信息,提出一種基于語義相似度的醫學術語集編碼對齊方法,運用預訓練語言模型PubMedBERT對相關的術語描述和概念進行編碼對齊,期望為醫學領域的對齊工作提供方法參考,減少數據協調過程中的人工參與度,輔助專業人員的編碼決策。
PubMedBERT是由微軟研究人員提出的一種針對生物醫學NLP的領域特定語言模型[8]。BERT預訓練語言模型基于雙向Transformer編碼器,以未標注維基百科或其他通用大規模語料進行訓練,缺乏專業醫學方面的知識體系,在處理生物醫學領域的自然語言任務時效果不盡如人意。BERT是混合領域的預訓練模型,而PubMedBERT是一種針對特定領域預訓練的新范式。PubMedBERT在BERT結構的基礎上直接以PubMed生物醫學語料摘要和PubMedCentral全文文章進行訓練,此外在PubMedBERT中也具有一些特定的技術,例如過濾掉非醫療領域的語料庫,加入更多的醫學術語以提高PubMedBERT模型的性能,故在生物醫學領域更受青睞[9]。
PubMedBERT的基本架構包括四個部分:輸入層、編碼器層、預測層和輸出層。在輸入嵌入層中,神經網絡會將輸入文本表示為一維詞向量,包括標記嵌入、段落嵌入和位置嵌入。編碼器層中使用了多層的Transformer編碼器,每個編碼器包括自注意力層和全連接前饋層,用于對輸入序列進行特征提取和表示學習。這些編碼器能夠捕獲輸入序列中的上下文關系,將其編碼為固定長度的向量表示。預測任務包括MLM(Masked Language Modeling)機制和NSP(Next Sentence Prediction)機制[10]。通過MLM隨機屏蔽輸入序列中的一些Token,利用未遮蔽詞預測出被屏蔽的Token內容。輸出層是輸入序列的向量表示,該向量融合了全文的語義信息。PubMedBERT模型架構圖如圖1所示。

圖1 PubMedBERT模型架構圖Fig.1 Model architecture of PubMedBERT
基于神經網絡的計算模型和傳統的計算模型是處理自然語言語義相似度問題時的兩大主流方向。傳統的文本相似度計算中的代表性算法有TF-IDF模型、LSI/LSA模型、BM25模型、VSM模型等,它們的共同特性是利用傳統的統計詞頻和相似度計算公式實現語義相似度計算,而非借助神經網絡。例如,BM25算法通過對查詢句子進行語素解析,獲取Query中的分詞qi,對于搜索到的文檔d,計算Query中每個分詞與d的相關性,將所得分數進行加權求和,最終計算得到Query與檢索文檔d的相關性分數[11]。BM25算法如公式(1)所示,Wi表示第i個詞的權重,即IDF,如公式(2)所示,N表示索引中全部文檔數,dfi表示包含qi的文檔數量。
(1)
(2)
非監督學習算法潛在語義分析(Latent Semantic Analysis,LSA)在信息檢索領域的應用廣泛,通過LSA得到單詞-文檔矩陣后,利用奇異值分解(SVD)對矩陣降維去噪[12]。VSM(向量空間模型)利用空間中的特征向量度量文本內容,向量中的每個元素表示在整個集合中出現詞項的頻率。
余弦相似度(Cosine Similarity)是判斷兩個文本之間相似度的一種便捷、有效的方法。通過計算兩個向量夾角的余弦值來衡量兩個向量間差異的大小,余弦值越接近1,就表明兩個向量越相似。對于空間中的任意n維向量x=(x1,x2,…,xn)和y=(y1,y2,…,yn),余弦相似度的計算如公式(3)所示:
(3)
首先對待對齊的醫學術語的描述文本分別進行預處理操作,對文本進行縮略詞擴展,豐富短文本的內容,篩選剔除不必要的特殊符號并進行單詞歸一化處理,達到降噪的目的;其次運用預訓練語言模型進行術語文本相似度計算;最后實現術語匹配對齊。本文以國際上應用范圍較廣的醫學術語體系LOINC和SNOMED CT作為測試語料,將SNOMED CT中的術語文本作為被匹配對象,LOINC Part中的短文本作為目標術語,選擇與被匹配對象最高的前K個LOINC目標的余弦相似度值,以LOINC官方提供的映射結果作為評價標準,TOP-K精度作為性能度量。醫學術語對齊流程圖如圖2所示。

圖2 醫學術語對齊流程圖Fig.2 Medical terminology alignment flowchart
目標術語選自LOINC文本數據,使用2022年8月由美國雷根斯基夫研究院所發布的版本LOINC 2.73,該版本共包含99 079個LOINC術語,Part文件中唯一的LP-Code共69 880條。源術語為SNOMED CT,是由國際醫療術語標準開發組織發布的版本20220301,標準映射文件選自LOINC 2.73中的Mapping文件,縮略詞表下載自2022年7月份更新的LOINC縮寫詞和首字母縮略詞的字母順序列表,共904條,此表可在LOINC官方網站獲取,同時擴充醫學縮略詞表,使其能夠涵蓋更多的縮略詞信息。
(1)數據篩選。在匹配數據中,因SNOMED CT的數據量龐大,若全部用于對齊工作,會給模型操作帶來很大的負擔,因此只抽取部分首選術語作為映射文本。由于標準映射文件包含LOINC Part和外部編碼系統中的概念之間的映射,如SNOMED CT和RadLex,因此剔除不必要的RadLex部分,僅保留與SNOMED CT等效的5 918條映射結果。
(2)縮略詞擴展。醫學術語普遍具有相似的特點,它們都具有明確的定義和標準化,醫學術語的縮寫大都遵循領域內的標準原則。縮略詞表主要包含生物醫學領域中的各種縮寫詞,如縮略詞“PPP”可以擴展為“Platelet Poor Plasma”,“RBCCo”可以擴展為“Red Blood Cells Cord”,“VRatCnt”可以擴展為“Volume Rate Content”,故將源文本和目標文本中含有縮略詞的部分進行擴展后,再進行文本相似度計算。此方法可以更好地理解語義,提高相似度匹配的準確率。
(3)文本處理。特殊符號在自然語言中是普遍存在的,但它們可能不會為文本含義增加太多價值甚至會干擾文本語義的理解。醫學領域的描述性文本中通常存在醫學標識符,這些符號可能會對術語對齊的結果產生一定的干擾和迷惑作用。因此,首先對英文文本進行大小寫處理,將其全部轉換為小寫字母,篩選并刪除不必要的符號,其次使用自然語言處理工具包(Natural Language Toolkit, NLTK)進行文本分詞并刪除停用詞,最后進行詞干提取,使單詞歸一化。
通過Python 3.10.8編寫實驗代碼,基于PyTorch框架實現,硬件環境為Intel(R) Xeon(R) W-2245,顯卡為RTX 2080,操作系統為Ubuntu 18.04.6 LTS,運用準確率(Accuracy,A)作為性能評估的方法,它被定義為正確目標在TOP-K模型預測中的樣本的百分比,如公式(4)所示:
(4)
本文設計了三個對比實驗。醫學文本數據中普遍包含有大量的符號和縮略詞,為探究縮略詞對術語對齊是否有干擾作用,設計實驗一。傳統的文本相似度計算模型主要是利用統計詞頻和相似度計算公式實現相似度計算,不需要借助神經網絡,而深度學習方法的非線性建模能力更強,可以更好地利用語義信息,因此設計實驗二對比傳統模型與預訓練模型對準確率的影響。不同的預訓練模型的預訓練方式和訓練時所用的語料有所不同,為探究不同預訓練模型對性能結果的影響,設計實驗三,以期找出適應此文本對齊的效果最好的模型。
3.5.1 縮略詞擴展前后對比實驗
由圖3可以得出,縮略詞擴展后,PubMedBERT模型TOP1、TOP3、TOP5、TOP10的準確率均顯著提升,由實驗結果分析可見,縮略詞擴展能明顯地提升語義的表達能力,對文本匹配具有較大的貢獻。

圖3 縮略詞擴展前后對比圖Fig.3 Comparison chart before and after abbreviation expansion
3.5.2 傳統模型與深度學習模型性能比較
本文對比分析了縮略詞擴展后傳統模型BM25、LSA、VSM和PubMedBERT的性能表現,由表1可以看出,傳統模型的性能表現較預訓練語言模型要差很多,這可能是由于傳統模型不能較好地理解單詞之間的語義關系。同時,能證明預訓練語言模型更符合術語對齊推薦編碼的需求。

表1 各模型的性能比較
3.5.3 不同預訓練語言模型對比實驗
分析表2可知,當進行縮略詞擴展之后,Bio_ClinicalBERT模型與PubMedBERT模型TOP3、TOP5、TOP10的準確率相差并不大,但在所有模型中,PubMedBERT模型TOP1的準確率最高。不同模型表現出的性能的區別與它們本身訓練所使用的語料庫有直接的關聯。本實驗所使用的BERT模型、Bio_ClinicalBERT模型、PubMedBERT模型訓練使用的語料庫分別為通用語料庫、臨床文本和MIMIC記錄、生物醫學語料,它們在詞匯分布等方面均有不同之處,造成模型的具體性能表現有所差異[13]。從總體性能表現來看,PubMedBERT模型在術語對齊任務中的表現最優異。

表2 各深度學習模型的實驗結果
針對醫療領域中醫學術語標準化程度低、缺乏語義互操作性的現象,本文提出了一種運用生物醫學領域的預訓練語言模型PubMedBERT和余弦相似度計算,結合醫學縮略詞擴展、符號篩選等預處理方式,進行術語對齊TOP-K準確率的測評。實驗結果證明,縮略詞擴展對醫學術語的語義理解有顯著作用,基于深度學習的預訓練模型的術語對齊結果優于傳統的相似度計算模型,并且縮略詞擴展后,PubMedBERT模型相較于BERT模型及其變體取得了更好的效果,表明此方法用于文本對齊和推薦編碼的巨大潛力。將PubMedBERT模型與縮略詞擴展方法相結合,有利于專業人員的學術探討并能為編碼員提供一定的幫助,同時為醫學文本對齊任務的完成提供了一種新思路。下一步的工作應注重增強模型TOP1的準確率,更好地提升映射的質量。同時,應考慮該方法在不同數據集上的效果,提高模型的泛化能力,使其能夠適用于更多類似的醫學術語之間的對齊任務。