直播彈幕審核系統和文本分析技術 | 架構師實踐日

分類:技術 時間:2016-09-24

編者按: 作為深受二次元人士歡迎的互動方式,彈幕已經從原來的動漫網站 Acfun和 bilibili 向各類視頻和直播網站蔓延,但是彈幕存在大量低俗、色情、垃圾廣告、謾罵的內容,數量極為龐大,變形變換極為復雜,通過計算機算法來自動進行識別和過濾有非常重要的意義。 8 月 14 日,在七牛云主辦的架構師實踐日上,達觀數據 CEO陳運文博士帶來了他的視角。以下是對他演講內容的整理。

陳運文

達觀數據 CEO

復旦大學計算機博士,曾擔任盛大文學首席數據官,騰訊文學高級總監、數據中心負責人,百度核心技術研發工程師等職務;QCon 大數據分論壇主席和最佳技術講師。在數據挖掘和計算機信息處理領域擁有 30 項國家發明專利,并成功運用在國內互聯網領域。在國際頂級學術期刊和會議上發表多篇 SCI 論文,多次代表中國參加國際數據挖掘競賽,并獲得 ACM 冠軍榮譽,2012 年在倫敦獲得國際數據挖掘邀請賽冠軍。

自然語言處理是文本挖掘的基礎

自然語言處理簡稱 NLP ,是計算機科學領域與人工智能領域中的一個重要方向,它能實現人與計算機之間用自然語言進行有效通信,能夠利用計算機對人類特有的書面形式和口頭形式的語言進行各種類型處理和加工。

達觀數據在運用自然語言處理技術時,包含的 3 個基礎概念是:

1.信息熵( self-information ):在語言中,無論是漢語、英語還是標點符號都有信息含量,這個信息含量叫做「信息熵」,又稱為自信息,用來描述一個隨機變量的不確定性的數量(圖 1 為信息熵運算公式)。一個隨機變量的熵越大,它的不確定性越大,正確估計其值的可能性越小,越不確定的隨機變量越需要更大的信息量用以確定其值。

圖 1

2.語言模型(language mode):一個語言模型構建字符串的概率分布 P(w) ,假設 P(w) 是字符串作為句子的概率。在基于統計模型的語音識別、機器翻譯、漢語自動分詞和句法分析中有著廣泛的應用。

3.n 元語法模型:根據馬爾科夫假設,n 元語法模型中文本中一個詞和他前面 n-1個詞相關性最高,概率由圖 2 的公式計算:

圖 2

漢語中每句話都由一個個漢字構成,每個漢字之間存在一定的邏輯關系。即每一個字組成一句話,一句話由每一個字與前面所有的字形成的條件概率計算得到。比如:七牛架構師,往往認為牛根據七生成,架根據七牛生成,師根據七牛架生成,整個句子由 n 個字疊加組成。

彈幕中文分詞的主要問題

中文分詞是所有自然語言處理的基礎,但在分詞過程中存在 2 個常見問題:

1.歧義切分:在彈幕中,句子通常都沒有標點,而且用語非常隨意,很容易造成分詞結果脫離原來語句所要表達的意思,尤其在機械切分中比較常見。

2.未登錄詞:彈幕中存在大量不在傳統詞典中的詞匯,例如「抖 S」,「走召弓雖」等,但這些詞匯均有明確含義,需要進行理解和識別。

基于 n 元語法模型的切分分詞方法

原理:本質是字符串匹配的方法,將一串文本中的文字片段和已有的詞典進行匹配,如果能夠匹配,則此文字片段就作為一個分詞結果。

常見方法:機械切分(正向最大匹配方法,逆向最大匹配法,雙向最少切分法);路徑選擇法(n 最短路徑方法,n 元語法模型法)。

  • n 最短路徑方法:將所有的切分結果組成有向無環圖,每個切詞結果作為一個節點,詞之間的邊賦予一個權重,最終找到權重和最小的一條路徑作為分詞結果;
  • n 元語法模型法:根據 n 元語法模型,路徑構成時會考慮詞的上下文關系,根據語料庫的統計結果,找出構成句子最大模型概率。

