引用本文: 夏淵, 劉東峰, 張津馗, 李科. 基于 BERT 的自動化偏倚風險評價方法的研究. 中國循證醫學雜志, 2021, 21(2): 204-209. doi: 10.7507/1672-2531.202006177 復制
“證據”及其質量評價是循證醫學(evidence based medicine,EBM)的思想核心,也是實踐 EBM 的關鍵所在。高質量系統評價和隨機對照試驗(randomized controlled trial,RCT)的結論,屬于干預性措施的最高證據級別,通常作為權威臨床實踐指南的重要參考依據[1]。系統評價形成過程中要求對納入研究進行偏倚風險評價,但該評價過程既復雜又繁重,且需要 2 名研究者獨立完成[2]。有研究表明, 1 篇 RCT 偏倚風險評價需要花費專業人士 60 分鐘左右的時間才能完成,且評價結果往往還不太完善[3]。也有研究表明,人為錯過文章中的關鍵信息,不同研究者針對同一 RCT,會給出不同的評價結果[4, 5]。
近年來生物醫學文獻的發表速度呈指數級增長,偏倚風險評價任務顯得更加困難。因此,利用機器學習方法實現偏倚風險評價的自動化,將極大減輕研究人員的工作量[6, 7]。2014 年,Marshall 等提出了一種基于 Linear SVM 的文本分類方法,用于預測 RCT 的 6 類偏倚風險,獲得了 57%~75% 的 F1 值及 52%~67% 的準確率[8, 9]。2016 年,Millard 等提出采用 Logistic 回歸分類算法來構建兩種自動化偏倚風險評價模型,結果表明,兩種模型在受試者操作特征曲線下的面積(area under curve,AUC)分別為 0.72 和 0.98[10]。
但是,以上方法在基于詞袋模型或詞頻統計的特征表示方法對文本進行向量表示時,均無法表征文本所包含的上下文語義信息,可能導致最終結果不準確。因此本文提出一種基于 BERT 預訓練模型的自動化偏倚風險評價方法并與傳統機器學習方法進行比較,以期為系統評價研究者提供一種更準確的自動化偏倚風險評價方法。
1 資料和方法
1.1 數據來源
本文采用遠程監督[11, 12]和網絡爬蟲的方式從 Cochrane 圖書館[13]中獲取結構化的偏倚風險評價數據,同時獲取納入 RCT 的詳細信息,并以此鏈接到 PubMed 等數據庫獲取對應的 PDF 全文。
1.2 數據集構建
經過一系列的格式處理和數據清洗后,最終分別構建出兩類模型,即文檔分類和句子分類模型所需的數據集,數據集構建流程見圖 1。

Cochrane 系統評價手冊中定義的 RCT 偏倚風險有 7 種:隨機序列生成(random sequence generation,RSG)、分配隱藏(allocation concealment,AC)、對試驗受試者及試驗人員實施盲法(blinding of participants and personnel,BOP)、對結局評價員實施盲法(blinding of outcome assessment,BOA)、試驗結果數據的完整性(incomplete outcome data,IOD)、選擇性報告(selective reporting,SR)和其他偏倚(other sources of bias,O)。構建文檔分類模型數據集時,將結構化數據中“評價者的判斷”(author’s judgement)對應值為“低風險”的數據視為目標類別(正樣本,1),其余的“高風險”和“未知風險”視為非目標類別(負樣本,0)。
構建句子分類模型數據集時,將每篇 RCT 的每種偏倚風險的“評價依據”(support for judgement)作為目標句,然后與對應的 txt 文檔的每一個句子進行相似度計算[14][本文采用的相似度計算方法為:doc2vec(gensim)+TF-IDF+余弦相似度]。最后將相似度最高的 1 至 3 個句子視為“相關句”,其它的句子視為“非相關”句。
1.3 基于 Google BERT 的文本分類模型構建
1.3.1 BERT 預訓練模型
BERT 是 Google 團隊于 2018 年 11 月提出的一種基于 Transformers 的預訓練 NLP 模型[15]。該模型具有復雜的網絡結構,同時它還對海量文本進行了預訓練,因此能高效抽取特定領域的文本信息,并應用于下游的各種 NLP 任務,此外 Google 團隊還憑借著 BERT 模型刷新了 NLP 領域 11 項任務的當前最佳記錄。
BERT 模型在思想上采用和 OpenAI GPT 完全相同的兩階段,一是使用大規模的預料完成語言模型預訓練;二是使用 FineTuning(微調)模式來解決下游具體的 NLP 任務。BERT 在網絡結構上還采用了類似于 ELMO 的雙向語言模型結構,其網絡結構見圖 2。

