安宏達,李正光,2,吳鏑,鄭巍
(1.大連交通大學 軟件學院,遼寧 大連 116028;2.大連理工大學 計算機科學與技術學院,遼寧 大連 116023 )*
近年來,隨著醫(yī)學信息的快速發(fā)展積累了越來越多的醫(yī)學文本,然而在這些龐大的數(shù)據(jù)中經(jīng)常會有很多語義相近但文本描述卻截然不同的句子,這無疑給醫(yī)學研究帶來很多不必要的麻煩.文本語義相似性評估成為解決這一問題的主要技術.
文本相似性,指的是對文本或句子之間相似程度的評價.最早的評估方法主要利用信息檢索技術[1]等從文檔中抽取文本結構,然后預測文本相似性.除此之外,還有詞頻共現(xiàn)自動評估算法[2]、單詞(或字)與文本混合評估、短文本語義相似性抽取[3]等方法.這些方法都是通過檢索或者神經(jīng)網(wǎng)絡的方法分別抽取兩個句子的相似特征進行比較,但是這些方法只是單獨抽取每個句子的相似特征,在抽取特征時沒有考慮到兩個句子間的影響.
孿生網(wǎng)絡[4]通過兩個共享參數(shù)的子網(wǎng)絡同時抽取兩個輸入句子的語義特征對句子的相似性進行評估.不過,孿生網(wǎng)絡結構在文本相似問題上雖然優(yōu)于信息檢索和詞頻共現(xiàn)的方法,但是它仍有很大的提升空間.注意力機制可以對孿生網(wǎng)絡輸出的兩個語義特征再次加工,將與語義相關的特征放大,把無關的噪音縮小,這無疑可以提高預測的準確率.注意力機制主要可分為自注意力機制[5]和交互式注意力機制.自注意力機制可以將自身文本中有用的部分擴大,無用的部分縮小,以此讓模型快速學習到有用的特征,其主要應用在文本分類[6]、命名實體識別等任務.交互式注意力機制則是增強兩個句子間的相關語義特征,以提高兩個句子間語義相似的部分.
本文提出了一種基于注意力機制的孿生網(wǎng)絡,網(wǎng)絡結構如圖1所示.整個網(wǎng)絡結構可分為輸入層、嵌入層、孿生網(wǎng)絡層、注意力層和語義距離計算(圖中的注意力層展示了自注意力機制和交互式注意力機制,這兩個機制之間沒有關系),本部分將主要針對這五個網(wǎng)絡層進行介紹.

圖1 基于注意力機制的孿生網(wǎng)絡
本文在實驗中使用DBMI和SICK數(shù)據(jù)集:
(1)DBMI數(shù)據(jù):DBMI評測中任務一“Clinical Semantical Textual Similarity”(簡稱ClinicalSTS)的數(shù)據(jù)集,是關于臨床醫(yī)療文本的文本相似性評估數(shù)據(jù).DBMI數(shù)據(jù)集包含訓練集1400條,測試集412條.驗證集255條.數(shù)據(jù)集中的標簽為0~5之間的小數(shù),標簽中分數(shù)越大說明兩個句子的語義相關性越大,反之則越小.
(2)SICK數(shù)據(jù):SICK(Sentences Involving Compostional Knowledge)數(shù)據(jù)集將每個句子對及其相應分數(shù)作為一條數(shù)據(jù),其中包含訓練集4500條,測試集4805條以及試驗集500條.數(shù)據(jù)集中的標簽為1~5之間的小數(shù),其余與DBMI數(shù)據(jù)相似.
在數(shù)據(jù)預處理方面為方便數(shù)據(jù)集轉換,本文在實驗中將DBMI與SICK的標簽同比例縮小為0~1之間的小數(shù).除此之外,由于SICK數(shù)據(jù)中訓練集數(shù)量小于測試集數(shù)據(jù)的數(shù)量,我們對數(shù)據(jù)集進行了調整.最后實驗中訓練集6000條、驗證集1235條、測試集2570條.
詞向量(Word embedding)又被叫做詞嵌入,是一種將詞語或單詞轉化為數(shù)值向量(Vector)的過程.句子中的每個單詞通過預訓練被表示成一個實數(shù)值向量,再將同一個句子中的所有向量表示組合到一起成為一個可以表示句子語義特征的矩陣.相比較于其他的文本表示方法,詞向量模型的向量表示所包含的語義信息更加豐富.因為實驗數(shù)據(jù)為醫(yī)學類數(shù)據(jù),因此本文選用Pubmed 詞向量,該工具使用對Pubmed上醫(yī)學論文的標題和摘要進行訓練得到.本文在實驗中選用Pubmed 2018版400維的詞向量.
孿生網(wǎng)絡(Siamese network)是一種可以共享神經(jīng)網(wǎng)絡參數(shù)的網(wǎng)絡框架,在這個框架內擁有兩個共享參數(shù)并且結構相同的子網(wǎng)絡.孿生網(wǎng)絡結構主要應用于對輸入序列的相似性預測,兩個子網(wǎng)絡的輸入X與Y分別對應預測相似性的兩個序列.通過子網(wǎng)絡訓練捕捉語義信息得到語義特征G(X)與G(Y),而語義特征就是判斷兩個句子語義相似性的依據(jù).
對于孿生網(wǎng)絡的子網(wǎng)絡,由于選擇的數(shù)據(jù)多屬于像臨床醫(yī)學文本這樣的長篇幅句子,而循環(huán)網(wǎng)絡在處理長度大的序列效果更好.本文選擇的孿生網(wǎng)絡框架子網(wǎng)絡就是在循環(huán)網(wǎng)絡中表現(xiàn)較好的Bi-LSTM(Bi-directional Long Short-Term Memory)網(wǎng)絡.Bi-LSTM由前向LSTM和后向LSTM組成,LSTM(Long Short-Term Memory)模型結構可分為遺忘門,記憶門和輸出門,模型通過遺忘門將無用信息丟棄,通過記憶門保存有用信息,最后由輸出門輸出結果,具體公式如下:
(1)

