黃子寅,吳苑斌
(華東師范大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,上海 200062)
文本關(guān)系抽取任務(wù)要求在給定一段文字及文字中的2 個(gè)實(shí)體來判斷2 個(gè)實(shí)體是否具有某種關(guān)系.基于有監(jiān)督的方法通常需要大量的人工標(biāo)注數(shù)據(jù),而標(biāo)注過程消耗大量人力、物力.Mike等[1]提出了一種基于遠(yuǎn)程監(jiān)督 (Distant Supervision,DS) 的方法來自動(dòng)對(duì)自然語言的文本進(jìn)行標(biāo)注.遠(yuǎn)程監(jiān)督借用現(xiàn)有的知識(shí)庫(kù) (Knowledge Base,KB) 中的三元組 (頭實(shí)體,尾實(shí)體,關(guān)系),并假設(shè)若1 個(gè)句子中的2 個(gè)實(shí)體存在于知識(shí)庫(kù)中,則此實(shí)體對(duì)在這個(gè)句子中表達(dá)了知識(shí)庫(kù)中對(duì)應(yīng)的關(guān)系.如圖1 所示,以1 個(gè)三元組 (Barack Obama,USA,President of) 為例,數(shù)據(jù)中的所有存在實(shí)體對(duì) (Barack Obama,USA)的句子都會(huì)被標(biāo)注為關(guān)系“President of ”.此方法可以快速標(biāo)注大量數(shù)據(jù),但同時(shí)也帶來了大量的噪音.遠(yuǎn)程監(jiān)督的假設(shè)在許多情況下并不成立,如圖1 中的第二個(gè)句子,雖然也包含了三元組中的實(shí)體對(duì),但顯然不存在表達(dá)三元組中關(guān)系的語義,這就產(chǎn)生了噪聲數(shù)據(jù).相對(duì)于標(biāo)注是正確的真陽性(True Positive,TP) 數(shù)據(jù),噪聲數(shù)據(jù)也被稱為假陽性 (False Positive,FP).
圖1 遠(yuǎn)程監(jiān)督關(guān)系抽取示例Fig.1 Example of distant supervised relation extraction
標(biāo)注帶來的數(shù)據(jù)集中的噪聲對(duì)后續(xù)的訓(xùn)練會(huì)產(chǎn)生干擾.為了減小噪聲數(shù)據(jù)對(duì)訓(xùn)練的影響,本文提出了一種前處理的方法,即在訓(xùn)練之前濾除噪聲數(shù)據(jù).本文使用的方法是基于魯棒性統(tǒng)計(jì)[2]的一種方法—影響函數(shù) (Influence Function,IF).影響函數(shù)(IF)衡量的是,當(dāng)刪除1 個(gè)訓(xùn)練樣本后,重新訓(xùn)練的模型在某測(cè)試樣本上的損失變化.此損失變化可作為此訓(xùn)練樣本對(duì)該測(cè)試樣本的影響.本文認(rèn)為這種影響與樣本是否為噪聲存在聯(lián)系,并利用這種聯(lián)系將影響函數(shù)結(jié)合到基于自舉 (Bootstrapping) 的迭代算法中.本文使用一個(gè)小的干凈數(shù)據(jù)集作為指導(dǎo),在經(jīng)過算法迭代后,最終得到一個(gè)經(jīng)過噪聲數(shù)據(jù)過濾的數(shù)據(jù)集;使用這個(gè)數(shù)據(jù)集訓(xùn)練出的模型效果遠(yuǎn)優(yōu)于直接使用噪聲數(shù)據(jù)訓(xùn)練的模型.本文貢獻(xiàn)主要有以下3 點(diǎn).
(1)利用影響函數(shù)對(duì)遠(yuǎn)程監(jiān)督中的噪聲數(shù)據(jù)進(jìn)行分析,建立了影響大小與是否為噪聲數(shù)據(jù)的關(guān)聯(lián).
(2)基于影響函數(shù)設(shè)計(jì)了一種基于自舉法的去噪算法.
(3)通過實(shí)驗(yàn),驗(yàn)證了本文算法良好的性能.
本文基于影響函數(shù)來解決遠(yuǎn)程監(jiān)督關(guān)系抽取問題中的噪聲問題.對(duì)于關(guān)系抽取任務(wù),現(xiàn)已存在很多廣泛使用的模型,如基于CNN (Convolutional Neural Network)[3]、RNN (Recurrent Neural Network)[4]和Tree-GRU (Gated Recursive Units)[5]等的模型.遠(yuǎn)程監(jiān)督[1]提供了一種可以自動(dòng)標(biāo)注大量數(shù)據(jù)的方法,同時(shí),也帶來了大量噪聲數(shù)據(jù)從而影響了訓(xùn)練.
為了解決噪聲問題,人們首先采用了多樣例學(xué)習(xí)方法[6-7],將具有同樣實(shí)體對(duì)的訓(xùn)練樣本組成一個(gè)包,進(jìn)行“打包”訓(xùn)練,并引入注意力機(jī)制為包內(nèi)每個(gè)樣本賦予權(quán)重,從而減小個(gè)體噪聲對(duì)訓(xùn)練的影響.然而,打包的方法無法解決包內(nèi)所有樣本都是噪聲的情況,并且相對(duì)于直接在樣本級(jí)別進(jìn)行訓(xùn)練的方法,更難以應(yīng)用到真實(shí)的場(chǎng)景中.一些針對(duì)樣本級(jí)別的訓(xùn)練方法通常是先構(gòu)造一個(gè)樣本分類器去判斷數(shù)據(jù)是否為噪聲數(shù)據(jù),并使用強(qiáng)化學(xué)習(xí)[8]、對(duì)抗學(xué)習(xí)[9]和負(fù)例訓(xùn)練[10]等方法訓(xùn)練分類器.同時(shí),之前的工作也嘗試使用自舉法,迭代式地提升模型的去噪能力[10].本文也提出了一種基于自舉法的算法,并使用了一個(gè)噪聲分類器.不同的是,本文并未直接使用分類器的分類結(jié)果,而是借用分類器提供的參數(shù)來計(jì)算影響函數(shù),并使用基于影響函數(shù)得到的樣本分?jǐn)?shù)來判斷樣本的真假陽性,同時(shí)也通過迭代的方法逐步提高判斷的準(zhǔn)確性.
本文使用的影響函數(shù)[1]是一種分析每個(gè)訓(xùn)練樣本對(duì)模型預(yù)測(cè)影響的技術(shù),近年來被引入了機(jī)器學(xué)習(xí)領(lǐng)域[11],用于尋找訓(xùn)練集中最有影響力的樣本,如將影響函數(shù)用于給無標(biāo)簽數(shù)據(jù)分配權(quán)重來提升半監(jiān)督學(xué)習(xí)[12]、用于在主動(dòng)學(xué)習(xí)中設(shè)計(jì)一個(gè)高效的策略[13]等.
關(guān)系抽取任務(wù)的形式化定義: 給定1 個(gè)實(shí)體對(duì) (eh,et)和含有此實(shí)體對(duì)的句子s,判斷該實(shí)體對(duì)在句子中是否表達(dá)了1 個(gè)具體的關(guān)系r∈R.這里R表示所有關(guān)系類型的集合,包括一類表示為無任何關(guān)系的 N one (稱為負(fù)例;反之,關(guān)系為非 N one 的樣本稱為正例).定義x=(s,eh,et,r) 為1 個(gè)訓(xùn)練樣本,y∈{0,1}表示該訓(xùn)練樣本是否為 噪聲樣本,并定義z=(x,y),表示整個(gè)標(biāo)注數(shù)據(jù)集.
在遠(yuǎn)程監(jiān)督的設(shè)定下,D中的樣本是通過將文本匹配到知識(shí)圖譜中自動(dòng)標(biāo)注得到的.匹配的規(guī)則為,對(duì)于任意一個(gè)知識(shí)圖譜中的三元組 (eh,et,r),如果一個(gè)句子包含了實(shí)體對(duì) (eh,et) 就會(huì) 被標(biāo) 注為r.顯然,并非所有句子都能表達(dá)出此規(guī)則下標(biāo)注的關(guān)系,如圖1 中的第二個(gè)句子,誤標(biāo)的樣本就被稱為噪聲數(shù)據(jù).遠(yuǎn)程監(jiān)督下產(chǎn)生的D通常是1 個(gè)充滿噪音的“臟”數(shù)據(jù)集,而本文去噪的目標(biāo)就是要找到包含干凈樣本的集合D′,D′ ?D.
本文方法需要計(jì)算每個(gè)訓(xùn)練點(diǎn)對(duì)訓(xùn)練的影響.定義一個(gè)訓(xùn)練點(diǎn)z的影響: 當(dāng)訓(xùn)練點(diǎn)z從訓(xùn)練集中移除后,模型對(duì)于一個(gè)測(cè)試點(diǎn)z′的預(yù)測(cè)變化.直接的方法可以在移除z后重新訓(xùn)練整個(gè)模型,從而觀察對(duì)z′預(yù)測(cè)的損失變化.但這樣計(jì)算耗時(shí)過大.影響函數(shù)[11]則提供了一種可快速計(jì)算的估計(jì)方法.
先計(jì)算z對(duì)模型參數(shù)的影響.假設(shè)模型的參數(shù)為θ,且其損失函數(shù)L(z,θ) 為凸函數(shù).首先,計(jì)算θ在訓(xùn)練集上的最優(yōu)
其中n是訓(xùn)練集的大小;其次,對(duì)z做1 個(gè)小的擾動(dòng)?,表示為
得到z對(duì)模型參數(shù)的影響之后,借助求導(dǎo)的鏈?zhǔn)椒梢缘玫侥P蛯?duì)于測(cè)試點(diǎn)z′的預(yù)測(cè)變化
如果移除z會(huì)增加z′的損失,可以認(rèn)為z是對(duì)預(yù)測(cè)z′有幫助;反之,則是有害的.
構(gòu)建一個(gè)噪聲分類器.本文的目標(biāo)是將噪聲數(shù)據(jù)從整個(gè)數(shù)據(jù)集中篩出,所以這里的分類器為一個(gè)二元分類器.對(duì)于任意的1 個(gè)樣本x=(s,eh,et,r),它的預(yù)測(cè)y∈{0,1}表示的是是否為噪聲數(shù)據(jù).這里簡(jiǎn)單使用1 個(gè)卷積神經(jīng)網(wǎng)絡(luò)(CNN)加上Softmax 作為噪聲分類器,其參數(shù)表示為θ.分類器的輸入為樣本中的句子s,用句子中每個(gè)詞的向量表示這個(gè)句子,并使用位置向量來標(biāo)明2 個(gè)實(shí)體在句子中的位置[14].
對(duì)于訓(xùn)練樣本,判斷其是否為噪聲數(shù)據(jù)對(duì)本文來說是個(gè)關(guān)鍵問題.這里,設(shè)計(jì)1 個(gè)基于影響函數(shù)的打分函數(shù).如果只使用在遠(yuǎn)程監(jiān)督標(biāo)注下的D中的噪聲標(biāo)簽,會(huì)導(dǎo)致不僅在訓(xùn)練時(shí)缺少去噪的信號(hào),同時(shí)還難以評(píng)測(cè)去噪的結(jié)果.因此,本文使用了1 個(gè)小的正確標(biāo)注的干凈集合C,并使用數(shù)據(jù)集中的驗(yàn)證集 (Dev set) 來作為這個(gè)干凈集合.
這里,結(jié)合影響函數(shù)做個(gè)假設(shè): 如果1 個(gè)訓(xùn)練集中的樣本zd對(duì)于1 個(gè)干凈樣本zc的預(yù)測(cè)有幫助,那么zd就應(yīng)該是1 個(gè)標(biāo)注正確的樣本;反之,如果zd對(duì)于zc的預(yù)測(cè)有害,那么zd應(yīng)該是1 個(gè)噪聲樣本.基于這個(gè)假設(shè),考察對(duì)于干凈數(shù)據(jù)集的平均情況得到訓(xùn)練集中每個(gè)樣本的分?jǐn)?shù)
其中,S(zd,zc) 由式(1)得來,即
結(jié)合樣本分?jǐn)?shù)S(zd,C) 對(duì)訓(xùn)練集中的數(shù)據(jù)進(jìn)行判斷: 對(duì)于S(zd,C)>0,可以判斷zd是正確標(biāo)注的樣本;反之,則認(rèn)為zd為噪聲.
上述打分函數(shù)如果只進(jìn)行一次判斷就判斷D中的樣本是否為噪聲樣本,會(huì)造成很多的誤判,其原因有: ①影響函數(shù)模型的參數(shù)θ在訓(xùn)練集上達(dá)到最優(yōu),而初始訓(xùn)練集D中噪聲樣本的比例較大,故對(duì)于判斷數(shù)據(jù)是否為噪聲的能力較差;② 初始的干凈集合C中的干凈樣本的特征比較單一,可能會(huì)使一些正確標(biāo)注的樣本被誤判為噪聲;③影響函數(shù)的計(jì)算過程中存在近似過程,造成了計(jì)算的誤差.為了解決這些問題,本文設(shè)計(jì)了一種基于自舉法的算法,詳見圖2.如圖2 所示,給定1 個(gè)小的干凈集合C0和1 個(gè)噪聲集合D0;使用自舉法,在迭代中從D中挑選正確的樣本進(jìn)入C,并刪除噪聲樣本;同時(shí)更新噪聲分類器θ,最終得到1 個(gè)去噪后的數(shù)據(jù)集Du.本文算法作為一種前處理的算法,可以在Du上使用任何模型或算法.下面具體地闡述算法的各個(gè)步驟.
圖2 自舉過程Fig.2 Bootstrapping procedure
3.3.1 采樣正例
以Ct作為計(jì)算影響函數(shù)時(shí)的測(cè)試集,Ct中為干凈數(shù)據(jù),其對(duì)Dt中的篩選可起到指導(dǎo)作用.實(shí)現(xiàn)上,每一輪都是從Ct中隨機(jī)采樣得到.在運(yùn)算中,可以保持1 個(gè)固定大小.為了影響函數(shù)的運(yùn)算效率,本文將其大小設(shè)置為
3.3.2 影響函數(shù)的計(jì)算
影響函數(shù)的計(jì)算需要參數(shù)在訓(xùn)練集上擬合.因此,將噪聲分類器擬合在Dt上,優(yōu)化目標(biāo)是最小化
其中參數(shù)被用于計(jì)算影響的函數(shù).此外還需要標(biāo)簽為None 的樣本作為訓(xùn)練的負(fù)例,這里每一輪都采樣|Dt|個(gè)None 樣本.在獲得參數(shù)后,為了找到噪聲樣本,用式 (5) 對(duì)每一個(gè)zd∈Dt計(jì)算分?jǐn)?shù)
3.3.3 篩出和選取
可以提升效果.式(9)中,a是1 個(gè)正數(shù).此外,本文采用一個(gè)投票機(jī)制(Majority vote)來綜合考慮多輪的影響,并構(gòu)建噪聲集合
其中,1 (·)是指示函數(shù),k是1 個(gè)超參數(shù).而對(duì)于對(duì)訓(xùn)練有益的樣本將其看作是干凈的樣本加入下一輪計(jì)算,表示為
3.3.4 更新
當(dāng)有了Dc和Dd后,可以通過集合操作更新Ct和Dt,即
對(duì)于每一輪選取的干凈樣本可以作為下一輪的篩選的指導(dǎo),而噪聲樣本則直接將其從Dt中篩出.
本文實(shí)驗(yàn)使用的數(shù)據(jù)集是被廣泛使用的數(shù)據(jù)集—NYT (New York Times).該數(shù)據(jù)集由[15]用知識(shí)圖譜Freebase 遠(yuǎn)程監(jiān)督標(biāo)注《紐約時(shí)報(bào)》的新聞?lì)A(yù)料構(gòu)建而成,并被[10]重新整理.NYT 的文本來源于《紐約時(shí)報(bào)》的新聞?wù)Z料,表1 所示為該數(shù)據(jù)集的統(tǒng)計(jì)情況,其中,訓(xùn)練集是由知識(shí)庫(kù)Freebase 遠(yuǎn)程監(jiān)督標(biāo)注,開發(fā)集和測(cè)試集是由人手動(dòng)標(biāo)注.實(shí)驗(yàn)中,開發(fā)集作為算法的C0,訓(xùn)練集作為D0,沒有引入額外的數(shù)據(jù).
表1 NYT 數(shù)據(jù)分布Tab.1 Statistics on NYT dataset
對(duì)于基礎(chǔ)的CNN 模型,滑動(dòng)窗口的大小設(shè)置為3,濾波器深度設(shè)置為230.在自舉過程中,詞向量設(shè)置為維度為100 的預(yù)訓(xùn)練詞向量[16],并且位置向量的維度設(shè)置為1,這樣能讓影響函數(shù)更關(guān)注于語義信息.對(duì)于選取時(shí),投票機(jī)制中k=3,選取數(shù)量最多為實(shí)驗(yàn)中的評(píng)價(jià)指標(biāo)為準(zhǔn)確率和召回率以及樣例級(jí)別的micro-F1.對(duì)于影響函數(shù)中海森矩陣的逆H-1的計(jì)算使用的是stochastic estimation[17].
實(shí)驗(yàn)的基礎(chǔ)模型是CNN,實(shí)驗(yàn)的對(duì)照方法(模型)包括直接使用原始數(shù)據(jù)訓(xùn)練.CNN+ATT(Attention)[7]在訓(xùn)練時(shí)對(duì)包里每個(gè)樣例加上注意力權(quán)重從而減輕噪聲樣本在訓(xùn)練時(shí)的影響;CNN +RL (Reinforce Learning)[8]使用強(qiáng)化學(xué)習(xí)的方法訓(xùn)練1 個(gè)可以在遠(yuǎn)程監(jiān)督訓(xùn)練集中分辨出噪聲樣本的選取器;本文提出的方法是CNN+IF,使用了前文所述在自舉法框架下使用影響函數(shù)去除噪聲的方法;此外還討論了在不同大小的C0下 (CNN+IF_10、CNN+IF_50、CNN+IF_100) 的情況,以及不使用自舉法只用影響函數(shù)計(jì)算1 輪 (CNN+IF_OT (One Turn)) 的情況.實(shí)驗(yàn)結(jié)果詳見表2,其中最優(yōu)數(shù)據(jù)做了加粗處理.
從表2 的實(shí)驗(yàn)結(jié)果可以得出: ①使用本文方法對(duì)遠(yuǎn)程監(jiān)督數(shù)據(jù)處理后的提升明顯,說明此方法可以有效地濾除數(shù)據(jù)集中的噪聲樣本.② 本文方法對(duì)比先前的方法有明顯的提升,說明在針對(duì)樣本級(jí)別的去噪上本文方法有良好的表現(xiàn).對(duì)于“打包”方法CNN+ATT,本文認(rèn)為該實(shí)際遠(yuǎn)程監(jiān)督數(shù)據(jù)集中并未有很多相同實(shí)體對(duì)的情況,因此去噪效果不明顯,而本文提出的針對(duì)句子級(jí)別的去噪方法更具有普適性.CNN+RL是基于強(qiáng)化學(xué)習(xí)的,其訓(xùn)練過程極不穩(wěn)定,可能并不適應(yīng)本文的數(shù)據(jù)集,而本文提出的基于影響函數(shù)的方法計(jì)算相對(duì)穩(wěn)定.③初始干凈數(shù)據(jù)集C0的大小對(duì)算法性能有著明顯的影響,C0中樣本越多,最終效果會(huì)越好.④ CNN+IF_OT 表現(xiàn)了算法只進(jìn)行1 輪的結(jié)果,其相較于無任何去噪的原始數(shù)據(jù)效果有提升,說明影響函數(shù)可以直接篩出一些噪聲數(shù)據(jù),而對(duì)比于自舉法的多輪選取結(jié)果,單輪的結(jié)果顯著較差,說明自舉過程的作用明顯.
表2 NYT 上的實(shí)驗(yàn)結(jié)果Tab.2 Main result on NYT
表3 給出了1 個(gè)自舉時(shí)計(jì)算影響函數(shù)的例子.對(duì)于關(guān)系類別(/business/person/company),只考慮1 個(gè)干凈的測(cè)試樣本(···Rupert Murdoch,the chairman and chief executive of the News Corporation,···),計(jì)算不同樣例對(duì)其的影響.所有的樣本可以被分為3 種: 第一種是影響分?jǐn)?shù)遠(yuǎn)大于0 的樣例,它們的語法語義與參考的測(cè)試樣本比較相似,這些樣例會(huì)在下一輪作為新的干凈數(shù)據(jù)集帶入影響函數(shù)的計(jì)算;第二種是影響分?jǐn)?shù)在0 左右的臨界樣本,難以區(qū)分正負(fù)例,而隨著自舉法的進(jìn)行,這樣的樣例會(huì)被更明顯地區(qū)分;第三種是語法語義特征和這條干凈樣本區(qū)別很大的樣例,其有正例也有負(fù)例,但是因?yàn)槭?8)的平均,在其他干凈樣例的作用下,其中真正的負(fù)例會(huì)被刪除.
表3 案例分析Tab.3 Case study
本文首先針對(duì)遠(yuǎn)程監(jiān)督關(guān)系抽取中的噪聲問題,給出了模型無關(guān)的算法.本文發(fā)現(xiàn)影響函數(shù)與噪聲樣本之間具有相關(guān)性,以此設(shè)計(jì)了1 個(gè)打分函數(shù),并基于自舉法構(gòu)建了1 個(gè)去噪算法.該去噪算法借用1 個(gè)小的干凈集合,迭代地將噪聲樣本從遠(yuǎn)程監(jiān)督標(biāo)注的數(shù)據(jù)集中篩出.篩除了噪聲數(shù)據(jù)的數(shù)據(jù)集可用于各種模型的訓(xùn)練.因此本文算法是模型無關(guān)(Model-agnostic)的.最后在公開的數(shù)據(jù)集上進(jìn)行了驗(yàn)證,實(shí)驗(yàn)結(jié)果表明本文算法具有良好的效果.
未來可討論工作: ①探究對(duì)負(fù)例的影響和噪聲數(shù)據(jù)的關(guān)系;② 對(duì)自舉過程做更多控制以達(dá)到更高效的去噪;③對(duì)初始的干凈數(shù)據(jù)集的選擇進(jìn)行討論,如使用特征模板的方法自動(dòng)獲取干凈數(shù)據(jù)從而提高算法的普適性,或通過增加約束讓干凈數(shù)據(jù)集盡量包含更多模式,使后續(xù)迭代過程更穩(wěn)定;④ 改進(jìn)影響函數(shù)的計(jì)算以提高整個(gè)算法的計(jì)算效率.