1.3.2 基于 BERT 的文本分類模型構建
本文針對偏倚風險評價中文檔分類任務和句子分類任務分別構建兩類文本分類模型,并針對每一種偏倚分別構建一個二分類模型。兩類模型的網絡結構僅在輸入序列的處理上有所不同,其余各部分均相同,網絡結構見圖 3。

圖 3(a)為文檔分類模型的網絡結構圖,(b)為句子分類模型的網絡結構圖。圖(a)中輸入文檔的不同句子之間采用[SEP]標簽進行分隔,其中 transformer 層數為 12 層,圖(b)中 transformer 層數同樣為 12 層。
原始數據集首先經過詞嵌入層的相關操作之后,輸入到 transformer 層,首先經過包含 6 個結構完全相同的編碼模塊組成的編碼端進行編碼,然后輸入到對應由 6 個結構相同的解碼模塊組成的解碼端進行解碼,再將經過 12 層 transformer 的反復編碼、解碼之后得到的向量直接輸入 softmax 層進行計算,最后輸出預測的文本標簽類別。transformer 層的每個編碼模塊都包含一個由 8 層自注意力機制(self-attention)組成的“多頭注意力機制”網絡,以及一個前饋神經網絡和兩個殘差/歸一化網絡。每一個解碼模塊中除了一個與編碼端類似的“多頭注意力機制”網絡以及一個前饋神經網絡以外,還包括一個由自注意力機制組成的“多頭掩碼注意力機制”結構。
該模型的詞嵌入層,不再是傳統的詞嵌入操作,而是結合“位置嵌入”(position-embedding)和“分層嵌入”(segment-embedding)的嵌入操作,具體過程見圖 4。

首先是“令牌嵌入”階段,通過查詢詞表,將輸入文本的每個單詞轉換成一維的詞向量,這里采用 Google 開源的 Bert-Base Uncased 詞表。接下是“分層嵌入”階段,該過程用于記錄當前詞是屬于句子 A 還是屬于句子 B。然后在“位置嵌入”階段加入單詞的位置信息,主要目的是為了記錄單詞在句子中的位置信息,從而學習文本的詞義信息。最后將三者相加所得的結果作為 BERT 模型的輸入。
該模型的核心是一個 12 層的 transformer 層,其中的每個神經元都采用 Google 論文中提到的 transformer 結構。模型最后通過一個 softmax 網絡層進行計算并分類,softmax 層接收最后一個 transformer 層的輸出,然后經過回歸計算之后,輸出模型預測的類別標簽的概率。
1.4 模型訓練參數和評價指標
在兩種分類模型的訓練中,本文均設置訓練輪數(train_epochs)為 100,學習率(learning_rate)為 1e-5,訓練批次大小(batch_size)為 64,丟失率(dropout_rate)為 0.5。同時還設置了“早停”(early_stop)策略,并設置相應的閾值為 20,即當模型連續 20 次的下降梯度為負數時,停止訓練。最后根據輸入序列長度以及分類任務的不同,本文分別設置最大輸入序列長度為 512 和 128。模型訓練停止后,在占總數據 10% 的測試集上進行測試,并記錄模型的準確率(P 值)、召回率(R 值)和 F1 值。
2 結果
2.1 文檔分類模型試驗結果
采用經典機器學習方法以 n-gram 和 TF-IDF 為特征工程,LinearSVM 為分類器作為對比模型,比較 BERT 模型在文檔分類任務中的不同偏倚風險種類上的表現,結果見表 1 和圖 5。本研究結果顯示,BERT 模型在所有種類的偏倚風險評價上的表現均明顯優于對比模型。


