聶卉 吳曉燕



關鍵詞: 在線醫療咨詢文本; 抑郁癥; 語義建模; 短語識別
DOI:10.3969 / j.issn.1008-0821.2023.09.006
〔中圖分類號〕G202; TP391 〔文獻標識碼〕A 〔文章編號〕1008-0821 (2023) 09-0063-11
據世界衛生組織報告, 抑郁癥已成為全球巨大的疾病負擔, 約3 8%的世界人口患有不同程度的抑郁癥[1] 。要降低疾病危害, 患者盡早接受醫療救助至關重要。“線上問診” 打破了傳統就醫模式的時空束縛, 調查顯示抑郁癥病患對線上問診的接受度高達92 24%[2] 。在線問診記錄是患者與醫生的交流文本, 求診者對病程、感受、狀態、情緒的陳述[3] 反饋出其罹患疾病的性質、嚴重度及對健康的影響, 是疾病診斷的重要依據[4] 。在真實的醫療場景中, 相較其他疾病, 抑郁癥診斷也主要依托量表及患者與醫生的交流記錄, 因此, 大規模在線問診記錄為抑郁癥研究提供了充分的數據支持。
現有基于互聯網的抑郁癥研究, 主要是通過分析用戶生成內容來預測抑郁風險, 首要任務是識別抑郁癥狀。早期研究采用詞典法, 但靜態詞典不能全面覆蓋患者病況, 預測精準度低; 而隨后提出的有監督機器學習則需付出人工標注成本。因此, 設計一個無需標注, 也能高效地從患者問診記錄中識別抑郁病癥的方案成為本研究要點。
深度學習建模技術在自然語言處理方面性能卓越。基于大規模的抑郁癥在線咨詢文本語料, 本研究引入深度學習建模技術, 采用無監督機器學習策略構建癥狀識別模型, 并通過抑郁癥典型特征分析、抑郁癥風險預測兩個實際應用檢驗癥狀識別模型的實效。本研究工作旨為輔助醫生診斷、提高醫療平臺問診服務效率、增強抑郁癥篩查和防控能力提供技術參考。
1文獻綜述
1.1醫學術語與疾病癥狀的識別研究
與疾病有關的醫學術語的識別與表示是醫學自然語言處理領域的經典問題[5] 。早期研究主要采用詞典和規則匹配法, 如Matheny M E 等[6] 基于關鍵字和本體規則, 從臨床記錄中自動抽取傳染性疾病的癥狀。Byrd R J 等[7] 借助詞典與語法分析, 從病人記錄中提取心力衰竭的描述。基于詞典和規則的方法完全依靠醫學領域詞典和專家, 實際應用中普適性較差[8] 。隨后, 學者們提出了有監督機器學習方案, 因為有學習過程, 有監督學習擺脫了外部資源的制約, 可應用于不同場景。用有監督機器學習抽取醫學術語的3 個主流算法是支持向量機(SVM)、隱馬爾可夫模型(HMM) 和條件隨機場(CRF),CRF 應用最廣[9] 。葉楓等[10] 以語言符號、詞性、構詞模式、詞邊界、上下文為特征, 采用CRF 識別電子病歷中包括癥狀在內的醫學命名實體。Forsyth AW 等[11] 用CRF 從乳腺癌患者的診療記錄中提取疾病癥狀并判斷性質。相較詞典匹配, 有監督機器學習方案顯著提升了術語識別的查全率, 整體表現更優。但有監督機器學習算法的表現很大程度上取決于特征工程, 存在不穩定性。
近年, 深度學習為醫學領域的自然語言處理任務提供了富有潛力的方案。深度學習框架不考慮特征工程, 以分布式向量表示醫學文本, 并應用于疾病診斷。如Guo D 等[12] 先利用MetaMap 從病案記錄中抽取癥狀, 然后用詞向量表示癥狀, 再運用深度學習框架(Bi-LSTM)預測疾病發生風險。Luo X等[13] 同樣先用MetaMap 提取病案中有關體征和生理的醫學術語, 再整合用藥等信息, 構建咳嗽診斷模型, 該研究對比了多種機器學習方案, 基于BERT 預訓練模型的診斷模型表現最佳。
1.2抑郁癥狀的提取與應用研究
作為面向特定疾病的醫學癥狀識別研究, 抑郁癥癥狀識別遵循同樣的技術路線。Karmen C 等[14] 根據抑郁癥量表獲取癥狀術語種子, 然后利用詞典拓展同義詞, 生成癥狀詞典。Cavazos-Rehg P A 等[15]直接依據《精神障礙診斷與統計手冊》(DSM-5),對Twitter 推文中的抑郁癥狀進行手動編碼, 然后統計出與重度抑郁癥相關的癥狀描述。Wu C 等[16]利用電子健康記錄檢測重度抑郁癥的典型癥狀, 癥狀識別采用了CRF。深度學習技術則越來越多地在最新的研究文獻中出現, Uddin M Z 等[17] 通過公共信息網獲取用戶生成內容, 根據醫生列出的抑郁癥狀為用戶建模, 再運用深度學習框架RNN 預測用戶的抑郁癥傾向。Yao X 等[18] 運用深度學習框架Att-BiLSTM 構建文本分類器, 對抑郁癥社區中用戶提及的抑郁癥狀進行分類整理, 再通過網絡分析挖掘癥狀間的關聯。
包括深度學習, 應用有監督機器學習算法, 移植性和標注成本是兩個不可回避的問題。面對大規模語料, 有學者嘗試了無監督機器學習策略, Ma L等[19] 使用詞向量表示癥狀, 用聚類技術抽取抑郁癥狀。Usman A 等[20] 首先構建基于詞向量的情感詞典, 再運用深度聚類算法分析患者發布文本, 以可視化方式呈現患者文本中的情緒。可見, 用無監督機器學習算法識別疾病癥狀同樣可行[21] 。相關研究發現對于患者個性化的陳述, 癥狀表達存在句法和語義上的變異性[4] , 常無法直接對應單一詞項,短語的長度靈活, 表達語義豐富, 顯然更適于描述疾病癥狀。
綜上, 無監督機器學習的普適性為在大規模語料集上快速檢測抑郁癥風險提供了新的技術選擇,短語形式的癥狀描述則能更準確地表達語義, 因此, 采用無監督機器學習策略, 基于語義建模, 實現短語級抑郁癥狀的自動識別值得探究。
2研究設計
數據層面, 基于求診者的問診記錄建立語料庫,是本研究的首要任務。問診記錄中的“疾病描述”部分包含大量抑郁癥狀描述, 本研究從中提取這些癥狀描述, 用于構建患者模型, 并用于抑郁癥典型癥狀分析和抑郁癥風險預測兩個任務。在原始語料中, 沒有字段明確標識病況(是否是確診患者以及抑郁的程度), 病況從問診記錄中獲取, 并據此生成研究語料集。方法層面, 識別癥狀短語是研究重點, 主要涉及短語抽取與語義建模兩個任務。對此, 本研究采用無監督機器學習策略并引入深度學習模型表示癥狀。應用層面, 在抑郁癥典型癥狀分析和抑郁癥風險預測兩個具體任務上檢測癥狀識別算法的實效。依據上述設計, 將整個研究分為三部分, 如圖1 所示: 語料庫構建, 抑郁癥狀短語自動識別及應用, 核心是癥狀短語的識別算法。
3研究方法
研究采用無監督機器學習方案實現抑郁癥狀短語的自動識別。算法基本思想是, 基于抑郁癥量表先構建癥狀種子詞庫, 再從“疾病描述” 文本提取有關癥狀的敘述(短語形式)作為癥狀候選項, 計算候選項與種子間的語義相似度, 據此判定候選短語是否為抑郁癥癥狀, 并明確癥狀的類別。算法核心是如何對短語進行恰當的語義表示, 本研究選擇了Word2Vec、Doc2Vec 和Sentence-BERT 3 種語言模型, 通過數據實驗從中選出最佳。整個算法包括抑郁癥癥狀種子庫構建、候選癥狀短語提取、癥狀識別3 個部分。
3.1抑郁癥癥狀種子庫構建
抑郁癥癥狀種子是一組描述抑郁典型癥狀的詞項或短語, 是診斷患者抑郁的重要依據。臨床檢測中, 患者需要填寫抑郁測試量表, 醫生據此了解其感知、認知、生理、行為等方面的狀態, 量表題項中有針對癥狀的規范表達。例如, 貝克抑郁量表BDI-Ⅱ量表的題項“我比之前睡眠過少” 中“睡眠過少” 就是抑郁癥“睡眠障礙” 的典型癥狀。
研究首先依據國際疾病分類ICD-10(Interna?tional Classification of Diseases, ICD)體系標準診斷中的癥狀類別建立抑郁癥癥狀分類體系, 再按分類體系從量表題項中梳理出表述癥狀的代表性短語或詞項, 即癥狀種子。研究共梳理了10 個臨床心理學常用量表, 包括貝克抑郁量表Ⅱ(BDI-Ⅱ)、抑郁癥DSM-IV 的診斷標準、抑郁癥診斷標準ICD-10、流行病學研究中心抑郁量表(CES-D)、老年抑郁量表(GDS)、漢密爾頓抑郁量表(HAM-D)、蒙哥馬利-阿斯伯格抑郁量表(MADRS)、Zung 抑郁自評量表(SDS)、DSM-5 對抑郁癥的診斷標準、PHQ-9 抑郁癥篩查量表。將從量表中提取的癥狀種子映射到癥狀分類體系中, 形成癥狀種子庫。如表1 所示, 癥狀種子庫含有86 個種子詞, 對應10類抑郁癥典型癥狀。
3.2候選癥狀短語提取
候選短語提取在開源漢語語言平臺HanLP(ht?tps:/ / www.hanlp.com/ )[22] 上實現。該平臺在中文自然語言處理領域有廣泛應用, 提供分詞、詞性標注、命名實體識別、短語識別等基本語言處理功能, 其中, 短語識別基于互信息與信息熵實現。研究利用該平臺從“疾病描述” 文本中抽取短語, 并對組成短語的詞項進行詞性標注, 將含有動詞(包括動詞v、動詞性慣用語vl 和不及物動詞vi)、名詞(包括名詞n、名動詞vn、專有名詞nz)和形容詞(包括形容詞a 和名形詞an)的短語作為候選癥狀短語, 短語抽取效果如表2 所示。可以看出, 候選短語中有大量與抑郁癥癥狀有關的敘述, 后續識別任務即通過語義計算確立候選短語與抑郁癥典型癥狀間的關系。
3.3癥狀識別
要確立候選短語與抑郁癥典型癥狀的語義關聯,語義模型的選擇是關鍵。研究選用了Word2Vec、Doc2Vec 和Sentence-BERT 3 個語義模型對抑郁癥癥狀短語向量化。Word2Vec 是經典的詞向量模型,成功運用在各種自然語言分析任務中, 完成了從詞袋到詞向量語義特征表示的跨越[23] 。Doc2Vec[24] 是Word2Vec 的文檔級模型。考慮到本研究中, 抑郁癥癥狀采用短語表達, Doc2Vec 模型可能更合理。
BERT 是目前自然語言處理領域最流行的語言模型, 它通過在大規模語料上采用NSP(Next Sen?tence Prediction)機制和掩碼語言模型(Masked Lan?guage Model, MLM)做預訓練任務, 能夠使模型學到豐富的語義知識, 具備理解文本深層語義的能力[25] 。盡管如此, 在句子對回歸等任務(如文本相似度計算, 語義聚類)上, 原生BERT 需將句子拼接后輸入模型, 再通過帶有自注意機制Self-atten?tion 的transformer 網絡進行預測, 這導致巨大的計算開銷, 在語義相似度搜索等任務上的表現并不理想。為此, Reimers N 等[26] 對BERT 結構進行修改,他們使用孿生網絡或3 胞胎網絡(Siamese and Trip?let Network)生成維度固定的語句向量, 語義相近的語句, 語句向量的空間距離接近, 通過余弦相似度、歐式距離計算能夠快速找到語義相近的語句,這就是Sentence - BERT 的構建原理。相較原生BERT, Sentence-BERT 在不影響準確性的同時,能夠大幅提升計算效率(計算余弦相似度大概為0.01 秒), 特別適用于文本相似度計算、文本聚類等無監督機器學習任務[27] 。
Sentence-BERT 的結構如圖2 所示。兩個語句Sentence A 和Sentence B 通過共享參數的BERT 模型生成它們的字向量(Token Embedding), 再傳入池化層(Pooling)進行平均池化操作, 得到固定維度的句向量u 和v。然后計算u 和v 的余弦相似度Cos-similarity(u,v), 并輸出。微調過程中均方誤差(Mean Squared Error, MSE)為損失函數。在Rei?mers N 等[26] 的實驗中, 文本語義相似度計算的評測語料是語義文本相似計算(Semantic Textual Simi?larity, STS)任務的數據, 這些數據是成對帶類標的語句, 類標標識了語句間的關系, 取值范圍為0~5。評測實驗直接用訓練好的模型計算語句對的相似度, 然后通過皮爾曼等級相關系數評測模型優劣, 結果顯示, 相較原生BERT, Sentence-BERT表現最佳。
本研究要計算種子詞與候選癥狀短語之間的語義相似度, 分別采用了Word2Vec、Doc2Vec 和Sentence-BERT 3 個模型對候選癥狀短語和種子詞向量化, 再計算候選癥狀短語與每類種子詞的語義相似度, 見式(1)。其中, t 為候選癥狀短語向量, Ci 對應癥狀類i, 為候選癥狀短語t 與種子詞s的余弦相似度。依據式(1) 分別計算候選詞t 與每個癥狀類Ci(i =1,2,…,10)的相似度, 若相似度的最大值滿足閾值設定, 指定相似度最大的類CMax為候選癥狀t 的類別。
4實驗與結果
4.1語料庫構建
4.1.1數據源與數據采集
“好大夫在線” (https://www.haodf.com/ )是國內領先的在線醫療平臺。據最新統計, 該平臺收錄了國內1 萬多家正規醫院的89 萬名醫生的信息,累計服務量超過7 900萬人次[28] 。問診記錄規模在國內在線醫療平臺中名列前茅。基于該平臺的數據質量及在醫療服務領域的權威性, 本研究將其作為數據源, 采集了“好大夫在線” 近3 年問診記錄百萬余條, 其中361 647條記錄來自精神科、心理咨詢科和神經內科, 從中篩選出抑郁癥醫療咨詢記錄71 654條。每條記錄包含疾病描述、疾病名、患者性別、年齡、病程等字段。其中, “疾病描述”為文本型字段, 是患者面對醫生針對個人病情的詳細陳述, 為患者問診的主要內容。本研究選擇該字段內容提取患者的病征、情緒、心理狀態和行為,數據采集樣例如圖3所示。
4.1.2 抑郁癥預測評測語料
抑郁癥預測評測語料用于檢驗抑郁癥人群的自動識別效果。研究采用關鍵詞匹配策略從問診記錄中提取確診信息, 并對語料做標注。具體步驟如下:
首先對“疾病描述” 的內容進行分詞, 剔除單個字詞語、數字、標點符號及過短(文本長度<18)記錄, 獲得抑郁癥問診記錄70 705條。算法遍歷每條記錄內容, 依據匹配規則, 提取確診信息。例如: “…今天去了北京安定醫院診療。做了心理評估, 結果為輕度抑郁。…”, 由此斷定問診者患“輕度” 抑郁癥, 將其問診記錄標注為“輕度”。完成初始標注后, 進行抽樣檢查, 發現部分確診情況只是患者推測, 如“感覺有輕/ 中/ 重度抑郁”,故設定“非確診” 規則對初標注語料進行二次梳理與核查, 最終獲得帶抑郁癥程度標記的語料8391條, 其中, 重度抑郁3090條, 中度抑郁3016條, 輕度抑郁問診記錄2 285條。另外, 從非精神類疾病的問診記錄中隨機抽取2 797條, 歸為“非抑郁”, “非抑郁” 疾病涵蓋多種疾病, 這些疾病在生理層面與抑郁癥可能存在類似癥狀, 如“頭痛”“乏力”, 但精神情志層面與抑郁癥應有顯著差異。將這類問診記錄與抑郁癥問診記錄進行整合, 分成“輕度、中度、重度、非抑郁” 4 組, 共計11188條, 語料命名為DATASET1。
4.1.3抑郁癥癥狀識別評測語料
研究采用Word2Vec、Doc2Vec 和Sentence-BERT3 個語義模型表示癥狀短語, 抑郁癥癥狀識別語料用于評測3 個模型的性能表現。語料標注采用人工方式, 從抑郁癥患者的70 705條問診記錄中隨機抽取800 條, 對照抑郁癥癥狀分類體系, 如表2 所示, 對“疾病描述” 文本中提及的候選癥狀短語進行人工歸類, 示例如表3 所示。形成一個小規模的評測語料集DATASET2。
4.2抑郁癥癥狀識別模型
采用4.1.3 的癥狀短語識別方法, 在DATA?SET2 上進行實驗。Word2Vec 和Doc2Vec 基于361 647條來自精神科、心理咨詢科、神經內科的問診記錄構建。3 個語言模型的參數設置如表4 所示。另外, 依據算法, 在確定候選短語t 的癥狀類別C 時, 要求t 與C 的相似度超過閾值ε。研究將ε 作為參數, 通過實驗確定, 如圖4(a)、圖4(b)所示。
評測指標是識別10 類癥狀短語的準確率、召回率和F1 值的微平均值。如圖4(a)所示, 模型Word2Vec 和Sentence-BERT 的表現優于Doc2Vec。當ε∈[0.5,0. 6]時, Word2Vec 和Sentence-BERT的F1 值接近, 分值最高。細分ε 的實驗結果見圖4(b)。整體觀察, 當ε =0.51 時, Sentence-BERT的表現最好, F1 值為70.27%, 略優于Word2Vec的最好表現(F1 = 70.09%)。準確率指標上, Sen?tence-BERT 最好達到73.85%, 高Word2Vec 3.76個百分點, 表明Sentence-BERT 的錯誤率更低。但召回率指標上, Sentence-BERT 為67.03%, 低于Word2Vec(召回率70.09%)。權衡兩個模型, 研究認為對于疾病癥狀識別任務, 在語料相對充足的前提下, 準確率更重要。因此, 后續采用Sentence-BERT 表示短語, 閾值ε 設定為0.51。因該評測語料規模相對較小, Sentence-BERT 癥狀識別算法的實效在抑郁癥患者典型特征分析和抑郁預測兩個任務上將做進一步檢測。
4.3抑郁癥典型癥狀分析
將4.2 的抑郁癥癥狀識別算法應用于DATA?SET1。針對不同抑郁程度的病人, 抽取“疾病描述” 中的癥狀短語進行統計。圖5 展示了“輕度,中度, 重度” 3 組患者問診記錄中癥狀短語的分布情況。總體觀察, 嚴重困擾抑郁癥患者的3 類癥狀分別是心境低落(類1)、睡眠障礙(類9)和精力下降(類3), 3 類癥狀的出現頻率顯著高于其他癥狀; 而不同抑郁程度的患者, 3 類癥狀出現頻率差異不大, 說明心境低落、睡眠障礙和精力下降是抑郁患者的共有表現。但圖4 揭示出, 隨著患者病情加重, 興趣和愉快感喪失(類2)、自傷或自殺觀念行為(類8)、食欲下降(類10)癥狀的提及率逐步上升, 尤其輕度、中度和重度患者問診記錄中有關“自傷或自殺觀念行為(類8)” 的短語的提及率有顯著差異, 說明“自傷或自殺觀念行為” 的出現是抑郁嚴重度診斷的重要依據, 嚴重抑郁伴隨著極端行為的發生, 這一結論與臨床檢測量表的測度依據一致, 從一定程度上檢驗了癥狀識別算法的效力。
4.4根據癥狀識別抑郁人群
該實驗通過建立抑郁癥預測模型明確抑郁癥人群的典型特征, 進一步檢驗本文提出的癥狀識別算法的實效。根據10 類癥狀創建10 個特征變量, 若“疾病描述” 中提及了某類癥狀, 則對應的特征變量賦1, 否則為0, 即將病情描述文本轉換為10 維的0/1矢量, 以癥狀矢量為輸入, 預測問診者是否為確診病人。
預測模型選用了分類性能優異, 并能夠進行特征重要性分析的XGBoost 集成樹算法[31] 。以DATA?SET1 為實驗數據, 按1∶4劃分為測試集和訓練集。在訓練集上采用五折交叉驗證的網格搜索法確定重要參數, 參數取值及最優參數結果如表5 所示, 采用最優參數模型對測試集的問診記錄做預測。結果如表6 所示, 二分類模型的F1 值達到75.3%, 精確率和召回率接近, 均在75%以上, 模型整體表現較理想。對抑郁患者的識別能夠達到精確率(78.81%), 高于非抑郁患者(72.29%), 說明基于癥狀特征構建的預測模型能較好區分抑郁與非抑郁癥患者。
XGBoost 同時計算出10 類癥狀特征變量的相對重要度。特征重要度反映各特征項在預測任務中的貢獻, 據此也可揭示抑郁癥人群的典型癥狀。結果如圖6 所示, 心境低落(類1)、睡眠障礙(類9)、自傷或自殺的觀念或行為(類8)3 類癥狀是診斷抑郁癥的重要因素, 基于XGBoost 的特征重要度排名與抑郁癥典型癥狀特征分析結果一致。心境低落(類1)、睡眠障礙(類9)是患者提及率最高的癥狀, 特別是心境低落(類1), 其重要度遠高出其他9 個變量。這兩個癥狀也是抑郁癥診斷標準ICD-107 列出的抑郁癥主要特征。自傷或自殺的觀念或行為(類8)是區分抑郁程度的重要線索, 同樣也是臨床判斷病患病況的關鍵信息。這些與臨床抑郁癥診斷標準相吻合結論, 間接驗證了本文抑郁癥狀自動識別算法的有效性。
5研究結論與局限
5.1研究結論
本研究利用心理學領域的抑郁癥測度量表, 運用自然語言處理及深度學習建模技術, 以無監督機器學習方法實現了基于患者在線問診記錄的抑郁癥癥狀的自動抽取。基于抽取的疾病癥狀, 對不同抑郁程度的患者進行了典型癥狀分析, 并實現抑郁癥人群的自動檢測, 檢驗了本文抑郁癥癥狀識別算法的有效性。主要結論歸結為以下兩點:
方法層面, 在評測語料上, 本文提出算法的癥狀識別精度為73.85%。應用該算法分析抑郁癥患者典型特征、識別抑郁癥人群, 結果與臨床診斷標準基本一致, 驗證了算法的可行性與合理性。癥狀短語的語義建模實驗比較了3 個深度學習模型,Word2Vec、Doc2Vec 和Sentence-BERT, 具有深層次語義表達能力Sentence-BERT 整體表現最佳, 表明強化短語的語義表示, 用無監督的機器學習方案也能夠有效識別疾病癥狀。
應用層面, 從患者問診記錄中的“疾病描述”中提取抑郁癥癥狀, 應用描述統計和集成樹算法XGBoost 對抑郁癥群體的典型癥狀進行分析。描述統計得出的結論是, 心境低落、睡眠障礙和精力降低是抑郁癥患者的共有癥狀, 興趣和愉快感喪失、自傷或自殺觀念行為、食欲下降是中/ 重度病患的典型表現。抑郁癥人群的預測實驗則揭示, 心境低落、睡眠障礙、自傷或自殺的觀念或行為是診斷抑郁癥的3 個主要依據。這些依據在線醫療文本數據得出的結論與臨床心理學的抑郁癥診斷標準相吻合, 說明本方案在實際應用中能為醫生快速診斷病情提供有價值的參考, 而檢測手段的自動化將有助于提升醫療平臺對危重患者的響應能力, 采取有效的干預措施, 降低病癥帶給人類健康的危害。
5.2研究局限和后續研究思考
本研究有3點不足, 為后續工作提供了研究思路: ①本研究重點分析醫療咨詢文本中患者疾病癥狀的顯性表達, 用短語描述癥狀, 盡管運用了語義模型, 但語句的上下文信息并未納入模型, 這可能導致抑郁癥的某些癥狀表述未能提取, 從而對抑郁癥人群識別模型的預測精度產生影響。后續考慮直接利用疾病描述本文建模, 基于隱性表達的特征預測抑郁癥發生風險, 并與本文模型進行對比; ②因癥狀短語的標注成本較高, 癥狀識別評測語料規模偏小。本研究通過兩個下游任務檢測算法, 后續將擴大評測語料的規模, 進一步優化算法; ③將癥狀提取結果應用于檢測抑郁人群, 以實現抑郁癥早期發現, 而抑郁嚴重程度預測將有助于實施個性化治療, 這將成為未來的另一探索方向。