孿生網(wǎng)絡的兩個輸出雖然可以分別表示兩個輸入句子的語義,但是由于句子中往往會存在很多的噪音,從而導致結果并不理想.為解決這一問題,本文引進注意力機制(Attention mechanism).注意力機制可以對孿生網(wǎng)絡輸出的兩個語義特征再次加工,通過訓練注意力權重(Attention weight)擴大語義相關的部分,減小與語義無關的噪音,將噪音對語義特征的影響降到最低.注意力機制主要可分為自注意力機制(Self attention mechanism)和交互式注意力機制(Interactive attention mechanism).本文在實驗中使用了一種自注意力機制的網(wǎng)絡和三種交互式注意力機制的網(wǎng)絡.其中的三種交互式注意力機制分別為交互式注意力網(wǎng)絡(Interactive attention network)、混合交互式注意力網(wǎng)絡(Merge interactive attention network)、單獨交互式注意力網(wǎng)絡(Single interactive attention network).
1.4.1 自注意力網(wǎng)絡(Self attention network)
自注意力網(wǎng)絡是通過計算輸入X=[x1,x2,x3,…,xi](i∈[1,N])中每一個單詞xi對句子中其它單詞的權重α,來預測xi在X中的影響程度,其中α=[α1,α2,α3,…,αi](i∈[1,N]),N表示輸入X的長度,權重αi的計算公式如下:
(2)
其中,f表示分數(shù)計算函數(shù),計算公式如下:
f(xi)=tanh(xi·W+b)
(3)
式中,tanh表示激活函數(shù),W表示權重矩陣,b表示偏執(zhí)項,xi表示分數(shù)計算函數(shù)f的輸入.
最后,將得到ci=αixi,而自注意力網(wǎng)絡輸出C表示如下:
(4)
C就是自注意力網(wǎng)絡的輸出,表示輸入序列X中的每一個單詞按照影響程度放大或縮小后的結果.
1.4.2 交互式注意力網(wǎng)絡
交互式注意力網(wǎng)絡[8]計算過程與自注意力網(wǎng)絡相似.X=[x1,x2,x3,…,xi](i∈[1,N])表示句子A的序列,Y=[y1,y2,y3,…,yi](i∈[1,N])表示句子B的序列,α是X的注意力權重,β是Y的注意力權重:
(5)
f(xi,yavg)和f(yi,xavg)分別表示序列X和Y的分數(shù)計算函數(shù),計算公式如下:
(6)

