謝斌紅, 李 玉, 趙紅燕
(太原科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山西 太原 030024)
關(guān)系抽取(Relation Extraction, RE)旨在從純文本中抽取兩個(gè)實(shí)體之間的關(guān)系,并以
現(xiàn)有的關(guān)系抽取方法取得了很大的進(jìn)展,可以有效學(xué)習(xí)出句子中實(shí)體間的語義關(guān)系,但大多基于有監(jiān)督的模型,需要大量的標(biāo)注數(shù)據(jù),而高質(zhì)量的標(biāo)注數(shù)據(jù)往往需要耗費(fèi)大量的人力。為了降低人工標(biāo)注成本,Mintz[1]提出用遠(yuǎn)程監(jiān)督方法自動(dòng)生成訓(xùn)練數(shù)據(jù),其假設(shè)如果兩個(gè)實(shí)體在知識(shí)庫中存在某種關(guān)系,那么包含該實(shí)體對(duì)的所有句子都將表達(dá)這種關(guān)系。還有幾種半監(jiān)督方法,包括Bootstrapping、主動(dòng)學(xué)習(xí)和標(biāo)簽傳播。盡管如此,上述方法都只能提取那些出現(xiàn)在人工標(biāo)注數(shù)據(jù)集或知識(shí)庫中的預(yù)定義關(guān)系,而卻難以涵蓋開放域語料庫中大量新穎的關(guān)系事實(shí)。
開放關(guān)系抽取(OpenRE)旨在從開放域語料庫中提取關(guān)系事實(shí),其中關(guān)系類型可能沒有預(yù)定義。一些研究主要使用啟發(fā)式或通過遠(yuǎn)程監(jiān)督的外部標(biāo)簽從開放域語料庫中識(shí)別關(guān)系短語,然后識(shí)別實(shí)體對(duì)[2-3],例如,Banko等人[4]直接從句子中提取單詞或短語來表示新的關(guān)系類型。然而,有些關(guān)系不能用句子中的詞語明確表示,因此很難將具有完全相同含義的不同短語對(duì)齊,如在“Joanne abandoned Steve Jobs when he was born.”這句話中,“Joanne”和“Steve Jobs”之間是父子關(guān)系,但在句子中卻沒有相應(yīng)的詞語能夠顯式說明這種關(guān)系?;诰垲惖年P(guān)系抽取模型由于能夠在很少甚至不需要人工干預(yù)的情況下從句子的語義特征中識(shí)別出實(shí)體之間的關(guān)系而備受關(guān)注。之前基于聚類的OpenRE方法[5-8]大多是無監(jiān)督的,不能有效選擇有意義的關(guān)系模式并丟棄無關(guān)信息。為此,Wu等[9]提出關(guān)系知識(shí)遷移系統(tǒng)RSNs,利用預(yù)定義關(guān)系的高質(zhì)量標(biāo)注數(shù)據(jù)來實(shí)現(xiàn)OpenRE。Hu等[10]的自監(jiān)督學(xué)習(xí)框架SelfORE利用聚類生成偽標(biāo)簽并用于訓(xùn)練關(guān)系分類器,通過分類誤差引導(dǎo)編碼器學(xué)習(xí)更好的特征表示再次用于聚類,但是由于偽標(biāo)簽生成方法的準(zhǔn)確率較低,因此性能不佳。
為了進(jìn)一步降低人工標(biāo)注的成本,同時(shí)獲得高質(zhì)量的監(jiān)督信息以進(jìn)行開放關(guān)系抽取,本文提出了一種無監(jiān)督集成聚類框架UEC。該框架從數(shù)據(jù)本身出發(fā),首先提取句子上下文特征,然后使用無監(jiān)督集成學(xué)習(xí)網(wǎng)絡(luò)的輸出構(gòu)建句子關(guān)系相似圖,并應(yīng)用規(guī)則對(duì)圖進(jìn)行裁剪和聚類,形成k個(gè)關(guān)系簇,進(jìn)而從中生成高置信度的偽標(biāo)記關(guān)系樣本,最后通過多次半監(jiān)督聚類來提高無監(jiān)督聚類性能。UEC包括兩個(gè)模塊: 關(guān)系編碼模塊和集成聚類模塊。關(guān)系編碼模塊使用卷積梯形網(wǎng)絡(luò)(Convolutional Ladder Network, CLN)學(xué)習(xí)句子的上下文特征并對(duì)實(shí)體間的關(guān)系進(jìn)行預(yù)測(cè)。集成聚類模塊旨在使用CLN的集成執(zhí)行聚類過程,以確定句子所屬的關(guān)系簇,它把半監(jiān)督聚類作為橋梁,采用迭代的方式逐步提高偽標(biāo)簽質(zhì)量和聚類準(zhǔn)確度。
綜上所述,本文的主要貢獻(xiàn)如下:
(1) 提出了一種新的無監(jiān)督聚類框架UEC,用于開放域關(guān)系抽取,該框架能有效發(fā)現(xiàn)無標(biāo)記文本中的關(guān)系類型。
(2) 實(shí)驗(yàn)結(jié)果表明,與現(xiàn)有先進(jìn)模型相比,UEC在F值方面有顯著改善。
關(guān)系抽取是自然語言處理中的一項(xiàng)重要任務(wù),旨在識(shí)別句子中兩個(gè)實(shí)體之間的關(guān)系。傳統(tǒng)的關(guān)系抽取方法主要是有監(jiān)督的分類模型,需要一組預(yù)定義的關(guān)系標(biāo)簽和大量的標(biāo)注數(shù)據(jù),這使得它們不太適用于開放域語料庫。遠(yuǎn)程監(jiān)督[1]是一種廣泛采用的減少人工標(biāo)注的方法,通過在語料庫和知識(shí)庫之間對(duì)齊實(shí)體來自動(dòng)生成關(guān)系標(biāo)簽,然而,遠(yuǎn)程監(jiān)督仍然局限于知識(shí)庫中的已知關(guān)系,無法有效獲取文本中蘊(yùn)含的新型關(guān)系。
為了解決這一問題,近年來研究者們致力于探索開放關(guān)系抽取方法,其目的是從無監(jiān)督的開放領(lǐng)域語料庫中發(fā)現(xiàn)新的關(guān)系類型。OpenRE方法大致可以分為三類: 基于序列標(biāo)注的方法、基于Bootstrapping的方法和基于聚類的方法。
(1) 基于序列標(biāo)注的方法側(cè)重于尋找關(guān)系提及(mention),即直接從無監(jiān)督[4,11]或監(jiān)督范式[12-14]的句子中提取由單詞組成的關(guān)系短語,但是由于表達(dá)方式的多樣性,同一種關(guān)系類型通常會(huì)被提取多個(gè)過于具體的關(guān)系短語,并且不能很好地用于下游任務(wù)。
(2) 基于Bootstrapping的方法[15-16]用一小組種子實(shí)例快速適應(yīng)新的關(guān)系,對(duì)于開放式關(guān)系增長是可擴(kuò)展的,但是在迭代的過程中容易出現(xiàn)語義漂移現(xiàn)象,而且在發(fā)現(xiàn)一定量的關(guān)系實(shí)例后很難再繼續(xù)挖掘。
(3) 相比之下,基于聚類的方法通過對(duì)從句子中提取的關(guān)系表示進(jìn)行聚類,從而自動(dòng)形成關(guān)系種類,具有發(fā)現(xiàn)高度可區(qū)分的關(guān)系類型的優(yōu)勢(shì)。傳統(tǒng)的基于聚類的OpenRE方法通過外部語言工具為關(guān)系實(shí)例提取豐富的特征,并將語義模式聚類為多種關(guān)系類型[5-6,17]。隨著深度學(xué)習(xí)的快速發(fā)展,神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用到OpenRE任務(wù)中。Marcheggiani等[7]提出變分自編碼器模型(VAE),其中編碼組件根據(jù)上下文特征預(yù)測(cè)兩個(gè)實(shí)體之間的語義關(guān)系,而重構(gòu)組件根據(jù)編碼組件預(yù)測(cè)的關(guān)系和給定實(shí)體來預(yù)測(cè)被掩蓋的另一個(gè)實(shí)體。Xie等[18]在VAE的基礎(chǔ)上,通過構(gòu)造輔助分布并使用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行編碼能力的學(xué)習(xí),最后將低維的隱層向量用于聚類。Elsahar等[8]提出了全新的對(duì)詞嵌入進(jìn)行重新加權(quán)的方式,并融合實(shí)體依賴路徑等多種語言特征,最后對(duì)降維后的特征進(jìn)行聚類。關(guān)系知識(shí)遷移系統(tǒng)RSNs[9]從預(yù)定義關(guān)系的標(biāo)記數(shù)據(jù)中學(xué)習(xí)關(guān)系的相似性度量,然后遷移關(guān)系知識(shí)去識(shí)別無標(biāo)記數(shù)據(jù)中的新關(guān)系。Hu等[10]等人提出一種自監(jiān)督學(xué)習(xí)框架SelfORE,首先編碼器提取句子特征獲得實(shí)體對(duì)表示,然后應(yīng)用聚類算法為所有實(shí)體對(duì)表示分配偽標(biāo)簽,以此訓(xùn)練關(guān)系分類器,從而進(jìn)一步改善實(shí)體對(duì)表示和聚類質(zhì)量。
上述方法要么局限于無監(jiān)督學(xué)習(xí)模式,沒有利用到監(jiān)督學(xué)習(xí)的優(yōu)點(diǎn),要么采用偽標(biāo)簽策略自主生成監(jiān)督信息,但由于生成的偽標(biāo)簽精度較低,當(dāng)使用低精度的偽標(biāo)簽作為監(jiān)督進(jìn)一步訓(xùn)練模型時(shí),導(dǎo)致最終聚類準(zhǔn)確率較低。在機(jī)器學(xué)習(xí)領(lǐng)域,研究者們?cè)诰垲惙矫孀隽撕芏喙ぷ?,如Gupta等[19]提出了一種基于半監(jiān)督學(xué)習(xí)的無監(jiān)督聚類學(xué)習(xí)方法,實(shí)現(xiàn)了比其他無監(jiān)督方法更高的性能。受此啟發(fā),本文提出一種無監(jiān)督集成聚類框架(UEC)用來創(chuàng)建高質(zhì)量偽標(biāo)簽,從而進(jìn)一步提高無監(jiān)督OpenRE方法的聚類性能,更加有效地抽取開放域中的未知關(guān)系。與現(xiàn)有基于聚類的OpenRE方法不同的是,UEC不需要任何標(biāo)注數(shù)據(jù),使用完全無監(jiān)督的方式從數(shù)據(jù)本身獲得監(jiān)督,既保持了無監(jiān)督學(xué)習(xí)的優(yōu)點(diǎn),又具有監(jiān)督學(xué)習(xí)較強(qiáng)的特征判別能力。
UEC主要由兩個(gè)模塊組成: 關(guān)系編碼模塊和集成聚類模塊。關(guān)系編碼模塊使用卷積梯形網(wǎng)絡(luò)(CLN)提取句子的上下文關(guān)系特征,它將句子的嵌入表示作為輸入,學(xué)習(xí)預(yù)測(cè)實(shí)體之間所表達(dá)的關(guān)系。集成聚類模塊采用集成模型投票的方式聚類無標(biāo)注句子,并應(yīng)用規(guī)則選擇出高置信度句子為其標(biāo)記偽標(biāo)簽,基于聚類結(jié)果的偽標(biāo)簽被視為半監(jiān)督訓(xùn)練所需的監(jiān)督信息,進(jìn)一步指導(dǎo)關(guān)系編碼模塊更好地進(jìn)行上下文關(guān)系特征學(xué)習(xí)和關(guān)系分類。
UEC的結(jié)構(gòu)如圖1所示,其學(xué)習(xí)模式分為以下五步:
圖1 UEC的結(jié)構(gòu)
第一步: 在整個(gè)數(shù)據(jù)集上對(duì)集成模型中的每個(gè)卷積梯形網(wǎng)絡(luò)Mj獨(dú)立地進(jìn)行無監(jiān)督預(yù)訓(xùn)練。
第二步: 通過集成模型的投票對(duì)句子間的關(guān)系相似性建模,構(gòu)建關(guān)系相似圖。
第三步: 對(duì)關(guān)系相似圖進(jìn)行剪支,獲得k個(gè)高置信度關(guān)系簇。
第四步: 為關(guān)系簇中的句子分配偽標(biāo)簽,生成偽標(biāo)記樣本。
第五步: 使用無標(biāo)記樣本和偽標(biāo)記樣本執(zhí)行半監(jiān)督聚類過程。迭代進(jìn)行第二步至第五步,生成最終的關(guān)系集群。
關(guān)系編碼模塊旨在通過提取句子中給定實(shí)體之間的上下文特征并對(duì)其關(guān)系進(jìn)行預(yù)測(cè)。為此,本文在梯形網(wǎng)絡(luò)(Ladder Networks,Ladder Nets)的基礎(chǔ)上提出卷積梯形網(wǎng)絡(luò),其結(jié)構(gòu)如圖2所示,包括嵌入層、兩個(gè)編碼器和一個(gè)解碼器。CLN將一對(duì)句子作為輸入并將其編碼成向量,然后分別對(duì)它們進(jìn)行關(guān)系特征提取和關(guān)系預(yù)測(cè)。
圖2 CLN結(jié)構(gòu)示意圖
2.1.1 嵌入層
嵌入層用于將文本信息轉(zhuǎn)換成向量表示,使神經(jīng)網(wǎng)絡(luò)能夠更好地理解句子語義。一對(duì)實(shí)體之間的關(guān)系可以通過它們的上下文來反映,因此,本文利用預(yù)訓(xùn)練的BERT模型對(duì)句子進(jìn)行編碼,得到基于上下文的詞嵌入表示。同時(shí)將句子中實(shí)體對(duì)的位置轉(zhuǎn)換為隨機(jī)初始化的位置嵌入,用于表征句子中某個(gè)單詞與兩個(gè)實(shí)體之間的相對(duì)距離。
此外,直覺上關(guān)系可以關(guān)聯(lián)到某些類型的實(shí)體,例如出生地關(guān)系將一個(gè)人和一個(gè)地點(diǎn)聯(lián)系起來。所以,為了更好地提取實(shí)體間的深層語義關(guān)系,除了其本身的位置信息外,實(shí)體類型信息也可以為關(guān)系發(fā)現(xiàn)提供很強(qiáng)的歸納偏差[20-21]。因此,對(duì)于每個(gè)命名實(shí)體,本文使用其Wikipedia類型和Stanford NER標(biāo)簽作為附加特征。
具體來說,對(duì)于句子S={w1,w2,…,wq},其中q為句子最大長度,經(jīng)過嵌入層預(yù)處理之后,得到其完整的嵌入表示U,如式(1)所示。
U=Sw⊕Sp⊕St∈Rq(d+2c+2t)
(1)
其中,Sw是詞嵌入表示,Sp是實(shí)體位置嵌入,St是實(shí)體類型嵌入,d是詞嵌入維度,c是實(shí)體位置嵌入維度,t是實(shí)體類型嵌入維度,將這些嵌入表示串聯(lián)起來形成向量序列作為網(wǎng)絡(luò)輸入。
2.1.2 編碼器
CLN包括兩個(gè)編碼組件: 加噪編碼器和干凈編碼器,其中加噪編碼器的每一層施加了隨機(jī)高斯噪聲,通過學(xué)習(xí)重構(gòu)疊加噪聲的輸入句子,可防止編碼器只簡(jiǎn)單地保留原始輸入的信息,從而使編碼器學(xué)習(xí)到的句子特征更具魯棒性,提高網(wǎng)絡(luò)的泛化能力。兩個(gè)編碼器結(jié)構(gòu)相同,都由卷積層、池化層、全連接層以及分類層組成,其中卷積層的卷積核高度設(shè)置為3,寬度為句子嵌入向量的維度,同時(shí)為了使獲得的特征多元化,使用230個(gè)卷積核進(jìn)行特征信息的提取。經(jīng)過卷積、池化、全連接操作后獲得句子向量z,如式(2)所示。
z=CNN(U)
(2)
分類層用于計(jì)算關(guān)系預(yù)測(cè)概率,該層是具有softmax激活的一維輸出全連接層,如式(3)所示。
y=σ(kz+b)
(3)
其中,σ表示softmax函數(shù),k和b表示權(quán)重和偏置。
因此,對(duì)于無標(biāo)記句子Si,經(jīng)過嵌入層得到其嵌入表示Ui之后,加噪編碼器和干凈編碼器同時(shí)對(duì)其進(jìn)行逐層編碼,得到一系列隱層表示,如式(4)、式(5)所示。
2.1.3 解碼器
Si經(jīng)過加噪編碼器編碼得到帶噪的隱層表示之后,各層得到的特征向量通過跳躍連接(skip connection)映射到對(duì)應(yīng)的解碼層,解碼器對(duì)其進(jìn)行逐層降噪解碼,如式(6)所示。
(6)
由于加噪編碼器的所有層都被噪聲破壞,另一個(gè)具有共享參數(shù)的干凈編碼器負(fù)責(zé)提供干凈的重構(gòu)目標(biāo),輔助解碼器進(jìn)行無監(jiān)督訓(xùn)練,以達(dá)到對(duì)有噪數(shù)據(jù)的最佳映射效果。因此,以干凈編碼器每層的隱層表示作為目標(biāo)值,最小化二者的均方誤差,得到CLN每層的無監(jiān)督重構(gòu)損失,如式(7)所示。
(7)
2.1.4 無監(jiān)督關(guān)系預(yù)測(cè)
初始階段的無監(jiān)督訓(xùn)練,在常規(guī)梯形網(wǎng)絡(luò)的重構(gòu)損失基礎(chǔ)上增加互信息損失,即最大化編碼器中分類層的輸入與輸出之間的互信息,使CLN對(duì)表達(dá)相似關(guān)系的句子給出相似的關(guān)系類別預(yù)測(cè),并在總體上最大化關(guān)系預(yù)測(cè)的多樣性,從而使不同關(guān)系的句子擁有不同的預(yù)測(cè)結(jié)果,如式(8)所示。
(8)
其中:
I(Z;Y)=H(Y)-H(Y|Z)
(9)
式(9)中的H(Y)和H(Y|Z)分別是熵和條件熵,其中最大化熵H(Y),鼓勵(lì)CLN將完全不同的關(guān)系分配給輸入句子,從而在輸出類別上實(shí)現(xiàn)均勻分布。另一方面,最小化條件熵H(Y|Z),使得對(duì)給定句子進(jìn)行明確的類別分配。
此外,還添加另一個(gè)正則化損失項(xiàng),即CLN的干凈輸出與噪聲輸出之間的KL散度,如式(10)所示。
(10)
綜上所述,無監(jiān)督學(xué)習(xí)階段的訓(xùn)練目標(biāo)是最小化以下?lián)p失,如式(11)所示。
lossunsup=lossrecon-α·lossMI+β·lossKL
(11)
其中,α和β分別設(shè)置為0.2和1.0,用來調(diào)整各部分損失。
集成聚類模塊旨在將句子聚成k個(gè)語義上有意義的關(guān)系簇,從而發(fā)現(xiàn)潛在的關(guān)系類型。該模塊使用CLN的集成模式對(duì)無標(biāo)注句子進(jìn)行聚類,以達(dá)到比單個(gè)網(wǎng)絡(luò)決策更高的可靠性。同時(shí)為了提高無監(jiān)督聚類性能,集成聚類模塊為每個(gè)關(guān)系類別均生成高質(zhì)量的標(biāo)記樣本,用于后續(xù)的半監(jiān)督聚類階段。
具體來說,對(duì)于一對(duì)輸入句子,首先使用CLN集成模型M={m1,m2,…,mm}分別預(yù)測(cè)它們的關(guān)系類別,得到預(yù)測(cè)結(jié)果y={y1,y2,…,ym},其中m是模型中的網(wǎng)絡(luò)個(gè)數(shù)。然后,遍歷整個(gè)數(shù)據(jù)集,根據(jù)預(yù)測(cè)結(jié)果y構(gòu)造一個(gè)具有n個(gè)節(jié)點(diǎn)的關(guān)系相似圖G={U,Epos,Eneg},其中,n是數(shù)據(jù)集大小,G中的節(jié)點(diǎn)代表每個(gè)輸入句子的嵌入表示U,Epos和Eneg是節(jié)點(diǎn)之間的兩種邊,由M中的CLN投票決定。
當(dāng)M中的大多數(shù)CLN對(duì)輸入的句子對(duì)的關(guān)系預(yù)測(cè)達(dá)成一致時(shí),在其對(duì)應(yīng)的節(jié)點(diǎn)之間添加強(qiáng)正邊Epos,即:
當(dāng)M中的大多數(shù)CLN對(duì)輸入的句子對(duì)的關(guān)系預(yù)測(cè)不一致時(shí),在其對(duì)應(yīng)的節(jié)點(diǎn)之間添加強(qiáng)負(fù)邊Eneg,即:
其中,tpos和tneg設(shè)置為0.8,代表強(qiáng)正邊和強(qiáng)負(fù)邊的投票閾值。
兩個(gè)節(jié)點(diǎn)之間的強(qiáng)正邊意味著大多數(shù)CLN網(wǎng)絡(luò)認(rèn)為這對(duì)句子表達(dá)相似的關(guān)系,而強(qiáng)負(fù)邊則意味著大多數(shù)網(wǎng)絡(luò)認(rèn)為這對(duì)句子表達(dá)不同的關(guān)系。
構(gòu)建好關(guān)系相似圖之后,每個(gè)由強(qiáng)正邊組成的子圖就是一個(gè)集群,在一個(gè)集群內(nèi),節(jié)點(diǎn)對(duì)應(yīng)的句子高置信度地屬于同一關(guān)系類別。然后,從圖中提取k個(gè)高精度的關(guān)系簇,同時(shí)最大化每個(gè)簇的大小,并保證每個(gè)簇是不同的。為此,使用一種貪婪近似算法,如算法1所示。
算法1: GETCLUSTERS輸入: 數(shù)據(jù)集句子嵌入U(xiǎn),關(guān)系簇?cái)?shù)量k輸出: 關(guān)系簇集合S 1: procedure GETCLUSTERS(U,k) 2: G={U,Epos,Eneg} 3: for k'∈{1,2,…,k} do 4: umax=argmaxu∈U{|(u,u')∈Epos|} 5: Sk'={u:(u,umax)∈Epos}∪{umax} 6: for u'∈U do 7: if (u',umax)?Enegthen8: 從G中移除u' 9: end for10: if Epos為空then11: break 12: end for 13: 返回S={S1,S2,…,Sk} 14: end procedure
首先,從G中尋找具有最多強(qiáng)正邊Epos連接的節(jié)點(diǎn)(第4行),將其與通過強(qiáng)正邊Epos相連的其他節(jié)點(diǎn)添加到一個(gè)集合Sk′中(第5行)。然后,刪除與該節(jié)點(diǎn)沒有強(qiáng)負(fù)邊Eneg連接的所有節(jié)點(diǎn)(第6~9行)。重復(fù)進(jìn)行此過程k次,得到k個(gè)不同的關(guān)系簇,大致滿足要求。
通過對(duì)G剪支獲得k個(gè)高精度的關(guān)系簇之后,需要找到關(guān)系簇與模型的輸出類別之間的適當(dāng)映射,為每個(gè)關(guān)系簇分配關(guān)系偽標(biāo)簽。具體來說,對(duì)于網(wǎng)絡(luò)Mj∈M和關(guān)系簇Sk∈S,為Sk中的所有句子分配該簇中大多數(shù)句子的預(yù)測(cè)類別作為偽標(biāo)簽,如式(16)所示。
(16)
這些偽標(biāo)簽可以被看作是來自語料庫本身的監(jiān)督信息,用于指導(dǎo)下一步的半監(jiān)督聚類過程,并用于監(jiān)督損失中,如式(17)所示。
(17)
與k-means等聚類算法不同,集成聚類模塊不是對(duì)整個(gè)數(shù)據(jù)集直接聚類,而是只對(duì)可以獲得高精度的一小部分?jǐn)?shù)據(jù)集進(jìn)行聚類,以此提取出屬于每個(gè)類的高置信度樣本,這對(duì)于提高下一步半監(jiān)督訓(xùn)練的準(zhǔn)確率很重要。
通過集成聚類模塊提取出屬于每個(gè)類的高置信度樣本之后,將這些樣本視為偽標(biāo)記樣本,對(duì)集成模型迭代執(zhí)行半監(jiān)督訓(xùn)練,進(jìn)一步提高聚類性能。由于使用了半監(jiān)督學(xué)習(xí)思想,而未使用真正的標(biāo)記數(shù)據(jù),因此稱為“偽半監(jiān)督”。算法2描述了完整的迭代訓(xùn)練過程。
算法2: 偽半監(jiān)督聚類過程輸入: 數(shù)據(jù)集句子嵌入U(xiǎn),集成模型M,關(guān)系簇?cái)?shù)量k輸出: 簇標(biāo)簽 1: for j∈{1,2,…,m} do 2: 初始化Mj權(quán)重 3: 最小化lossunsup更新Mj 4: end for 5: forit∈{1,2,…,n_iter} do 6: S=GETCLUSTERS(U,k) 7: for j∈{1,2,…,m} do 8: 獲得Mj偽標(biāo)簽用于losssup 9: 最小化losstot更新Mj 10: end for 11: end for12: 使用M的平均結(jié)果來返回最終集群
首先,僅使用無監(jiān)督損失lossunsup(第1~4行)對(duì)集成模型M進(jìn)行無監(jiān)督預(yù)訓(xùn)練。然后,對(duì)于每次迭代,使用算法1獲得高精度關(guān)系簇S(第6行),并從中生成偽標(biāo)記樣本(第8行)。最后,使用半監(jiān)督損失losstot對(duì)M執(zhí)行半監(jiān)督聚類過程(第9行)。
半監(jiān)督訓(xùn)練損失由無監(jiān)督聚類損失和有監(jiān)督分類損失組成。由于不免會(huì)存在偽標(biāo)簽分配錯(cuò)誤的情況,所以,為了降低偽標(biāo)記樣本中的噪聲影響,為該部分的監(jiān)督損失增加一個(gè)時(shí)變系數(shù)α(t),以控制其信號(hào)強(qiáng)度。最終,半監(jiān)督訓(xùn)練階段的總損失如式(18)、式(19)所示。
α(t)的比例調(diào)度決定著偽標(biāo)記樣本在網(wǎng)絡(luò)更新中的作用,比例太大會(huì)干擾訓(xùn)練,引起性能退化,比例太小則提升有限。經(jīng)過試驗(yàn),T1、T2和αf分別設(shè)置為2、6和2,t為當(dāng)前迭代數(shù)。
算法2的迭代方式將不斷提高聚類質(zhì)量。隨著迭代的進(jìn)行,集成模型的聚類性能通常會(huì)不斷提高,直到達(dá)到飽和為止。算法1返回的關(guān)系簇的大小會(huì)不斷增加,直到它們幾乎覆蓋了整個(gè)數(shù)據(jù)集,而且關(guān)系簇分配也會(huì)變得更加穩(wěn)定,多次迭代之間的方差會(huì)減小。
本文使用FewRel和NYT-FB數(shù)據(jù)集對(duì)UEC的性能進(jìn)行評(píng)估。FewRel是以Wikipedia為語料庫,Wikidata為知識(shí)庫對(duì)齊獲得,包含100種關(guān)系類型,每種關(guān)系都有700個(gè)句子實(shí)例,是目前最大的精標(biāo)注關(guān)系抽取數(shù)據(jù)集,該數(shù)據(jù)集的一個(gè)特點(diǎn)是每個(gè)句子只包含一個(gè)唯一的實(shí)體對(duì),因此關(guān)系抽取模型不能選擇簡(jiǎn)單的方式來記憶實(shí)體。NYT-FB數(shù)據(jù)集在之前的開放關(guān)系抽取任務(wù)中應(yīng)用廣泛[5,7,22],它通過遠(yuǎn)程監(jiān)督的方式將New York Times語料庫中的文本和Freebase知識(shí)庫中的三元組對(duì)齊生成,遵循Hu等[10]的設(shè)置,過濾出非二元關(guān)系的句子實(shí)例,最后得到包含262種關(guān)系類型的41 000個(gè)標(biāo)注實(shí)例。
本文使用B3、V-measure和ARI三種評(píng)估指標(biāo)進(jìn)行分析。B3包括準(zhǔn)確率(Precision)、召回率(Recall)以及F1值,準(zhǔn)確率和召回率衡量將每個(gè)句子放入其所屬類或?qū)⑺芯渥泳垲惖揭粋€(gè)類的正確率,F(xiàn)1值是準(zhǔn)確率和召回率的調(diào)和平均值。
V-measure是從同質(zhì)性(Homogeneity)和完整性(Completeness)的角度來分析,類似于B3中的準(zhǔn)確率和召回率,V-measure對(duì)聚類數(shù)和實(shí)例數(shù)之間的依賴關(guān)系比較敏感,與實(shí)例數(shù)相比,應(yīng)該使用相對(duì)較少的簇來保持使用V-measure評(píng)估的可比性。
ARI(Adjusted Rand Index)衡量?jī)蓚€(gè)簇之間的相似性,其取值范圍為[-1,1],值越大,聚類結(jié)果越符合實(shí)際情況。
對(duì)于卷積梯形網(wǎng)絡(luò)CLN,采用了兩種正則化方法,其中嵌入層之后設(shè)置了一個(gè)dropout層,卷積層和全連接層使用L2正則化,參數(shù)分別為0.000 1和0.001。實(shí)驗(yàn)中其他超參數(shù)的具體設(shè)置如表1所示。
表1 超參數(shù)設(shè)置
為了驗(yàn)證UEC在OpenRE任務(wù)中的有效性,本文將UEC與FewRel和NYT-FB數(shù)據(jù)集上最先進(jìn)的OpenRE方法進(jìn)行比較,同時(shí)還進(jìn)行了消融實(shí)驗(yàn),以詳細(xì)考察UEC中各個(gè)模塊對(duì)整體性能的貢獻(xiàn)。
VAE[7]是OpenRE中先進(jìn)的生成模型,它通過從給定實(shí)體和預(yù)測(cè)關(guān)系中重構(gòu)另一個(gè)實(shí)體來優(yōu)化關(guān)系分類器,并使用實(shí)體詞、上下文詞和依賴路徑等豐富的特征來描述關(guān)系類型。RW-HAC[8]是基于聚類的OpenRE模型,它首先提取實(shí)體的知識(shí)庫類型和NER標(biāo)簽,并對(duì)句子的詞嵌入進(jìn)行重新加權(quán),然后融合特征,最后使用HAC聚類算法對(duì)降維后的特征進(jìn)行聚類。RSNs[9]應(yīng)用遷移學(xué)習(xí)的思想來解決OpenRE,它使用關(guān)系孿生網(wǎng)絡(luò)學(xué)習(xí)從預(yù)定義關(guān)系的監(jiān)督、遠(yuǎn)程監(jiān)督數(shù)據(jù)和新關(guān)系的無監(jiān)督數(shù)據(jù)中度量關(guān)系相似度,從而發(fā)現(xiàn)未知關(guān)系。SelfORE[10]利用預(yù)訓(xùn)練語言模型提取句子的實(shí)體對(duì)表示并對(duì)其進(jìn)行自適應(yīng)聚類生成關(guān)系偽標(biāo)簽,然后將其作為自監(jiān)督信息訓(xùn)練關(guān)系分類器,進(jìn)而不斷改善特征表示和聚類性能。Yao等[5]提出Rel-LDA,將主題模型擴(kuò)展到了關(guān)系抽取任務(wù)中,句子和實(shí)體對(duì)在主題建模中充當(dāng)文檔,而關(guān)系類型對(duì)應(yīng)于主題,并使用實(shí)體類型、詞性等總共8種特征進(jìn)行訓(xùn)練。UIE[22]是一種先進(jìn)的判別式關(guān)系抽取模型,它使用了兩種正則化因子,迫使模型自信地預(yù)測(cè)每個(gè)關(guān)系,并鼓勵(lì)模型平均預(yù)測(cè)所有關(guān)系,這里對(duì)比了三種模型架構(gòu)(UIE-VAE、UIE-PCNN和UIE-BERT)。Etype[23]僅使用命名實(shí)體來歸納關(guān)系,將關(guān)系歸納為實(shí)體類型的組合,實(shí)現(xiàn)了比現(xiàn)有無監(jiān)督關(guān)系抽取方法更高的性能。
根據(jù)表2給出的實(shí)驗(yàn)結(jié)果可以看到,UEC在兩個(gè)數(shù)據(jù)集上的表現(xiàn)都優(yōu)于所有對(duì)比模型。從數(shù)據(jù)集FewRel上的實(shí)驗(yàn)結(jié)果來看,UEC比最先進(jìn)的RSNs在F1值上高出5.3%,這表明UEC能夠提取到句子的深層語義特征,有效理解關(guān)系語義,從而發(fā)現(xiàn)無標(biāo)注文本中的未知關(guān)系。與同樣采用偽標(biāo)簽策略的SelfORE相比,UEC并非對(duì)所有句子分配偽標(biāo)簽,而是只對(duì)高置信度的句子,通過這種方式盡可能地創(chuàng)建高質(zhì)量標(biāo)簽并用于監(jiān)督損失中,作為再訓(xùn)練集成模型的正則化器,從而實(shí)現(xiàn)了更高的性能。
表2 與現(xiàn)有方法對(duì)比結(jié)果 (單位: %)
UEC在NYT-FB上的實(shí)驗(yàn)遵循Hu等[10]的設(shè)置,80%的數(shù)據(jù)用來訓(xùn)練,20%的數(shù)據(jù)用來驗(yàn)證結(jié)果,在驗(yàn)證集驗(yàn)證的時(shí)候隨機(jī)選擇10種關(guān)系進(jìn)行驗(yàn)證,雖然這遠(yuǎn)少于數(shù)據(jù)集中真實(shí)的關(guān)系數(shù)量,但仍可以揭示UEC的有效性,也讓UEC可以與基線模型進(jìn)行公平比較。從NYT-FB上的實(shí)驗(yàn)結(jié)果來看,UEC的性能比在FewRel上有所提升,F(xiàn)1值達(dá)到67.1%,NYT-FB中的句子通常共享實(shí)體對(duì)和關(guān)系短語,這使得關(guān)系聚類變得容易,在目標(biāo)關(guān)系類別較少的情況下,UEC能夠更準(zhǔn)確、全面地發(fā)現(xiàn)所有未知關(guān)系。此外,為了進(jìn)一步探索UEC的能力,本文在驗(yàn)證時(shí)使用全部的關(guān)系數(shù)量,即262種關(guān)系類型再次進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果見UEC-full??梢钥吹剑诖蠓黾雨P(guān)系類別數(shù)量的情況下,UEC的F1值下降至46.2%,由于關(guān)系相似圖中節(jié)點(diǎn)數(shù)量很大,搜索關(guān)系簇耗時(shí),在目標(biāo)關(guān)系數(shù)量k很大時(shí)識(shí)別出k個(gè)關(guān)系簇對(duì)集成聚類算法來說存在挑戰(zhàn)。
消融實(shí)驗(yàn)結(jié)果如表3所示,UEC w/o type表示不使用實(shí)體類型特征,只使用詞嵌入和實(shí)體位置嵌入拼接作為句子的嵌入表示;UEC w/o pseudo labels表示不采用偽標(biāo)簽策略,僅使用無監(jiān)督聚類損失;UEC w/o ensemble表示不使用網(wǎng)絡(luò)集成,僅利用一個(gè)CLN網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果進(jìn)行聚類;UEC w/o getclusters表示使用k-means聚類算法代替集成聚類模塊。通過分析可以得出結(jié)論,所有關(guān)鍵組件都對(duì)UEC性能的提高做出了積極貢獻(xiàn)。在不使用偽標(biāo)簽的情況下,UEC的性能下降了23.6%,對(duì)模型性能影響最大,說明高質(zhì)量的監(jiān)督信息可以有效提高無監(jiān)督OpenRE模型的性能。同樣地,僅使用單個(gè)網(wǎng)絡(luò)預(yù)測(cè)以及使用k-means聚類算法都對(duì)UEC造成了不同程度的性能下降。此外,增加實(shí)體的類型信息作為附加特征豐富了模型的分布式表示,幫助UEC性能提升了1.1%,說明實(shí)體類型的知識(shí)可以減少關(guān)系的搜索空間,為無監(jiān)督關(guān)系發(fā)現(xiàn)提供一定的歸納偏差。
表3 消融實(shí)驗(yàn)結(jié)果 (單位: %)
本文使用標(biāo)準(zhǔn)的無監(jiān)督度量指標(biāo)(ACC)在FewRel上評(píng)估UEC的聚類性能。假設(shè)模型預(yù)先知道目標(biāo)關(guān)系的數(shù)量,將關(guān)系簇的數(shù)量k設(shè)置為真實(shí)類別的數(shù)量,為了將聚類分配的偽標(biāo)簽轉(zhuǎn)換為用于評(píng)估目的的關(guān)系標(biāo)簽,將每個(gè)關(guān)系簇中的大多數(shù)真實(shí)關(guān)系標(biāo)簽分配給該簇中的所有句子作為預(yù)測(cè)標(biāo)簽。
(20)
其中,li和ci分別為真實(shí)關(guān)系標(biāo)簽和集成聚類模塊分配的偽標(biāo)簽,p表示關(guān)系簇和真實(shí)關(guān)系標(biāo)簽之間所有可能的一一映射。
圖3和圖4分別展示了偽標(biāo)簽和聚類的準(zhǔn)確率以及偽標(biāo)記樣本數(shù)量與迭代次數(shù)的關(guān)系。隨著迭代的進(jìn)行,數(shù)據(jù)集中分配了偽標(biāo)簽的句子的數(shù)量不斷增加,但其中偽標(biāo)簽分配錯(cuò)誤的句子不可避免地也會(huì)增多,因此導(dǎo)致了偽標(biāo)簽的準(zhǔn)確率不斷下降,然而,這仍然有助于提高整體的聚類準(zhǔn)確率。此外,與使用一小部分?jǐn)?shù)據(jù)來匹配輸入數(shù)據(jù)分布的純半監(jiān)督方法不同,UEC的偽標(biāo)記樣本并不完全匹配輸入數(shù)據(jù)分布,這導(dǎo)致偽標(biāo)簽準(zhǔn)確率和聚類準(zhǔn)確率之間的差距較大。
圖3 偽標(biāo)簽、聚類準(zhǔn)確率vs.迭代次數(shù)
圖4 偽標(biāo)記句子數(shù)量vs.迭代次數(shù)
為了得到每個(gè)關(guān)系簇的關(guān)系名稱,對(duì)于每個(gè)關(guān)系簇中的所有句子,提取句子中兩個(gè)實(shí)體之間的詞,計(jì)算最頻繁的N-gram作為關(guān)系名稱的表示形式。本文在FewRel數(shù)據(jù)集中隨機(jī)選擇了5個(gè)關(guān)系,并提供了一個(gè)簡(jiǎn)單的案例來展示為每個(gè)簇提取的關(guān)系名稱,如表4所示。
表4 關(guān)系名稱案例
從表4列舉出的例子可以看到,UEC能夠獲得語義與真實(shí)關(guān)系名稱比較相似的關(guān)系名稱,其中第二個(gè)例子“the president of vs. member of”相較其他提取結(jié)果語義上并不是完全吻合,通過分析聚類結(jié)果發(fā)現(xiàn),“the president of”所代表的關(guān)系簇中共有389個(gè)句子,每個(gè)句子中實(shí)體間的關(guān)系短語不盡相同,且大多不能顯式地表達(dá)“member of”這一真實(shí)關(guān)系,比如“The stadium is part of the Technical Center Academy of theFootball Federation of Armeniawhich was officially opened on 1 September 2010 by theUEFApresident Michel Platini.”和“On 2 October 1945, Laue, Otto Hahn, andWerner Heisenberg, were taken to meet with Henry Hallett Dale, president of theRoyal Society, and other members of the Society.”,這導(dǎo)致在為關(guān)系簇提取關(guān)系名稱時(shí)很難與其真實(shí)關(guān)系名稱達(dá)成一致,除此之外,關(guān)系簇中還有聚類錯(cuò)誤的句子,如“In 2014 the SWAPO presidential candidate wasHage Geingobwho was the Vice-President ofSWAPO.”,句中“Hage Geingob”和“SWAPO”的真實(shí)關(guān)系是“member of political party”,這在一定程度上也會(huì)影響關(guān)系短語的統(tǒng)計(jì)。因此,對(duì)于句子中實(shí)體間的關(guān)系比較隱含,或數(shù)據(jù)集中存在語義上比較相近的關(guān)系類型,UEC為關(guān)系簇提取出的關(guān)系名稱與真實(shí)關(guān)系名稱在表面語義上可能會(huì)出現(xiàn)一定偏差,但這仍可以用于區(qū)分具有不同關(guān)系的實(shí)體對(duì),還可以派生出關(guān)系簇所代表的關(guān)系類型作為最終的關(guān)系抽取結(jié)果。
本文提出了一種無監(jiān)督聚類框架UEC,用于開放域關(guān)系抽取。與傳統(tǒng)的關(guān)系抽取模型需要依賴標(biāo)注數(shù)據(jù)且僅能對(duì)預(yù)定義關(guān)系進(jìn)行分類不同,UEC不需要任何標(biāo)注數(shù)據(jù),能夠在目標(biāo)關(guān)系類型和關(guān)系分布事先未知的開放域場(chǎng)景中工作。與其他無監(jiān)督OpenRE模型相比,UEC能夠利用監(jiān)督學(xué)習(xí)的優(yōu)勢(shì),從監(jiān)督信息中學(xué)習(xí)判別能力,從而改進(jìn)關(guān)系特征學(xué)習(xí),進(jìn)一步提高無監(jiān)督關(guān)系抽取的性能。在FewRel和NYT-FB數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明了UEC的有效性。在未來的研究中,將探索改進(jìn)集成聚類模塊,提升UEC在目標(biāo)關(guān)系數(shù)量較大時(shí)的健壯性,以應(yīng)對(duì)關(guān)系類型日益增長的現(xiàn)實(shí)場(chǎng)景。