RSG:隨機序列生成;AC:分配隱藏;BOP:對試驗受試者及試驗人員實施盲法;BOA:對結局評估員實施盲法;IOD:試驗結果數據不完整;SR:選擇性報告;O:其他偏倚。
2.2 句子分類模型試驗結果
同樣采用傳統機器學習方法模型作為對比模型,比較 BERT 模型在句子分類任務中的不同風險種類上的表現,統計結果見表 2 和圖 6。本研究結果顯示,BERT 模型在句子分類任務上的效果優于對比模型。


RSG:隨機序列生成;AC:分配隱藏;BOP:對試驗受試者及試驗人員實施盲法;BOA:對結局評估員實施盲法;IOD:試驗結果數據不完整;SR:選擇性報告。
3 討論
本研究建立了一種基于 BERT 的自動化偏倚風險評價模型方法,其結果發現:① 在文檔分類任務上,本模型在 RSG、IOD、SR 和 O 四類偏倚風險評價上的表現要明顯優于其在其他幾類偏倚風險上的表現。結合數據集中正負樣本的分布情況加以分析,結果發現在模型表現效果更好的 4 種偏倚風險類別上,它們的數據集中正樣本的數量明顯多于負樣本,而其余類別的數據集中正、負樣本的比率恰好相反。因此,本模型在 RSG、IOD、SR 和 O 四類偏倚風險評價上的召回率(recall)明顯要高于準確率(precision),而在其余三類偏倚風險上的表現則剛好相反。此外,本研究中只統計了正樣本的評價結果,這是因為在偏倚風險評價任務中,通常只關注于能準確識別為低風險的研究。② 在句子提取任務中,本模型在所有偏倚風險類別上的準確率(precision)都要遠高于召回率(recall)。結合數據的分布情況來看,所有偏倚風險類別的正樣本(偏倚風險描述相關句)量均遠小于負樣本量。句子提取任務的目的在于希望模型預測結果中發現盡可能多的句子跟偏倚風險描述確實相關,即希望模型表現出盡可能高的準確率。從本研究結果來看,無論在哪種風險類別上,BERT 模型都取得了較好的準確率,符合任務的目標需求。
此外,如果將本模型所得結果與結合 n-gram、TF-IDF 特征工程和 LinearSVM 分類器的對比模型的測試結果進行比較,不難發現,無論是在偏倚風險評價的文檔分類任務上,還是在偏倚風險描述的句子提取任務上,基于 BERT 的偏倚風險評價模型都要明顯優于基于 n-gram 和 TF-IDF 的傳統方法。同時,本模型在文檔分類任務上優化效果遠沒有它在句子提取任務上的優化效果好。這是因為文本的長度要遠大于句子的長度,而 BERT 模型對輸入序列的長度有嚴格限制,最大長度不能超過 512,因此在進行文檔分類訓練時存在信息丟失的情況。此外,從數據集的規模上來講,文檔分類任務的數據集規模要遠小于句子提取任務的數據集規模,所以 BERT 模型在句子提取任務上的效果,要明顯優于文檔分類任務上的效果。
本研究的局限性:在構建基于 BERT 的自動化偏倚風險評估模型時,本文采用 Google 開源的 BERT-Base 預訓練模型,而該預訓練模型基于英文維基百科和英文 Books Cropus 等語料進行訓練,這些語料大多是通用語境下的文本。故當未來試驗環境成熟時,可嘗試使用 PubMed 等生物醫學文本數據庫的數據來訓練一個基于專業生物醫學文本的預訓練模型,并進一步探討基于專業語料的預訓練模型是否能表現出更優異的性能。
綜上所述,本研究表明,基于 BERT 的偏倚風險評價模型在自動化偏倚風險評價的兩個重要分類任務上均取得了較高的準確率,可以實現偏倚風險評價過程的自動化。
“證據”及其質量評價是循證醫學(evidence based medicine,EBM)的思想核心,也是實踐 EBM 的關鍵所在。高質量系統評價和隨機對照試驗(randomized controlled trial,RCT)的結論,屬于干預性措施的最高證據級別,通常作為權威臨床實踐指南的重要參考依據[1]。系統評價形成過程中要求對納入研究進行偏倚風險評價,但該評價過程既復雜又繁重,且需要 2 名研究者獨立完成[2]。有研究表明, 1 篇 RCT 偏倚風險評價需要花費專業人士 60 分鐘左右的時間才能完成,且評價結果往往還不太完善[3]。也有研究表明,人為錯過文章中的關鍵信息,不同研究者針對同一 RCT,會給出不同的評價結果[4, 5]。
近年來生物醫學文獻的發表速度呈指數級增長,偏倚風險評價任務顯得更加困難。因此,利用機器學習方法實現偏倚風險評價的自動化,將極大減輕研究人員的工作量[6, 7]。2014 年,Marshall 等提出了一種基于 Linear SVM 的文本分類方法,用于預測 RCT 的 6 類偏倚風險,獲得了 57%~75% 的 F1 值及 52%~67% 的準確率[8, 9]。2016 年,Millard 等提出采用 Logistic 回歸分類算法來構建兩種自動化偏倚風險評價模型,結果表明,兩種模型在受試者操作特征曲線下的面積(area under curve,AUC)分別為 0.72 和 0.98[10]。
但是,以上方法在基于詞袋模型或詞頻統計的特征表示方法對文本進行向量表示時,均無法表征文本所包含的上下文語義信息,可能導致最終結果不準確。因此本文提出一種基于 BERT 預訓練模型的自動化偏倚風險評價方法并與傳統機器學習方法進行比較,以期為系統評價研究者提供一種更準確的自動化偏倚風險評價方法。
1 資料和方法
1.1 數據來源
本文采用遠程監督[11, 12]和網絡爬蟲的方式從 Cochrane 圖書館[13]中獲取結構化的偏倚風險評價數據,同時獲取納入 RCT 的詳細信息,并以此鏈接到 PubMed 等數據庫獲取對應的 PDF 全文。
1.2 數據集構建
經過一系列的格式處理和數據清洗后,最終分別構建出兩類模型,即文檔分類和句子分類模型所需的數據集,數據集構建流程見圖 1。