一般情況下,unigram 和 bigram 的 n 元語法模型運用較多。


圖 3

以圖 3 為例,演示基于 n 元語法模型的分詞方法。比如「結合成分子」這句話,從 S 開始計算,把「結合」和「分子」分別切分成一個詞。

序列標注問題的常見模型 HMM 和 CRF

圖 4

對于一些復雜的句子,需要通過序列標注的方法來區分。以圖 4 為例演示序列標注常見模型 HMM 和 CRF 。

HMM( Hidden Markov Model ) 即隱馬爾科夫模型,基本思想是根據觀測值序列找到真正的隱藏狀態值序列。在中文分詞中,一段文字的每個字符可以看作一個觀測值,而這個字符的詞位置( BEMS )可以看作隱藏的狀態。

  • B——Begin ,表示這是一個詞的首字;
  • M——Middle,表示這是一個詞中間的字;
  • E——End ,表示這是一個詞的尾字;
  • S——Single ,表示這是單字成詞。

分詞的過程是將一段字符輸入模型,然后得到相應的標記序列,再根據標記序列進行分詞。

詞匯級其他相關工作

在完成中文分詞的基礎之上,還需要進行詞性標注和命名實體識別等工作:

  • 詞性標注是指對于句子中的每個詞都指派一個合適的詞性,例如確定句子中哪些是名詞、動詞、形容詞或其他詞性的過程,詞性標注的難點是標注歧義問題,比如「 book 」,有時是名詞有時是動詞。
  • 命名實體識別( Named Entity Recognition,簡稱 NER )又稱作「 專名識別 」,是指識別文本中具有特定意義的實體,主要包括人名、地名、機構名、專有名詞等,通常包括實體邊界識別和確定實體類別,難點在于網絡用語變化很多,例如「Papi醬」是中英文混雜的形式,NER 是人名。

文本審核方法

文本審核是指在預定義的審核體系下,根據文本的特征(內容或屬性),判斷給定文本是否屬于特定的違規類型。不同于簡單的「詞典 規則」的方法,達觀數據是根據機器學習自動分類的技術來完成文本審核的過程。

根據分類知識獲取方法的不同,文本自動分類系統大致可分為基于知識工程和基于機器學習的分類系統,機器學習分類方法一般包括兩個過程,即訓練階段和預測階段。

圖 5

以圖 5 為例,演示異形文本變換。現在,彈幕的形式有無窮多的變化,比如:中英文變化結合、同音變換、形近變換、簡繁轉換、偏旁拆分等等,給文本審核帶來很多困難。在這種復雜情況下,光靠違規辭典無法準確完成文本審核,必須借助機器學習的方法。

圖 6

以圖 6 為例演示自動化生成變形詞詞庫。機器學習的基礎是「特征抽取」,是把所有的種子詞匯都通過各種各樣的變形變化衍生出更多的衍生詞匯,再把所有的衍生詞匯輸送計算機算盤,供計算機學習。

特征抽取

在文本分類問題中,詞語作為主要的特征。但是對于一個分類器來說,并不是特征越多越好。特征越多不僅會導致計算復雜度增加,訓練和預測時間加長,還會代入一些噪音,導致模型效果差。因此,特征選擇是必須也是有效的。文本特征提取有很多方法,常見的有基于文檔頻率(Document Frequency,DF)、信息增益(Information Gain,IG)、卡方統計、互信息等。

特征權重計算方法主要有 3 種:

1.布爾權重:出現為 1 ,否則為 0 ;絕對詞頻,即 TF,特征項在文本中出現的頻度;倒排文檔頻度,即 IDF ,稀有特征項比常用特征項含有更多的信息。

2.TF-IDF :TF*IDF ,特征與在文檔中出現的頻度成正比,與整個語料中出現的該特征項的文檔數成反比;

  • TFC :對文本長度進行歸一化處理后的 TF-IDF ;
  • ITC :在 TFC 基礎上,對 tf 的對數值取代 TF ;
  • 熵權重:建立在信息論基礎上。

