盤點:文本內容安全領域 深度學習的六個主流應用方法

2021-02-21 網易易盾

本文來自:易盾實驗室

在深度學習技術興起之前相當長的一段時間內,基於機器學習技術的文本分類方法佔據著文本分類領域的統治地位。如下圖所示,特徵工程+機器學習分類器一直是解決文本分類問題的標準範式。針對不同的業務場景,算法工程師需要精心設計相應的特徵工程,以取得最佳的分類效果。

到2010年,深度學習技術逐漸興起,文本分類領域的技術格局也相應的發生了變化。基於深度學習的文本分類方法打破了上述技術範式,對文本進行簡單預處理後,直接餵給深度學習模型,進行端到端的訓練和推斷。一般性的,用於文本分類的深度學習模型最後一層為softmax層(多標籤問題則為sigmoid),這相當於機器學習分類器中的LR模型。由此可見,模型的其餘部分本質上就是在自動學習文本的特徵表示,因此算法工程師再也不用操心特徵工程的事情了。不過先別高興得太早,文本特徵學得好不好,取決於具體的深度學習模型結構設計和超參數設置,工程師們還是得把省下來的時間花在模型結構和超參數的調整上面。本文根據易盾文本算法團隊在內容安全領域的實踐經驗,介紹在項目中用過的一些深度學習模型以及對部分技術細節進行討論。深度學習是近幾年來的熱門方向,學術界和工業界的研究人員提出了很多有價值的方法,本文所分享的方法只是其中少數代表性的工作,僅供讀者參考。使用CNN來做文本分類最早見於2014年Convolutional Neural Networks for Sentence Classification」這篇文章當中。CNN模型現在已經是做文本分類的經典模型,綜合考慮模型效果、計算開銷、計算並行化等因素,CNN模型往往具備不錯的競爭力。有學者表示,CNN模型之所以能夠獲得較好的分類效果,與卷積核的使用有關。不同size的卷積核,對文本在不同位置進行卷積計算,相當於提取不同的n-gram特徵,這有助於模型的最終分類。

上圖是一個典型的單層CNN模型結構。首先將文本轉化成詞向量矩陣,然後分別使用不同size的的卷積核對矩陣進行卷積,每組卷積輸出多個feature map,然後進行max pooling後,把所有feature map拼接在一起,形成單個向量表示,最後加上一層全連接和softmax操作,輸出分類分數。圖中只是一個示例,各類超參數都比較小,在實際使用過程中,詞向量大小50以上,卷積核的size一般取2~7,每個卷積的feature map數量在幾十到幾百。另外max pooling也可以換成其它的pooling方法,比如average pooling,不過總體來說還是max pooling比較適合分類場景。正常情況下,通過超參數的調優,單層CNN模型已經能夠適用大多數文本分類場景。但也有人使用多層CNN模型的,我們的經驗是參數數量差不多的前提下,多層CNN未發現有明顯的效果提升。

RNN模型主要用於處理序列數據,而文本天然的就是表示成若干詞的序列,因此使用RNN模型來對文本進行建模是十分自然的事情。與全連接或卷積網絡不同,RNN內部不同詞對應的隱藏層相互之間是有聯繫的:當前詞的隱藏層的輸入除了輸入層的輸出,還包括前一個詞的隱藏層的輸出。

當序列長度較長時,基礎的RNN模型存在梯度爆炸和梯度消失問題。LSTM和GRU是RNN的兩種改良版本,它們通過門的機制對RNN中信息的傳播進行控制,緩解了RNN的梯度消失問題(RNN梯度爆炸問題可以通過gradient clipping技術進行解決)。從圖中可以看出,GRU與LSTM結構比較相似,主要不同之處在於GRU使用更新門來對LSTM的輸入門和遺忘門進行簡化。由於RNN最後一個詞的輸出已經融合了前面詞的信息,RNN用於文本分類時一般取最後一個詞的輸出作為整個文本的特徵表示,即用最後的輸出加上全連接和softmax計算分類分數。當然,一般我們會使用多層RNN的結構,用最後一個詞的末層RNN的輸出計算分類分數。RNN的數據流動是單向的,只能從前往後或從後往前。Bi-RNN對此進行了改進,具體做法是使用前向RNN和後向RNN,把文本中最後一個詞的前向RNN輸出和第一個詞的後向RNN輸出拼接在一起,作為文本的特徵表示。從我們的實踐經驗上看,Bi-RNN的這種改進效果提升很明顯,我們知道attention對模型有較大的提升作用,但在某些業務場景裡面attention對Bi-LSTM的提升比較有限,這說明Bi-LSTM自身的效果已經比較接近問題本身的理論上限。