Cochrane 系統評價手冊中定義的 RCT 偏倚風險有 7 種:隨機序列生成(random sequence generation,RSG)、分配隱藏(allocation concealment,AC)、對試驗受試者及試驗人員實施盲法(blinding of participants and personnel,BOP)、對結局評價員實施盲法(blinding of outcome assessment,BOA)、試驗結果數據的完整性(incomplete outcome data,IOD)、選擇性報告(selective reporting,SR)和其他偏倚(other sources of bias,O)。構建文檔分類模型數據集時,將結構化數據中“評價者的判斷”(author’s judgement)對應值為“低風險”的數據視為目標類別(正樣本,1),其余的“高風險”和“未知風險”視為非目標類別(負樣本,0)。
構建句子分類模型數據集時,將每篇 RCT 的每種偏倚風險的“評價依據”(support for judgement)作為目標句,然后與對應的 txt 文檔的每一個句子進行相似度計算[14][本文采用的相似度計算方法為:doc2vec(gensim)+TF-IDF+余弦相似度]。最后將相似度最高的 1 至 3 個句子視為“相關句”,其它的句子視為“非相關”句。
1.3 基于 Google BERT 的文本分類模型構建
1.3.1 BERT 預訓練模型
BERT 是 Google 團隊于 2018 年 11 月提出的一種基于 Transformers 的預訓練 NLP 模型[15]。該模型具有復雜的網絡結構,同時它還對海量文本進行了預訓練,因此能高效抽取特定領域的文本信息,并應用于下游的各種 NLP 任務,此外 Google 團隊還憑借著 BERT 模型刷新了 NLP 領域 11 項任務的當前最佳記錄。
BERT 模型在思想上采用和 OpenAI GPT 完全相同的兩階段,一是使用大規模的預料完成語言模型預訓練;二是使用 FineTuning(微調)模式來解決下游具體的 NLP 任務。BERT 在網絡結構上還采用了類似于 ELMO 的雙向語言模型結構,其網絡結構見圖 2。

