于 強,林 民,李艷玲
內(nèi)蒙古師范大學 計算機科學技術(shù)學院,呼和浩特 010022
隨著大數(shù)據(jù)時代的到來,衍生出大量缺少關(guān)鍵詞的文本,如何以一組詞語有效地表示語言文本所隱含的核心信息,已成為當下的熱門研究方向。關(guān)鍵詞提取作為自然語言處理(natural language processing,NLP)中的經(jīng)典任務,其應用場景非常廣泛。通過關(guān)鍵詞提取技術(shù)獲得的關(guān)鍵詞可用于協(xié)助自然語言處理的下游任務,如信息檢索、文本摘要、文本分類和觀點挖掘等。
關(guān)鍵詞被視為文本中重要主題信息的描述和總結(jié),是概括文本的最小單位,也被認為是文本的最小摘要,可以有效地用于理解、組織和檢索文本內(nèi)容。例如在學術(shù)出版物中,文章開頭的關(guān)鍵詞部分提到了最能代表其內(nèi)容的詞語,讀者可以通過關(guān)鍵詞決定是否閱讀全文。各類信息系統(tǒng)也可以利用關(guān)鍵詞輕松完成文本分類和快速檢索等工作。文本的數(shù)據(jù)是龐大的,導致在網(wǎng)絡上搜索任何主題時,訪問與主題相關(guān)的文本可能會遇到困難。如果有一些詞語(關(guān)鍵詞)來代表文本的內(nèi)容、主題等主要特征,就可以更輕松地檢索到相關(guān)文本。根據(jù)關(guān)鍵詞提取技術(shù)的發(fā)展歷程,可以將其細分為關(guān)鍵詞抽取階段與關(guān)鍵詞生成階段。其中,關(guān)鍵詞抽取階段指從原文中篩選能表達文本主題的詞語作為關(guān)鍵詞,該關(guān)鍵詞必然在文本中出現(xiàn);關(guān)鍵詞生成階段指從詞表或原文中選擇與文本主題最契合的詞語作為文本的關(guān)鍵詞,與該關(guān)鍵詞是否在文本中出現(xiàn)無關(guān)[1]。
由于關(guān)鍵詞的重要性以及它帶來的便利性,1957年起,Luhn等人[2]開始陸續(xù)對關(guān)鍵詞抽取任務展開研究。初始抽取算法得益于抽取速度和操作簡易,主要遵循以下三個步驟:首先是進行分詞,去停用詞;其次利用文本特征如詞頻、詞性、詞的位置、詞頻-逆文檔頻率(term frequency-inverse document frequency,TF-IDF)等對候選詞進行篩選;最后通過相應指標對候選詞進行排序,選擇排名靠前的作為關(guān)鍵詞。接著衍生出各種監(jiān)督算法、半監(jiān)督算法以及其他無監(jiān)督抽取算法。
2017年,Meng等人[3]在相關(guān)研究中發(fā)現(xiàn)關(guān)鍵詞是否在原文中的比例近乎一致,意味著不存在于原文中的關(guān)鍵詞對于提取研究同樣重要,也反映出關(guān)鍵詞抽取方法所存在的缺陷:(1)只能抽取原文本中出現(xiàn)的詞語作為關(guān)鍵詞;(2)主要依靠文本的淺層特征來抽取關(guān)鍵詞,因此很難挖掘和充分利用文本背后潛在的語義信息?,F(xiàn)實中,關(guān)鍵詞通常是作者理解了文本語義和主題所指定的關(guān)鍵信息,意味著作者可以依靠自身的閱歷和與該主題相關(guān)的外部知識為文本補充更恰當?shù)年P(guān)鍵詞[4]。
隨著深度學習(deep neural networks,DNN)技術(shù)的發(fā)展,應用于自然語言生成(natural language generation,NLG)領(lǐng)域的序列到序列(sequence to sequence,Seq2Seq)模型在解決許多問題上取得了比現(xiàn)有方法更好的效果。它早期應用于機器翻譯[5]任務,解決了原始序列與目標序列長度不相等問題,取得了不錯的反響。越來越多的研究者也將其應用于關(guān)鍵詞生成(keyphrase generation,KG)領(lǐng)域[6]來解決抽取方法存在的缺陷。Seq2Seq模型是一種編碼器-解碼器(encoder-decoder)神經(jīng)網(wǎng)絡,其中編碼器通過捕捉原文本關(guān)鍵信息形成特征向量表示,解碼器通過語言模型從預定義詞匯表中生成關(guān)鍵詞的概率分布,和依照復制機制[7]計算原文中關(guān)鍵詞的概率分布選擇當前時刻概率最大的詞作為關(guān)鍵詞。由于其彌補了關(guān)鍵詞抽取方法的缺陷,基于序列到序列模型的關(guān)鍵詞生成技術(shù)成為了當前領(lǐng)域的研究熱點。
因而本文重點分析序列到序列關(guān)鍵詞生成模型,依照不同的訓練方式將其分為有監(jiān)督學習、半監(jiān)督學習、無監(jiān)督學習以及深度強化學習,并對各類方法的原理和功能進行分析。
關(guān)鍵詞生成方法采用了序列到序列模型,該模型本質(zhì)上用到了兩個循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network,RNN),分別叫做編碼器和解碼器,前者用來獲取輸入文本詞序列的關(guān)鍵信息,后者根據(jù)傳遞的信息逐項生成關(guān)鍵詞序列。這種方法更符合用戶的真實行為,圖1給出了關(guān)鍵詞生成數(shù)據(jù)集Inspec[8]的一個示例,藍色斜體字代表原文中的關(guān)鍵詞。
圖1 關(guān)鍵詞生成示例Fig.1 Example of inspec
基于序列到序列模型的關(guān)鍵詞生成方法包含三個部分:
(1)編碼器:將原文按詞序列X=<x1,x2,…,x||n>傳入到編碼器中,每個詞經(jīng)過編碼器內(nèi)部處理輸出上下文特征向量作為隱狀態(tài)h。
(2)上下文向量C:保存編碼器輸出狀態(tài)向量,繼而傳給解碼器進行解析處理。
(3)解碼器:對編碼器傳來的上下文向量進行解析,產(chǎn)生輸出序列Y=<y1,y2,…,y||m>,具體模型表示如圖2所示。
圖2 序列到序列模型Fig.2 Sequence-to-sequence model
(1)主流語料庫
開放數(shù)據(jù)倡議和數(shù)據(jù)科學競賽鼓勵了越來越多數(shù)據(jù)集的創(chuàng)建和共享,自然語言處理數(shù)據(jù)集是解決特定任務的各種文本集合。在關(guān)鍵詞生成領(lǐng)域,最流行的文本數(shù)據(jù)集合如表1所示。
Inspec是最早的數(shù)據(jù)集之一,其中探索了各種語言特征在關(guān)鍵詞提取中的作用。它由2 000篇英文摘要組成(1 000個用于訓練,500個用于驗證,500個用于測試),其相應的標題和關(guān)鍵詞來自Inspec數(shù)據(jù)庫,摘要來自1998年至2002年計算機與控制、信息技術(shù)等學科出版的期刊論文。每個摘要都有兩類由專業(yè)標注人員指定的關(guān)鍵詞:一類僅限于Inspec同義詞表中的詞匯;另一類可以是任何合適的詞匯。
表1 數(shù)據(jù)集信息Table 1 Dataset information
NUS[9]是最小的數(shù)據(jù)集之一,由211篇會議論文組成。每篇論文都有兩組關(guān)鍵詞:第一組由作者設(shè)置,第二組由學生志愿者們創(chuàng)建。另一個小數(shù)據(jù)集是SemEval(或SemEval-2010)[10],它由288篇論文組成,144篇用于訓練,100篇用于測試,40篇用于驗證。它們分別來源于ACMDigital中會議論文和研討會記錄。Krapivin[11]提供有2 304篇ACM于2003—2005出版的計算機科學領(lǐng)域發(fā)表的論文,每篇至少包含一位專家為文章指定了關(guān)鍵詞。每篇文章的不同部分如標題,摘要被分開標記以簡化各種關(guān)鍵詞的提取。
從TREC-9收集的文章DUC(或DUC-2001)[12]數(shù)據(jù)集在新聞領(lǐng)域很受歡迎。它由308篇新聞文章和2 488個手動標注的關(guān)鍵詞標簽組成,每個文檔的平均關(guān)鍵詞數(shù)為8.08,每個關(guān)鍵詞的平均字數(shù)為2.09,廣泛應用于跨域測試。
上述公開數(shù)據(jù)集的規(guī)模都比較小,Meng等人制作了一個大型數(shù)據(jù)集KP20k[3]。它由567 830篇計算機科學領(lǐng)域的論文組成,527 830篇用于訓練,20 000篇用于驗證和20 000篇用于測試。KP20k被廣泛用于訓練和評估各種關(guān)鍵詞生成方法。
上述數(shù)據(jù)集大多由學術(shù)文檔(摘要或全文)和非專家標注的關(guān)鍵詞組成。在學術(shù)文本以外的領(lǐng)域中,缺乏能夠供神經(jīng)生成模型訓練的大量由專家標注的數(shù)據(jù)集。KPTimes[13]填補了這一空白,并提出一個由279 923篇新聞文章組成的數(shù)據(jù)集,其中包含編輯指定的關(guān)鍵詞。在線新聞中包含最初由人工分配用于搜索引擎的詞語,Gallina等人將這些元數(shù)據(jù)視為真實值來自動構(gòu)建數(shù)據(jù)集,用于訓練和測試關(guān)鍵詞生成的深度神經(jīng)網(wǎng)絡模型。大型數(shù)據(jù)集也推動了其他自然語言生成任務的進程。
目前,關(guān)鍵詞生成的英文數(shù)據(jù)集居多,中文數(shù)據(jù)集相對較少。為彌補中文社交媒體領(lǐng)域關(guān)鍵詞生成數(shù)據(jù)集的空白,Weibo[14]數(shù)據(jù)集應用而生。它的數(shù)據(jù)來源于2014年1月至8月社交媒體微博中的所有帖子,它由46 296篇社交媒體帖子組成,將數(shù)據(jù)以80%、10%、10%分為三個子集,分別對應于訓練集、驗證集、測試集。由于其文本的非正式和口語化性質(zhì),Weibo被廣泛應用于社交媒體這一類短文本的關(guān)鍵詞生成中。
(2)大型語料庫
對科學論文的關(guān)鍵詞進行實驗已成為一種趨勢,這在很大程度上受到在線學術(shù)知識庫中數(shù)據(jù)可用性的推動。2019年,Cano等人[15]制作了一個更大的數(shù)據(jù)集,由科學論文中關(guān)鍵詞、標題和摘要組成。來源于開放學術(shù)圖譜的全部數(shù)據(jù),檢索了關(guān)鍵詞、標題和任何可用的抽象數(shù)據(jù),使用語言過濾器刪除了所有非英文文本記錄,并用斯坦福CoreNLP分詞器對文本進行小寫和分詞,標記標題和摘要文本,得到了數(shù)據(jù)集OAGKX,大約有22 674 436條數(shù)據(jù),數(shù)據(jù)集樣本在文件中存儲為JSON形式。
有監(jiān)督的學習方法需要獲取大量有標注的數(shù)據(jù),是一種成本較高的學習方法,而不依賴于標注數(shù)據(jù)的無監(jiān)督學習,模型的整體性能較差。半監(jiān)督和深度強化的學習方法的出現(xiàn),正好可以中和這一問題,使用較少的標注數(shù)據(jù)來進行訓練。下面對基于深度學習的關(guān)鍵詞生成方法分別從這四個方面展開詳述。
2.1.1 基于復制機制的Seq2Seq關(guān)鍵詞生成模型
隨著Seq2Seq模型在機器翻譯任務中取得不錯的效果,大量研究者嘗試用該模型來完成關(guān)鍵詞生成任務。2017年,Meng等人[3]針對現(xiàn)有關(guān)鍵詞提取方法無法生成不存在于原文中的關(guān)鍵詞這一缺陷,首次提出了結(jié)合復制機制的Seq2Seq模型(CopyRNN),模型結(jié)構(gòu)如圖3所示。
CopyRNN模型中的編碼器用于創(chuàng)建原文本的隱狀態(tài)表示向量,原文的詞序列Xseq=<x1,x2,…,x||m>作為模型的輸入,詞嵌入層[16]將每個詞映射到向量空間,隨后傳輸?shù)接呻p向GRU(gate recurrent unit)組成的編碼器來完成上下文語義交互信息并輸出隱狀態(tài)向量,具體過程為將長度可變的輸入序列通過公式:ht=f(Vt,ht-1),隨著時間t迭代轉(zhuǎn)換為編碼器的隱狀態(tài)<h1,h2,…,h|m|>。其中,每一時刻的隱狀態(tài)由當前時刻輸入的詞嵌入Vt和上一時刻的隱狀態(tài)ht-1經(jīng)過一種非線性函數(shù)f求得。
圖3 基于復制機制的Seq2Seq關(guān)鍵詞生成模型架構(gòu)圖Fig.3 Architecture diagram of Seq2Seq model basedon copy mechanism
解碼器由前向GRU組成,通過公式st=f(yt-1,st-1,ct)將ct隨著時間迭代輸出解碼器的隱狀態(tài)st。其中ct為上下文向量,在求解該向量環(huán)節(jié)應用了注意力機制[17](attention mechanism),如圖4所示。
圖4 注意力機制架構(gòu)圖Fig.4 Architecture diagram of attention mechanism
注意力機制的思想是解析原文本時重點關(guān)注文本與每個關(guān)鍵詞的相關(guān)程度,降低無關(guān)文本對關(guān)鍵詞的影響權(quán)重。例如(原文:我愛北京天安門;關(guān)鍵詞:天安門)該文本中“北京”一詞對“天安門”影響權(quán)重最大,“我”和“愛”一詞的權(quán)重則相對小一些。動態(tài)變化的上下文向量意味著原文本序列Xseq中任意詞xi對生成目標詞yi的影響力不是等同的,它們之間的匹配程度越高代表原文中xi對當前預測詞影響力越強。
如公式(1)所示ci是所有時刻t的輸入隱狀態(tài)的加權(quán)平均和。權(quán)值由每個輸入隱狀態(tài)與輸出隱狀態(tài)之間的相似性生成,之后經(jīng)過歸一化,得到最終的權(quán)重,如公式(2)所示:
yt為t時刻預測的關(guān)鍵詞。預測每個新詞yt的概率由兩部分組成,如公式(3)所示:
第一項是生成該項的概率,如公式(4)所示:
g是一種非線性的softmax分類函數(shù),輸出為詞匯表中所有詞的概率分布。
第二項是從原文本中復制該項的概率,被稱為復制機制[7(]copy mechanism),其中輸入文本中的一些詞語被選擇性地復制到生成的關(guān)鍵詞中。在日常中也可以觀察到類似的現(xiàn)象,如雙方交流過程中實體名稱(人名、地名)往往會重復出現(xiàn)。它和注意力機制比較相似,利用位置信息來衡量原文中每個詞語的重要性,見公式(5):
σ是一個非線性函數(shù),用來計算每一個輸入與當前預測詞的得分。Wc是一個訓練參數(shù)矩陣,Z是所有分數(shù)的和用來執(zhí)行標準化,最終預測詞的概率為生成部分與復制部分的和。該模型的損失函數(shù)如公式(7)所示:
其中,N表示訓練實例的數(shù)目,yn和xn分別為第n個樣本對應的輸入序列和輸出序列。最終結(jié)果利用BeamSearch[18]生成概率最大的關(guān)鍵詞。這是一項重要的開創(chuàng)性研究,該模型首次克服了以往抽取方法存在的缺陷,通過深度神經(jīng)網(wǎng)絡獲取語言的深層次特征,能獲取到20%不存在于原文中的關(guān)鍵詞。綜合比較,該模型的表現(xiàn)明顯優(yōu)于以往的各類抽取方法,對關(guān)鍵詞生成的后續(xù)發(fā)展歷程影響深遠,后續(xù)許多研究者都是在此基礎(chǔ)上進行深入的研究。但是,該方法還存在以下缺點:(1)解碼器生成關(guān)鍵詞時,并沒有充分考慮所選詞之間的依賴關(guān)系,所以生成的關(guān)鍵詞存在語義重復和重要主題可能未覆蓋的問題。(2)BeamSearch[17]是固定的,不能動態(tài)地根據(jù)文本調(diào)整生成關(guān)鍵詞的數(shù)量。
2.1.2 其他擴展型
2017年,Zhang等人[19]嘗試對CopyRNN的生成速度進行優(yōu)化,提出了一種完全基于卷積神經(jīng)網(wǎng)絡(convolutional neural networks,CNN)結(jié)構(gòu)的CopyCNN模型。與循環(huán)神經(jīng)網(wǎng)絡相比,并行工作的CNNs能更好地利用GPU(graphics processing unit)硬件,使計算完全并行化、高效化。門控線性單元(gated linear units,GLU)用作非線性函數(shù)來減輕梯度傳播,同時還使用位置信息和輸入詞嵌入來保持序列順序,在保持得分略高的情況下,生成時間減少了數(shù)倍。
2018年,Zhang等人[20]為了降低關(guān)鍵詞之間的冗余度,提高關(guān)鍵詞的多樣性,在CopyRNN模型中引入覆蓋機制(coverage mechanism)[21]如圖5所示,從而形成CovRNN模型。覆蓋向量可以看作是一個序列向量,它作為原文本詞語壓縮后的一個非標準化分布,利用文本中所有詞的注意力分布來形成覆蓋度,覆蓋機制來記憶原文本中哪些部分已被前面的詞語覆蓋,使得后續(xù)生成的關(guān)鍵詞更平衡地關(guān)注原文本中的其他信息,以此來覆蓋更多的主題。該模型與CopyRNN相比,更具有科學性。
圖5 覆蓋機制架構(gòu)圖Fig.5 Architecture diagram of coverage mechanism
2018年,Chen等人[22]為了進一步優(yōu)化關(guān)鍵詞的重復率和多樣性,提出了CorrRNN模型。在覆蓋向量的前提下,引入了一種在新生成候選詞過程中對比原文本和已生成關(guān)鍵詞的審查機制(review mechanism),以避免最終結(jié)果的重復。該機制進一步減弱已生成關(guān)鍵詞和將要生成的關(guān)鍵詞之間的相關(guān)性,進一步提升了關(guān)鍵詞的主題的覆蓋度和多樣性。
2.1.3 結(jié)合主題模型的關(guān)鍵詞生成
2019年,Wang等人[14]將編碼器-解碼器模型應用于社交媒體來實現(xiàn)關(guān)鍵詞生成。由于社交媒體語言的非正式和口語化的性質(zhì),神經(jīng)主題模型(neural topic model,NTM)[23]用于探索輸入文本的潛在主題信息,豐富文本特征和緩解社交媒體中的數(shù)據(jù)稀疏問題[24]。主題信息與編碼器獲得的上下文表示向量一起進入解碼器共同指導關(guān)鍵詞的生成。如圖6所示主題感知神經(jīng)關(guān)鍵詞生成模型的整體架構(gòu)包含兩個模塊。
圖6 主題感知神經(jīng)關(guān)鍵詞生成模型架構(gòu)圖Fig.6 Architecture diagram of topic-aware neural keyphrase generation model
(1)用于探索隱含主題的神經(jīng)主題模型
該模塊由變分自編碼器(variational auto-encoder,VAE)演變而來,結(jié)構(gòu)由一個編碼器和一個解碼器組成,其過程類似于數(shù)據(jù)重建。給定一個長度為|C|的文本作為輸入,表示社交媒體中的帖子{x1,x2,…,x|C|},將每個帖子x處理成詞袋表示xbow,它是詞匯表上的一個V維向量(V是詞匯表大?。]斎離bow由編碼器負責估計先驗分布變量μ和σ,用于推導主題變量z(代表帖子的主題)。
解碼器工作原理與LDA(latent Dirichlet allocation)風格的主題模型類似,假設(shè)給定的語料庫C下有K個主題。每個主題k在詞匯表上都表示為一個主題-詞分布φK,每個帖子x∈C都有一個由θ表示的主題混合,即一個K維分布向量。特別是在神經(jīng)主題模型中,θ是由Gaussian softmax構(gòu)建的。因此,解碼器采取以下步驟來模擬每個帖子x的生成方式:
①采樣隱含主題變量z~N(μ,σ2)。
②主題混合θ=sof tmax(fθ(z))
③對于每個詞w∈X,采樣w~softmax(fΦ(θ))。
解碼器采用fΦ(·)的權(quán)重矩陣作為主題-詞分布(φ1,φ2,…,φK),之后主要采用主題混合θ(K維分布向量)作為主題表示來指導關(guān)鍵詞的生成。
(2)用于關(guān)鍵詞生成的序列到序列模型
該模塊以詞序列形式Xseq=<w1,w2,…,w|X|>(|x|是x中的詞數(shù))表示的原帖子x作為輸入,目標是輸出一個詞序列y作為x的關(guān)鍵詞。序列編碼器從原文的詞序列學習出上下文表示特征,每個詞wi進入詞嵌入層表示為vi,利用雙向GRU完成編碼,輸出隱狀態(tài)hi(前向和后向隱狀態(tài)拼接),見公式(9):
序列解碼器采用前向GRU通過公式sj=fGRU([uj;θ],sj-1)生成目標詞的隱狀態(tài)sj。其中uj是解碼器第j個輸入的詞嵌入,sj-1是上一時刻的隱狀態(tài)。解碼器工作時也應用了上述方法的注意力機制和復制機制。具體來說,它通過公式λj=sigmoid(Wλ[uj;sj;cj;θ]+bλ)訓練出一個向量λj∈[0,1]來決定是復制原文中的詞還是從詞匯表中生成,主題信息θ也參與指導關(guān)鍵詞生成。最終,用下列公式(10)來預測第j個目標詞的分布pj:
其中注意力分數(shù)αij指從原文中復制為關(guān)鍵詞的概率分布。綜合分析該模型的損失函數(shù)為兩個模塊對應的損失函數(shù)之和,公式為L=LNTM+γ·LKG,其中超參數(shù)γ用來平衡NTM和KG模型的影響。研究者對中英文社交媒體平臺微博、Twitter和StackExchange等三個數(shù)據(jù)集上進行了實驗。實驗表明,該模型顯著優(yōu)于不利用隱含主題的抽取和生成模型,但是該模型沒有考慮到生成關(guān)鍵詞的數(shù)量問題,每個帖子關(guān)鍵詞生成數(shù)量都是固定的。
上述有監(jiān)督模型都使用Beam Search生成關(guān)鍵詞,并選擇組合條件概率最大的K個詞作為關(guān)鍵詞。取決于文本的長度、主題和關(guān)鍵詞標注粒度等因素,每個文本的關(guān)鍵詞數(shù)量可能存在差異,因此使用相同的K來評估數(shù)據(jù)樣本不符合現(xiàn)實也不是最佳的方案。2020年,Yuan等人[4]引入一種訓練設(shè)置,其中生成模型可以學習給定文本的目標關(guān)鍵詞數(shù)量,通過加入可變數(shù)量的關(guān)鍵詞序列,也將其視為序列生成的目標,為每個樣本解碼這些序列中的一個(如從BeamSearch中獲取組合概率值最大的序列),最終該模型還可以為每個輸入樣本生成可變長度的關(guān)鍵詞進行排序。為了提高輸出序列的多樣性,對解碼器輸出的隱狀態(tài)向量進行正交正則化,以此表現(xiàn)各個序列之間的差異性。除了使用F1@5、F1@10,還提出兩個新穎的評估指標:F1@M和F1@V。
該方法存在兩個缺點:在該設(shè)置下訓練的模型生成的關(guān)鍵詞往往少于“基本事實”。現(xiàn)有的評估方法僅依賴詞干的精確匹配來確定候選詞是否與基本事實的詞語匹配。例如,如果模型生成“支持向量機”,它將被視為不正確,因為它與標準標簽給出的詞語“SVM”不匹配。
2.2.1 結(jié)合無監(jiān)督抽取的關(guān)鍵詞生成
雖然序列到序列模型在關(guān)鍵詞生成任務上取得了顯著的成功,但都建立在大量帶標注數(shù)據(jù)的前提下,僅適用于資源豐富的領(lǐng)域。實際應用中如何更好地利用未標注數(shù)據(jù)也是值得重點考慮的問題。Ye等人[25]提出了利用標注數(shù)據(jù)和大規(guī)模未標注數(shù)據(jù)樣本進行聯(lián)合學習的半監(jiān)督關(guān)鍵詞生成方法,該方法有兩種策略,第一種使用無監(jiān)督方法TF-IDF和TextRank對未標注文本進行關(guān)鍵詞抽取并對其進行去重,將結(jié)果與標注數(shù)據(jù)混合應用于模型訓練。這些文本雖然是未標注的,但可以提供通用的語言結(jié)構(gòu)和詞匯信息,例如關(guān)鍵詞的上下文信息。使用未標記文本也可以緩解因訓練樣本偏少而導致的過擬合問題,有利于提高模型的泛化能力。第二種是多任務學習,該框架通過參數(shù)共享策略將關(guān)鍵詞生成作為基本任務與標題生成的輔助任務聯(lián)合學習,兩個任務共享一個編碼器網(wǎng)絡,解碼器分別適配不同的任務,在訓練階段,對兩個任務實施交替訓練的策略。多任務學習將受益于端學習,提高編碼器的通用性。在科學論文和新聞文章中,文檔通常包含一個概括核心主題及文本內(nèi)容的標題,和關(guān)鍵詞的功能非常類似,因此選擇標題生成作為輔助任務。最終研究結(jié)果表明該方法優(yōu)于部分有監(jiān)督的關(guān)鍵詞生成方法。
2.2.2 基于結(jié)構(gòu)信息的關(guān)鍵詞生成
以往的方法將文本標題和內(nèi)容平等對待,僅將它們連接作為原文輸入,無法強調(diào)標題包含的高度總結(jié)性和有價值的信息,忽略了標題對整個文本的引領(lǐng)作用。2019年,Chen等人[26]研究了數(shù)據(jù)集上與標題相關(guān)的關(guān)鍵詞的比例,發(fā)現(xiàn)接近33%的不在原文中的關(guān)鍵詞與標題相關(guān)。對于在原文中出現(xiàn)的關(guān)鍵詞,和標題相關(guān)度高達約60%。因此提出了標題引導網(wǎng)絡(title-guided network,TG-Net)模型,如圖7所示。
圖7 TG-NET編碼器架構(gòu)圖Fig.7 Architecture diagram of TG-NET encoder
該模型具有兩個新特性:標題信息也用作類似查詢的輸入;指向標題的編碼器用于捕獲標題中重要信息。TG-Net主要由三個復雜編碼器組成:(1)一個雙向GRU分別編碼原文本(標題+摘要)和標題在其上下文中的表示。(2)基于注意力的匹配層,根據(jù)上下文詞的語義關(guān)系捕獲每個詞的相關(guān)標題信息。(3)另一個雙向GRU將原始上下文和收集的標題信息合并到最終的標題引導表示中。解碼器與之前方法類似,配置有注意力機制和復制機制,利用最終標題引導的上下文表示來預測關(guān)鍵詞。與CopyRNN相比取得了重大進展,且對于不存在于原文中的關(guān)鍵詞生成方面也有明顯的改進(更好的R@10和R@50分數(shù))。
2.2.3 多任務學習
2019年,Chen等人[27]提出了新的關(guān)鍵詞生成方法,一個多任務學習[28]框架,共同學習一個抽取模型和一個生成模型,使基于編碼器-解碼器框架的序列到序列模型中具有抽取和檢索的能力,利用關(guān)鍵詞抽取模型和引入外部知識來提高關(guān)鍵詞生成的性能。神經(jīng)序列學習模型用于計算原文本中每個詞成為關(guān)鍵詞的概率。這些值用于修正解碼器的復制概率分布,幫助后者檢測原文中最重要的詞。抽取模型訓練時明確于從原文中識別關(guān)鍵詞,且概率值表現(xiàn)為靜態(tài),用于辨別文本中包含關(guān)鍵信息的重要組成部分,有效幫助復制機制更準確地識別原文中的詞語。同時還提出了一個檢索器——從訓練數(shù)據(jù)中檢索與給定文本相似的文檔,為解碼器引入豐富的外部知識來指導文本關(guān)鍵詞的生成。最后,合并模塊將提取、檢索和生成的候選詞組合在一起,產(chǎn)生最終預測。該方法的優(yōu)點是:(1)一個新的多任務學習框架,該框架利用抽取模型和外部知識來改進關(guān)鍵詞生成;(2)一種新的基于神經(jīng)網(wǎng)絡的合并模塊,將提取、生成和檢索方法中的預測詞結(jié)合起來,進一步提高性能;(3)在五個KG基準線上的實驗表明優(yōu)于先前的方法。但是他們提出的提取模型不是直接從原文檔中提取關(guān)鍵詞,而是旨在識別文檔中每個詞語的重要性,使用重要性分數(shù)來輔助關(guān)鍵詞的生成。因此,提取模型的潛力尚未得到充分利用。
2020年,Liu等人[29]利用預訓練模型(bidirectional encoder representation from transformer,BERT)[30]對輸入文本按句子形式進行篩選,減輕將全部句子序列作為上下文的負擔,重點關(guān)注包含關(guān)鍵詞的句子,降低文本中無關(guān)內(nèi)容對抽取性能的影響。在下游任務序列標記中對BERT進行精調(diào),同時將訓練好的BERT向量與生成模型共享,引入外部知識指導關(guān)鍵詞生成??紤]到提取和生成方法的不同特點,將關(guān)鍵詞預測分為兩個子任務:原文中的關(guān)鍵詞抽取(present keyphrase extraction,PKE)和不存在于原文中的關(guān)鍵詞生成(absent keyphrase generation,AKG),如圖8所示。目的是充分利用兩種模型[31]的潛力,讓它們發(fā)揮各自最佳的性能。
對于PKE,使用BERT預訓練模型聯(lián)合BiLSTM-CRF[32](bi-directional long short term memory-conditional random fields)架構(gòu)將這項工作視為序列標記問題,整體框架由兩部分組成:
(1)基于BERT的句子過濾器
將文檔以句子形式切分,一些不包含關(guān)鍵詞的句子被視為噪聲數(shù)據(jù),會顯著降低抽取模型的性能。為了過濾掉不包含關(guān)鍵詞的句子,使用BERT模型中的自注意力層判斷每個句子的重要性。具體表現(xiàn)為將句子向量輸入到Transformer[33]塊中,每個區(qū)塊包含兩個子層:多頭自注意力層(multi-headed self-attention)和一個全連接前饋網(wǎng)絡(feedforward network,F(xiàn)FN)層,公式如下:
其中多頭自注意力層的三個輸入從左到右是Query矩陣、Key矩陣和Value矩陣。兩者周圍都采用了殘差連接子層,接著進行歸一化處理,最后通過sigmoid函數(shù)獲得每個句子的分數(shù):,根據(jù)得分為后續(xù)序列標記過程選擇前K個句子。句子過濾器的損失函數(shù)為最小化負對數(shù)似然:,其中代表文檔中的句子數(shù)。
圖8 結(jié)合預訓練模型的關(guān)鍵詞生成架構(gòu)圖Fig.8 KG architecture diagram combined with pre-training model
(2)BiLSTM-CRF序列標記模塊
將所選句子中詞語的上下文向量輸入到BiLSTM模型中進行精調(diào)以提高表達能力,條件隨機場(CRF)對該輸出進行評分和標記。對于輸入x,標記序列t的評分定義為,其中,Ai,j是從標記i到標記j的轉(zhuǎn)換分數(shù),Pi,j是第i個詞的標記j的分數(shù)。CRF的損失函數(shù)為最小化標準標簽序列t的負對數(shù)概率:
最終利用Viterbi解碼算法找到最佳序列路徑,整體抽取模型的最終損失可以表示為LPKE=Lf+Lc。
對于AKE的整體架構(gòu)是基于Transformer[33]的編碼器和解碼器組成。下面分兩部分進行分析:
(1)融合注意力模塊的Transformer編碼器
給定一個文檔x,文檔中每個詞嵌入經(jīng)transformer編碼為U0:
同時,為了防止BERT向量丟失掉抽取模型中關(guān)鍵詞的信息,生成模型中不再使用Transformer訓練BERT,而是共享關(guān)鍵詞抽取中的BERT向量作為補充知識來指導生成過程,采用另一個L層多頭注意力模塊編碼表示為,當時,使用“軟門”權(quán)重將它們合并。;。其中V是文檔的最終表示,是逐元素乘法。
(2)Transformer解碼器
除了編碼器模塊中的自注意力層,每個解碼器層還包含多頭編碼器-解碼器注意層,對編碼器的輸出表示V執(zhí)行,每個解碼器塊如下:
其中Dl為第l層解碼塊的輸出。與以往方法一樣,為了提高模型的生成能力,將復制機制與Transformer解碼器結(jié)合起來,其中最后一個解碼層的注意力分布表示從原文本復制詞的概率。在步驟t的最終預測分布P表示為:
該方法的優(yōu)點是結(jié)合預訓練模型可以大大減少訓練時間以及對大量標記數(shù)據(jù)的依賴,并利用BERT對文本中的關(guān)鍵句子進行甄別,避免了文本中所有句子作為輸入上下文的負擔,能有效地提升模型性能。將關(guān)鍵詞預測分為兩個子任務后,抽取模型充分考慮了候選詞之間的依賴關(guān)系,提高了關(guān)鍵詞的多樣性,同時基于共享BERT提供的額外的關(guān)鍵詞信息使生成模型性能進一步提升。
隨著深度學習技術(shù)的發(fā)展,關(guān)鍵詞生成任務已經(jīng)取得了顯著的成功,尤其在生成不存在于原文中的關(guān)鍵詞方面。近些年的研究,在挖掘文本深層語義和已生成關(guān)鍵詞的相關(guān)性上取得了不錯的效果。但這些性能提升主要來源于大量帶標注的數(shù)據(jù)。然而收集大量的關(guān)鍵詞并不容易,需要專業(yè)人員對其標注,既費時也費力。2021年,Meng等人[34]提出了一種無監(jiān)督的關(guān)鍵詞生成方法AutoKeyGen,可以在不使用任何人工標注的情況下生成關(guān)鍵詞。據(jù)觀察在Inspec數(shù)據(jù)集中,99%的不存在于原文中的關(guān)鍵詞可以在其他文檔中找到。該方法的三個步驟為:(1)通過匯集語料庫中的文檔,遵循文獻[35-36]完成關(guān)鍵詞抽取,利用抽取出的詞匯構(gòu)建詞庫。相關(guān)研究表明,56.8%的不存在于原文中的關(guān)鍵詞切分之后會分別出現(xiàn)在輸入文本中,說明在大多數(shù)情況下,不存在于原文中的關(guān)鍵詞能在該文本中找到出處。每給定一個輸入文本,對詞庫中的每一個詞切分后迭代查找,切分后所有的詞都出現(xiàn)就作為不存在于原文的關(guān)鍵詞。(2)利用TF-IDF和embedding similarity規(guī)則對關(guān)鍵詞進行排序。(3)使用每個文本中兩部分排名前五的關(guān)鍵詞來訓練Seq2Seq模型,以此獲取更多的不存在于原文本的關(guān)鍵詞。
該方法在無監(jiān)督方法中實現(xiàn)了最好的性能,但是對語料進行抽取時忽略了關(guān)鍵詞的語義相關(guān)性,會造成生成關(guān)鍵詞的語義冗余問題。用于訓練Seq2Seq生成模塊的關(guān)鍵詞,按排名進行選擇時容易忽略掉低頻詞,造成關(guān)鍵詞主題覆蓋度不足的問題。
2019年,Chan等人[37]在相關(guān)數(shù)據(jù)集上的實驗表明,catseqD模型每個文檔平均生成4.3個關(guān)鍵詞,而每個文檔平均有5.3個關(guān)鍵詞。雖然現(xiàn)有的方法能夠針對輸入文本生成一定數(shù)量的關(guān)鍵詞,并且可以根據(jù)每個文本調(diào)整關(guān)鍵詞的生成數(shù)量,但依舊存在著生成數(shù)量較少的問題。
為了模型能夠生成足夠且準確的關(guān)鍵詞,提出了一種關(guān)鍵詞生成的強化學習(reinforcement learning,RL)方法,如圖9所示。RL已廣泛應用于文本生成任務,如機器翻譯、文本摘要、圖像視頻字幕。這類強化學習依賴于Enhanced算法或其變體,通過最小化梯度損失策略來訓練生成模型以獲得回報。而該RL方法使用了一種新的自適應獎勵函數(shù),通過一個“硬門”(if-else語句)將Recall和F1值結(jié)合起來。該模型的Encoder為雙向GRU,Decoder為單向的GRU,為了緩解OOV(out of vocabulary)問題,研究者也采用了指針生成網(wǎng)絡(pointergenerator network)[38],該網(wǎng)絡使用generator保留了其生成能力,同時用pointer從原文中復制相應的詞來保證關(guān)鍵詞的準確性。該方法的亮點在于研究者采用強化學習解決了生成關(guān)鍵詞過多或過少的問題,生成模型視為智能體,輸入的樣本視為環(huán)境,利用Recall值和F1值獎勵智能體指示它選擇相應行動,更新模型的參數(shù),使模型生成更多更準確的關(guān)鍵詞。
圖9 強化學習架構(gòu)圖Fig.9 Architecture diagram of reinforcement learning
這是一項開創(chuàng)性的研究,首次將深度強化學習應用于關(guān)鍵詞生成領(lǐng)域,同時顯著地提高了生成模型的性能。
上述基于序列到序列模型關(guān)鍵詞生成任務的強化學習框架利用評估指標進一步優(yōu)化了訓練良好的神經(jīng)模型。然而,F(xiàn)1和Recall評估指標只能判斷候選詞的正確性,忽略了候選詞和目標關(guān)鍵詞之間部分匹配的問題,在一定程度上抑制了深度學習模型的性能。針對這個問題,2021年Luo等人[39]提出了一種新的細粒度評估指標fine-grained(FG)來識別部分匹配的候選詞,可以更好地在細粒度維度上評估候選詞質(zhì)量,進而優(yōu)化深度強化學習框架。該框架提出了兩個階段的強化學習:(1)當模型識別到一些部分匹配的詞語,F(xiàn)G分數(shù)為模型提供積極的獎勵。(2)將部分匹配的候選詞按token順序以及token級的預測質(zhì)量進行篩選,最終提升為關(guān)鍵詞。
新強化學習框架的關(guān)鍵詞生成方法在所有的評估分數(shù)中都優(yōu)于之前的強化學習,同時該方法還能有效地緩解同義詞的問題并生成更高質(zhì)量的關(guān)鍵詞。
綜合分析以上方法,分別從方法分類、網(wǎng)絡結(jié)構(gòu)、機制設(shè)計、數(shù)據(jù)集和評價指標五部分進行總結(jié),具體見表2,IKNSK={Inspec,Krapivin,NUS,SemEval,KP20k},在相關(guān)數(shù)據(jù)集上模型生成原文關(guān)鍵詞和非原文關(guān)鍵詞的性能如表3、表4所示。
對關(guān)鍵詞提取方法描述和比較之前,通常先介紹用于評估和衡量其結(jié)果的方法、措施和關(guān)鍵基準。關(guān)鍵詞評估方法采用克蘭菲爾德評估過程[40](Voorhees 2001),每種方法應用于一組測試文檔,提取的關(guān)鍵詞通常與一組由作者對該文檔手動分配的關(guān)鍵詞構(gòu)成參考進行比較。
在關(guān)鍵詞提取的現(xiàn)有技術(shù)中,使用不同的措施和協(xié)議來評估提取的關(guān)鍵詞。最廣泛的評價方法是精確率(Precision,P)、召回率(Recall,R)和F1(F1-measure)值,定義如下:
表2 關(guān)鍵詞生成方法總結(jié)Table 2 Summary of keyphrase generation methods
表3 在相關(guān)數(shù)據(jù)集上模型生成原文關(guān)鍵詞的性能Table 3 Performance of generating present keyphrases of various models on datasets
表4 在相關(guān)數(shù)據(jù)集上模型生成非原文關(guān)鍵詞的性能Table 4 Performance of generating absent keyphrases of various models on datasets
信息檢索中,通常根據(jù)關(guān)鍵詞排名的質(zhì)量來評估方法,例如Precision@K、Recall@K和F1@K等。此度量忽略排名低于K的關(guān)鍵詞,并計算前K個關(guān)鍵詞的精度值列表。2020年,Yuan等人[4]還提出兩個新穎的評估指標:F1@M和F1@V,其中M是模型為每個數(shù)據(jù)樣本生成的所有關(guān)鍵詞的數(shù)量,其中V是在驗證集中給出最高F1@V分數(shù)的預測數(shù)量。
因為抽取方法不能生成不存在于原文中的關(guān)鍵詞,為了公平比較,將兩類關(guān)鍵詞的實驗結(jié)果分開評估。
上述措施并沒有考慮到關(guān)鍵詞多樣性[41]這一要素,因此在有排名關(guān)鍵詞列表的情況下,還需要其他評估措施,如廣泛使用的α-NDCG衡量關(guān)鍵詞生成的多樣性表示為N@K。α是相關(guān)性之間的權(quán)衡和α-NDCG的多樣性,它根據(jù)Habibi和Popescu-Belis[42]被設(shè)置為相等,權(quán)重為0.5,α-NDCG越高,結(jié)果越多樣化。
其中,α是一個參數(shù),m表示關(guān)鍵詞的數(shù)量,k表示候選詞的數(shù)量。J(dk,i)=0 or 1,表示第k個候選詞是否與第i個關(guān)鍵詞相關(guān),并且ri、k-1表示候選詞與第k個候選詞之前的第i個關(guān)鍵詞相關(guān)。這里的相關(guān)性被定義為當前關(guān)鍵詞是否為其他關(guān)鍵詞的子集(例如“多代理”與“多代理系統(tǒng)”)。
在關(guān)鍵詞生成場景下,使用強化學習訓練時,其輸入的語料可以看作環(huán)境一方,生成模型作為智能體。智能體的預測結(jié)束時,將獲得獎勵,并更新自身策略(模型參數(shù))。該獎勵采用R值和F1值進行計算,(1)如果模型生成的關(guān)鍵詞數(shù)量不足時,R值作為獎勵,指示模型生成更多的關(guān)鍵詞;(2)如果模型生成的關(guān)鍵詞數(shù)量足夠時,F(xiàn)1值作為獎勵,指示模型平衡召回率和生成詞的精度(準確性),這樣就達到了優(yōu)化R和F1評估指標的目的。
考慮到真實關(guān)鍵詞和提取的關(guān)鍵詞之間無法檢測到兩個語義相似但形態(tài)不同的關(guān)鍵詞,因此存在不能“完全匹配”這一局限性。為了解決這個問題,Zesch和Gurevych[43]于2009年提出了一種語義近似匹配策略,Chan等人[37]于2019年提出了變體匹配策略,Luo等人[39]于2021年提出了部分匹配策略,從各種來源提取每個關(guān)鍵詞的語義變體、名稱變體以及部分匹配變體,如果這些變體與真實值匹配,則將其視為正確預測。這些研究者認為,處理關(guān)鍵詞之間這種變化的策略可以使關(guān)鍵詞以更精確的方式評估提取方法。
本文對基于深度學習的關(guān)鍵詞生成方法按如下類別進行了分析:有監(jiān)督學習、半監(jiān)督學習、無監(jiān)督學習、深度強化學習。這些方法都運用了不同的機制和策略:如復制機制、注意力機制、覆蓋機制、審查機制、結(jié)合主題模型、多任務學習、結(jié)合預訓練模型等來提高關(guān)鍵詞生成模型的性能[44]。相比以往的抽取方法能深層次地理解文本的內(nèi)容,同時更加符合真實場景,也得到了該研究領(lǐng)域的認可。
大部分關(guān)鍵詞生成方法的性能都是以大量帶標注的數(shù)據(jù)為代價的,如何依賴少量標注數(shù)據(jù)保證生成關(guān)鍵詞的準確性和多樣性,以及關(guān)鍵詞生成任務應用場景的創(chuàng)新是下一步重點考慮的問題。本文針對目前關(guān)鍵詞生成任務發(fā)展方向[45]提出以下幾個觀點:
(1)與多粒度信息融合
目前的研究大多聚焦于以文本整體的輸入作為主要信息,存在噪聲多、復雜度高的問題,較少挖掘文本中有價值的句子和短語,忽略了它們對整個文本關(guān)鍵詞生成的引導作用。因此,如何將融合深度學習模型的抽取算法[46-47]得到的重要句子和短語作為額外的信息與原文本整體輸入進行多粒度融合編碼,用于提高關(guān)鍵詞生成模型對重要信息的歸納能力,也是未來需要解決的問題。
(2)與層次化神經(jīng)主題模型相結(jié)合
關(guān)鍵詞通常由輸入文本中傳達的重要主題的詞語或短語組成,因此基于深度學習的主題模型與關(guān)鍵詞生成研究緊密相關(guān),其目標是從文本數(shù)據(jù)中學習到人類可以理解的潛在主題空間。以往的研究表明,語料庫級別的隱含主題可以有效緩解其他任務中的數(shù)據(jù)稀疏[48]。對于基本主題模型來說,僅限于將主題歸納為平面結(jié)構(gòu),因此存在分類準確率低和主題一致性差等問題[49]。而層次化主題模型在一定程度上能獲得更高質(zhì)量、層次化的隱含主題信息,有效改善主題模型的效果[50]。因此,針對上下文信息有限的短文本數(shù)據(jù)集來說,如何通過層次化主題模型結(jié)合關(guān)鍵詞生成模型,進一步緩解數(shù)據(jù)稀疏和提高生成詞的多樣性是未來需要關(guān)注的問題。
(3)運用知識蒸餾優(yōu)化主題分布
當要求標注人員為文檔指定關(guān)鍵詞時,通常在閱讀全文后,捕捉到文本的重要主題部分,然后根據(jù)更詳細的理解記錄關(guān)鍵詞,所以文本主題的捕獲對關(guān)鍵詞生成的性能至關(guān)重要。但主題模型很容易忽略文本中的一些低頻詞或?qū)I(yè)術(shù)語,它們在文章內(nèi)出現(xiàn)的次數(shù)往往很少,僅依靠文本內(nèi)部知識源明顯不足??梢钥紤]知識蒸餾[51]的方法,依靠預訓練BERT模型中已訓練好的詞向量知識作為監(jiān)督信號去指導訓練詞袋模型,使其得到更高質(zhì)量的主題分布,從而更有效地捕捉語言上下文的細微差別,在文本主題建模上表現(xiàn)出更好的主題一致性。優(yōu)化后的主題模型與關(guān)鍵詞生成模型相結(jié)合能發(fā)現(xiàn)文本中主題相關(guān)度高的低頻詞,進而指導優(yōu)化關(guān)鍵詞的主題覆蓋度,提升關(guān)鍵詞的多樣性。
(4)與知識圖譜相結(jié)合
對于一些特定領(lǐng)域如法律和醫(yī)學的專業(yè)文章中,代表文本主題的詞語被提及的次數(shù)很少,往往存在著關(guān)鍵詞獲取難度高的問題,很難捕獲到真正意義上的關(guān)鍵詞。因此,挖掘外部結(jié)構(gòu)資源就顯得尤為重要,如何借助知識圖譜中的實體結(jié)構(gòu)化信息以及實體間豐富的關(guān)系來豐富文本表示[52],用于提高生成詞的準確性、擴展關(guān)鍵詞生成應用領(lǐng)域是未來需要面臨的問題。
(5)生成多類別關(guān)鍵詞
以往都是對關(guān)鍵詞生成性能進行考慮,也可以著眼于關(guān)鍵詞生成的應用場景(生成結(jié)果分類)進行分析。首先對文本的關(guān)鍵詞進行類別劃分,在訓練過程中,通過不同的關(guān)鍵詞對文本主題類別進行約束,將其變?yōu)樘卣魅谌氲讲煌黝}的解碼器,從而實現(xiàn)關(guān)鍵詞分類。例如對于社交媒體帖子中的每一條評論都是由用戶闡述自己的觀點,根據(jù)每個評論的關(guān)鍵詞涵蓋的情感信息進行分類,形成正向情感如愉快、信任、感激等;中立情感如理性、不偏不向等和負向情感如痛苦、仇恨、嫉妒等。依據(jù)訓練好的分類模型,可對眾多評論數(shù)據(jù)進行傾向性分析,掌握用戶輿論走向。