3.TF-IWF :在 TF-IDF 基礎上,用特征項頻率倒數的對數值 IWF 代替 IDF ,并用 IWF 的平方平衡權重值對于特征項頻度的倚重。

常用的文本分類模型

圖 7

如圖 7 ,目前一些非常基礎性的網站或者程序員寫出的程序都接近最簡單的決策樹,但是通過 ID3、C4.5、C5.0 和 CART 等方法,構造的決策樹更加具有統計學理論基礎,也比簡單規則的效果更好。樸素貝葉斯也非常簡單,邏輯斯特回歸對處理海量數據有很好的性能表現。如圖 8 右下,紅色菱形代表違規文本,藍色圓形代表正常文本,在低維空間難以形成很好的分類面,但是通過核函數映射到高維空間后,支持向量形成的超平面能很好的完成分類功能。

圖 8

如圖 9 ,一些常見的機器學習分類模型(Classification Model)還包括: SVM 、神經網絡、隨機森林、AdaBoost 、遺傳算法等。這些方法在實際運用中,單獨處理文本,其準確率和召回率都各有千秋,因此在進行文本審核時,我們通常組合運用幾種算法來獲得更優的效果。

圖 9

深度學習對 NLP 領域的影響

深度學習是時下一個熱點,達觀數據在這個方面做了許多嘗試,將一個候選詞匯通過 Word2Vec 映射為向量,方便找到和當前詞匯語義相關聯的詞匯集合,擴展詞匯特征,對分析彈幕或評論有很大幫助。這是因為彈幕通常是短文本,攜帶的信息量低,通過 Word2Vec 進行語義擴展后,能增加語義識別和過濾的效果。

圖 10

以圖 10 為例演示 RNN 神經網絡。在深度學習模型中,我們認為處理文本類數據,使用 RNN 網絡(循環神經網絡)效果較好。在隱藏層內部的節點計算時,增加網絡前一時刻的輸出對當前輸出的影響,讓神經網絡有「記憶」效應,計算結果的精度有明顯提升。

圖 11

如圖 11 所示,LSTM(長短時記憶)是我們在 RNN 基礎上進一步改進深度神經網絡的結構,把上下文依賴關系,增加到網絡連接中,因為語義關聯會明顯受上下文影響,能夠存儲較遠距離上下文對當前時間節點的影響。

調用達觀 API 和過濾效果統計分析

圖 12

如圖 12,達觀數據提供使用非常便捷的文本審核接口(API),客戶網站使用時,只需要將待審核的文本和相關的信息(比如發彈幕人的昵稱、 IP 、UID 、IMEI 等信息)作為 POST 內容,進行 HTTP 調用后,達觀的系統可以在幾十毫秒內能夠準確識別文本是否包含違規內容、違規類型(垃圾廣告、色情、粗口等),通知使用方是否需要予以攔截。

圖 13

如圖 13 ,達觀后臺系統還會提供完善的數據統計系統,讓使用方了解系統運轉的情況,了解識別的總次數和成功攔截的次數。除了文本審核,達觀的語義分析系統還有一些有意思的功能,例如自動判斷文本的情感是正面(好評)或負面(差評),幫助運營方更好的了解語義含義。

中文自然語言處理是個非常有意義的研究領域,讓計算機自動來理解我們的每一句話背后所想表達的意思,不僅對于視頻媒體和直播網站,也對全社會有廣闊的應用空間,希望和朋友們一起努力。

「七牛架構師實踐日」——這里只談架構

七牛架構師實踐日是由七牛云發起的線下技術沙龍活動,聯合業內資深技術大牛以及各大巨頭公司和創業品牌的優秀架構師,致力于為業內開發者、架構師和決策者提供最前沿、最有深度的技術交流平臺,幫助大家知悉技術動態,學習經驗成果。

七牛架構師實踐日第十三期 【直播系統構建與性能優化】 將于 9 月 25 日 與大家在 廣州 見面,目前活動正在火熱報名中,點擊 「閱讀原文」 了解更多信息,期待你的參與。


Tags: 數據挖掘

文章來源:http://blog.qiniu.com/archives/6889


ads
ads

相關文章
ads

相關文章

ad