(7)
Cx是序列X的注意力網(wǎng)絡輸出,Ty是序列Y的輸出,最后將Cx和Ty放入到曼哈頓距離公式中計算兩個序列X與Y的差異.
1.4.3 混合交互式注意力網(wǎng)絡
混合交互式注意力網(wǎng)絡相比于交互式注意力網(wǎng)絡(IAN)不再區(qū)分序列X和Y的注意力權重,而是兩個序列X和Y分別乘以相同的混合注意力權重,這種乘以相同的權重矩陣的方法可能會增強兩個句子間的語義關聯(lián)度.具體運算公式如下:
(8)
其中,Wx和Wy表示X和Y的權重矩陣,Wmerge表示X和Y混合特征的權重矩陣,bmerge為偏執(zhí)項.
1.4.4 單獨交互式注意力網(wǎng)絡
在實驗中,由于兩個輸入序列的分數(shù)計算函數(shù)相似,在計算序列差異上會有影響,單獨交互式注意力網(wǎng)絡將序列X乘以序列Y的自注意力權重,反之亦然.其余計算與自注意力網(wǎng)絡相同.
(9)
其中,β是序列Y的自注意力權重,α是序列X的自注意力權重,Cx和Ty分別表示序列X和序列Y的單獨交互式注意力網(wǎng)絡輸出.
在得到經(jīng)過注意力機制增強后的兩個語義表示后,用曼哈頓距離公式計算兩個句子的語義距離,并以此作為句子對語義相似性的依據(jù).
本文實驗使用Ubuntu 18.04系統(tǒng),Python 3.7.3,tensorflow 1.14.0以及Keras 2.1.5,具體試驗參數(shù)如表1所示.

表1 實驗參數(shù)設置
實驗中所用參數(shù)如表1所示,參數(shù)因為DBMI數(shù)據(jù)集和SICK數(shù)據(jù)集的差異性而略作調整.由于SICK數(shù)據(jù)中的句子普遍比DBMI數(shù)據(jù)短,所以降低了序列長度和孿生網(wǎng)絡子網(wǎng)絡這個兩層Bilstm的單元(Units)個數(shù).同時因為SICK數(shù)據(jù)中的訓練集數(shù)量明顯高于DBMI數(shù)據(jù),所以提高了每一批次的大小(batch size).
在本部分將使用DBMI數(shù)據(jù)對方法中的四種注意力網(wǎng)絡進行實驗結果對比,其中的孿生網(wǎng)絡(SN)為實驗的基線方法(孿生網(wǎng)絡中的子網(wǎng)絡采用兩層Bilstm網(wǎng)絡),其余方法分別為孿生網(wǎng)絡加自注意力網(wǎng)絡(SN-SAN)、孿生網(wǎng)絡加交互式注意力網(wǎng)絡(SN-IAN)、孿生網(wǎng)絡加混合交互式注意力網(wǎng)絡(SN-MIAN)、孿生網(wǎng)絡加單獨交互式注意力網(wǎng)絡(SN-SIAN).
表2是對四種注意力網(wǎng)絡的試驗結果對比,評價方法分別為皮爾森相關系數(shù)(Pearson)、斯皮爾曼相關系數(shù)(Spearman)和均方差(MSE).通過

表2 DBMI注意力網(wǎng)絡結果對比
對表中數(shù)據(jù)分析可知,注意力機制對實驗結果有很大提升,本文提出的孿生網(wǎng)絡加交互式注意力網(wǎng)絡(SN-IAN)要優(yōu)于其它方法,并且相比于孿生網(wǎng)絡(SN)皮爾森相關系數(shù)提升了0.27.
因為DBMI數(shù)據(jù)暫時還沒有發(fā)布評測結果,所以用SICK數(shù)據(jù)與其他方法比較.目前使用SICK數(shù)據(jù)的文章有很多,我們在其中選擇pos-LSTM-n[9]、Multi-Perspective CNN[10]、Siamese GRU Model[11]這三種方法與我們的方法做對比.

表3 SICK數(shù)據(jù)其它方法結果對比
對表3的結果分析可知,孿生網(wǎng)絡加注意力機制的結果要優(yōu)于使用SICK數(shù)據(jù)的其它方法,而本文提出的SN-IAN優(yōu)于其它方法,并且在皮爾森相關系數(shù)上的結果比SN高0.07,證明我們提出的方法是有效的. 此外,本文所使用的孿生網(wǎng)絡(SN)的內層網(wǎng)絡為BiLSTM且皮爾森系數(shù)高于使用門控循環(huán)單元(GRU)作為內層網(wǎng)絡的孿生網(wǎng)絡模型(Siamese GRU Model),證明BiLSTM網(wǎng)絡作為孿生網(wǎng)絡的內層網(wǎng)絡要優(yōu)于GRU網(wǎng)絡.
通過實驗結果對比以及數(shù)據(jù)分析,可以得出以下結論.
(1)對孿生網(wǎng)絡輸出的語義特征用注意力網(wǎng)
絡進行加工處理對于孿生網(wǎng)絡的實驗結果有提升作用且效果很大;
(2)在文本相似性任務中,交互式注意力機制的效果要比自注意力機智的效果更好;
(3)在交互式注意力機制中,交互式注意力網(wǎng)絡要比混合交互式注意力網(wǎng)絡與單獨交互式注意力網(wǎng)絡效果更好.