RCNN也是早期深度學習技術應用於文本分類上面經常用到的模型之一。RCNN為每個詞定義了left context和right context兩個變量,具體計算方式如下:


最終每個詞由自身的詞向量和兩個context拼接共同表示,然後先接一層全連接層,再作max pooling形成單個的向量。這個模型為什麼叫RCNN(Recurrent Convolutional Neural Networks)呢?首先,從left context和right context的定義可以看出這部分其實就是一個雙向的RNN,只不過最後還拼接上原始的詞向量。另外,這裡並沒有隻取最後一個詞的輸出計算分類分數,而是對每個詞的輸出進行全連接再作max pooling。其實,這裡的全連接等價於進行size為[1,emb_size]和strip為1的二維卷積操作,後面再跟著max pooling,這就是典型的CNN結構。Attention機制被廣泛使用在自然語言處理、圖像識別及語音識別等各種不同類型的深度學習任務中,是深度學習技術中最值得關注與深入了解的核心技術之一。Attention機制可以理解成給定Q,從一系列K-V鍵值對中計算出各個V的權重,然後再對V進行加權平均。具體公式如下:

其中f函數對Q和K進行打分,可以有不同的實現方式,常見的有點積、縮放點積、加性、雙線性等方法,我們也可以自己實現其它的計算方法。我們注意到上述attention的計算涉及到Q、K、V三個輸入,當Q=K時,這樣的attention技術被稱為self-attention。實際上,self-attention是目前用得最多的attention技術,它不需要額外的數據,只根據文本自身的上下文,就能計算文本中各個詞的重要性。可以看出,attention本質上就是算各個詞的權重,然後進行加權平均。而我們知道在word2vec問世以後,在怎麼把多個詞的詞向量變成單個向量來表示句子的問題上,有一種做法就是加權平均,比如根據tf-idf加權平均。那麼attention和這種加權平均的區別是什麼?最本質的不同就是同一個詞,普通的加權平均方法權重是固定不變的(最多乘以詞頻係數),attention方法的權重是根據上下文動態計算的,在不同的文本和不同的位置,它的權重都是不一樣的。這就像人類的視覺注意力,看到不同的圖像時重點關注的區域不一樣,所以我們把這個技術叫做attention。同一個詞在不同的上下文中得到不同的輸出,這種特性使得attention方法天然的般配NLP中的一詞多義問題。具體到文本分類模型,attention的使用比較靈活,既可以單獨使用attention進行分類,也可以和CNN、RNN等模型結合。目前常見的模型有transformer、HAN、RNN+attention、CNN+attention、Bi-RNN+attention等等,這裡不再展開贅述。FastText是Facebook在2016年開源的一個輕量級文本表示和文本分類工具。它的特點是在具有媲美當時複雜深度神經網絡模型文本分類準確率的同時,訓練和預測非常高效,CNN訓練1天的數據,FastText只要幾秒即可。

FastText之所以這麼高效,主要有三個原因。第一,模型結構特別簡單,對文本所有單詞的embedding求平均然後加上softmax分類器。第二,這個softmax分類器是一個層次softmax分類器,這個在分類類別很多的時候比較有用。第三,FastText使用C++實現的,並且作者代碼能力也非常強,因此雖然有很多復現版本,但都沒有原版高效。儘管模型結構簡單,FastText使用了n-gram和subword兩種技術,幫助提升了文本分類效果。n-gram有助於模型捕捉文本局部的單詞順序,而大部分文本分類任務並不需要太長的依賴關係。subword也叫char n-gram,就是把單詞分解更小的子串片段,這能更好的對未登錄詞和稀有詞進行建模,同時學習到相同詞綴單詞語義關係。總的來說,FastText適用於對精確度要求不高同時需要較高實時性的文本分類場景,也可以作為新算法的一個baseline。BERT是谷歌在2018年發布的一個預訓練語言模型,它刷新了11個NLP任務的記錄。BERT的發布使得NLP領域真正進入到了基於通用預訓練模型進行下遊任務的時代,同時也進入了大力出奇蹟的時代——通過更多的數據、更大的模型獲得更高的準確率,從此以後各家科技巨頭推出的模型越來越大,訓練用的數據也越來越多,簡直就是在炫富。其實在BERT之前也有很多預訓練語言模型的研究,像ELMo、GPT都是當時比較突出的成果,它們的很多思路和方法都被BERT借鑑了。相比前輩們,BERT之所以引起這麼大的關注,主要在於它的效果確實很驚豔,同時在多個NLP任務上面刷新記錄,並且提升幅度都還挺大的。更重要的是,BERT用在這些任務上面並不需要精心設計下遊網絡,基本上都是接一個簡單的預測結構,然後簡單地fine-tuning一下就OK了。

