陳麗娟,蘭艷艷,龐亮,李家寧,郭嘉豐,徐君,程學旗
(中國科學院計算技術研究所,中國科學院網(wǎng)絡數(shù)據(jù)科學與技術重點實驗室,北京 100190)
隨著互聯(lián)網(wǎng)2.0時代的到來,用戶不僅從互聯(lián)網(wǎng)獲取海量信息,其參與程度和互動也代表了當前的社會輿論方向,對互聯(lián)網(wǎng)經(jīng)濟的發(fā)展起著推動作用。用戶通過自身的言論,比如對一個科技熱點的關注和議論,推動著一些領域和互聯(lián)網(wǎng)經(jīng)濟的發(fā)展。例如,AlphaGo,第一個擊敗人類職業(yè)圍棋選手,第一個戰(zhàn)勝圍棋世界冠軍的人工智能程序。在群眾熱議中,不僅推動著圍棋領域的發(fā)展,同時引領了一波人工智能學習熱潮,使得更多研究更加關注深度學習和強化學習[1]。
因此這樣的話題不僅對互聯(lián)網(wǎng)經(jīng)濟起著重大作用,甚至對推動科技發(fā)展有著巨大的潛力。因此根據(jù)以往的互聯(lián)網(wǎng)信息,生成具有引導性的話題有著重要意義,我們將這一類話題稱之為創(chuàng)新構想話題。
創(chuàng)新構想話題,是指具有以下特征的話題:在指定的時間段內(nèi),能夠獲得公眾的關注,并能自主激發(fā)科技群體圍繞其展開討論的熱情,具有推動科技發(fā)展甚至使構想落實為現(xiàn)實的潛力。由于其對創(chuàng)新性和時效性的要求,創(chuàng)新構想話題智能生成應能夠密切關注科技界最前沿的信息,準確分析已有及新興科技關鍵詞的發(fā)展態(tài)勢,對潛在可能成為公眾關注焦點的話題具有一定程度的預判能力。
創(chuàng)新構想話題與新聞標題和主題不同,新聞標題通過陳述句來描述一件已經(jīng)發(fā)生的新鮮事情來吸引用戶的眼球;而創(chuàng)新構想話題則是基于已有知識、已發(fā)生的客觀事實,以懷疑探索的語氣去詢問參與構想話題的討論人,語句一般對話題的創(chuàng)新性有方向性的引導,從開放的網(wǎng)絡知識資源中生成具有新穎性和熱度性的前沿熱點科技問題,推動人與人之間的交流引起用戶共鳴。例如AlphaGo這個熱點上,新聞一般會用如下方式去闡述該事實。
例“AlphaGo在圍棋領域擊敗人類?!?/p>
這種新聞標題描述雖然基于客觀事實,但描述方式是用簡單的陳述方式,不能更大程度上引起用戶的討論熱情,而且大多數(shù)新聞標題都是根據(jù)新聞內(nèi)容人工撰寫。本文則希望基于已有的互聯(lián)網(wǎng)資源,挖掘數(shù)據(jù)中潛在的話題,能自動生成類似如下的話題:
例“如何看待AlphaGo戰(zhàn)勝人類?”
例“AlphaGo戰(zhàn)勝人類意味著什么?”
Fig.1 Framework of the generation of creative concept topic圖1 創(chuàng)新構想話題生成框架
上述的例子以詢問的方式提出話題,引發(fā)用戶思考和討論。并且基于原始數(shù)據(jù)的核心內(nèi)容自動生成創(chuàng)新構想話題,無須人工參與資源閱讀,可以大量提取潛在的可能引起關注和討論的話題。
創(chuàng)新構想話題任務不僅要求自動生成上述形式的話題,還需要話題的客觀基本屬性,例如:標題、摘要、主題、類型、所屬領域、生成時間等元數(shù)據(jù)。該任務從信息獲取到最終生成完整的創(chuàng)新構想話題的過程如圖1所示。
數(shù)據(jù)采集主要面向兩種信息源:科技問答社區(qū)以及文獻資料庫。科技數(shù)據(jù)分析工具主要用于關鍵字抽取和內(nèi)容摘要的生成,其中主要采用TextRank[2]算法。創(chuàng)新構想話題生成模型則是利用上述原始數(shù)據(jù)和數(shù)據(jù)分析工具得到的摘要,基于Encoder-Decoder[3]框架生成創(chuàng)新構想話題。
創(chuàng)新構想話題生成任務,最重要兩部分分別是數(shù)據(jù)分析工具和創(chuàng)新構想話題生成。其中數(shù)據(jù)分析工具主要包含關鍵詞提取和摘要生成算法。關鍵詞提取算法有如下:TF-IDF[4]、TextRank、LDA隱變量生成模型[5]等。其中TF-IDF通過計算TF*IDF,來衡量詞在一篇文檔中的重要程度,從而達到提取關鍵字的作用。其中TF(Term Frequency)是詞在文檔中出現(xiàn)的頻率,IDF(Inverse Document Frequency)逆文檔頻率是DF(文檔頻率)的倒數(shù),彌補了TF中常用詞的干擾,TF-IDF算法思想比較簡單,但在實際中具有廣泛的應用,本文采用該算法進行關鍵詞抽取。
自動文摘生成分為抽取式自動文摘[6-7]和生成式自動文摘方法[8]。因為本文中在訓練創(chuàng)新構想話題模型時,是利用摘要作為訓練輸入,所以采取TextRank算法對數(shù)據(jù)進行摘要提取。TextRank屬于抽取式自動文摘生成,文摘中的句子是從原文中抽取得到,不對原文句子進行修改,可以盡量保留更多原文的信息。
話題生成模型主要分為傳統(tǒng)的機器學習方法和深度學習方法。本文采取了深度學習中的話題生成的方法,主要基于Encoder-Decoder框架[9]。首先利用Google的word2vec[10-12]算法,對預處理后的文本進行詞向量的學習,作為模型的輸入,在話題生成方面,基于該框架還引入了注意力機制,找到輸入數(shù)據(jù)中顯著的與當前輸出相關的有用信息,從而提高輸出的話題的質量。對模型進行訓練,模型的輸出就是整個任務最重要組成部分,即生成的創(chuàng)新構想話題。
創(chuàng)新構想話題的生成需要大量數(shù)據(jù)作為驅動,對模型進行訓練學習,所以需要對相關領域的數(shù)據(jù)進行采集,任務主要面向科技領域,科技數(shù)據(jù)采集主要面向兩種信息源:科技問答社區(qū)以及文獻資料庫。
數(shù)據(jù)采集主要面向科技問答社區(qū)。以網(wǎng)易為例,其下設有人工智能話題專欄,凡是與人工智能相關的討論大部分都收錄在這個欄目下,且絕大多數(shù)內(nèi)容都與人工智能主題相關;其帖子以問答的形式給出,標題大部分是可供討論的話題形式,這為本文提供了很好的話題樣板來源。面向科技問答社區(qū)的數(shù)據(jù)采集工具主要負責周期性地從問答社區(qū)中抽取更新的帖子,包括帖子標題和內(nèi)容以及發(fā)布時間。
文獻資料庫主要包括各大重要會議、期刊以及預印本上發(fā)布的文獻信息。文獻資料主要提供文獻的標題、摘要、作者、關鍵詞與正文。尤其從標題、摘要與關鍵詞中結合發(fā)布時間信息即可分析得到科技關鍵詞的演變態(tài)勢,為候選熱點關鍵詞的分析抽取提供了豐富的材料?;谖墨I資料知識圖譜[13],面向文獻資料庫的數(shù)據(jù)采集工具主要負責定期訪問相關知識圖譜接口,抽取新發(fā)布文獻中的標題、摘要、作者、關鍵詞和正文信息。
在對獲取到社區(qū)問答數(shù)據(jù)和文獻資料庫數(shù)據(jù)進行分析前,需要對數(shù)據(jù)進行預處理。對文本內(nèi)容進行分詞,本文主要采用jieba分詞,同時對分詞后的文本去除停用詞,作為數(shù)據(jù)分析工具的輸入。
數(shù)據(jù)分析工具主要包含兩個方面,一方面是科技數(shù)據(jù)關鍵詞的抽取,采用了TF-IDF算法提取若干關鍵詞,另一方面是科技數(shù)據(jù)摘要生成,采用了TextRank算法進行抽取式自動摘要生成。
關鍵詞抽取主要負責從科技數(shù)據(jù)中抽取關鍵性的、可以作為話題研討核心的科技實體詞。TF-IDF是計算文本相似度中最為典型的一種方法,由于衡量一個詞在文檔中的重要程度。
(1)詞頻(Term Frequency,TF),就是某個詞匯出現(xiàn)的頻率,具體來講,就是詞庫中的某個詞在當前文章中出現(xiàn)的頻率,可以用如下式計算。
(1)
其中,TFi,j為詞匯j在文檔中i中的出現(xiàn)頻率,ni,j為詞匯j在文檔i中出現(xiàn)的次數(shù)。詞匯在文檔中出現(xiàn)的頻率越高,TF值越大,它和文本的主題內(nèi)容越相關,可視為文檔的關鍵詞。但是這個指標容易受常用詞干擾,比如:因為、所以、然后等連詞,這類詞匯的TF很高,所以僅僅使用TF來衡量詞匯的重要性是有缺陷的,所以引入了IDF。
(2)逆文檔頻率(Inverse Document Frequency,IDF),某個詞匯在多篇文檔集合越頻繁出現(xiàn),例如常用詞,該詞匯的區(qū)分能力越差。例如:在一個文本集合中,詞匯A在100篇中文本出現(xiàn),詞匯B在10篇文本中出現(xiàn),則詞匯B比詞匯A更具有區(qū)分度。其中逆文檔頻率IDF就是一個詞在整個文庫詞典中出現(xiàn)的頻率,計算方式為:
(2)
其中,IDFi表示詞語i的逆文檔頻率,|D|是歷史數(shù)據(jù)中的文件總數(shù),分母是出現(xiàn)詞語i的文檔總數(shù),+1是為了防止分母為0。
根據(jù)TF-IDF計算公式,關鍵詞在文檔中出現(xiàn)頻率越高,或者包含該關鍵詞的文檔數(shù)越少,則TF-IDF得分越高,按照TF-IDF對文檔中的詞進行排序,選取若干個排序最靠前的詞作為文檔的關鍵詞。
通過網(wǎng)站爬取的數(shù)據(jù),有時候存在大量的數(shù)據(jù)冗余和垃圾信息,文獻數(shù)據(jù)正文大都是長篇幅,所以生成歷史數(shù)據(jù)的摘要可以方便用戶判斷是否閱讀該話題相關的原文。本文中將生成的摘要作為創(chuàng)新構想話題的屬性,用于描述創(chuàng)新構想話題相關的內(nèi)容細節(jié),方便用戶決策是否參與該話題的討論。同時生成的摘要長度也有利于創(chuàng)新構想話題生成模型的學習。本文主要采用TextRank算法進行抽取式自動摘要生成,盡可能保留原文的信息。
TextRank算法由PageRank算法[14]延伸而來,是一種基于圖形的文本處理排名模型。本文在TextRank算法基礎上,通過無監(jiān)督的方法進行關鍵句提取,從而組合形成原文的摘要,不需要事先對多篇文檔進行學習訓練。
圖的排序算法的核心是繪制全局信息,通過頂點的重要程度來提取頂點的信息。而頂點的重要程度不僅取決于鏈接到該頂點的結點個數(shù),還取決于鏈接結點的重要程度,當一個頂點鏈接的結點數(shù)越多,并且鏈接的結點的重要程度越高,那么該頂點就越重要。
自然語言文本要利用圖的排序思想就需要構建文本的圖。在摘要生成中,基本元素是句子。所以文本的圖排序構造可以歸納為以下三步。
(1)把給定的文本按照完整句子進行分割,即T=[S1,S2,…,Sm]將每個句子作為基本單位,并將其視為頂點添加到圖形中。
(2)根據(jù)文本識別句子之間的關系,繪制出頂點與頂點之間的連接邊。
(3)迭代直至圖的排序算法收斂。根據(jù)頂點的最終得分進行排序。
摘要生成則是選出上述一定數(shù)量的關鍵句,并將關鍵句按照原始文本的順序進行組合,形成文本的摘要。所以TextRank算法中最關鍵的部分在于如何定義句子與句子之間的關系,即如何確定構建的文本圖中的邊與邊之間的關系,以及如何對構造的圖進行迭代??捎孟率絹泶_定兩個句子是否存在“相似性”。
(3)
其中Si,Sj分別表示兩個句子,ωk表示句子中的詞語。分子部分表示的是同時出現(xiàn)在兩個句子中的詞的個數(shù),分母是對兩個句子中的詞的個數(shù)的對數(shù)求和,分母的設計可以緩和長句在相似度計算上的優(yōu)勢,達到長短句之間相似度計算的平衡。
根據(jù)式(3)可以計算任意兩個句子結點之間的相似度,根據(jù)閾值去掉相似度較低的邊連接,構建得到以句子為基本單位的有權無向連接圖G=(V,E).在此基礎上計算TextRank值,有權圖G=(V,E)有點集合V和邊集合E組成,圖中任意兩個頂點Vi和Vj之間邊的權重為ωij,對于給定頂點Vi,ln(Vi)指向該結點的點集合,Out(Vi)為Vi指向的點集合,所以類似PageRank可以用下式計算TextRank值:
(4)
其中WS(Vi)為第i個句子的重要性(TextRank值),d是阻尼系數(shù),一般設置為0.85,圖中頂點的值初始化為任意值,然后根據(jù)式(4)迭代至收斂。根據(jù)TextRank值文本中的句子進行排序,選出對應值最高的結點對應的句子作為摘要,本任務中規(guī)定生成的摘要長度不超過100個字符。
抽取生成的摘要不僅作為創(chuàng)新構想話題的屬性,對創(chuàng)新構想話題進行解釋描述,同時作為創(chuàng)新構想話題生成模型的輸入。因為提取到的摘要與文本主要內(nèi)容高度相關,在摘要基礎上生成話題,可以避免原始文本中關聯(lián)性低的句子的干擾,同時摘要的句子過長,不利于創(chuàng)新構想話題生成模型的訓練和學習,其得到的話題結果往往不太理想,所以本文用提取的摘要作為下一步的輸入。
創(chuàng)新構想話題生成主要負責將生成的文本摘要轉化成一個話題的表述形式,多以詢問或者試探的語氣表述,起到引發(fā)用戶共鳴進而產(chǎn)生討論熱情的效果。與TextRank抽取式方式不同,TextRank是通過原文中抽取來構成結果,而話題生成模型需要“理解”文檔,生成新的話題,挖掘文檔背后更深入的問題,這種方式更接近人工生成話題的方式,是該任務實際操作中希望達到的效果。
創(chuàng)新構想話題生成模型屬于生成式的模型,基于深度學習Encoder-Decoder框架,完整的模型框架如圖2所示。
Fig.2 Model of the generation of creative concept topic圖2 創(chuàng)新構想話題生成模型
模型主要由三個部分組成,Encoder層,Control層和Decoder層。Encoder層對摘要中的每一個句子進行編碼,得到每一個句子的表達向量;Control層從每個句子的表達得到摘要的上下文表達向量;Decoder層對摘要的表達進行解碼,生成與摘要相關的創(chuàng)新構想話題。
關鍵定義假設提取的摘要S有k個句子,表示成{S1,S2,…,Sk}.作為整個模型的輸入。Si是第i個句子,表示成{x1,x2,…,xT},包含T個詞,每個詞用Google的word2vec算法得到每個詞的詞向量[15]表達為{x1,x2,…,xT},然后最終生成的摘要為Y={y1,…,yN}.
3.1.1 詞向量
利用相關語料的上下文信息,通過神經(jīng)網(wǎng)絡模型,最大化語言生成概率獲取詞的詞向量,在自然語言處理研究領域被廣泛地應用。該層利用分詞預處理后的預料作為word2vec模型的輸入,輸出所有單詞的低維向量表達。本文選用基于負采樣的Skip-gram神經(jīng)網(wǎng)絡模型訓練詞向量,用詞來預測上下文,即認為語義越接近的詞,上下文語境也越接近。該模型包含三層結構:輸入層、投影層和輸出層,如圖3所示。
Fig.3 Neural network model of Skip-gram圖3 Skip-gram神經(jīng)網(wǎng)絡模型
3.1.2 Encoder階段
Encoder階段就是在得到原文的詞向量后,對摘要中的每一句話進行編碼,將句子轉換為中間語義表示。因為語義需要保留句子完整的信息,所以采用循環(huán)神經(jīng)網(wǎng)絡(RNN)對摘要中的每一句話進行編碼。RNN在實際應用有很多變種,本文采用LSTM(Long-Short Term Memory)可以有效地防止梯度爆炸的問題,其主要由記憶單元(memory cell)、輸入門(input gate)、輸出門(output gate)和遺忘門(forget gate)組成,對于{x1,x2,…,xT},LSTN在t時刻的輸出向量ht可以用如下方法計算:
it=σ(Wxixt+Whiht-1+bi)
ft=σ(Wxfxt+Whfht-1+bf)
ct=ftct-1+ittanh(Wxcxt+Whcht-1+bc)
ot=σ(Wxoxt+Whoht-1+bo)
ht=ottanh(ct),
(5)
其中,i,j,o分別表示輸入門,遺忘門和輸出門,c表示從記憶單元的信息h中得到的表達。通過LSTM可以得到第i個句子{x1,x2,…,xT}的中間語義表示{h11,h21,…,hT1},最后一個隱狀態(tài)hT1則認為是該句子的最終表達,因為它包含了該句子上下文所有的信息。用上述方式對摘要中的所有句子進行Encoder,取最后一個狀態(tài)作為每一個句子最終的表達,則可以得到所有句子的隱狀態(tài)表達{hT1,hT2,…,hTk},其中hTi,表示第i個句子編碼狀態(tài)。
在提供了文本摘要每個句子的編碼表達下,需要獲取有關上下文句子的表達。所以{hT1,hT2,…,hTk}作為Control層的輸入,雙向的LSTM(Bi-LSTM)同時從兩個方向考慮了先前的句子和后文的句子。希望生成的話題是和上下文高度相關,所以采用Bi-LSTM處理輸入,即
(6)
關鍵定義根據(jù)Control層得到的和上下文相關的句子隱狀態(tài)表示,Decoder層要根據(jù)這些中間語義,解碼得到本文任務需要的創(chuàng)新構想話題。希望利用到Control層得到的所有位置的表達,同時又有側重點,所以在解碼時候,使用了注意力機制[16]。解碼階段每產(chǎn)生一個詞都是基于Control層的得到的表達和前面已經(jīng)產(chǎn)生的詞共同決定的,即
yt=argmaxP(y′|{y1,…,yt-1},ct;θ).
(7)
在主流的解碼模型中,不論輸出第幾個詞匯,ct都是一樣的,且ct對于整個輸入而言,表達要足夠好,才能利用固定長度向量表示整個摘要的信息。任務中使用了注意力機制,允許在解碼階段關注輸入的不同部分,也就是對于產(chǎn)生不同的詞匯而言,狀態(tài)ct是變化。
etj=g(St-1,hcj)
(8)
(9)
(10)
St=f(St-1,yt-1,ct),
(11)
由公式(7)已知輸出序列Y的輸出方式,所以整個模型的優(yōu)化目標如下式
(12)
創(chuàng)新構想話題生成模型選擇Adam[17]進行優(yōu)化訓練,對訓練樣本進行迭代訓練,其中損失函數(shù)是生成訓練集D上的創(chuàng)新構想話題的負對數(shù)似然,
(13)
其中S,Y是訓練集中的一條樣本,S是文本內(nèi)容,Y是與話題相關的文本內(nèi)容。
本文實驗采取的訓練集是實時從網(wǎng)絡爬取的新聞內(nèi)容,以網(wǎng)易人工智能板塊為例,訓練集的每個樣本包含話題和正文內(nèi)容。
詞向量設置為100維,模型的Encoder層的LSTM和Control層的雙向LSTM的隱藏狀態(tài)設置成h=256。學習率設置成0.000 5,訓練過程采用Adam優(yōu)化方法,批量大小設置成16。
在爬取到的新聞中,包含新聞標題和原文,作為模型的輸入,完整的結果將包括生成的話題,關鍵詞和新聞摘要。任務生成的完整結果如表1所示。
從表1展示的例子,整個任務可以生成完整的結果,得到的關鍵字和原文標題內(nèi)容相關,生成的話題以詢問的方式引發(fā)用戶思考,抽取的摘要也能涵蓋新聞的大體內(nèi)容。所以本文方法可以很好地從新聞內(nèi)容中,自動提取到創(chuàng)新構想話題。
表2展現(xiàn)了若干從網(wǎng)易人工智能板塊數(shù)據(jù)中,自動生成的一系列話題,可以發(fā)現(xiàn)生成的話題語義清晰,表達流暢。生成的話題具有新穎性,不僅生成與人工智能領域有關的話題,還涉及人工智能領域對生活的影響,挖掘出新聞內(nèi)容下更豐富的話題,能更大程度上引起用戶的興趣。
本文提出了創(chuàng)新構想話題的任務。該任務對激發(fā)用戶討論熱情,推動相關領域發(fā)展有著積極作用。該任務主要通過網(wǎng)絡爬蟲獲取相關科技數(shù)據(jù)以及通過指定接口獲取相關文獻數(shù)據(jù)。對獲取的數(shù)據(jù)進行相關預處理;然后利用科技數(shù)據(jù)分析工具獲取關鍵詞并生成摘要;最后利用創(chuàng)新構想話題生成模型生成具有引導性的話題。并根據(jù)任務需求,生成指定的數(shù)據(jù)格式,作為系統(tǒng)的接口。該任務對潛在可能成為公眾關注焦點的話題具有一定程度的預判能力。對相關領域發(fā)展可以起到良好的推動作用。
表2 網(wǎng)易數(shù)據(jù)生成的創(chuàng)新構想話題