1.3.2 基于 BERT 的文本分類模型構建
本文針對偏倚風險評價中文檔分類任務和句子分類任務分別構建兩類文本分類模型,并針對每一種偏倚分別構建一個二分類模型。兩類模型的網絡結構僅在輸入序列的處理上有所不同,其余各部分均相同,網絡結構見圖 3。

圖 3(a)為文檔分類模型的網絡結構圖,(b)為句子分類模型的網絡結構圖。圖(a)中輸入文檔的不同句子之間采用[SEP]標簽進行分隔,其中 transformer 層數為 12 層,圖(b)中 transformer 層數同樣為 12 層。
原始數據集首先經過詞嵌入層的相關操作之后,輸入到 transformer 層,首先經過包含 6 個結構完全相同的編碼模塊組成的編碼端進行編碼,然后輸入到對應由 6 個結構相同的解碼模塊組成的解碼端進行解碼,再將經過 12 層 transformer 的反復編碼、解碼之后得到的向量直接輸入 softmax 層進行計算,最后輸出預測的文本標簽類別。transformer 層的每個編碼模塊都包含一個由 8 層自注意力機制(self-attention)組成的“多頭注意力機制”網絡,以及一個前饋神經網絡和兩個殘差/歸一化網絡。每一個解碼模塊中除了一個與編碼端類似的“多頭注意力機制”網絡以及一個前饋神經網絡以外,還包括一個由自注意力機制組成的“多頭掩碼注意力機制”結構。
該模型的詞嵌入層,不再是傳統的詞嵌入操作,而是結合“位置嵌入”(position-embedding)和“分層嵌入”(segment-embedding)的嵌入操作,具體過程見圖 4。

首先是“令牌嵌入”階段,通過查詢詞表,將輸入文本的每個單詞轉換成一維的詞向量,這里采用 Google 開源的 Bert-Base Uncased 詞表。接下是“分層嵌入”階段,該過程用于記錄當前詞是屬于句子 A 還是屬于句子 B。然后在“位置嵌入”階段加入單詞的位置信息,主要目的是為了記錄單詞在句子中的位置信息,從而學習文本的詞義信息。最后將三者相加所得的結果作為 BERT 模型的輸入。
該模型的核心是一個 12 層的 transformer 層,其中的每個神經元都采用 Google 論文中提到的 transformer 結構。模型最后通過一個 softmax 網絡層進行計算并分類,softmax 層接收最后一個 transformer 層的輸出,然后經過回歸計算之后,輸出模型預測的類別標簽的概率。
1.4 模型訓練參數和評價指標
在兩種分類模型的訓練中,本文均設置訓練輪數(train_epochs)為 100,學習率(learning_rate)為 1e-5,訓練批次大小(batch_size)為 64,丟失率(dropout_rate)為 0.5。同時還設置了“早停”(early_stop)策略,并設置相應的閾值為 20,即當模型連續 20 次的下降梯度為負數時,停止訓練。最后根據輸入序列長度以及分類任務的不同,本文分別設置最大輸入序列長度為 512 和 128。模型訓練停止后,在占總數據 10% 的測試集上進行測試,并記錄模型的準確率(P 值)、召回率(R 值)和 F1 值。
2 結果
2.1 文檔分類模型試驗結果
采用經典機器學習方法以 n-gram 和 TF-IDF 為特征工程,LinearSVM 為分類器作為對比模型,比較 BERT 模型在文檔分類任務中的不同偏倚風險種類上的表現,結果見表 1 和圖 5。本研究結果顯示,BERT 模型在所有種類的偏倚風險評價上的表現均明顯優于對比模型。