BERT模型結構本身並不複雜,主要分為3個部分:最底層是embedding組件,包括詞、位置和token types三種embedding的組合;中間層是由多個Transformer encoder組成的深度網絡(base版本是12層,large版本是24層);上層是與訓練任務相關的組件,主要就是softmax網絡。BERT模型比較重要的創新有兩方面,分別是Masked LM和Next Sentence Prediction(NSP)。Masked LM用[MASK]替換句子中的部分單詞,模型的目標是預測[MASK]位置上的真實單詞。Masked LM技術的引入讓BERT模型變成了自編碼語言模型,它的優化目標不是最大化句子的似然函數,而是最大化mask部分的聯合條件概率,因此BERT模型可以使用雙向Transformer,使用前後上下文信息對當前詞進行預測。在BERT之前的語言模型都是沒法做到真正雙向的,這算是一個比較大的改進。NSP任務的引入讓BERT模型能夠更好的學習到句子層面上的整體語義。在NSP任務中,模型的輸入是一個句子對(確切地講是片段對,每個片段可能包含一個以上的句子),目標是預測輸入的句子對是否是原文中連續的兩個句子。訓練數據50%來自語料中抽取的真實連續句子對,另外50%就是從語料中隨機組合的。訓練的時候模型的優化目標是最小化Masked LM和NSP的組合損失函數。BERT模型用在文本分類過程也比較簡單,模型輸入就是單個文本,這裡不需要對單詞進行mask,也不用組成句子對,輸出使用第一個詞的輸出作為文本的向量表示,然後接softmax網絡。我們的實驗結果表明BERT模型是本文介紹的所有方法中表現最好的,目前已經應用在線上部分複雜的業務場景中。

本文只是介紹了易盾文本內容安全業務中用到的幾種深度學習方法,實際上,網易易盾的內容安全服務包括文本檢測、圖片檢測、視頻檢測、音頻檢測、人工審核和智能審核系統等產品,以及廣告合規、網站內容檢測、文檔內容檢測、歷史數據清洗、音視頻、社交娛樂、政企、媒體等解決方案。目前對外提供的內容安全服務已經升級為第三代人工智慧技術,提供涉黃、涉政、暴恐、廣告等十幾大類上千小類的有害內容智能識別過濾服務,識別精準率超過99.8%。

上述所總結的,是目前業界解決文本分類問題的主流方法。如果使用固定的benchmark語料集進行評測,這些模型在準確率指標上面確實表現出一定的差異和優劣。但具體到文本內容安全的業務場景,我們很難得出哪個模型表現最好這樣的結論。

在實際使用中,需要根據不同場景的文本特點,同時考慮樣本規模、詞彙量大小、處理時間、模型參數規模等各種因素,選擇適當的模型。實際上,模型的作用是次要的,決定最終效果的關鍵因素是語料庫的構建,有了規模足夠大的高質量語料庫,哪怕模型簡陋一點,效果也是要好於複雜模型的。而語料庫的構建是一項長期的工作,需要明確各種違規類別的標準並進行細分,清晰具體的標準是標註高質量語料庫的前提。同時還要不斷投入人力,收集和標註樣本,讓語料庫的樣本儘量覆蓋到不同類型的數據。此外,真實的文本內容安全系統也不是幾個模型就能搞定的,它是一套成熟的解決方案,使用豐富的檢測手段分別覆蓋不同的場景,保證較高的檢測率。

https://www.aclweb.org/anthology/D14-1181

http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/

https://medium.com/@saurabh.rathor092/simple-rnn-vs-gru-vs-lstm-difference-lies-in-more-flexible-control-5f33e07b1e57

https://www.aaai.org/ocs/index.php/AAAI/AAAI15/paper/download/9745/9552

https://arxiv.org/pdf/1706.03762.pdf

https://arxiv.org/pdf/1810.04805.pdf

點擊閱讀原文」,免費體驗網易易盾文本檢測解決方案。

