徐邵洋,蔣 峰,李培峰
(蘇州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006)
話題分割是自然語言處理領(lǐng)域的經(jīng)典任務(wù)之一,其目標(biāo)是將輸入的篇章分割成語義連續(xù)的段落。經(jīng)過分割的篇章可以方便讀者瀏覽感興趣的內(nèi)容[1],話題分割在文本摘要、信息抽取等下游任務(wù)中應(yīng)用廣泛[2]。如圖 1所示,考慮一個(gè)包含15個(gè)句子的篇章,話題分割任務(wù)需要預(yù)測出篇章中潛在的分割點(diǎn),把篇章分成1~4、5~6、7~13、7~14、7~15這5個(gè)語義連貫的段落。
圖1 話題分割示意圖
本文將話題分割建模為判斷每一個(gè)句子是否為分割點(diǎn)的有監(jiān)督任務(wù)。在此情境下,本文認(rèn)為,語義信息建模和計(jì)算復(fù)雜度是該任務(wù)的兩個(gè)關(guān)鍵點(diǎn)。一方面,話題分割任務(wù)以篇章為單位,其顆粒度較粗,既要考慮句子內(nèi)部的信息,又要考慮篇章內(nèi)部的信息交互,因此其對語義信息的建模要求較高;另一方面,與傳統(tǒng)句子分類任務(wù)不同,話題分割任務(wù)中的一個(gè)篇章單位包含不同數(shù)量的句子,所以該任務(wù)對計(jì)算的復(fù)雜度也有較高要求。然而,現(xiàn)有的方法主要存在以下兩個(gè)缺陷: 語義信息建模能力不足以及計(jì)算復(fù)雜度較高。早期的研究使用基于詞頻和滑動(dòng)窗口的方法[3],該方法得到的特征向量相對稀疏,且忽略了單詞之間的位置信息?;谄娈愔捣纸獾碾[式方法[4]在一定程度上解決了特征向量的稀疏性問題,但它依然沒有考慮單詞之間的位置信息。序列方法[2,8]通過雙向長短時(shí)記憶網(wǎng)絡(luò)(Bidirectional Long Short-Term Memory,Bi-LSTM)+池化(Pooling)來得到稠密的特征向量,同時(shí)考慮了單詞之間的序列關(guān)系,而且它還可以被用于上層網(wǎng)絡(luò),進(jìn)一步捕捉篇章內(nèi)的序列關(guān)系。但一方面,句子內(nèi)部存在自然的語法結(jié)構(gòu),因此單詞之間的關(guān)系并不一定是序列的[14];另一方面,篇章內(nèi)部的上下文關(guān)系也不一定是序列的。最近的研究[9,12]使用的樹形方法[15]和Transformer[16]方法能夠同時(shí)考慮單詞之間以及篇章內(nèi)部的非序列關(guān)系。遺憾的是,這兩種方法都具有較高的計(jì)算復(fù)雜度,特別是在以篇章為單位的話題分割任務(wù)中,使用它們需要很多的計(jì)算資源,而且還需要做出對長句子進(jìn)行截?cái)?、把長篇章截?cái)喑啥喾莸臓奚?偟膩碚f,先前的工作沒有找到一種能夠同時(shí)考慮單詞之間以及篇章內(nèi)部的非序列關(guān)系,從而得到篇章的全局語義信息,并且具有較低計(jì)算復(fù)雜度的話題分割方法。
本文提出基于篇章結(jié)構(gòu)圖網(wǎng)絡(luò)的話題分割模型(Discourse Structure Graph-based topic SEGmentation,DSG-SEG),其能夠同時(shí)解決全局語義信息建模和計(jì)算復(fù)雜度的問題。具體地,受到Y(jié)ao等人[17]和Zhang等人[18]工作的啟發(fā),DSG-SEG模型首先取出一個(gè)篇章內(nèi)的所有單詞和句子節(jié)點(diǎn),把每一個(gè)篇章單獨(dú)構(gòu)建成圖。在初始化圖的特征矩陣和鄰接矩陣后,該模型把圖送入門控圖神經(jīng)網(wǎng)絡(luò)(Gated Graph Neural Networks,GGNN)[19]來編碼句子。最后,模型把得到的句子表示序列進(jìn)一步送入Bi-LSTM進(jìn)行分割點(diǎn)的預(yù)測。
為了得到篇章的全局語義信息,本文模型利用了單詞節(jié)點(diǎn)、單詞與句子節(jié)點(diǎn)之間的鄰接信息,而隨著GGNN網(wǎng)絡(luò)的迭代,句子節(jié)點(diǎn)之間也產(chǎn)生了間接的信息交互,模型最終得到的句子表示能夠同時(shí)考慮單詞之間以及篇章內(nèi)部的非序列關(guān)系。另外,實(shí)驗(yàn)結(jié)果顯示,本文的模型具有很低的計(jì)算復(fù)雜度,不需要做出任何對長句子進(jìn)行截?cái)?、把長篇章截?cái)喑啥喾莸臓奚O噍^于其他句子編碼方式,本文的模型能夠同時(shí)取得更好的結(jié)果指標(biāo)和時(shí)間性能。本文的主要貢獻(xiàn)如下:
(1) 提出了一個(gè)基于篇章結(jié)構(gòu)圖網(wǎng)絡(luò)的話題分割模型DSG-SEG。據(jù)我們所知,這是圖神經(jīng)網(wǎng)絡(luò)首次被用于話題分割任務(wù)。
(2) 所提出模型能夠同時(shí)考慮單詞之間以及篇章內(nèi)部的非序列關(guān)系,具有全局的語義信息建模能力。
(3) 所提出模型能夠在多個(gè)數(shù)據(jù)集上同時(shí)取得最好的結(jié)果指標(biāo)和時(shí)間性能。
本節(jié)歸納了話題分割任務(wù)中已有的,以及在其他工作中較為典型的幾種句子編碼方法。一般地,之前的研究主要使用基于詞頻[3]、隱式[4]、序列[2,8]和Transformer的方法[9,12]來編碼句子。除此之外,Shi等人[15]比較了多種樹形句子編碼方法,用于單句子分類、句子關(guān)系分類和句子生成等下游任務(wù);Yao等人[17]和Zhang等人[18]提出了基于圖神經(jīng)網(wǎng)絡(luò)的句子編碼方法,用于文本分類任務(wù)。下文將對各個(gè)方法進(jìn)行詳細(xì)介紹。
LSA[4](Latent Semantic Analysis)把篇章中的句子表示為m維的詞頻向量,一個(gè)長度為n的篇章被表示為矩陣X∈n×m。首先利用奇異值分解,提取k個(gè)最大的奇異值來近似描述原來的矩陣X,所以,原來m維的詞頻向量被壓縮成了k維的隱式向量。接下來的分割過程與TextTiling類似。
TextTiling使用詞頻方法來得到窗口表示,利用詞匯的變化特征來尋找分割點(diǎn),但是它獲得的特征向量相對稀疏,且忽略了單詞之間的真實(shí)依賴。LSA通過奇異值分解得到了較為稠密的特征向量,但它依然沒有解決單詞之間的真實(shí)依賴問題。
TextSeg[2]首先把句子表示成單詞序列,并使用300維的Word2Vec詞嵌入模型對單詞進(jìn)行初始化。然后把單詞序列輸入到Bi-LSTM中,取出每一個(gè)時(shí)間步的隱藏層向量,使用最大池化(Max-pooling)來得到句子的向量表示。向量表示序列被送入上層Bi-LSTM以捕捉它們之間的序列關(guān)系,并進(jìn)一步使用全連接層來給每一個(gè)句子預(yù)測一個(gè)二值標(biāo)簽,表示其是否是分割點(diǎn)。
序列方法使用Bi-LSTM+Pooling的方式得到稠密的特征向量,能夠考慮單詞之間的序列關(guān)系,上層的Bi-LSTM能夠進(jìn)一步捕捉篇章內(nèi)部的序列關(guān)系。然而,單詞之間不僅僅是簡單的序列關(guān)系,句子內(nèi)部通常有自然的語法結(jié)構(gòu)[14],而且,篇章內(nèi)部的上下文間的詞也存在復(fù)雜的關(guān)系。
Hierarchical BERT[12]首先使用768維的BERTBase,把[CLS]的向量表示作為句子的表示。然后,將句子表示序列送入上層Transformer模型,通過交叉注意力機(jī)制(Cross-attention)把不同的句子聯(lián)系起來。最后,使用全連接層來給每一個(gè)句子預(yù)測一個(gè)二值標(biāo)簽,表示其是否是分割點(diǎn)。
Shi等人[15]首先把句子表示成帶有樹形結(jié)構(gòu)的單詞序列,并使用300維的GloVe詞嵌入模型[20]對單詞進(jìn)行初始化。然后把單詞序列輸入到Tree-LSTM模型,不同的樹形結(jié)構(gòu)意味著不同的計(jì)算過程。他們嘗試了直接使用最后一個(gè)隱藏節(jié)點(diǎn)的表示以及使用Pooling來結(jié)合所有隱藏節(jié)點(diǎn)這兩種方式,來得到句子的向量表示,句子向量表示序列被進(jìn)一步送入上層模型進(jìn)行下游任務(wù)。
Transformer方法和樹形方法都能同時(shí)考慮單詞之間以及篇章內(nèi)部的非序列關(guān)系,但是這兩種方法的計(jì)算復(fù)雜度較高,在話題分割任務(wù)中使用它們時(shí)對計(jì)算資源要求較高,而且需要做出截?cái)嚅L句子、將長篇章截?cái)喑啥喾莸臓奚?/p>
TextGCN[17]和TextING[18]都是圖神經(jīng)網(wǎng)絡(luò)在文本分類任務(wù)上的應(yīng)用,這兩個(gè)模型在圖的構(gòu)建部分和圖網(wǎng)絡(luò)的選擇部分有所不同。
TextGCN將整個(gè)語料構(gòu)建成圖,圖中同時(shí)包含單詞和文章(Document)節(jié)點(diǎn),節(jié)點(diǎn)都被初始化為獨(dú)熱(One-Hot)向量。首先使用逐點(diǎn)互信息(Point-wise Mutual Information,PMI)來衡量單詞節(jié)點(diǎn)之間的邊的權(quán)重,使用詞頻-逆文本頻率指數(shù)(Term Frequency-Inverse Document Frequency,TF-IDF)來計(jì)算單詞和文章節(jié)點(diǎn)之間的邊的權(quán)重。在得到圖的特征矩陣X以及鄰接矩陣A之后,把建好的圖送入圖卷積網(wǎng)絡(luò)(Graph Convolutional Networks,GCN)[21]進(jìn)行迭代,然后取出圖中的文章嵌入向量作為文章的向量表示,并將其送入全連接層用于文本分類。
TextING給每篇文章單獨(dú)建圖,圖中僅包含了該文章中的所有單詞節(jié)點(diǎn),節(jié)點(diǎn)使用300維的GloVe詞嵌入模型進(jìn)行初始化。單詞節(jié)點(diǎn)之間存在邊,方法賦予每一個(gè)在滑動(dòng)窗口內(nèi)共同出現(xiàn)過的單詞對一條權(quán)重為1的連邊。在得到圖的特征矩陣X以及鄰接矩陣A之后,把建好的圖送入GGNN網(wǎng)絡(luò)[19]進(jìn)行迭代,然后通過讀出函數(shù)(Readout Function)融合所有單詞節(jié)點(diǎn)來得到文章的向量表示,并將其送入全連接層用于文本分類。
TextGCN的優(yōu)點(diǎn)在于把句子節(jié)點(diǎn)加入到了圖中,當(dāng)多層GCN網(wǎng)絡(luò)被堆疊、更遠(yuǎn)的鄰接信息被整合時(shí),句子節(jié)點(diǎn)之間也產(chǎn)生了間接的信息交互,也就是說,該方法能夠得到整個(gè)語料的全局信息。但是,該方法將整個(gè)語料構(gòu)建成一張圖,需要很大的內(nèi)存[22]。TextING的優(yōu)點(diǎn)在于為每篇文章單獨(dú)建圖,減小了內(nèi)存的消耗。但是該方法沒有把句子節(jié)點(diǎn)加入圖中,也就無法得到語料的全局信息。
為了得到篇章的全局語義信息,并解決現(xiàn)有句子編碼方法在話題分割任務(wù)中的計(jì)算復(fù)雜度問題,受到TextSeg[2]、TextGCN[17]和TextING[18]等工作的啟發(fā),本文提出了一個(gè)基于篇章結(jié)構(gòu)圖網(wǎng)絡(luò)的話題分割模型DSG-SEG,模型的總體架構(gòu)如圖2所示。接下來將依次介紹該模型的架構(gòu): 圖構(gòu)建(Graph Construction)、句子編碼(Sentence Encoding)、分割點(diǎn)預(yù)測(Segmentation Points Prediction)。
圖2 DSG-SEG模型框架
模型的輸入是一個(gè)篇章,視其為句子序列(s1,…,si,…,sn),模型將該篇章構(gòu)建成一個(gè)單獨(dú)的圖,該圖由一個(gè)特征矩陣和一個(gè)鄰接矩陣組成。接下來將介紹圖的構(gòu)建過程,主要包括三個(gè)部分: 節(jié)點(diǎn)的表示、鄰接邊的連接、圖的整合。
2.1.1 節(jié)點(diǎn)的表示
TextGCN為整個(gè)語料構(gòu)建了一個(gè)以語料中所有單詞和句子為節(jié)點(diǎn)的圖,與之不同的是,DSG-SEG把每個(gè)篇章構(gòu)建成一個(gè)單獨(dú)的圖,該圖以篇章中所有單詞和句子為圖中的節(jié)點(diǎn),也就是說,每一個(gè)圖存在兩種節(jié)點(diǎn): 單詞節(jié)點(diǎn)和句子節(jié)點(diǎn)。
(1)單詞節(jié)點(diǎn): 模型將單詞節(jié)點(diǎn)初始化為預(yù)訓(xùn)練的詞嵌入向量,因?yàn)樵~嵌入方法不僅緩解了冷啟動(dòng)問題,也帶來了更準(zhǔn)確的語義信息[23]。
(2)句子節(jié)點(diǎn): 模型用Max-pooling的方式來得到句子節(jié)點(diǎn)的初始化向量。特別地,TextING為每篇文章構(gòu)建單獨(dú)的圖,圖中只包含單詞節(jié)點(diǎn)而不包含句子節(jié)點(diǎn)。為了與之比較,本文會(huì)在消融實(shí)驗(yàn)部分探究圖中是否包含句子節(jié)點(diǎn)對于模型表現(xiàn)的影響。
由此,模型得到了這個(gè)圖的特征矩陣X∈m×d,其中,m表示單詞和句子節(jié)點(diǎn)的總數(shù),d表示節(jié)點(diǎn)的特征維度。X的前n行存放n個(gè)句子節(jié)點(diǎn),從第n+1行開始存放m-n個(gè)單詞節(jié)點(diǎn),如式(1)所示。
(1)
其中,S={s1,…,sn},代表圖中句子節(jié)點(diǎn)集合,W={w1, …,wm-n},代表圖中單詞節(jié)點(diǎn)集合。
2.1.2 鄰接邊的連接
一個(gè)圖存在三種邊: 單詞節(jié)點(diǎn)之間的邊、單詞和句子節(jié)點(diǎn)之間的邊以及自環(huán)邊。
(1)單詞節(jié)點(diǎn)之間的邊: 參照TextGCN的工作,模型使用單詞的共現(xiàn)信息來衡量單詞之間的邊的權(quán)重。具體來說,模型使用一個(gè)固定大小的滑動(dòng)窗口,在一個(gè)篇章的所有句子上進(jìn)行滑動(dòng),來計(jì)算單詞和單詞之間的PMI指標(biāo)。對于一個(gè)給定的單詞對(i≠j),PMI指標(biāo)的計(jì)算如式(2)~式(4)所示。
其中,#W表示所有的滑動(dòng)窗口數(shù),#W(i)表示出現(xiàn)過單詞i的窗口數(shù),#W(i,j)表示同時(shí)出現(xiàn)過單詞i、單詞j的窗口數(shù),p(i)、p(j)分別表示所有滑動(dòng)窗口中,單詞i和單詞j各自出現(xiàn)的頻率,p(i,j)表示所有滑動(dòng)窗口中,單詞i和單詞j共同出現(xiàn)的頻率。
由于負(fù)PMI指標(biāo)代表了很低的語義關(guān)聯(lián)度,模型只保留PMI指標(biāo)為正的單詞節(jié)點(diǎn)之間的邊。
特別地,TextING簡單地將所有鄰接單詞節(jié)點(diǎn)之間的連邊權(quán)重設(shè)置為1,為了與之比較,本文會(huì)在消融實(shí)驗(yàn)部分探究是否使用PMI指標(biāo)對于模型效果的影響。
(2)單詞和句子節(jié)點(diǎn)之間的邊: 對于一個(gè)句子節(jié)點(diǎn)來說,其與其所包含的每一個(gè)單詞節(jié)點(diǎn)之間都存在一條權(quán)重為1的連邊。模型沒有使用TF-IDF指標(biāo)作為邊的權(quán)重,因?yàn)閷?shí)驗(yàn)結(jié)果表明,使用TF-IDF指標(biāo)并沒有為模型帶來性能上的提升。
(3)自環(huán)邊: 和TextGCN一樣,模型給圖中所有的節(jié)點(diǎn)都設(shè)置一條權(quán)重為1的自環(huán)邊,從而使得每個(gè)節(jié)點(diǎn)不僅能夠關(guān)注鄰接節(jié)點(diǎn)的信息,也能夠保留自身已經(jīng)學(xué)到的信息[23]。
由此,模型得到了這個(gè)圖的鄰接矩陣A∈m×m:
(5)
2.1.3 圖的整合
如上所述,對于一個(gè)篇章,模型首先得到了圖的特征矩陣X∈m×d和圖的鄰接矩陣A∈m×m。接下來,模型計(jì)算圖的度矩陣D,度矩陣的計(jì)算如式(6)所示。
(6)
(7)
其中,h0=X,σ是sigmoid函數(shù),所有的W、U和b都是可訓(xùn)練的參數(shù),z和r分別代表更新門和重置門,以決定鄰接信息對于當(dāng)前節(jié)點(diǎn)的貢獻(xiàn)程度[18]。
如上所述,模型在特征矩陣X的前n行保存了該篇章中所有的句子節(jié)點(diǎn)。經(jīng)過t次網(wǎng)絡(luò)迭代,模型取出ht的前n行作為句子的向量表示序列(e1,…,ei,…,en),如式(13)所示。
(13)
經(jīng)過圖的構(gòu)建和句子編碼過程,模型得到了輸入篇章的句子表示序列(e1,…,ei,…,en)。該句子表示序列被送入雙層的Bi-LSTM模型,從而得到句子的隱藏層向量序列(h1,…,hi,…,hn),如式(14)所示。
(h1,…,hi,…,hn)=Bi-LSTM(e1,…,ei,…,en)
(14)
最后,模型使用一個(gè)全連接層和softmax層來將每一個(gè)句子的隱藏層向量映射到一個(gè)0到1的概率分布pi。與TextSeg一樣,對于一個(gè)包含n個(gè)句子的篇章,模型最小化前n-1個(gè)句子的交叉熵之和來訓(xùn)練參數(shù),損失函數(shù)如式(15)所示。
(15)
其中,yi表示第i個(gè)句子的真實(shí)標(biāo)簽。
為了充分驗(yàn)證本文提出的模型在話題分割任務(wù)
中的有效性,在一個(gè)較大規(guī)模的數(shù)據(jù)集上訓(xùn)練模型,而在其他8個(gè)數(shù)據(jù)集上測試模型。這些數(shù)據(jù)集的部分信息如表1所示。
表1 數(shù)據(jù)集部分信息
實(shí)驗(yàn)選擇WIKI-727K(Koshorek等人[2])作為模型的訓(xùn)練語料,實(shí)驗(yàn)分別從WIKI-727K的訓(xùn)練集、測試集和驗(yàn)證集中抽取了8 000、1 000和1 000個(gè)篇章,組成了包含1萬個(gè)篇章的WIKI-10K。也就是說,實(shí)驗(yàn)把8 000個(gè)從WIKI-727K中抽取的篇章作為訓(xùn)練集,將訓(xùn)練好的模型在以下8個(gè)測試集上進(jìn)行評估:
WIKI-10K是從WIKI-727K中抽取的1萬個(gè)篇章。WIKI-727K包含了超過72萬個(gè)來自英文維基百科的篇章,按照8/1/1的比例被劃分成訓(xùn)練集、驗(yàn)證集和測試集。實(shí)驗(yàn)按照同樣的比例對WIKI-10K進(jìn)行數(shù)據(jù)集的劃分。在數(shù)據(jù)預(yù)處理部分,和作者一樣,列表、代碼片段和其他特殊元素被過濾掉了。實(shí)驗(yàn)選取WIKI-10K中的測試集作為8個(gè)測試集的1個(gè)。
WIKI-SECTION(Arnold等人[24])包含了英語和德語兩種語料,實(shí)驗(yàn)使用其中的英語語料WIKI-SECTION(EN)。它包含了21 376個(gè)來自維基百科的篇章,和作者一樣,實(shí)驗(yàn)按照7/1/2的比例劃分訓(xùn)練集(14 472)、驗(yàn)證集(2 073)和測試集(4 142),并選取其中的測試集作為8個(gè)測試集的1個(gè)。
CHOI(Choi[5])包含了920個(gè)從布朗語料中人工拼接而成的篇章,因此,該數(shù)據(jù)集并不能真實(shí)反映存在的話題轉(zhuǎn)移,但為了方便比較,依然考慮使用該數(shù)據(jù)集。
CLINICAL(Malioutov和Barzilay[25])是作者從一本醫(yī)學(xué)教科書中抽取的227個(gè)篇章。
ELEMENTS(Chen等人[26])是作者從維基百科中抽取的118個(gè)篇章。
CITIES(Chen等人[26])是作者從維基百科中抽取的100個(gè)篇章。
WIKI-50(Koshorek等人[27])是作者從WIKI-727K的測試集中隨機(jī)抽取的50個(gè)篇章。
對于以上8個(gè)數(shù)據(jù)集中的后6個(gè)數(shù)據(jù)集,實(shí)驗(yàn)使用它們的全部數(shù)據(jù)作為測試集(它們對應(yīng)的訓(xùn)練集為WIKI-10K的訓(xùn)練集)。
實(shí)驗(yàn)使用Pk指標(biāo)(Beeferman等人[27])來評估模型的性能。具體地,Pk指標(biāo)的計(jì)算如式(16)所示。
(16)
其中,ref代表正確的分割,hyp代表預(yù)測的分割結(jié)果。δ代表一個(gè)標(biāo)識符,當(dāng)?shù)趇個(gè)位置和第i+k個(gè)位置的句子同屬于一個(gè)分割時(shí),δ=1,否則,δ=0。k代表評估窗口的大小,一般取ref長度的一半。Pk指標(biāo)衡量了真實(shí)情況和預(yù)測情況的差異程度,所以越小的Pk值表示越好的性能表現(xiàn)。
為了證明圖神經(jīng)網(wǎng)絡(luò)作為句子編碼的一種方法在話題分割任務(wù)中的有效性,實(shí)驗(yàn)將DSG-SEG與其他5種句子編碼方法(詞頻、隱式、序列、樹形、Transformer方法)作比較。需要特別說明的是,實(shí)驗(yàn)使用5種句子編碼方法替換DSG-SEG模型的圖的構(gòu)建部分和句子編碼部分,在得到各自的句子向量表示之后,所有基準(zhǔn)模型都進(jìn)一步使用與DSG-SEG的分割點(diǎn)預(yù)測部分一致的網(wǎng)絡(luò)來進(jìn)行分割點(diǎn)的預(yù)測。下面將詳細(xì)介紹各個(gè)方法及其參數(shù)設(shè)置。
詞頻方法(freq-sr)取10 000個(gè)高頻詞構(gòu)成詞典,10 000個(gè)詞典內(nèi)的單詞和1個(gè)詞典外的詞(
隱式方法(latent-sr)首先把一個(gè)含有n個(gè)句子的篇章表示成n×m維的詞頻矩陣,然后利用奇異值分解,提取k=300個(gè)最大的奇異值來近似描述原來的詞頻矩陣。對于每一個(gè)句子而言,原來m維的詞頻向量被壓縮成了300維的句子向量。
序列方法(TextSeg[2])首先把每一個(gè)句子表示為單詞序列,并使用預(yù)訓(xùn)練詞向量對單詞進(jìn)行初始化。然后將單詞序列送入隱藏層維度為256維的雙層Bi-LSTM,最后使用Max-pooling得到512維的句子向量。
樹形方法(tree-sr)首先把每一個(gè)句子表示為單詞序列,并使用預(yù)訓(xùn)練詞向量對單詞進(jìn)行初始化。然后將單詞序列送入Tree-LSTM,最后使用注意力池化(Attn-pooling)得到300維的句子向量表示。實(shí)驗(yàn)考慮平衡二叉樹、左平衡樹和右平衡樹這三種平凡的樹形結(jié)構(gòu),由于左平衡樹的實(shí)驗(yàn)結(jié)果最好,所以僅使用它作為基準(zhǔn)模型之一,記作tree-sr-left。
Transformer方法(BERT+Bi-LSTM[12])首先把每一個(gè)句子表示為單詞序列,接著將其送入BERT的分詞器得到子詞序列,并在句首加入[CLS]字符。然后將子詞序列送入BERTBase,取出768維的[CLS]字符向量表示,作為該句子的向量表示。在不微調(diào)和微調(diào)BERTBase這兩種情況下,實(shí)驗(yàn)得到了BERT+Bi-LSTMnft和BERT+Bi-LSTM這兩種基準(zhǔn)模型。
詞嵌入詞嵌入部分,除了freq-sr、latent-sr、BERT+Bi-LSTMnft和BERT+Bi-LSTM這四個(gè)模型,所有其他模型的單詞初始化均使用300維的Google News Word2Vec預(yù)訓(xùn)練模型。
DSG-SEG模型參數(shù)圖的構(gòu)建部分,滑動(dòng)窗口大小window_size=3;句子編碼部分,模型中的W、U和b等可訓(xùn)練參數(shù)的維度都被設(shè)置為300維,模型的迭代次數(shù)t=2,dropout_rate=0.3,激活函數(shù)使用Tanh;分割點(diǎn)預(yù)測部分,實(shí)驗(yàn)設(shè)置Bi-LSTM的隱藏層維度hidden_dim=256。
訓(xùn)練和預(yù)測(1)https://github.com/beiweixiaoxu/DSG-SEG。在訓(xùn)練BERT+Bi-LSTM模型時(shí),由于顯存的限制,batch size被設(shè)置為3,訓(xùn)練其他模型時(shí),batch size均被設(shè)置為8,訓(xùn)練階段,使用Adam[28]優(yōu)化器,訓(xùn)練所有模型的學(xué)習(xí)率都設(shè)置為0.001,當(dāng)模型在驗(yàn)證集上的表現(xiàn)超過5輪沒有提升后,訓(xùn)練結(jié)束;與TextSeg一樣,模型設(shè)置一個(gè)閾值,對于一個(gè)句子,當(dāng)它的預(yù)測概率超過該閾值時(shí),其預(yù)測標(biāo)簽為1,否則為0。所有模型在驗(yàn)證集上優(yōu)化該閾值,在測試集上使用最佳閾值進(jìn)行預(yù)測。
實(shí)驗(yàn)設(shè)備實(shí)驗(yàn)在Tesla M40 24 GB上進(jìn)行。
為了保證結(jié)果的可靠性,實(shí)驗(yàn)使用5組不同的種子(seed)來得到所有模型在所有數(shù)據(jù)集上的平均Pk結(jié)果。
表2展示了所有模型在WIKI-10K的訓(xùn)練集上訓(xùn)練,然后在其他8種測試集上的評估結(jié)果。實(shí)驗(yàn)結(jié)果表明:
表2 所有模型的實(shí)驗(yàn)結(jié)果(Pk%)
(1) DSG-SEG模型在WIKI-10K、WIKI-SECTION、CHOI、CITES和WIKI-50這5個(gè)測試集上同時(shí)取得了最好的結(jié)果,分別比基準(zhǔn)模型中的最好結(jié)果提高了3.4%、3.8%、11.2%、13.0%和1.9%。在CLINICAL和ELEMENTS測試集上,DSG-SEG與基準(zhǔn)模型中的最好結(jié)果分別相差4.4%和0.4%。平均來看,DSG-SEG比BERT+Bi-LSTMnft提升了4.8%,比TextSeg提升了6.3%。
(2) latent-sr和freq-sr在大部分測試集上取得了較差的結(jié)果,可能的原因是: 它們的句子編碼部分是無監(jiān)督的。
(3)微調(diào)版本的BERT遠(yuǎn)遠(yuǎn)比不過不微調(diào)的BERT。tree-sr-left的結(jié)果也較差,出現(xiàn)上述情況的原因可能是: 由于顯存的限制,在訓(xùn)練BERT+Bi-LSTM和tree-sr-left時(shí),實(shí)驗(yàn)對句子長度sent_length>40的句子進(jìn)行了截?cái)?,把篇章長度document_length>60的篇章截?cái)喑闪硕鄠€(gè)子樣本,這樣的操作可能對結(jié)果產(chǎn)生了較大的影響。
(4) 相比之下,在所有的基準(zhǔn)模型中,TextSeg和BERT+Bi-LSTMnft取得了較好的結(jié)果,這表明了序列方法和Transformer方法在話題分割任務(wù)中的有效性。
(5) 所有模型在MANIFESTO這一測試集上都取得了比random方法差的結(jié)果,可能的原因是: MANIFESTO中的篇章篇幅過長,分割點(diǎn)過于密集,因此有監(jiān)督的模型無法在該數(shù)據(jù)集上得到有效的遷移結(jié)果。
為了探究DSG-SEG在圖的構(gòu)建過程中: ①把句子節(jié)點(diǎn)加入圖; ②單詞節(jié)點(diǎn)之間的連邊權(quán)重使用PMI指標(biāo),這兩個(gè)細(xì)節(jié)對于模型性能的貢獻(xiàn)度,下面將進(jìn)行兩組消融實(shí)驗(yàn):
(1) 圖中不包含句子節(jié)點(diǎn),僅保留單詞節(jié)點(diǎn),單詞節(jié)點(diǎn)之間的連邊權(quán)重依然使用PMI指標(biāo)和TextING[18]一樣,模型通過讀出函數(shù)(Readout Function)融合所有單詞節(jié)點(diǎn)來得到句子的向量表示(記作-SENTNODE)。
(2) 圖中同時(shí)包含單詞和句子節(jié)點(diǎn),但所有鄰接的單詞節(jié)點(diǎn)之間的連邊權(quán)重均設(shè)置為1,而不使用PMI指標(biāo)(記作-PMI)。
值得注意的是,在情況(1)下,由于圖中不包含句子節(jié)點(diǎn),句子之間也就不可能通過共有的鄰接單詞節(jié)點(diǎn)產(chǎn)生間接的信息交換。
消融實(shí)驗(yàn)結(jié)果如表3所示,可以看到:
表3 消融實(shí)驗(yàn)結(jié)果(Pk%)
(1) 把句子節(jié)點(diǎn)排除在圖之外的SENTNODE消融模型,在除CLINICAL以外的其他7個(gè)數(shù)據(jù)集上,Pk值都出現(xiàn)了不同程度的上升,平均來看,Pk值上升了1.90%。這一結(jié)果說明了在圖的構(gòu)建部分DSG-SEG將句子節(jié)點(diǎn)加入圖的有效性,模型允許句子節(jié)點(diǎn)之間通過共有的鄰接單詞節(jié)點(diǎn)產(chǎn)生間接的信息交換,能夠同時(shí)考慮單詞之間和篇章內(nèi)部的非序列關(guān)系來得到具有全局語義信息的句子向量表示。
(2) 沒有使用PMI指標(biāo)的PMI消融模型,在除WIKI-10K、CLINICAL以外的其他6個(gè)數(shù)據(jù)集上,性能都有所下降,平均來看,Pk值上升了0.6%,這說明使用PMI指標(biāo)能夠?yàn)槟P蛶砀訙?zhǔn)確的語義信息。
(3) 在WIKI-10K和CLINICAL數(shù)據(jù)集上呈現(xiàn)出了不穩(wěn)定的消融實(shí)驗(yàn)結(jié)果,可能的原因是: 這兩個(gè)數(shù)據(jù)集的平均分割長度最長,分割點(diǎn)的分布相對稀疏,增加了模型預(yù)測結(jié)果的不穩(wěn)定性。
實(shí)驗(yàn)取出WIKI-10K測試集中的一個(gè)篇章(2)將其命名為Bardwell Park,其全文見附錄中的圖 3。來做樣例分析。該篇章介紹了一個(gè)名叫巴德韋爾的公園,共分為5個(gè)段落: 0~4,5~12,13~14,15~19,20~24,標(biāo)注的話題標(biāo)簽分別是: 歷史、巴德韋爾公園與沃利溪山谷、商業(yè)區(qū)、交通、人口統(tǒng)計(jì)數(shù)據(jù)。表4從上到下分別是: 該篇章正確的段落分割以及BERT+Bi-LSTMnft、TextSeg和DSG-SEG這三個(gè)模型的分割預(yù)測結(jié)果。可以看到:
表4 樣例分割結(jié)果
(1) 只有DSG-SEG預(yù)測出了第4句話這一分割點(diǎn)。事實(shí)上,0~4段,與5~12段的前4句話都是在討論巴德韋爾公園,差別在于: 0~4段介紹了它的歷史,而5~8段介紹的是公民對它的環(huán)境保護(hù)運(yùn)動(dòng)。也就是說,三個(gè)模型中,只有DSG-SEG識別出了這一細(xì)微差別,并做出了正確的分割。
(2) TextSeg和DSG-SEG都錯(cuò)誤地把第8個(gè)句子預(yù)測成了分割點(diǎn),可能的原因如前所述: 5~8段和9~12段本質(zhì)上都是在討論環(huán)境保護(hù)問題,但前后段落的描述對象從巴德韋爾公園轉(zhuǎn)移到了沃利溪山谷,這一點(diǎn)從5~12段所被標(biāo)注的話題標(biāo)簽上也可以明顯地看出。
(3) 三個(gè)模型都沒有預(yù)測出13~14段,這可能說明: 無論是序列方法、Transformer方法,還是本文提出的DSG-SEG模型,它們在預(yù)測較短的段落時(shí),都不能準(zhǔn)確地捕捉到話題轉(zhuǎn)移的語義信息。
(4) TextSeg沒能預(yù)測出15~19段,可能的原因是: 序列方法把13~14段錯(cuò)誤的語義信息傳遞了下來,進(jìn)而導(dǎo)致了連續(xù)的分割錯(cuò)誤。
總的來說,DSG-SEG取得了更好的分割結(jié)果,因此,其具有更強(qiáng)的全局語義信息建模能力。
實(shí)驗(yàn)統(tǒng)計(jì)了TextSeg、BERT+Bi-LSTMnft、BERT+Bi-LSTM以及DSG-SEG這四個(gè)模型在WIKI-10K上訓(xùn)練一輪(EPOCH)所需要的時(shí)間和各自的可訓(xùn)練參數(shù)量(PARAMS),如表5所示(3)由于BERT+Bi-LSTM受顯存的限制,所有模型的batch size都設(shè)置為3。??梢钥吹剑?①由于雙層Bi-LSTM的存在,TextSeg的參數(shù)量較多,訓(xùn)練較慢。②雖然BERT+Bi-LSTMnft并沒有對BERTBase進(jìn)行微調(diào),參數(shù)量比TextSeg少得多,但由于Transformer模型具有二次方的計(jì)算復(fù)雜度,所以它在話題分割任務(wù)中的時(shí)間性能依然很差。③BERT+Bi-LSTM具有最多的參數(shù)量和最差的時(shí)間性能。④相比之下,DSG-SEG具有最少的參數(shù)量,運(yùn)行速度也最快,其訓(xùn)練速度分別是TextSeg的1.6倍、BERT+Bi-LSTMnft的4.6倍、BERT+Bi-LSTM的9.9倍。
表5 時(shí)間性能和參數(shù)量統(tǒng)計(jì)
在完整的WIKI-727K數(shù)據(jù)集上,DSG-SEG無法取得最好的性能,可能的原因是: 相比較其他基準(zhǔn)模型,DSG-SEG沒有足夠的參數(shù)從更大規(guī)模的訓(xùn)練集中學(xué)到更好的特征。
本文首次在話題分割任務(wù)中使用圖神經(jīng)網(wǎng)絡(luò),提出了一個(gè)基于篇章結(jié)構(gòu)圖網(wǎng)絡(luò)的話題分割模型DSG-SEG。首先,模型把每一個(gè)篇章單獨(dú)構(gòu)建成圖,圖中包含了單詞、句子節(jié)點(diǎn),以及單詞節(jié)點(diǎn)、單詞和句子節(jié)點(diǎn)之間的鄰接關(guān)系;接著,模型把建好的圖作為輸入,使用GGNN網(wǎng)絡(luò)對其進(jìn)行迭代,句子節(jié)點(diǎn)之間通過共有的鄰接單詞節(jié)點(diǎn)產(chǎn)生了間接的信息交互;最終,模型得到了具有全局語義信息的句子向量表示,并將其送入Bi-LSTM網(wǎng)絡(luò)進(jìn)行分割點(diǎn)的預(yù)測。實(shí)驗(yàn)結(jié)果表明,本文提出的DSG-SEG模型能夠在多個(gè)數(shù)據(jù)集上同時(shí)取得最好的結(jié)果指標(biāo)和時(shí)間性能。在接下來的工作中,我們會(huì)探索更適合于話題分割,且能夠在大規(guī)模訓(xùn)練語料上取得突出結(jié)果的句子向量表示方法;另外,我們將嘗試把話題分割建模成分割點(diǎn)的預(yù)測和其他任務(wù)同時(shí)進(jìn)行的聯(lián)合任務(wù);我們也將嘗試在中文語料集上進(jìn)行實(shí)驗(yàn)。
Bardwell Park的全文如圖 3所示。
圖3 Bardwell Park