孫 甜,耿永建,胡程憶,霍 明,楊志強(qiáng),黃 昭,孟龍波
(卓望信息技術(shù)(北京)有限公司,北京 100060)
隨著電信運(yùn)營商數(shù)字化轉(zhuǎn)型的推進(jìn),信息科技技術(shù)已經(jīng)融入社會民生經(jīng)濟(jì)的各方面,各大公司也已經(jīng)利用自然語言處理技術(shù)對各項業(yè)務(wù)進(jìn)行賦能。比如陳慶良探討了自然語言處理在電信客戶名稱匹配的應(yīng)用場景,采用Albert small算法實現(xiàn)了客戶名稱的精確匹配模型,李奧等研究智能音箱在電信運(yùn)營商業(yè)務(wù)中的應(yīng)用,使用NLP理解用戶意圖等。中國移動通訊集團(tuán)作為推動數(shù)字經(jīng)濟(jì)發(fā)展的中堅力量,承擔(dān)著更大的責(zé)任和使命,致力于為企業(yè)級客戶提供專業(yè)的數(shù)智化決策輔助系統(tǒng)。面對海量新聞中蘊(yùn)含的龐大且復(fù)雜的信息,從中快速定位到所需內(nèi)容,本文提出了DDCAMS,通過新聞去重模型、新聞去噪模型、新聞分類模型和新聞?wù)P?層算法自動處理和提煉關(guān)鍵信息,方便分析師洞察最新前沿技術(shù),撰寫分析性報告,提供智能化輔助決策支持。
本文的主要貢獻(xiàn)可以概括為以下幾個方面。
1)提出了DDCAMS系統(tǒng),通過4層模型的處理,代替純?nèi)斯ぬ幚硇侣劦姆绞?,實現(xiàn)快速有效地對海量新聞進(jìn)行提取和分類,方便運(yùn)營人員分析和使用,有助于分析師把握前沿技術(shù)動態(tài),洞察行業(yè)商機(jī)。
2)在新聞去重模型當(dāng)中,使用SimHASH算法,將百萬量級的新聞處理時間降低到對數(shù)級別,實現(xiàn)了一個數(shù)量級新聞數(shù)量的下降,大幅縮短后續(xù)模型處理新聞的時間,對工程和業(yè)務(wù)來說非常友好。
3)在新聞分類和摘要模型當(dāng)中,采用了預(yù)訓(xùn)練模型對文本進(jìn)行理解,提高了結(jié)果的準(zhǔn)確率,并使用基于mlflow框架進(jìn)行模型部署,采取小批量多次迭代優(yōu)化的方式,對模型實現(xiàn)快速迭代和更新。
智慧咨詢項目基于網(wǎng)絡(luò)爬蟲,按日、周、月方式對網(wǎng)絡(luò)情報人工收集行業(yè)動態(tài)新聞、政策法規(guī)、戰(zhàn)略/業(yè)務(wù)預(yù)警和商機(jī)等信息,以日報、周報新聞聚合的方式為客戶提供關(guān)于政府政策、技術(shù)發(fā)展趨勢、運(yùn)營商動向、重點標(biāo)桿企業(yè)的發(fā)展信息和合作動態(tài)等內(nèi)容。
之前業(yè)務(wù)人員的操作流程是利用爬蟲從網(wǎng)絡(luò)上下載新聞,然后人工篩選出所需新聞,并逐條閱讀為文章分類,再由運(yùn)營人員提取文章里的摘要內(nèi)容。為替代原有純?nèi)斯ずY選信息、排版的生產(chǎn)模式,實現(xiàn)自動化過濾、打標(biāo)和摘要等需求,形成線上智能輔助決策產(chǎn)品閉環(huán),自動生成信息洞察報告。平臺由“信息獲取—信息治理—數(shù)據(jù)分析—決策輔助”幾大核心模塊組成,AI主要負(fù)責(zé)自動處理數(shù)據(jù)量極大,使用簡單邏輯無法實現(xiàn)的信息萃取相關(guān)功能,包括以下4類。
1)新聞去重模型(news deduplication model):重復(fù)內(nèi)容自動識別。通過AI去重模型自動過濾大量重復(fù)或部分新聞?wù)Z義內(nèi)容重復(fù)的新聞,為內(nèi)容打上完全匹配或部分匹配的重復(fù)標(biāo)簽。
2)新聞去噪模型(news denoise model):非新聞類內(nèi)容自動過濾。獲取的新聞除了包含新聞標(biāo)題、新聞?wù)牡扔行畔?,也常常包括?dǎo)航區(qū)、超鏈接及圖片控件廣告等噪聲信息。去噪模型主要用于去除和新聞內(nèi)容完全無關(guān)的內(nèi)容,自動將所需新聞入庫。
3)新聞分類模型(news classification model):通信行業(yè)5類標(biāo)簽自動打標(biāo)。將新聞作為原始數(shù)據(jù)輸入模型,判斷每一條新聞屬于政策環(huán)境、技術(shù)應(yīng)用、數(shù)字運(yùn)營、垂直行業(yè)和公司5大類中的某幾小類別。
4)新聞?wù)P停╪ews abstract model):全文語義分析,重點段落自動摘要。通過百度快照自動摘要數(shù)據(jù)作為基礎(chǔ)模型訓(xùn)練依據(jù),完成摘要模型的學(xué)習(xí),傳入新聞生成最匹配原文標(biāo)題的全文摘要內(nèi)容,用以替代人工編輯提取新聞核心觀點段落的工作。
設(shè)計了新聞去重、新聞去噪、新聞分類和新聞?wù)?層模型,依次運(yùn)行在服務(wù)器上。通過爬蟲系統(tǒng)獲得大量含噪聲的數(shù)據(jù),首先通過去重模型,去掉重復(fù)新聞及語義相似度較高的新聞,減少后期模型樣本量。之后新聞經(jīng)過去噪模型過濾掉與主題不相符的非新聞噪聲,接下來分類模型自動為每條新聞打上相應(yīng)的5類標(biāo)簽,并且摘要模型提煉新聞的主旨內(nèi)容,并返回給前端業(yè)務(wù)分析師,通過4層算法,減少人工處理新聞的數(shù)量,提高效率,整體流程如圖1所示。
圖1 DDCAMS整體流程框架圖
爬蟲系統(tǒng)每天抓取的新聞數(shù)據(jù)大約有30萬條,通過該系統(tǒng)中的去重模型和去噪模型,可以過濾98.5%對業(yè)務(wù)無明顯意義的新聞信息,并通過分類模型,摘要模型完成信息的分類與萃取,極大地提高了工作效率。通過該系統(tǒng),在人工不變的情況下,處理新聞量增加了30倍,處理時間減少了40%。
新聞去噪、分類和摘要模型采用mlflow框架來管理不同版本的模型,通過定義標(biāo)準(zhǔn)的工程腳手架進(jìn)行模型的快速訓(xùn)練和保存,然后通過track服務(wù)提供模型的實驗記錄、模型的注冊、版本管理和上線發(fā)布,最后通過HTTP協(xié)議暴露接口,完成模型的部署和應(yīng)用。提供標(biāo)準(zhǔn)API接口給后端、測試等相關(guān)人員,完成全流程的開發(fā),后期模型也可以根據(jù)新數(shù)據(jù)和業(yè)務(wù)效果不斷進(jìn)行重新訓(xùn)練并更新。
去重模型采用fastAPI來創(chuàng)建用于獲取預(yù)測結(jié)果的REST服務(wù),在代碼當(dāng)中聲明請求參數(shù)和請求體等變量,使用uvicorn ASGI服務(wù)器,由swagger UI自動生成交互式的用戶界面API文檔。
新聞萃取項目首先經(jīng)過的是新聞去重模型,目的就是將大量重復(fù)相似的新聞過濾掉,本質(zhì)上屬于文本間相似度的計算。文本相似度的計算,可以使用向量空間模型(VSM),即先對文本分詞提取特征,根據(jù)特征建立文本向量,把文本之間相似度的計算轉(zhuǎn)化為特征向量距離的計算,如歐式距離、余弦夾角等,對于小量數(shù)據(jù)處理是可以的,但是面對日增爬取很多的海量新聞來說,這樣做的復(fù)雜度會很高,所以項目的難點在于如何將海量新聞計算的時間復(fù)雜度由O(n2)下降到O(n),這對實際生產(chǎn)非常重要。
SimHash算法是GoogleMoses Charikear于2007年發(fā)表的論文中提出的,專門用來解決億萬級別的網(wǎng)頁去重任務(wù),其主要思想是降維,將高維的特征向量映射成低維的特征向量,再通過比較2個特征向量的漢明距離來確定文章之間的相似性,可以實現(xiàn)近線性的近似搜索方案。
SimHash算法總共分為5個流程:①分詞。對待處理文檔進(jìn)行中文分詞,得到有效特征和權(quán)重;②hash。對獲取的詞進(jìn)行普通哈希操作,計算hash值,得到一個長度為n位的二進(jìn)制;③加權(quán)。在獲取的hash值基礎(chǔ)上,根據(jù)對應(yīng)的weight值進(jìn)行加權(quán);④合并。將上述得到的各個向量加權(quán)結(jié)果進(jìn)行求和,變成一個序列串,對一個文檔得到一個列表;⑤降維。對于得到的n-bit簽名的累加結(jié)果的每個值進(jìn)行判斷,大于0則置為1,否則置為0,從而得到該文本的SimHash值。
經(jīng)過SimHash映射以后,得到每個文本內(nèi)容對應(yīng)的SimHash簽名,利用海明距離來進(jìn)行2篇新聞相似度的衡量,根據(jù)抽屜原理,即在海明距離為3的情況,如果2個文檔相似,那么其必有一個塊的數(shù)據(jù)是相等的原理,來判斷2個文本的相似性,進(jìn)行更高效率的存儲,提高去重效率。
SimHash算法的召回率為82%,可以有效過濾掉新聞當(dāng)中約9成以上重復(fù)和近似的新聞,算法的復(fù)雜度為O(1),推理時間是24 ms,實現(xiàn)了近線性的近似搜索方案,作為新聞萃取的第一層處理,極大地提高了項目的整體效率。去重模型可以在很多場景當(dāng)中直接使用,具有較高的實際應(yīng)用價值。
經(jīng)過新聞去重模型后的數(shù)據(jù)會進(jìn)入到新聞去噪模型,過濾掉諸如新聞報道時間、導(dǎo)航區(qū)、超鏈接、版權(quán)信息及圖片控件廣告等噪聲信息。使用TF-IDF算法實現(xiàn)新聞文本的向量化,然后使用SVM算法對文本數(shù)據(jù)進(jìn)行分類,判斷是否為所需新聞,主要包括jieba分詞、TF-IDF文本表征和SVM文本分類3個環(huán)節(jié)。
1)jieba分詞。首先進(jìn)行數(shù)據(jù)清洗,去掉重復(fù)數(shù)據(jù),然后使用正則表達(dá)式去除換行符和標(biāo)點符號等操作,接下來進(jìn)行停用詞的處理,刪除類似“我們,的,了,嗎”這類停用詞,但是保留數(shù)字和網(wǎng)頁標(biāo)簽等超鏈接符號,然后使用jieba默認(rèn)模式對所有新聞文本進(jìn)行分詞處理,用1個空格分隔每個單詞,對所有的數(shù)據(jù)集都進(jìn)行分詞的操作。
2)TF-IDF文本表征。TF-IDF可以根據(jù)特征詞在文中出現(xiàn)次數(shù)和在整個語料中出現(xiàn)文檔頻率數(shù)計算該詞在整個語料中的重要程度,過濾掉常見卻不重要的詞,盡可能多的保留影響程度高特征詞,TF-IDF值越大則表示該特征詞對這個文本的重要程度越高。
計算公式如下,TF-IDF表示詞頻TF和倒文本詞頻IDF的乘積,TF中ni,j為特征詞ti在訓(xùn)練文本Dj中出現(xiàn)的次數(shù),分母是文本Dj中所有特征詞的個數(shù),IDF中|D|是語料文本總數(shù),|Dt|表示文本所包含特征詞ti的數(shù)據(jù)
3)SVM文本分類。支持向量機(jī)SVM是一種二分類模型,是定義在特征空間上間隔最大的線性分類器,學(xué)習(xí)策略就是間隔最大化,學(xué)習(xí)算法就是求解凸二次規(guī)劃的最優(yōu)化算法,通過使用核技巧成為實質(zhì)上的非線性分類器。
在實驗的過程中,采用高斯RBF核函數(shù),其是一種局部性強(qiáng)的核函數(shù),主要用于線性不可分的情形,可以將1個樣本映射到1個更高維的空間,采用KFold五折自動訓(xùn)練,利用metrics計算precision、recall、f1_score 3類評價指標(biāo)結(jié)果。
對69 670條新聞數(shù)據(jù)進(jìn)行訓(xùn)練,首先進(jìn)行數(shù)據(jù)清洗和分詞的處理,劃分訓(xùn)練集、測試集和驗證集,然后對此語料庫用sklearn完成向量化與TF-IDF特征值計算,之后利用SVM模型進(jìn)行文本分類訓(xùn)練,通過降低閾值增加召回率,經(jīng)過100輪訓(xùn)練后模型達(dá)到了最優(yōu)效果,離線評估去噪模型f1值為0.817 659,上線使用之后可以有效將噪聲新聞過濾出來。
新聞分類算法框架使用Albert+TextCNN。Albert是為了得到新聞文本特征向量,TextCNN是為了更好地提取文本中的特征,最后接全連接層得到分類的標(biāo)簽結(jié)果,整體框架如圖2所示。
圖2 新聞多標(biāo)簽分類模型
Albert通過向量參數(shù)化的因式分解、跨層參數(shù)共享、句間連貫性損失采用SOP及dropout 4個手段來減小模型的大小,在生產(chǎn)環(huán)境進(jìn)行部署時無論是存儲還是訓(xùn)練模型都很節(jié)省資源。新聞文本通過Albert模型得到1個3維向量之后,下游任務(wù)使用這個向量做多標(biāo)簽文本分類的任務(wù)。
TextCNN模塊的核心思想是抓取新聞文本的局部特征,主要是通過不同的卷積核尺寸來提取文本的Ngram信息,因為中文會有一些5、6、7詞的專業(yè)名稱或短語,所以選擇了更豐富的卷積核,然后進(jìn)行最大池化來提取最關(guān)鍵信息,類似attention機(jī)制,拼接之后通過全連接層對特征進(jìn)行組合,然后通過多分類的損失函數(shù)來訓(xùn)練模型。
最后通過全連接層,利用了TextCNN的輸出作為其輸入,將TextCNN的輸出投射到新聞分類的標(biāo)簽上,有點像特征與標(biāo)簽之間的橋梁,得到標(biāo)簽的概率輸出分布,獲得每條新聞對應(yīng)的多標(biāo)簽類別。
此處使用多個二分類任務(wù),如果輸出結(jié)果不屬于任何一個類,則認(rèn)為是噪聲數(shù)據(jù),這與第2步的去噪模型是互補(bǔ)的。如果輸出的類別超過10個,則僅取前10個概率最大的類別。
數(shù)據(jù)集來自卓望公司從各大網(wǎng)站上的新聞數(shù)據(jù),一共有40 000多條,由業(yè)務(wù)運(yùn)營人員對數(shù)據(jù)類別打標(biāo)。數(shù)據(jù)集分為公司、政策環(huán)境、垂直行業(yè)、技術(shù)應(yīng)用和數(shù)字化運(yùn)營5個大類,173個小類,每1條新聞屬于5個大類中的某幾個特定的小類。采用one-hot進(jìn)行編碼,類別對應(yīng)的數(shù)據(jù)標(biāo)簽為1,否則為0。將文本轉(zhuǎn)換成向量后,隨機(jī)選取其中30 000條用作訓(xùn)練集,6 000條驗證集,4 000條測試集,數(shù)據(jù)集樣本見表1。
表1 通信行業(yè)5個類別數(shù)據(jù)樣例
新聞分類模型的訓(xùn)練環(huán)境基于Linux Ubuntu 16.04,硬件環(huán)境為Intel(R)Xeon(R)Gold 5118 CPU@2.30 GHz(12-Core),8*NVIDIA Tesla V100(16 GB),64 GB內(nèi)存,利用Pytorch1.7.1進(jìn)行神經(jīng)網(wǎng)絡(luò)的搭建,軟件環(huán)境為Python3.6。預(yù)訓(xùn)練模型采用albert_small_zh_google,textcnn的num_filters設(shè)置為128,卷積核token數(shù)設(shè)置為2、3、4、5、6、7,embedding_size為384,最大句子長度為512,訓(xùn)練過程中的學(xué)習(xí)率是5×10-5,批次大小為64,模型訓(xùn)練到50輪時效果最好,結(jié)果見表2。
表2 通信行業(yè)新聞5個類別f1值
公司和政策環(huán)境類別結(jié)果較好,f1值達(dá)到90%多,分析是因為文本當(dāng)中有明顯的類似“公司名”等關(guān)鍵詞特征,而且數(shù)據(jù)量較多,所以分類準(zhǔn)確率較高。垂直行業(yè)和技術(shù)應(yīng)用的特征和數(shù)量少一些,效果稍差。數(shù)字化運(yùn)營個別類只有幾條數(shù)據(jù),特征不明顯,所以準(zhǔn)確率不高,后期可以進(jìn)行不均衡數(shù)據(jù)集處理,或采用數(shù)據(jù)增強(qiáng)的方式等來提高分類準(zhǔn)確率。
業(yè)務(wù)方收集的新聞,一方面利用多分類模型為其打標(biāo),另一方面經(jīng)過摘要模型生成摘要,方便分析師預(yù)覽新聞內(nèi)容。因新聞文章較長,seq2seq對長本文編碼能力有限,所以采用抽取式的方式構(gòu)建摘要模型,判斷文章中哪些句子可以作為關(guān)鍵句,形成摘要。
先通過規(guī)則將原始的生成式語料轉(zhuǎn)化為序列標(biāo)注式語料,即在新聞原文中找到若干條子句,使得其鏈接起來與摘要盡可能相似,屬于摘要的句子打標(biāo)為1,否則為0。句子使用“BERT+平均池化”來生成句向量,并固定不變,標(biāo)注模型主體方面則用DGCNN模型構(gòu)建,最后經(jīng)過dense層進(jìn)行分類判斷是否為摘要關(guān)鍵句,整體框架如圖3所示。
圖3 新聞?wù)P蛨D
實驗?zāi)P驮趖ensorflow1.15、python3.6環(huán)境下進(jìn)行訓(xùn)練,采用BERT模型默認(rèn)參數(shù),詞嵌入維度為128,隱藏單元為256,batch_size大小為64,采用Adam優(yōu)化器優(yōu)化模型,在訓(xùn)練抽取模型的時候,為了盡量做到“抽全”來構(gòu)建摘要模型,以0.2為閾值做EarlyStop,使用交叉驗證,以詞為單位的加權(quán)Rouge作為評價指標(biāo)。
采集百度新聞的快照和原文作為監(jiān)督式自動摘要模型任務(wù)的基礎(chǔ)訓(xùn)練數(shù)據(jù),一共有18 468條數(shù)據(jù),以“摘要|||原文”的數(shù)據(jù)對出現(xiàn),關(guān)于訓(xùn)練數(shù)據(jù)摘要和原文的一些統(tǒng)計信息見表3。
表3 新聞?wù)獢?shù)據(jù)統(tǒng)計
對以上數(shù)據(jù)進(jìn)行模型訓(xùn)練,rouge值為12.86,新聞抽取的結(jié)果大部分集中在第1段,平均摘要句子長度為128個字左右,分析是因為訓(xùn)練數(shù)據(jù)的摘要基本就在原文正文的第1段,所以模型學(xué)到了位置信息及句長信息。因為數(shù)據(jù)量比較少,所以采取了回譯的數(shù)據(jù)增強(qiáng)操作,將數(shù)據(jù)擴(kuò)充了1倍,效果有些許提升,作為初代版本,基本可以滿足需求,減輕運(yùn)營工作人員的工作量,隨著后續(xù)平臺的使用和數(shù)據(jù)量的積累,再對模型做進(jìn)一步的精細(xì)優(yōu)化,提升摘要效果。
本文主要介紹了面向智慧咨詢項目的自然語言處理技術(shù)在新聞萃取項目中的實踐及應(yīng)用,通過研究新聞去重、新聞去噪、新聞分類和新聞?wù)傻燃夹g(shù),實現(xiàn)了自動篩選信息、提取關(guān)鍵內(nèi)容的生產(chǎn)技術(shù),加快了信息處理的效率,替代了純?nèi)斯さ牟僮鞣绞?,為分析師洞察前沿技術(shù)提供了智能化決策支持,打造了面向外部客戶和內(nèi)部技術(shù)人員、運(yùn)營人員的AI業(yè)務(wù)變革應(yīng)用案例,賦能各項智能化服務(wù)。
不過當(dāng)前模型也存在不少問題,一是數(shù)量規(guī)模較小,樣本量不足,覆蓋范圍不夠,影響了模型的泛化能力,二是標(biāo)注的樣本質(zhì)量不高,影響模型精度的進(jìn)一步提升。但是隨著運(yùn)營人員的持續(xù)使用,有標(biāo)注的數(shù)據(jù)會越來越多,有利于后續(xù)做有監(jiān)督的模型訓(xùn)練,通過mlflow框架不斷進(jìn)行小批量模型迭代更新,提高準(zhǔn)確率,提升運(yùn)營人員的使用體驗。