相關焦點

  • 盤點:文本內容安全領域 深度學習的六個主流應用方法
    ,基於機器學習技術的文本分類方法佔據著文本分類領域的統治地位。到2010年,深度學習技術逐漸興起,文本分類領域的技術格局也相應的發生了變化。基於深度學習的文本分類方法打破了上述技術範式,對文本進行簡單預處理後,直接餵給深度學習模型,進行端到端的訓練和推斷。
  • 文本分類在內容安全應用中的數據不平衡問題
    經過幾十年的發展,文本分類在學術界已經是一個比較成熟的技術,目前自然語言處理(NLP)的研究熱點已經不在文本分類上面。然而,作為內容安全檢測的一個重要技術手段,文本分類在實際業務中還是有不少的挑戰。首先,內容安全場景對分類的準確度要求極高,不但要求較低的誤判率,任何一個漏判都有可能給產品方帶來嚴重的後果。
  • 基於文本挖掘的學習分析應用研究
    並且新媒體聯盟地平線報告(2014高等教育版)中[16]預測學習分析將在1年內成為主流。(二)面向學習者行為的文本挖掘  文本挖掘作為輔助學習分析的核心技術之一,可以幫助辨識和解釋學習者的心理及行為過程。文本挖掘作為一種主流的方法論,在許多領域都有廣泛的應用。
  • 自然語言處理深度學習的7個應用
    自然語言處理領域正在從統計方法轉變為神經網絡方法。自然語言中仍有許多具有挑戰性的問題需要解決。然而,深度學習方法在一些特定的語言問題上取得了最新的成果。這不僅僅是深度學習模型在基準問題上的表現,基準問題也是最有趣的;事實上,一個單一的模型可以學習詞義和執行語言任務,從而消除了對專業手工製作方法渠道的需要。
  • 盤點:8個你可能不知道的深度學習應用案例
    深度學習是人工智慧的一個子集,它使用多層人工神經網絡來執行一系列任務,從計算機視覺到自然語言處理。深度學習與傳統機器學習系統的不同之處在於,它能夠在分析大型數據集時進行自我學習和改進,因此能應用在許多不同的領域。
  • ACS編輯|機器學習和深度學習在化學化工健康與安全領域的應用
    機器學習和深度學習算法可以基於訓練數據構建數學模型以進行預測或決策,從而極大地節省人力,物力和財力,也是目前化學化工健康與安全領域的研究熱點。機器學習和深度學習在化學化工健康與安全研究中的應用可以追溯到上世紀九十年代中期,一些研究在毒性預測研究中應用了機器學習算法。儘管化學化工健康與安全是一個重要的研究領域,但機器學習和深度學習在這一領域中的應用卻始終處於落後狀態。
  • 深度學習在推薦領域的應用:Lookalike 算法
    這裡也包括騰訊在微信端的廣告推薦上的應用、Google 在YouTube上推薦感興趣視頻等。下面讓我們與英特一起結合前人的工作,實現自己的Lookalike算法,並嘗試著在新浪微博上應用這一算法。首先要確定微博領域的數據,關於微博的數據可以採用下面這幾個分類維度。有了這些數據後,怎麼做數據的整合分析?來看看現在應用最廣的方式——協同過濾、或者叫關聯推薦。
  • 乾貨| 深度學習在文本分類中的應用
    文本分類的應用非常廣泛。因此,往往需要採取一些策略進行降維:人工降維:停用詞過濾,低頻n-gram過濾等自動降維:LDA等值得指出的是,將深度學習中的word2vec,doc2vec作為文本特徵與上文提取的特徵進行融合,常常可以提高模型精度。
  • 深度學習建模方法,首先需要了解建模的思路
    人工智慧領域發展到現在,已經不像人們認為的那樣遙不可及,只要編程熟練,即使是半路出家的人,也可以很快學會編程並使用深度學習進行建模。在當前人工智慧人才缺口大的前提下,編程課成為很多學校選擇重點投入的科目,但是有些學校的老師在校內教學方法上存在一些問題,授課講解的不夠系統,無法進行深度學習建模操作。
  • 深度學習應用大盤點
    第一種理解大大低估了深度學習構建應用的種類,而後者又高估了它的能力,因而忽略了那些不是一般人工智慧應用的更現實和務實的應用。最好最自然的理解應該是從人機互動角度來看待深度學習應用。深度學習系統似乎具備近似於生物大腦的能力,因此,它們可以非常高效地應用於增強人類或者動物已經可以執行的任務上。
  • 深度 給默片配音、自動生成手寫體,盤點8個最具啟發意義的深度學習應用(附論文)
    但是在人工智慧、機器學習和深度學習方面,有很多事情還是非常令人激動的。在這篇文章裡你將看到那些在深度學習領域最具有啟發意義的應用。 開始學習深度學習並不意味著花 2-3 年的時間研究方程,而是先讓你的程序運行個 5 分鐘——應用深度學習、構建程序,然後很興奮地去研究代碼和系統。
  • 一文讀懂深度學習文本分類方法
    最近有很多小夥伴想了解深度學習在文本分類的發展,因此,筆者整理最近幾年比較經典的深度文本分類方法,希望幫助小夥伴們了解深度學習在文本分類中的應用。筆者整理了近些年的相關深度文本分類論文,關注「AI算法之心」,後臺回復「文本分類論文」即可下載。
  • 搜狐黨磊:深度學習在短文本分類中的應用
    【IT168 評論】本文根據【創客168】第12期現場演講嘉賓黨磊老師分享內容整理而成。錄音整理及文字編輯@IT168許真真。講師介紹黨磊,搜狐視頻高級工程師。2015年研究生畢業後加入搜狐視頻,曾負責短視頻推薦的召回模型、排序模型、短視頻播放質量評價體系、短視頻分類等項目,目前主要研究方向為將深度學習算法應用到視頻推薦系統中。
  • 深度學習在文本簡化方面有什麼最新應用進展?
    語句簡化任務要求神經網絡結構能夠編碼輸入句中的核心語義信息,才能夠提煉出不改變原句主要意義的更簡潔表達。深度學習技術在語句簡化上的一個典型應用是新聞標題生成(headline generation)。新聞文章通常具有較為規範的寫作形式:文章首句或者首段對新聞內容進行概括介紹,新聞標題則進一步精煉概括出新聞核心事件。
  • 貝葉斯方法與深度學習的結合及應用(2)
    摘要貝葉斯方法是解決數據稀疏、數據樣本帶有噪音等問題的有效方法,與圖論的結合又衍生出具有可解釋性的貝葉斯網絡,在醫療、生物、系統可靠性和金融等領域都有著廣泛的應用。近年來,也有越來越多的研究開始將貝葉斯方法應用到深度學習中,如文獻[1]提出了用以貝葉斯方法為基礎的概率圖與深度神經網絡構建具有視覺和任務兩個功能模塊的系統。有關這方面的更多信息可以參考往期文章概率圖模型在深度學習的應用。
  • 深度學習在自然語言處理上的七大應用
    然而,深度學習方法在某些特定的語言問題上可以獲得最先進的結果。 最有趣的不僅僅是深度學習模型在基準問題上的性能;事實上,一個單一的模型可以學習單詞的意思和執行語言任務,從而避免需要一套專門的和手工的方法。 在這篇文章中,你將發現 7 種有趣的自然語言處理任務,其中深度學習方法正在取得一些進展。 在此文中,我們將看看下面的 7 種自然語言處理問題。
  • 深度學習領域的數據增強
    它是克服訓練數據不足的有效手段,目前在深度學習的各個領域中應用廣泛。但是由於生成的數據與真實數據之間的差異,也不可避免地帶來了噪聲問題。為什麼需要數據增強深度神經網絡在許多任務中表現良好,但這些網絡通常需要大量數據才能避免過度擬合。遺憾的是,許多場景無法獲得大量數據,例如醫學圖像分析。數據增強技術的存在是為了解決這個問題,這是針對有限數據問題的解決方案。
  • 最全: 深度學習在經濟金融管理領域的應用現狀匯總與前沿瞻望, 中青年學者不能不關注!
    機器學習方法逐漸在經濟管理等社科類頂刊,如AER,JPE,QJE,JOF等期刊上出現了。為了進一步了解機器學習在國外最新應用動向,我們為各位學者奉上「深度學習在金融領域的現狀匯總與前沿瞻望」。對機器學習方法感興趣的學者,建議認真研讀這篇非常重要、全面的文章。
  • 入門 | 簡述遷移學習在深度學習中的應用
    ,以及該方法在深度學習中的應用,引導構建預測模型的時候使用遷移學習的基本策略。讀完本文,你將學會如何使用遷移學習來加速訓練過程,提升深度模型的性能。讀完本文之後,你會了解以下內容:什麼是遷移學習?遷移學習是一種機器學習的方法,指的是一個預訓練的模型被重新用在另一個任務中。遷移學習和域適應指的是在一種環境中學到的知識被用在另一個領域中來提高它的泛化性能。
  • 深度學習在推薦系統上的應用
    為什麼我們會想到使用深度學習去處理推薦系統裡面的事情呢,推薦系統從基於內容的推薦,到協同過濾的推薦,協同過濾的推薦在整個推薦算法領域裡獨領風燒了多年,從基本的基於用戶的協同過濾,基於item的協同過濾,到基於model的協同過濾等眾多算法的延伸。或許深度學習在推薦系統裡面沒有像圖像處理算法那樣一枝獨秀,但是深度學習對於推薦系統的幫助確實起到了,推波助瀾的功效。