郭安迪,賈 真,李天瑞,2*
(1.西南交通大學(xué) 計(jì)算機(jī)與人工智能學(xué)院,成都 611756;2.綜合交通大數(shù)據(jù)應(yīng)用技術(shù)國家工程實(shí)驗(yàn)室(西南交通大學(xué)),成都 611756)
實(shí)體關(guān)系抽取屬于信息抽取的關(guān)鍵子任務(wù)之一,它從非結(jié)構(gòu)化的文本中識別出實(shí)體并確立實(shí)體之間的關(guān)系。在醫(yī)療領(lǐng)域,實(shí)體關(guān)系抽取被廣泛應(yīng)用于結(jié)構(gòu)化信息處理、構(gòu)建知識圖譜和其他下游任務(wù)。
與通用領(lǐng)域相比,醫(yī)學(xué)領(lǐng)域的信息抽取任務(wù)對錯誤信息的容忍度更低,對模型的精準(zhǔn)率要求更高。然而,醫(yī)學(xué)領(lǐng)域的實(shí)體和關(guān)系密度更大,約為通用領(lǐng)域7 倍[1],很多與文本語義不相關(guān)的醫(yī)學(xué)名詞將被識別為假正例的實(shí)體,且不同關(guān)系之間可能會共用主語或賓語,主語和賓語中一旦出現(xiàn)假正例將影響多組關(guān)系分類,這將進(jìn)一步放大由實(shí)體抽取錯誤帶來的誤差傳遞。另外,醫(yī)療的關(guān)系種類多且易混淆,如疾病類型的實(shí)體之間就可能存在“癥狀相關(guān)”“轉(zhuǎn)化相關(guān)”“病發(fā)癥”“病理分型”等多種不同關(guān)系,若關(guān)系分類訓(xùn)練的負(fù)樣本不足則很難獲得較好的精準(zhǔn)率。在實(shí)體抽取方面,醫(yī)學(xué)領(lǐng)域有很多長實(shí)體,存在實(shí)體嵌套、邊界難以劃分的問題。例如,“免疫功能低下患者”可能被錯誤識別為“免疫力”或“免疫力功能低下”。
根據(jù)實(shí)體和關(guān)系抽取任務(wù)的表示層是否共用,實(shí)體關(guān)系抽取模型可以分為實(shí)體關(guān)系聯(lián)合抽取和實(shí)體關(guān)系流水線抽取兩大類,其中流水線抽取模型可以分別針對實(shí)體和關(guān)系任務(wù)訓(xùn)練最優(yōu)的編碼器,從而取得較好的效果[2];然而,此類模型存在沒有考慮實(shí)體抽取錯誤導(dǎo)致的誤差疊加和錯誤層級傳播的問題。
本文針對實(shí)體關(guān)系流水線抽取框架存在的誤差傳遞問題,提出用于進(jìn)行數(shù)據(jù)增強(qiáng)的關(guān)系負(fù)例生成模塊,同時針對醫(yī)學(xué)文本特點(diǎn)對實(shí)體抽取和關(guān)系抽取進(jìn)行優(yōu)化。本文的主要工作如下:
1)關(guān)系負(fù)例生成模塊。為了緩解誤差傳遞,本文通過數(shù)據(jù)增強(qiáng)方法模擬生成容易引起誤差傳遞的關(guān)系負(fù)例。具體地,利用關(guān)系負(fù)例生成模塊中的基于欠采樣的偽實(shí)體生成模型(Under-Sampling-based Pseudo-entity Generation Model,USPGM)生成可以混淆關(guān)系抽取模型的“偽實(shí)體”,再結(jié)合關(guān)系數(shù)據(jù)增強(qiáng)策略對關(guān)系抽取任務(wù)進(jìn)行數(shù)據(jù)增強(qiáng)。USPGM 采用基于片段的解碼方式,可以處理不同粒度的實(shí)體,并利用懸浮標(biāo)記[3]提高偽實(shí)體生成的F1 值。適當(dāng)?shù)那凡蓸勇士梢栽诒WC一定精準(zhǔn)率的情況下大幅增強(qiáng)召回能力,從而滿足生成多樣偽實(shí)體的目的。此外,本文還提出了三種數(shù)據(jù)增強(qiáng)生成策略,以解決主語賓語顛倒、主語賓語邊界錯誤和關(guān)系分類錯誤等問題,提高關(guān)系抽取階段鑒別錯誤關(guān)系的能力。
2)基于Transformer 特征讀取的實(shí)體抽取模型(Transformer Feature Reader based entity extraction Model,TFRM)。本文針對醫(yī)學(xué)實(shí)體密集、短語形長實(shí)體較多且邊界難以劃分的問題,選用Transformer[4]網(wǎng)絡(luò)作為實(shí)體類別特征讀取器,利用解碼器模塊的交叉注意力計(jì)算單元計(jì)算實(shí)體類別特征對于序列特征向量的注意力,強(qiáng)化原有的向量表示,增強(qiáng)對整體類別語義信息的捕捉能力。與基于片段的模型相比,TFRM 采用的序列解碼方式能更好地平衡醫(yī)學(xué)實(shí)體嵌套造成的粗粒度長實(shí)體和細(xì)粒度短實(shí)體邊界難以區(qū)分的問題,提升實(shí)體抽取階段的精準(zhǔn)率。
3)基于懸浮標(biāo)記關(guān)系抽取模型(Levitated-Marker-based relation extraction Model,LMM)。數(shù)據(jù)增強(qiáng)在緩解誤差傳遞的同時也帶來了訓(xùn)練時間成倍增加的問題,若仍采用傳統(tǒng)的關(guān)系抽取模型,即使利用GPU 加速運(yùn)算,也幾乎無法完成正常的調(diào)參工作。為了解決這個問題,本文采用LMM,在保證精準(zhǔn)率的前提下,大幅減少了模型訓(xùn)練所需的時間,提高了推理速度。
早期實(shí)體關(guān)系抽取的工作主要依靠模板和詞典完成,這類工作通常由領(lǐng)域?qū)<医Y(jié)合專業(yè)知識設(shè)計(jì)模板,以匹配實(shí)體和關(guān)系[5-7]。然而,這種方法的精準(zhǔn)率嚴(yán)重依賴詞典和模板設(shè)計(jì)的質(zhì)量,靈活性差,召回率較低。隨著傳統(tǒng)機(jī)器學(xué)習(xí)技術(shù)的快速發(fā)展,以特征工程為核心的機(jī)器學(xué)習(xí)模型被廣泛應(yīng)用于實(shí)體關(guān)系抽取領(lǐng)域[8-11]。這些模型將實(shí)體識別和關(guān)系抽取轉(zhuǎn)化為依賴特征集與核函數(shù)的分類任務(wù);但性能效果仍然依賴于人工設(shè)計(jì)的特征工程和核函數(shù),在模型層面上仍需要大量人力。近年來,深度學(xué)習(xí)方法被大量應(yīng)用于實(shí)體關(guān)系抽取工作。深度神經(jīng)網(wǎng)絡(luò)架構(gòu)中的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)是解決實(shí)體關(guān)系抽取的兩大主流模型。CNN 模型可以獲取局部特征,RNN 模型則具有捕捉序列前后依賴的能力。與傳統(tǒng)方法相比,基于深度學(xué)習(xí)的方法無須進(jìn)行繁瑣的特征工程,可自動從領(lǐng)域文本中提取文本的語義表示。Li 等[12]通過結(jié)合依存句法分析和雙向長短時記憶循環(huán)神經(jīng)網(wǎng)絡(luò)(Bi-directional Long Short-Term Memory RNN,Bi-LSTM-RNN)模型完成實(shí)體關(guān)系抽??;Bekoulis 等[13]構(gòu)建了基于對抗訓(xùn)練的Bi-LSTM(Bi-directional Long Short-Term Memory)模型,提高了抽取的魯棒性;張世豪等[14]在Bi-LSTM 和CNN 的基礎(chǔ)上提出了融合多通道自注意力機(jī)制的中文醫(yī)學(xué)實(shí)體關(guān)系抽取模型。
預(yù)訓(xùn)練模型可以通過自監(jiān)督的方式從海量文本中獲取知識,并能考慮上下文為文本提供動態(tài)的向量表示,該類模型顯著提升了自然語言處理領(lǐng)域模型的性能。BERT(Bidirectional Encoder Representation from Transformer)[15]和ELMo(Embeddings from Language Models)[16]是該類模型的代表,被廣泛應(yīng)用于實(shí)體關(guān)系抽取。Luo 等[17]使用ELMo 作為表示層,提出了一種基于注意力機(jī)制的模型;Zhao 等[18]通過閱讀理解的方式將實(shí)體關(guān)系抽取轉(zhuǎn)化為序列預(yù)測問題;Eberts 等[19]提出了基于片段的端到端實(shí)體關(guān)系聯(lián)合抽取模型SpERT(Span-based Entity and Relation Transformer),通過拼接預(yù)訓(xùn)練模型向量表示、實(shí)體大小嵌入表示、關(guān)系上下文特征對實(shí)體片段和關(guān)系進(jìn)行分類;Shen 等[20]在SpERT 的基礎(chǔ)上加入了觸發(fā)器感知流捕獲實(shí)體和關(guān)系之間的聯(lián)系,并使用圖神經(jīng)網(wǎng)絡(luò)引入了語法依賴等額外信息,進(jìn)一步提高了模型的性能;Zhong 等[2]提出了一種實(shí)體關(guān)系流水線處理模型,分別訓(xùn)練實(shí)體和關(guān)系的預(yù)訓(xùn)練模型,實(shí)驗(yàn)證明聯(lián)合抽取模型可能會混淆預(yù)訓(xùn)練模型的表示,流水線式的模型性能更佳;Ye 等[3]使用面向相鄰實(shí)體的填充式懸浮標(biāo)記,將相同起始位置的片段的懸浮標(biāo)記填充在一條語句中,以獲取片段之間的聯(lián)系,進(jìn)一步提高了實(shí)體關(guān)系抽取的性能。
數(shù)據(jù)增強(qiáng)(Data Augmentation,DA)是一種從有限的數(shù)據(jù)挖掘更多數(shù)據(jù)以擴(kuò)展訓(xùn)練數(shù)據(jù)集的技術(shù)。它用于克服訓(xùn)練數(shù)據(jù)不足、緩解數(shù)據(jù)偏見和解決樣本不平衡,在深度學(xué)習(xí)的各個領(lǐng)域都得到了廣泛的應(yīng)用[21]。本文使用DA 技術(shù)解決容易混淆關(guān)系抽取模型的負(fù)樣本數(shù)據(jù)不足的問題,緩解實(shí)體關(guān)系抽取過程中的誤差傳遞。
數(shù)據(jù)增強(qiáng)主要分為兩類:基于規(guī)則和基于模型。
基于規(guī)則的數(shù)據(jù)增強(qiáng)方法的代表是:Wei等[22]提出的簡單數(shù)據(jù)增強(qiáng)(Easy Data Augmentation,EDA)方法,通過對文本進(jìn)行隨機(jī)替換、插入、交換和刪除等操作增加樣本數(shù);Abdollahi等[23]提出了基于本體引導(dǎo)的數(shù)據(jù)增強(qiáng)方法,使用統(tǒng)一醫(yī)學(xué)語言系統(tǒng)(Unified Medical Language System,UMLS)識別句子中的醫(yī)學(xué)本體,并將本體替換成詞典中的同義詞,豐富訓(xùn)練數(shù)據(jù);Kang等[24]同樣使用UMLS結(jié)合EDA實(shí)現(xiàn)實(shí)體抽取。
基于模型的數(shù)據(jù)增強(qiáng)方法通過神經(jīng)網(wǎng)絡(luò)模型直接生成訓(xùn)練樣本或參與樣本生成的過程。直接生成訓(xùn)練樣本的典型例子是Sennrich 等[25]提出的基于“回譯”的數(shù)據(jù)增強(qiáng)的方法,即將序列翻譯成另一種語言后再翻譯回原始語言,從而直接生成樣本。參與樣本生成的數(shù)據(jù)增強(qiáng)模型更常見,例如Wang 等[26]提出的基于強(qiáng)化學(xué)習(xí)的數(shù)據(jù)增強(qiáng)方法,通過強(qiáng)化學(xué)習(xí)訓(xùn)練一個生成器生成數(shù)據(jù)增強(qiáng)動作序列,以解決傳統(tǒng)數(shù)據(jù)增強(qiáng)中神經(jīng)網(wǎng)絡(luò)模型與數(shù)據(jù)增強(qiáng)模塊之間缺乏聯(lián)系的問題。Kobayashi 等[27]通過將單詞替換為根據(jù)上下文語言模型分布得到的單詞來生成增強(qiáng)示例。Yang 等[28]從預(yù)訓(xùn)練的語言模型生成的示例中選擇信息量最大和最多樣化的集合進(jìn)行擴(kuò)充。Quteineh 等[29]類似地使用GPT-2 標(biāo)生成標(biāo)記,證明了DA 方法的有效性。
2.1.1 任務(wù)介紹
醫(yī)學(xué)實(shí)體關(guān)系抽取任務(wù)的輸入是醫(yī)學(xué)文本,在經(jīng)過標(biāo)記解析器分詞后得到長度為n的標(biāo)記序列X={x0,x1,…,xn},再由預(yù)訓(xùn)練模型得到特征表示H={h0,h1,…,hn}。實(shí)體關(guān)系流水線抽取可分解為實(shí)體抽取和關(guān)系分類兩個子任務(wù)。
實(shí)體抽取 給定實(shí)體類別集合E,實(shí)體抽取任務(wù)是從標(biāo)記序列X中提取實(shí)體片段及其類別的集合Y={(si,ei),si∈S,ei∈E},其中實(shí)體片段集合S用于標(biāo)識實(shí)體位置。實(shí)體抽取任務(wù)可以分為基于序列標(biāo)簽預(yù)測的實(shí)體抽取和基于實(shí)體片段的實(shí)體抽取兩種類型。
基于序列標(biāo)簽預(yù)測的實(shí)體抽取首先對序列中的每個標(biāo)記預(yù)測它的類別,得到標(biāo)簽序列O={o0,o1,…,on},然后通過解碼算法獲得實(shí)體片段和實(shí)體類型,并輸出實(shí)體集合Y=decoder(O)?;趯?shí)體片段的實(shí)體抽取任務(wù)是先定義一個最長的實(shí)體片段長度l,再枚舉出標(biāo)記序列X中所有可能的片段集合S,對于每個片段si∈S,預(yù)測它的實(shí)體類型ye。
關(guān)系分類 記R為預(yù)定義的關(guān)系抽取框架,關(guān)系抽取任務(wù)是對Ssub×Sobj中的每一組候選實(shí)體片段對(si,sj)預(yù)測關(guān)系類型yr∈R,該任務(wù)的輸出為關(guān)系三元組集合T={(si,sj,yr):si∈Ssub,sj∈Sobj,yr∈R}。
2.1.2 懸浮標(biāo)記
標(biāo)記是指通過標(biāo)記解析器拆分字符串后得到的符號,每個標(biāo)記都被分配唯一的ID。例如,將“Miller-Fisher 綜合征”經(jīng)過標(biāo)記解析器后,可以得到標(biāo)記[“Miller”,“ -”,“ Fish”,“##er”,“綜”,“合”,“征”]。除了由文本生成的標(biāo)記,還有一類特殊標(biāo)記,這些標(biāo)記不與實(shí)際輸入建立映射,而是額外加入模型序列,用于提醒預(yù)訓(xùn)練模型捕捉任務(wù)所關(guān)注的信息。例如,在BERT 中,規(guī)定使用“[CLS]”進(jìn)行全局預(yù)測,“[SEP]”用于分隔序列。本文中定義了與任務(wù)相關(guān)的特殊標(biāo)記,例如在后文的USPGM 實(shí)體抽取模型中,使用標(biāo)記實(shí)體頭,標(biāo)記實(shí)體尾;在LMM 掩碼示意圖中,使用x,x標(biāo)記主語標(biāo)記賓語。標(biāo)記可以被插入到原始輸入中實(shí)體所在位置的前后,以便預(yù)訓(xùn)練模型關(guān)注該位置;但是由于標(biāo)記的引入對原序列具有侵入性,因此每條輸入語句只能對應(yīng)一組標(biāo)記,如果要枚舉所有主語賓語組合,則需要額外生成大量的輸入序列。
懸浮標(biāo)記可以讓模型盡早接觸實(shí)體的位置信息,解決輸入序列過多的問題。具體地,為了避免對原始輸入造成侵入,懸浮標(biāo)記被打包到一起,拼接在原始序列的末尾。懸浮標(biāo)記通過和它所關(guān)注的原始輸入的標(biāo)記共享相同的位置ID,提醒模型關(guān)注原輸入相關(guān)位置。
本文提出的實(shí)體關(guān)系抽取框架共分為3 個部分:1)基于Transformer 特征讀取的實(shí)體抽取模型;2)關(guān)系負(fù)例生成模塊;3)基于懸浮標(biāo)記關(guān)系抽取模型。
整體模型流程示意圖如圖1 所示。在實(shí)線指示的訓(xùn)練階段,首先訓(xùn)練實(shí)體抽取模型TFRM 和USPGM。實(shí)體抽取模型訓(xùn)練結(jié)束后,再使用USPGM 模塊生成用于數(shù)據(jù)增強(qiáng)的偽實(shí)體,并根據(jù)數(shù)據(jù)增強(qiáng)策略生成偽關(guān)系訓(xùn)練樣本。最后LMM 使用數(shù)據(jù)增強(qiáng)后的訓(xùn)練樣本完成關(guān)系分類模型的訓(xùn)練。在虛線指示的測試和抽取階段,LMM 對TFRM 抽取得到的實(shí)體對預(yù)測關(guān)系。
圖1 整體模型流程示意圖Fig.1 Schematic diagram of overall model process
2.2.1 基于Transformer特征讀取的實(shí)體抽取模型
為了更好地捕獲主語頭尾和賓語頭尾的特征,本文設(shè)計(jì)一種基于Transformer 特征讀取的實(shí)體抽取模型。該模型借助Transformer 解碼器單元對實(shí)體類別特征進(jìn)行讀取操作,從而分別獲取相應(yīng)類別的全局特征,并用這些特征增強(qiáng)原有的序列表示。
TFRM 模塊的訓(xùn)練分為兩個階段。如圖2 虛線所示的第一個階段僅包括特征寫入(更新),目的是優(yōu)化主語頭、主語尾、賓語頭、賓語尾的類別特征表示;第二個階段為特征讀取階段,在該階段繼續(xù)更新類別特征,并通過Transformer 解碼器的交叉注意力計(jì)算單元讀取不同實(shí)體的特征,以進(jìn)一步強(qiáng)化相關(guān)的特征表示。
圖2 TFRM示意圖Fig.2 Schematic diagram of TFRM
特征寫入(更新)階段 在圖2 實(shí)線所示的特征寫入階段將實(shí)體分類器的權(quán)重視為實(shí)體的特征,由交叉熵?fù)p失函數(shù)更新主語頭尾、賓語頭尾的特征:
其中:L代表實(shí)體序列預(yù)測的損失函數(shù),lr代表學(xué)習(xí)率,p(yi=e) 表示第i個標(biāo)記預(yù)測結(jié)果屬于類別e的概率,e∈E=
特征讀取階段 本文采用N層TFRU 結(jié)構(gòu)讀取實(shí)體類別特征的信息。每層結(jié)構(gòu)由交叉注意力網(wǎng)絡(luò)和全連接前饋神經(jīng)網(wǎng)絡(luò)兩個子層組成。各子層之間采用殘差連接和正則函數(shù)進(jìn)行連接。
SubLayer 在TFRU 單元中指多頭交叉注意力網(wǎng)絡(luò)或全連接前饋網(wǎng)絡(luò)。其中交叉注意力網(wǎng)絡(luò)的計(jì)算公式如下:
多頭交叉注意力由u個頭的注意力拼接后,再通過一個權(quán)重為W全連接網(wǎng)絡(luò)計(jì)算得到,其中[?。築]是向量的拼接操作。
將讀取到的特征HTFRU和原序列標(biāo)記特征HBERT取平均得到序列的向量表示HMEAN。再經(jīng)由兩個線性變換與ReLU激活函數(shù)構(gòu)成前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Network,F(xiàn)NN)獲得序列最終的特征表示:
解碼 對于TRFU 模塊得到的序列特征,本文使用參數(shù)為F的全連接層得到序列的標(biāo)簽得分。給定閾值α,當(dāng)VScore>α?xí)r,認(rèn)為該標(biāo)記屬于e類型。
解碼算法主要基于貪心的思想。先根據(jù)實(shí)體頭的預(yù)測序列找出實(shí)體片段的起始位置,再從該位置開始遍歷相應(yīng)類別的實(shí)體尾預(yù)測序列,以尋找該實(shí)體片段的結(jié)束位置。在遍歷實(shí)體尾預(yù)測序列的過程中,若發(fā)現(xiàn)了另一個實(shí)體片段的起始標(biāo)記,則舍棄當(dāng)前查詢的實(shí)體片段。具體步驟如下:
輸入 實(shí)體頭預(yù)測標(biāo)記序列Ohead,實(shí)體尾預(yù)測標(biāo)記序列Otail;
2.2.2 關(guān)系負(fù)例自動生成模塊
實(shí)體抽取負(fù)例欠采樣 欠采樣是處理非平衡分類問題時的常用手段,通過對數(shù)量多的一類樣本進(jìn)行少量隨機(jī)選擇,使樣本變得平衡,從而使模型更好地關(guān)注缺少樣本的類別。本文通過對實(shí)體片段的負(fù)例進(jìn)行欠采樣,使得模型更傾向于預(yù)測正例,以獲得更多的偽實(shí)體。這些偽實(shí)體將在后續(xù)的數(shù)據(jù)增強(qiáng)策略中使用,用于生成關(guān)系訓(xùn)練樣本。
在圖3 的例子中,通過枚舉所有可能成為實(shí)體的片段得到共計(jì)個候選實(shí)體片段,其中實(shí)體片段正例樣本集合為Spos,對應(yīng)圖3 中使用條紋填充的片段。負(fù)例樣本集合為Sneg=S/Spos,對應(yīng)圖3 中未使用條紋填充的片段。通過對負(fù)例樣本集合隨機(jī)采樣得到負(fù)例采樣集合Ssample=RandomSampling(Sneg)。最終的實(shí)體訓(xùn)練樣本集合為正例集合與采樣集合的并集,Strain=Spos+Ssanple。
圖3 USPGM示意圖Fig.3 Schematic diagram of USPGM
基于欠采樣的偽實(shí)體生成模型 與基于序列的TFRM不同,USPGM 屬于基于片段的實(shí)體抽取模型,支持識別不同粒度的嵌套實(shí)體。為了讓預(yù)訓(xùn)練模型能提前意識到實(shí)體片段的存在,可將對應(yīng)實(shí)體片段的懸浮標(biāo)記拼接到原始標(biāo)記序列后。
將帶有懸浮標(biāo)簽的序列送入與訓(xùn)練模型后得到對應(yīng)的特征表示H。實(shí)體片段的特征hsipan由頭尾位置處的標(biāo)記和共享位置的懸浮標(biāo)記的特征表示拼接到一起得到,并使用一個全連接層得到該實(shí)體片段的類別。
偽關(guān)系生成策略 數(shù)據(jù)增強(qiáng)的目的是解決關(guān)系分類模型中誤差傳遞導(dǎo)致的假正例問題,并提高模型的精準(zhǔn)率。造成假正例誤差傳遞的關(guān)系組合有以下幾種:主語賓語位置顛倒、主語或賓語邊界不正確、關(guān)系與句子語義無關(guān),以及關(guān)系分類錯誤。
在沒有數(shù)據(jù)增強(qiáng)的情況下,關(guān)系抽取的訓(xùn)練樣本僅包括人工標(biāo)注(ground truth,gt)主語和人工標(biāo)注賓語的笛卡爾乘積,其中T指的是關(guān)系三元組。
本文提供的3 種數(shù)據(jù)增強(qiáng)策略如下。
1)為了提高模型識別主語賓語顛倒的能力,可以使用逆關(guān)系進(jìn)行數(shù)據(jù)增強(qiáng),即將人工標(biāo)注中的主語作為賓語,將賓語作為主語構(gòu)建新的負(fù)例訓(xùn)練樣本。
2)進(jìn)一步地,對于主語賓語顛倒的情況,還可以為逆關(guān)系添加標(biāo)簽Rreverse。例如,在三元組(痛風(fēng)主語,鑒別診斷關(guān)系,RA賓語)的逆關(guān)系上添加偽標(biāo)簽“逆-鑒別診斷關(guān)系”,從而獲得新的訓(xùn)練樣本(R A主語,逆-鑒別診斷關(guān)系,痛風(fēng)賓語),記作Tgt_reverse_label。
3)主語或賓語邊界不正確、關(guān)系分類錯誤的情況通常是由于負(fù)例樣本不足導(dǎo)致的,因此,利用USPGM 生成的偽主語和偽賓語的笛卡爾乘積生成偽關(guān)系樣本:
2.2.3 基于懸浮標(biāo)記關(guān)系抽取模型
如表1 所示,使用增廣策略進(jìn)行訓(xùn)練后的訓(xùn)練樣本數(shù)是原模型的7 倍,給模型訓(xùn)練帶來時間和資源上的浪費(fèi)。然而,醫(yī)療文本常圍繞同一實(shí)體介紹知識,通常多個賓語共用同一個主語。從表1 可以看出,賓語數(shù)大于主語數(shù),且一段文本中通常只有一個主語。因此,只將主語的實(shí)際標(biāo)記x,x插入原始輸入中,而對于相同主語的賓語,則使用懸浮標(biāo)記以提高計(jì)算速度。
表1 實(shí)驗(yàn)中使用的CMeIE數(shù)據(jù)集信息Tab.1 Information of CMeIE dataset used in experiment
同時,為了避免懸浮標(biāo)記對原輸入帶來噪聲,或者不同賓語的懸浮標(biāo)記之間產(chǎn)生噪聲,在預(yù)訓(xùn)練模型處采用有向注意力掩碼。每個懸浮標(biāo)記只會對它相匹配的懸浮標(biāo)記可見,而不會對正文的字符或其他懸浮標(biāo)記可見。LMM 中的掩碼矩陣如圖4 所示。
圖4 LMM中的注意力掩碼矩陣Fig.4 Attention mask matrix in LMM
主語和賓語的特征表示分別用與它對應(yīng)標(biāo)記的頭尾特征表示拼接得到,使用全連接層分別得到它們的關(guān)系分類得分,關(guān)系分類的最終得分為主語和賓語得分之和。
本文的實(shí)驗(yàn)評估在CBLUE(Chinese Biomedical Language Understanding Evaluation)的 CMeIE(Chinese Medical Information Extraction)數(shù)據(jù)集(數(shù)據(jù)集網(wǎng)址https://tianchi.aliyun.com/dataset/95414)上進(jìn)行。CBLUE 是國內(nèi)首個醫(yī)療信息處理領(lǐng)域公開的基準(zhǔn)數(shù)據(jù)集,CMeIE 是CBLUE 數(shù)據(jù)集中的一個子任務(wù),該數(shù)據(jù)集是由2 位來自三甲醫(yī)院的專家和20名碩博研究生進(jìn)行標(biāo)注的醫(yī)學(xué)領(lǐng)域數(shù)據(jù)集,其中設(shè)計(jì)了53 類關(guān)系。表1提供了CMeIE數(shù)據(jù)集的詳細(xì)數(shù)據(jù)分布情況。
由于CMeIE 只提供關(guān)系三元組信息,沒有提供實(shí)體在句子中的具體位置,需要先通過預(yù)處理確定實(shí)體具體位置。默認(rèn)從左到右找到第一個匹配實(shí)體位置作為標(biāo)準(zhǔn)答案。在經(jīng)過標(biāo)記解析器分詞之后,截取最大標(biāo)記序列長度到128。從訓(xùn)練集中剔除超過該長度實(shí)體和包含該實(shí)體的關(guān)系樣本,但測試時仍會考慮這部分?jǐn)?shù)據(jù)。
本文模型均使用BERT-base-Chinese[30]作為預(yù)訓(xùn)練模型,采用AdamW 作為優(yōu)化器,并用預(yù)熱策略進(jìn)行訓(xùn)練。對于基于實(shí)體片段的模型需要設(shè)置最大片段長度。如圖5 所示,大多數(shù)實(shí)體的長度集中在1~10。本文將最大實(shí)體片段長度設(shè)為20,可以覆蓋99.96%的實(shí)體。對于TFRM,TFRU 層數(shù)設(shè)置為2,特征讀取開始的Epoch 設(shè)置為5。其他具體實(shí)驗(yàn)參數(shù)如表2 所示。
表2 實(shí)驗(yàn)參數(shù)詳情Tab.2 Details of experimental parameters
本文采用精確率P(Precision)、召回率R(Recall)以及F1(F1 值)作為實(shí)體關(guān)系抽取的評價(jià)指標(biāo)。這些指標(biāo)在CMeIE的dev 數(shù)據(jù)集上通過微平均的方式計(jì)算,具體公式如下:
其中:TP指正確識別的實(shí)體或關(guān)系數(shù);FP表示預(yù)測為某一類型但識別錯誤的實(shí)體或關(guān)系數(shù),即假正例;FN表示未能預(yù)測出的實(shí)體或關(guān)系數(shù)。
為了驗(yàn)證本文模型的有效性,將它與基于預(yù)訓(xùn)練的實(shí)體關(guān)系抽取基線模型進(jìn)行對比。
3.4.1 基線模型
1)SpERT[19]是一種實(shí)體關(guān)系聯(lián)合抽取模型。在實(shí)體抽取模塊中將實(shí)體片段的最大池化特征、長度特征以及“[CLS]”標(biāo)記的全局特征拼接起來,作為實(shí)體的特征表示。在關(guān)系抽取部分,首先通過實(shí)體篩選器篩選出得分大于閾值的主語和賓語,然后將主語和賓語的最大池化特征、長度特征和兩個實(shí)體之間的上下文特征拼接起來,作為這組關(guān)系的特征表示。
2)PURE(Princeton University Relation Extraction)系 統(tǒng)[2]屬于流水線式實(shí)體關(guān)系抽取模型。在實(shí)體抽取部分,將實(shí)體的頭尾字符特征拼接起來,并通過一個兩層的前饋網(wǎng)絡(luò)進(jìn)行分類,從而得到實(shí)體的表示;在關(guān)系抽取部分,在主語和賓語的位置同時插入標(biāo)記,并將標(biāo)記處的特征拼接起來,再通過全連接層進(jìn)行分類。
3)PL-Marker(Packed Levitated Marker)[3]屬于流水線式的實(shí)體關(guān)系抽取模型。在實(shí)體抽取部分,相同起始位置的實(shí)體片段的懸浮標(biāo)簽被打包在一起作為一個樣例,實(shí)體片段頭尾和對應(yīng)懸浮標(biāo)記拼接的特征被用于分類。在關(guān)系抽取部分,使用主語處的實(shí)標(biāo)記和賓語的懸浮標(biāo)記進(jìn)行分類。
4)CBLUE[31]同樣屬于流水線式的實(shí)體關(guān)系抽取模型。其中實(shí)體抽取任務(wù)被視為序列預(yù)測任務(wù),對每個標(biāo)記的特征使用全連接分類器進(jìn)行預(yù)測。而關(guān)系抽取任務(wù)和PURE 的處理方式類似。
3.4.2 性能提升
實(shí)體關(guān)系抽取的實(shí)驗(yàn)結(jié)果如表3 所示,本文模型相較于之前的工作性能顯著提高。相較于基線模型PL-Marker,實(shí)體抽取部分的TFRM 的F1 值提升了2.26%;而實(shí)體關(guān)系抽取整體F1 值提升了5.45%,精準(zhǔn)率提升了15.62%。這些結(jié)果表明,通過數(shù)據(jù)增強(qiáng),模型能夠更好地解決誤差傳遞問題,并針對實(shí)體抽取中得到的錯誤實(shí)體做出更加精準(zhǔn)的判斷。
表3 各模型總體實(shí)驗(yàn)結(jié)果比較 單位:%Tab.3 Comparison of experimental results among different models unit:%
為了更深入地分析本文模型各個組件的有效性,進(jìn)行了消融實(shí)驗(yàn)。為了避免其他因素對模型的影響,本文在所有的消融實(shí)驗(yàn)中未提及的參數(shù)與表2 中的設(shè)置保持一致。
3.5.1 負(fù)例欠采樣
在實(shí)體抽取階段,不同的負(fù)采樣率同樣會影響模型的效果。根據(jù)圖6 采樣數(shù)-模型性能曲線,隨著采樣數(shù)的增加,模型的精準(zhǔn)率和F1 值逐漸提高,但是召回率卻不斷降低。這表明可以通過欠采樣的方式提高模型的召回能力,生成盡可能全面的偽實(shí)體。最終選擇采樣數(shù)為128 的模型生成偽實(shí)體。在該采樣數(shù)下,模型的召回率較高,且精準(zhǔn)率也超過了60%,不會引入過多低質(zhì)量的偽實(shí)體。
圖6 采樣數(shù)-模型性能折線圖Fig.6 Sampling number-model performance line chart
3.5.2 TFRM
為了驗(yàn)證實(shí)體抽取模型TFRM 的有效性,比較了使用相同關(guān)系抽取模型但不同實(shí)體抽取模型的效果。如表4 所示,相較于PURE、PL-Marker 和CBLUE 提出的模型,本文提出的TFRM 在F1 值上分別提高了3.15、2.03 和0.61 個百分點(diǎn)。對于TFRM 的核心模塊TFRU,由表5 可見,添加該模塊后模型的精準(zhǔn)率有了顯著提高,對于使用不同層數(shù)TFRU 的模型,使用2 層的模型召回率較高,且最終應(yīng)用于關(guān)系分類模型的效果較好。值得注意的是,對比未使用TFRU 的模型,雖然模型的精準(zhǔn)率得到了較大程度的提升,但最終對于關(guān)系分類精準(zhǔn)率的提升的貢獻(xiàn)并沒有特別顯著。可能的原因是本文提出的數(shù)據(jù)增強(qiáng)模塊提高了關(guān)系分類模型鑒別實(shí)體抽取部分錯誤信息的能力。
表4 實(shí)體抽取模型實(shí)驗(yàn)結(jié)果比較 單位:%Tab.4 Comparison of experimental results of entity extraction models unit:%
表5 TFRU模塊參數(shù)對比實(shí)驗(yàn)結(jié)果 單位:%Tab.5 Comparison experiment results of TFRU module parameters unit:%
TFRU 注意力模塊可以為不同實(shí)體類型提供針對性的全局信息。以圖7 所示的2 層TFRU 模塊的權(quán)重分布情況為例,layer0 用于獲取低層次的全局上下文信息,而第1 層的權(quán)重分布差異較大,能夠針對實(shí)體類型的不同關(guān)注句子中不同的位置。通過注意力可視化可以發(fā)現(xiàn)模型能夠根據(jù)上下文信息有效地去除不相關(guān)實(shí)體(圖7(a)所示)。如果不使用TFRU,對于賓語,會額外得到“肝功能障礙”“低血糖”兩個假正例的賓語。從整個句子的分析可以推斷出,該語句主要關(guān)注的是和“檢查”相關(guān)的實(shí)體。在TFRU 的第1 層實(shí)體頭特征讀取時,對于假正例實(shí)體的關(guān)注較弱,但它會根據(jù)上下文強(qiáng)化對正確答案“電解質(zhì)測試”的關(guān)注。另外,TFRU 可以正確識別醫(yī)學(xué)文本中大量短語類的長實(shí)體和嵌套實(shí)體(如圖7(b)所示)。若不加入TFRU 機(jī)制,模型抽取的賓語是“免疫力低下”,而根據(jù)文本分析,正確的賓語應(yīng)該是“免疫力低下患者”??梢钥闯鲈趯?shí)體頭讀取過程中,第1 層對于“者”的關(guān)注更強(qiáng),從而修正了錯誤。
圖7 TFRU注意力可視化Fig.7 TFRU attention visualization
3.5.3 關(guān)系負(fù)例自動生成模塊
為了證明關(guān)系負(fù)例自動生成模塊的有效性,進(jìn)行了消融實(shí)驗(yàn),比較了負(fù)例生成模型和偽關(guān)系生成策略對于模型性能的影響。如表6 所示,當(dāng)移除所有數(shù)據(jù)增強(qiáng)數(shù)據(jù)時,模型的F1 值下降了3.24 個百分點(diǎn),而精準(zhǔn)率下降了11.26 個百分點(diǎn)。
表6 關(guān)系負(fù)例自動生成模塊消融實(shí)驗(yàn)結(jié)果Tab.6 Ablation experimental results of automatic generation module of relation negative examples
關(guān)系負(fù)例自動生成模塊由模型和增強(qiáng)策略兩部分組成,本文分別分析了這兩個部分對于模型性能的影響。
不同的增強(qiáng)策略 如表6 所示,采用增強(qiáng)策略1:Tgt+Tgt_reverse后,模型的F1 值提升了1.27 百分點(diǎn);采用增強(qiáng)策略2:Tgt+Tgt_reverse_label則提升了1.02 百分點(diǎn);而僅使用增強(qiáng)策略3:Tgt+TUSPGM_pseudo則提升了2.15 個百分點(diǎn)。其中,增強(qiáng)策略3由于使用了額外的偽實(shí)體,對F1 值提升的效果最佳。相比增強(qiáng)策略1,增強(qiáng)策略2 雖然增加了逆關(guān)系標(biāo)簽這一額外信息,但表現(xiàn)更差,原因在于在最后的分類階段,分類器需要考慮的關(guān)系類型翻倍,因而在優(yōu)化過程中對于逆關(guān)系的關(guān)注影響了正常關(guān)系的判斷。對比不同增強(qiáng)策略的組合效果,其中策略2 和策略3 的組合效果最佳。
偽實(shí)體生成的模型 基于USPGM 生成的偽實(shí)體的數(shù)據(jù)增強(qiáng)數(shù)據(jù)TUSPGM_pseudo相較于未采用欠采樣機(jī)制的偽實(shí)體生成模型生成的Tpseudo,單獨(dú)使用和組合使用時,F(xiàn)1 值分別提高了0.3 和1.13 個百分點(diǎn),其中精準(zhǔn)率分別提高了7.2 和7.03 個百分點(diǎn)。
案例分析 關(guān)系負(fù)例自動生成模塊對于關(guān)系抽取的提升體現(xiàn)在兩個方面。
1)可以提高關(guān)系模型對于實(shí)體抽取階段錯誤主語和賓語的糾正能力。如表7 所示,未使用數(shù)據(jù)增強(qiáng)的模型在案例一中錯誤地將“吉蘭-巴雷綜合征的特殊亞型”作為主語抽取,并在案例二中錯誤地將“地高辛”作為賓語識別。然而,通過語境可以發(fā)現(xiàn)這兩個實(shí)體之間的關(guān)系在文本中并沒有被明確提及,本文模型可以正確地進(jìn)行預(yù)測。
表7 案例分析Tab.7 Case analysis
2)可以糾正模型對于正確實(shí)體的假正例或分類出錯的情況,提高模型的精準(zhǔn)率。在表7 的案例二中,未使用數(shù)據(jù)增強(qiáng)的模型錯誤地將關(guān)系類型識別為(室上速主語,同義詞關(guān)系,室性心動過速賓語),屬于分類出錯的情況。另外,在案例二中,(室上速主語,同義詞關(guān)系,室速賓語)則是一個假正例。
3.5.4 基于懸浮標(biāo)記關(guān)系抽取模型
如表6 所示,基于懸浮標(biāo)記的關(guān)系抽取模型的訓(xùn)練速度相較于傳統(tǒng)實(shí)標(biāo)記的模型提升了3.2 倍。但在模型性能方面,由于基于懸浮標(biāo)記的模型主語處使用實(shí)標(biāo)記而賓語處使用懸浮標(biāo)記,導(dǎo)致主語和賓語特征表示的能力不平衡。雖然懸浮標(biāo)記沒有對輸入造成侵入性的修改,但同時降低了對預(yù)訓(xùn)練模型的提示能力,使得當(dāng)賓語信息較少時,僅使用Tgt的情況下,基于懸浮標(biāo)記的模型的F1 值略低于基于實(shí)標(biāo)記的模型。然而,當(dāng)使用由USPGM 生成的樣本進(jìn)行數(shù)據(jù)增強(qiáng)后,賓語的多樣性和數(shù)量的增加彌補(bǔ)了使用懸浮標(biāo)記帶來的性能影響。特別是在使用TUSPGM_pseudo增強(qiáng)策略時,基于懸浮標(biāo)記的模型的F1 值均超過了基于實(shí)標(biāo)記的模型。
本文提出并驗(yàn)證了一種基于偽實(shí)體數(shù)據(jù)增強(qiáng)的高精度醫(yī)療實(shí)體關(guān)系抽取框架,并對實(shí)體抽取和關(guān)系分類兩個階段進(jìn)一步優(yōu)化。模型在公開醫(yī)學(xué)關(guān)系抽取數(shù)據(jù)集CMeIE 表現(xiàn)出較好的性能,F(xiàn)1 提升了5.45%,精準(zhǔn)率提升了15.62%。
本文提出的框架主要包括3 個部分:1)針對實(shí)體關(guān)系流水線框架存在誤差傳遞的缺陷,在經(jīng)典的流水線模型的基礎(chǔ)上插入關(guān)系負(fù)例自動生成模塊。使用欠采樣的偽實(shí)體生成模型獲取用于數(shù)據(jù)增強(qiáng)的偽實(shí)體,并提供了三種數(shù)據(jù)增強(qiáng)的策略。消融實(shí)驗(yàn)結(jié)果表明,基于欠采樣模型生成的偽實(shí)體對于關(guān)系分類模型的性能的提升更大,尤其在精準(zhǔn)率指標(biāo)上模型提升幅度較大,證明欠采樣模型可以生成更加多元和全面的偽實(shí)體。由三種不同的數(shù)據(jù)增強(qiáng)策略生成的增強(qiáng)數(shù)據(jù),都對于關(guān)系分類任務(wù)性能有著不同程度的提升,其中Tgt+Tgt_reverse+TUSPGM_pseudo的組合方式取得了最好的效果。說明這種數(shù)據(jù)增強(qiáng)的組合下,數(shù)據(jù)可以更全面地為關(guān)系分類模型提供主語賓語顛倒、主語或賓語邊界不對、關(guān)系分類錯等情況的負(fù)樣本。2)提出了基于Transformer 特征讀取的實(shí)體抽取模型。TFRU 單元通過讀取不同實(shí)體類別的特征信息強(qiáng)化相應(yīng)類別的序列特征表示,實(shí)驗(yàn)和可視化結(jié)果表明該模塊可以有效捕獲全局類別信息,解決醫(yī)學(xué)實(shí)體長、密度大、干擾多的問題,提高實(shí)體抽取的精準(zhǔn)率。3)為緩解數(shù)據(jù)增強(qiáng)帶來的時間成本劇增的問題,選用懸浮標(biāo)記批量打包同主語的關(guān)系,通過一種非侵入式的方式將相同主語的賓語信息拼接到一條訓(xùn)練樣本中,通過實(shí)驗(yàn)證明該模型的訓(xùn)練速度提高了3.2倍,且在訓(xùn)練數(shù)據(jù)充足的情況下,模型的性能甚至略優(yōu)于基于實(shí)標(biāo)記的模型。
在未來的工作中,將進(jìn)一步提高模型的精準(zhǔn)率。目前本文所使用的數(shù)據(jù)增強(qiáng)算法并沒有引入額外的知識,然而在研究中發(fā)現(xiàn),存在大量實(shí)體和關(guān)系在缺乏先驗(yàn)知識的情況下僅依靠上下文或其他訓(xùn)練樣本無法得到準(zhǔn)確信息,如對缺乏醫(yī)學(xué)專業(yè)知識的人,很可能認(rèn)為“顱內(nèi)出血”是一個“癥狀”而非“疾病”。因此如何將額外的醫(yī)學(xué)知識引入到模型中,將是未來亟待解決的問題。