RSG:隨機序列生成;AC:分配隱藏;BOP:對試驗受試者及試驗人員實施盲法;BOA:對結局評估員實施盲法;IOD:試驗結果數據不完整;SR:選擇性報告;O:其他偏倚。
2.2 句子分類模型試驗結果
同樣采用傳統機器學習方法模型作為對比模型,比較 BERT 模型在句子分類任務中的不同風險種類上的表現,統計結果見表 2 和圖 6。本研究結果顯示,BERT 模型在句子分類任務上的效果優于對比模型。


RSG:隨機序列生成;AC:分配隱藏;BOP:對試驗受試者及試驗人員實施盲法;BOA:對結局評估員實施盲法;IOD:試驗結果數據不完整;SR:選擇性報告。
3 討論
本研究建立了一種基于 BERT 的自動化偏倚風險評價模型方法,其結果發現:① 在文檔分類任務上,本模型在 RSG、IOD、SR 和 O 四類偏倚風險評價上的表現要明顯優于其在其他幾類偏倚風險上的表現。結合數據集中正負樣本的分布情況加以分析,結果發現在模型表現效果更好的 4 種偏倚風險類別上,它們的數據集中正樣本的數量明顯多于負樣本,而其余類別的數據集中正、負樣本的比率恰好相反。因此,本模型在 RSG、IOD、SR 和 O 四類偏倚風險評價上的召回率(recall)明顯要高于準確率(precision),而在其余三類偏倚風險上的表現則剛好相反。此外,本研究中只統計了正樣本的評價結果,這是因為在偏倚風險評價任務中,通常只關注于能準確識別為低風險的研究。② 在句子提取任務中,本模型在所有偏倚風險類別上的準確率(precision)都要遠高于召回率(recall)。結合數據的分布情況來看,所有偏倚風險類別的正樣本(偏倚風險描述相關句)量均遠小于負樣本量。句子提取任務的目的在于希望模型預測結果中發現盡可能多的句子跟偏倚風險描述確實相關,即希望模型表現出盡可能高的準確率。從本研究結果來看,無論在哪種風險類別上,BERT 模型都取得了較好的準確率,符合任務的目標需求。
此外,如果將本模型所得結果與結合 n-gram、TF-IDF 特征工程和 LinearSVM 分類器的對比模型的測試結果進行比較,不難發現,無論是在偏倚風險評價的文檔分類任務上,還是在偏倚風險描述的句子提取任務上,基于 BERT 的偏倚風險評價模型都要明顯優于基于 n-gram 和 TF-IDF 的傳統方法。同時,本模型在文檔分類任務上優化效果遠沒有它在句子提取任務上的優化效果好。這是因為文本的長度要遠大于句子的長度,而 BERT 模型對輸入序列的長度有嚴格限制,最大長度不能超過 512,因此在進行文檔分類訓練時存在信息丟失的情況。此外,從數據集的規模上來講,文檔分類任務的數據集規模要遠小于句子提取任務的數據集規模,所以 BERT 模型在句子提取任務上的效果,要明顯優于文檔分類任務上的效果。
本研究的局限性:在構建基于 BERT 的自動化偏倚風險評估模型時,本文采用 Google 開源的 BERT-Base 預訓練模型,而該預訓練模型基于英文維基百科和英文 Books Cropus 等語料進行訓練,這些語料大多是通用語境下的文本。故當未來試驗環境成熟時,可嘗試使用 PubMed 等生物醫學文本數據庫的數據來訓練一個基于專業生物醫學文本的預訓練模型,并進一步探討基于專業語料的預訓練模型是否能表現出更優異的性能。
綜上所述,本研究表明,基于 BERT 的偏倚風險評價模型在自動化偏倚風險評價的兩個重要分類任務上均取得了較高的準確率,可以實現偏倚風險評價過程的自動化。