魏天珂,呂學強,周 強
1 (北京信息科技大學 網(wǎng)絡文化與數(shù)字傳播北京市重點實驗室,北京 100101 2(清華信息科學與技術國家實驗室(籌),清華大學信息技術研究院語音與語言技術中心, 北京 100084)
在漢語中,句群是在語義上有邏輯聯(lián)系,在語法上有結構關系,在語流中銜接連貫的一組句子的組合[1].每個句群一般有一個明晰的中心意思.80年代以來,由于受到國外“句子實際切分”以及“話語語言學”問題討論的影響,我國對句群研究的關注度逐漸加強[2].近幾年研究表明,句群的研究對機器翻譯以及閱讀理解問題有著至關重要的作用[3-5].另外,句群比單個句子考慮了更大的上下文環(huán)境,且相對整個篇章,句群的結構更加清晰、簡單,這些特點使得句群在很多文本研究中越發(fā)受歡迎.
在漢語中,大多數(shù)的篇章都是由不同的主題組織的,而一個句群只含有一個明確的中心思想,因此,句群的切分問題可以視作語篇不同主題片段的識別問題.根據(jù)人們的寫作特點與閱讀習慣,一般根據(jù)主題信息按照從頂向下的方式將相同主題的信息組織起來,然后利用自底向上的方式判斷當前句子與上一個句子之間的關系.通過這樣一種“從頂向下+自底向上”的方式就可以將整個語篇的結構劃分清楚.在句群切分過程中,如果能夠識別句子之間的連貫關系,判斷兩個句子是否在描述同一個主題,就可以得出這兩個句子是否在同一個句群中,從而實現(xiàn)句群的自動切分.我們在前一階段的研究中得出,如果兩個句子之間有連貫關系,那么這兩個句子總是在一個句群中,相反這兩句則分別是兩個句群的結尾和開始1.在自然語言處理領域中,兩個句子(以下簡稱句對)之間的關系識別早已不是新話題,許多專家學者在英語方面已經(jīng)做了很多研究,在DRC(Discourse Relation Classification)、PI(Paraphrase Identification)、TE(Textual Entailment)等問題上取得了可觀的成果.另一方面,如果只在兩句的上下文環(huán)境中進行句群的切分,有可能造成句群顆粒度過于碎或者過于大.因此,在句對關系分類時加入句群的主題信息,可以利用更大的上下文環(huán)境,使得切分出的句群更加準確.
目前大多數(shù)的分類方法都是利用有監(jiān)督方法進行學習,訓練時需要大量的標注數(shù)據(jù),而實際環(huán)境中通常并不能夠獲取大規(guī)模的標注數(shù)據(jù),因此需要利用弱標注或是無標注的數(shù)據(jù)來解決數(shù)據(jù)短缺難題.段落和句群在結構上有許多相似之處,兩者分割邊界重合的情況十分常見,因此,可以將此類數(shù)據(jù)集作為句群邊界的弱標注數(shù)據(jù)集,將其與原始句群標注數(shù)據(jù)集進行合并.在這個弱標注環(huán)境下,本文提出了一種句群自動切分方法,利用CNN(Convolutional Neural Network)對輸入的漢語句對進行分類,在輸入層加入句群主題特征來引入句群切分最需要的上下文信息,后加入注意力機制對卷積層的輸出進行改善.最后將句對的分類結果轉換成句群結構與人工構建的評測語料進行對比,使用宏嚴格一致率與宏模糊一致率以及WindowDiff[7]對句群切分結果進行綜合評定.
在下面幾節(jié)中,第二節(jié)主要介紹相關工作,第三節(jié)主要是漢語句群自動劃分模型設計與相關評價函數(shù);第四節(jié)主要給出了實驗結果與分析說明;最后的第五節(jié)是結論與展望.
獲取大規(guī)模的標注數(shù)據(jù)是昂貴且困難的,例如,在科學應用中,獲取標簽數(shù)據(jù)需要進行重復實驗或人工標注.在醫(yī)學應用中,獲得新藥物的活性分子可能需要昂貴的專業(yè)知識.而另一方面,許多領域的大規(guī)模弱標注語料普遍存在且閑置.因此,利用弱標記的訓練數(shù)據(jù)可能有助于提高性能并發(fā)現(xiàn)數(shù)據(jù)的基礎結構[8].這些弱標注數(shù)據(jù)集的標簽相對于標注數(shù)據(jù)集是不完整的,在本文任務中,那些不完整的標簽數(shù)據(jù)集對應的是段落邊界與句群邊界不重合的部分.而田小琳等指出,段落和句群在很多地方是相似的,在一定程度上甚至可以相等.因此,在弱標注段落數(shù)據(jù)集中,有大部分的段落邊界標簽是與句群邊界標簽相同的.所以,本文在弱標注環(huán)境下,對句群自動切分進行了研究.
目前對漢語句群的自動切分研究不是很多.王榮波(2015)[9]等提出了基于多元判別分析的漢語句群自動劃分方法,并根據(jù)多個特征.例如,句群主題特征、句間連貫關系特征等設計出評價函數(shù),在每一個段落的句子組合中,選取最合適的一個句子組合作為句群,并使用518個句群進行實驗.然而其過程并沒有真正實現(xiàn)自動化,且只在段落內(nèi)部進行了句群切分的研究,而眾多研究表明,句群也可能由多個段落組成.由此可見,對句群的自動切分不能只局限在段落內(nèi)部.朱靖波等(2017)[10]在整個篇章的層面上使用多元判別分析對段落實現(xiàn)了段落的自動切分,并利用遺傳算法來降低窮舉帶來的高時間復雜度.以上相關研究均意識到了主題對于句群和段落這類語篇單位的重要性.可見句群或段落的有效切分與其主題有著密切聯(lián)系.另一方面,目前大部分的文本切分,一般是以整篇文檔作為分析單位,在進行深度學習的過程中導致信息學習不夠徹底,從而遺漏很多重要信息.從單個句子層面分析文本切分,又會遺失很多至關重要的上下文信息.因此,本文在句對的層面上對小顆粒度單位—句群進行切分,考慮了上下文重要信息,又避免了直接處理整個文本的復雜性.是十分合適的研究單位.
有關句對關系的識別與分類,Yin等(2016)[11]提出的ABCNN(Attention-Based Convolutional Neural Network)在很多數(shù)據(jù)集上均取得了不錯的效果.他以卷積神經(jīng)網(wǎng)絡CNN作為基礎模型,利用Yoon Kim[12]論文中所提出的卷積方式,直接在輸入層加注意力機制(attention)來改善卷積層的輸出,后又在卷積層加入注意力機制對卷積層輸出的結果進行改善.他分別在AS(Answer Selection)領域的WiKiQA,PI(Paraphrase Identification)領域的MSRP,TE(Textual Entailment)領域的SenEval 2014 Task進行實驗.都得到了不錯的效果.Ji等(2016)[13]提出的DRLM(Discourse Relation Language Models)同樣對句對關系進行了分類,使用LSTM(Long Short-Term Memory)[14]模型,并用兩個向量來表示上下文環(huán)境,一個向量表示句子內(nèi)部詞語級別的上下文環(huán)境,另一個向量是句對之間的上下文環(huán)境.然后將這兩個向量進行線性組合.他在PDTB(Penn Discourse Treebank)數(shù)據(jù)集上進行了實驗,同樣取得了不錯的效果.Qin等(2016)[16]提出一種stacking gated 神經(jīng)網(wǎng)絡結構,也對語篇句子之間的隱性關系進行了研究,并且細化了句對關系,將其分為4大類,即COMP(COMPARISON),CONT(CONTINGENCY),EXP(EXPANSION,TEMP(TEMPORAL).他在PDTB數(shù)據(jù)集上進行了實驗,四個類別的F1值均有不錯的效果.該作者在2017年[17]又提出了一種新的神經(jīng)網(wǎng)絡結構-對抗神經(jīng)網(wǎng)絡結構,繼續(xù)研究語篇句子之間的隱性關系,取得了新的進展.
以上關于句對關系分類都可以為句群邊界句的識別提供理論基礎和技術支撐.例如,在TE問題中處理“蘊含”或是“矛盾”關系時,“蘊含”即為兩個句子語義較為相似時的句對關系,對應在句群切分任務上,句對關系可以意味著“連貫”;“矛盾”則兩個句子語義差別較大,對應在句群切分任務上,句對關系可以意味著“不連貫”.因此,無論在處理PI、TE還是本任務的句對連貫關系識別,都有一定的相通性.上文也提到,句群主題特征對句群邊界的識別有重要作用,因此,結合句群主題特征的句對分類可能更適合本文的任務.
詞向量作為神經(jīng)網(wǎng)絡模型最基礎的第一步,在一定程度上決定著一個模型的好壞.為了選擇一個性能較高的詞向量模型,本文從不同方面對詞向量進行了研究,從語料規(guī)模、領域和詞向量維度上進行了探索.從網(wǎng)絡上搜集新聞、百度百科、維基百科、新浪微博等不同領域不同規(guī)模的語料庫進行實驗,利用skip-gram模型訓練出不同維度的詞向量以供選擇.并使用NLPCC-ICCPOL 2016[18]公開評測數(shù)據(jù)集進行評測,該數(shù)據(jù)集由北京大學吳云芳老師組織20位語言學研究生標注(結果取平均)完成.共500個詞對,全部隨機抽取自NLPCC-ICCPOL 2016給出的一萬個詞.最后利用詞向量進行詞對相似度計算,從而完成對詞向量的評測.
本文的任務是實現(xiàn)漢語語篇句群的自動切分,將相鄰的兩個句子組成的句對輸入到神經(jīng)網(wǎng)絡模型中進行分類.并將其分為兩類,即句對之間分為有連貫關系或無連貫關系.本文基于ABCNN(加入注意力機制的卷積神經(jīng)網(wǎng)絡模型)進行修改實驗.該模型原本使用了兩層CNN,卷積方式是一個窗口最后只生成一個卷積值,然后在句子長度上進行滑動,得到一個長度為“句子長度+滑動窗口值-1”的向量.在第一層CNN的輸入層就加入注意力機制attention,其原理是將輸入拓展成雙通道.即先計算矩陣A,其每個元素Aij代表句子1中第i個詞語對句子2中第j個詞語的匹配分數(shù)(match_score),然后分別計算兩個句子的attention map.在第二層CNN中,當計算完attention矩陣A,需要分別為兩個句子計算兩個attention權重向量,即修改了池化層方法,不再是簡單的Average Pooling,而是根據(jù)計算出的attention權重向量計算.但是,該作者提出ABCNN模型的初衷是為了處理PI問題或TE問題,例如,句子1為“一個有多個男人玩的足球賽”,句子2為“一些男人正在足球賽”,在輸入層利用句子1中第i個詞語對句子2中第j個詞語的匹配分數(shù)很有必要.然而,這不一定適合本文任務.因此,本文修改了ABCNN-1模型,即在輸入層添加句群主題信息,不再利用ABCNN在輸入層中給出的attention,設計出更適合本文任務的神經(jīng)網(wǎng)絡模型--結合主題特征的注意力機制卷積神經(jīng)網(wǎng)絡模型Theme Attention based Convolutional Neural Network(TABCNN).其中,第二層卷積層所用的注意力機制仍然使用ABCNN-2模型,Attention 矩陣A的計算方法不變.
原本的輸入層只需要將輸入句子進行padding后轉化成詞向量即可,為了能夠利用句群主題信息,更好地進行句群邊界的區(qū)分,在進行word embedding時,在每一個句子最后加入該句所屬的主題向量.所有的主題向量在進行句對分類前預先利用主題聚類模型進行訓練.句群主題信息的提取采用文檔主題生成模型(LDA),只是將提取主題的單位從文檔縮短至句群.用于文檔主題提取的語料除了人工標注的句群之外,還使用了段落.訓練得出了35個主題信息,然后根據(jù)主題id與詞語id之間的分布關系,以及詞語id與主題id之間的概率分布,計算出每一個句子的主題向量,將此主題向量和詞語向量放在一起,共同構建句子向量矩陣作為TABCNN模型的輸入.通過這樣的方法有效地放大了不同句群主題之間的差異,更大程度地利用上下文信息,從而提升句群邊界句的識別效率.具體處理過程如圖1所示.
圖1 TABCNN結構
另外,為了說明段落信息在句群主題提取模型和句對關系分類模型中的可利用性,本文在135篇人工標注的語篇上進行了段落和句群的對比實驗.統(tǒng)計出了兩者在邊界上的差異.數(shù)據(jù)如表1所示.
表1 135篇語料中段落和句群的邊界差異
根據(jù)表1可得,125個段落包含了544個句群,說明有n個句群組成一個段落的情況,這與之前的研究相符合.即段落一般由多個句群組成.同時也有45個句群包含79個段落的情況,即n個段落組成一個句群,這樣的情況多出現(xiàn)在語篇有“詩篇”結構時,或者為了強調(diào)某個意義而故意一句一段時.因此這也屬于正常情況.而大部分的段落邊界是與句群邊界重合的,由此我們得出,段落信息在某種意義上與句群較為相近,因此,在進行句群主題提取或是句對關系分類時,可以利用段落信息對訓練數(shù)據(jù)集進行擴充.
對于神經(jīng)網(wǎng)絡模型評測,使用準確率.對于句群邊界的差異,將其分為包含與交叉,對此使用宏嚴格一致率、宏模糊一致率來進行對比統(tǒng)計.之所以引入宏模糊一致率,是因為有時出現(xiàn)句群包含情況時,并不能說明算法切分出的句群一定不正確.畢竟句群邊界的位置并不是絕對的,句群是一個相對靈活的單位.因此,宏模糊一致率也有一定的參考作用.其中宏嚴格一致率=模型切分句群與人工標注句群邊界一致的句群總數(shù)/模型切分句群總數(shù);宏模糊一致率=模型切分句群與人工標注句群邊界相等+包含的總數(shù)/模型切分句群總數(shù).具體公式如下所示:
宏嚴格一致率=
(1)
宏模糊一致率=
(2)
同時使用文本分割中公認的WindowDiff評價方法對句群切分的結果進行評測.具體如公式(3)所示.
WindowDiff(ref,hyp)=
(3)
2SG = sentence group 句群邊界.PG = paragraph 段落邊界
其中,ref指人工判斷的分割模式,hyp是指算法給出的分割模式.b(i,j)表示位置i和位置j之間分割點的個數(shù).N表示語篇中句子的數(shù)量.
本文訓練詞向量的語料來自維基百科、新浪微博、新聞,使用Spearman相關系數(shù)*https://baike.baidu.com/item/spearman相關系數(shù)/7977847fr=aladdin和Pearson相關系數(shù)*https://baike.baidu.com/item/皮爾森相關系數(shù)/4222137fr=aladdin進行數(shù)據(jù)對比,具體如表2所示.
表2 詞向量評測結果
對比三個基于維基百科的詞向量,可以得出詞匯的總數(shù)和訓練的維度共同決定著詞向量的性能.但是詞匯總數(shù)比訓練維度更加決定著詞向量的性能.對于同領域的語料,一般語料越大效果越好.領域內(nèi)的語料對相似領域任務的效果提升非常明顯,但在領域不契合時甚至會有負面作用.因此,語料規(guī)模和語料領域之間的權衡也應該注意.有時語料的領域純度比語料規(guī)模更重要.特別是在任務領域的語料比較小時,加入大量其他領域的語料可能會有很負面的影響.對于分析詞向量語言學特性的任務,維度越大效果越好.
選擇一個合適領域的語料,在此前提下,語料規(guī)模越大越好.使用大規(guī)模的語料進行訓練,可以普遍提升詞向量的性能,如果使用領域內(nèi)的語料,對同領域的任務會有顯著的提升.詞向量的維度一般需要選擇50維及以上,特別當衡量詞向量的語言學特性時,詞向量的維度越大,效果越好.目前實驗結果至少在200維以上才能得到較好的性能.選擇2的冪次方(256,512)效果好于200維,但是差異不是很明顯,考慮到越大的詞向量維度會使得句群矩陣越發(fā)龐大,因此,考慮維度選擇不能只考慮“越大越好”.本文選擇序號為5和8的詞向量模型供后續(xù)神經(jīng)網(wǎng)絡模型評測和使用.
本文從北大人民日報語料和清華句法樹庫(TCT)[19]中選取句對語料進行訓練實驗,其中從北大人民日報語料庫中選出了4000篇語料共27141個段落、137452個句對作為弱標注數(shù)據(jù)集.從清華句法樹庫中選取人工標注的241篇語料共1358個句群、10879個句對作為標注數(shù)據(jù).具體數(shù)據(jù)如表3所示.
另外從清華句法樹庫中選取147篇人工標注的語料作為測試數(shù)據(jù).共776個句群、4774個句對.
表3 句對分類實驗訓練數(shù)據(jù)設置
進行句群主題聚類所用的語料也從北大人民日報語料和清華句法樹庫選取,具體數(shù)據(jù)設置如表4所示.
表4 句群主題實驗數(shù)據(jù)設置
當選擇序號為5的詞向量模型進行實驗時,各類模型的實驗結果如表5所示.
表5 v5詞向量下各個模型實驗數(shù)據(jù)對比
需要說明的是,MDA方法是沒有分類正確率.因此,按照其所用評測方法選取了評價分值最高的句群來對比宏嚴格一致率等.通過數(shù)據(jù)可以看出,MDA方法所得的宏嚴格一致率較低,錯誤率較高.使用傳統(tǒng)的SVM對句對進行分類,識別正確率也較低.將預測的句對關系標簽轉換為句群結構時,其宏嚴格一致率只有0.543,而WindowDiff相對較高.但使用機器學習相關方法比MDA效果要好.在使用神經(jīng)網(wǎng)絡模型之后,句對關系的識別正確率有了明顯的提升,且ABCNN模型比DRLM模型提升的效果更加明顯.相應地,其句群邊界的宏嚴格一致率也有了明顯的提升.而加入句群主題向量特征的ABCNN模型,其句對關系識別正確率也有了提升.至此達到了所有模型實驗中最好結果.
為了說明進一步說明模型提升的效果,本文抽檢了預測文本中的數(shù)據(jù),具體如表6所示,其中標簽1為連貫,-1為不連貫.在第一個句對例子中,兩個句子在語義上差別較大,但主題描述的卻是同一類.因此,在加入句群主題模型之后,預測的標簽由不連貫變成了連貫.第二個句對例子中,句子1屬于一個句群的最后一句,旨在說明“中古關系”在前段時期的友好發(fā)展.句子2屬于另一個句群的開始句,旨在說明“中古關系”以后的發(fā)展前景.兩個句子看似十分連貫,但卻表明了不同的主題,因此,在加入句群主題信息之后,預測的標簽由連貫變成了不連貫.
另一方面,為了直觀地對比句群切分結果,本文抽取了幾個句群切分片段,具體如表7所示.
表6 句對預測樣例分析
表7 句群切分片段樣例1
分析表7可得,該片段從第1句到第7句為一整個段落(人工標注的語篇都帶有段落標記信息).人工標注第1-3句為一個句群,第4-7句為一個句群.段落比句群顆粒度大.使用SVM模型,第1句邊界正確,但是在第3句進行了切分,明顯錯誤.使用ABCNN模型,切分出的信息與原始的段落信息一致.使用TABCNN模型,切分出的信息與人工標注的句群信息一致.從該篇可以得出,使用TABCNN模型切分出的句群與人工標注的句群信更貼切.
表8 句群切分片段樣例2
該片段第1-4句為一整個段落,人工標注為兩個句群,第1-2句和第3-4句,SVM模型和ABCNN模型切分出的句群信息和段落信息一致,而TABCNN切分出的句群信息和人工標注的句群一致.與片段一中出現(xiàn)的情況類似.
綜上所述,使用ABCNN模型已經(jīng)能夠基本實現(xiàn)對句群的切分,可見使用大規(guī)模的弱標注段落信息和小規(guī)模的句群信息作為訓練語料是可行的.另外,加入了主題特征之后的TABCNN模型,在處理不同主題句對分類時效果更好,從而使得句群切分效果較好.
另外,為了對比不同詞向量對模型的影響,本文還選擇序號為8的詞向量模型進行實驗時,各類模型的實驗結果如表9所示.
通過數(shù)據(jù)可以得出,各類正確率都有了小幅度的提升,因此,一個好的詞向量模型可以有效地提升語言模型和分類模型的正確率.另一方面,在利用了性能更好的詞向量之后,句群的宏嚴格一致率的提升效果和WindowDiff下降程度并不是十分大.所以,詞向量并不是唯一決定分類模型效率的因素,應該根據(jù)任務本身,設計相應的模型來提升效果.對于本文任務來講,還需要考慮句對之間的結構關系等.而本文所用的注意力機制考慮到了句對結構關系,又引入了句群主題特征等,從不同層面上對句群切分任務進行了分析和實驗.
表9 v8詞向量下各個模型實驗數(shù)據(jù)對比
本文提出了一種句群自動切分的方法,在弱標注環(huán)境下,利用卷積神經(jīng)網(wǎng)絡與注意力機制對句對進行分類,并融合句群主題信息來有效地利用上下文信息.還評估了一系列詞向量模型,從一定程度上說明了詞向量對于自然語言處理的重要性.一系列的實驗表明,使用弱標注段落信息可以基本實現(xiàn)對句群的切分.利用句對與句群主題信息對句群進行切分也行之有效.且卷積神經(jīng)網(wǎng)絡模型比循環(huán)神經(jīng)網(wǎng)絡更適合處理句對連貫關系的識別任務.
當然,本文也有不足之處,在處理句對結構十分不相稱情況時效果不夠好,容易遺失長句的重要信息.且我們將處理單位定格在句對層面上也會漏掉相應的一些信息,畢竟句群切分需要更大的上下文信息,雖然從外部引入上下文信息的方法可行,但是過于復雜,模型訓練時間過長.因此,本文下一步的研究工作將試著去掉從外部法,挖掘三句甚至更多句子蘊含的結構和語義關系來進行句群的切分.