百分點認知智慧實驗室出品:情感分析在輿情中的研發實踐(上)
編者按
文字情感分析是對帶有主觀感情的色彩的文字進行分析、處理、歸納和推理的過程。網際網路上每時每刻都會產生大量文字,這其中也包含大量的使用者直接參與的、對人、事、物的主觀評價資訊,比如微博、論壇、汽車、購物評論等,這些評論資訊往往表達了人們的各種主觀情緒,如喜、怒、哀、樂,以及情感傾向性,如褒義、貶義等。基於此,潛在的使用者就可以透過瀏覽和分析這些主觀色彩的評論來了解大眾輿論對於某一事件或產品的看法。
百分點認知智慧實驗室基於前沿的自然語言處理技術和實際的演算法落地實踐,真正實現了整體精度高、定製能力強的企業級情感分析架構。從單一模型到定製化模型演變、文字作用域最佳化、多模型(相關度)融合、靈活規則引擎、以及基於實體的情感傾向性判定,探索出了一套高精準、可定製、可干預的智慧分析框架,為輿情客戶提供了高效的預警研判服務。
一、 情感分析概述
在文字分析的基礎上,也衍生出了一系列細粒度的情感分析任務,如:
-
基於方面的情感分析(ABSA):一般稱作 Aspect Based Sentiment Analysis。旨在識別一條句子中一個指定方面(Aspect)的情感極性。常見於電商評論上,一條評論中涉及到關於價格、服務、售後等方面的評價,需要區分各自的情感傾向。
-
基於實體的情感傾向性判定(ATSA): 一般稱作 Aspect-Term Sentiment Analysis。對於給定的情感實體,進行情感傾向性判定。在一句話中不同實體的情感傾向性也是不同的,需要區別對待。
輿情資料透過底層的大資料採集系統,流入中間層的 ETL 資料處理平臺,經過初級的資料處理轉化之後,向上進入資料探勘核心處理環節;此階段進行資料標準化、文字深度分析,如地域識別、智慧分詞、情感判定、垃圾過濾等,經過文字處理的結果,即脫離了原始資料的狀態,具備了客戶屬性,基於客戶定製的監測和預警規則,資訊將在下一階段實時的推送給終端客戶,負面判定的準確度、召回率,直接影響客戶的服務體驗和服務認可度。
2. 輿情監測的資料型別繁多, 既有常規的新聞、微信公眾號等媒體文章資料,又有偏口語化的微博、貼吧、問答資料,情感模型往往需要針對不同渠道型別單獨訓練最佳化,而渠道粒度的模型在不同客戶上效果表現也差別巨大;
二、 情感分析在百分點輿情的發展歷程
從2015年開始,百分點輿情便開始將機器學習模型應用在早期的負面判定中;到2020年,我們已經將深度遷移學習場景化和規模化,也取得了不錯的成果;
2015年: 抓取百萬級別的口碑電商評論資料,使用邏輯迴歸進行建模,做為情感分析的BaseLine;
2016年: 主要側重於技術上的遞進,進入深度學習領域。引入word2vec在大規模語料集上進行訓練,獲得具有更好語義資訊的詞向量表示,替代基於Tfidf等傳統的統計特徵。隨後在TextCnn、TextRnn等深度學習演算法進行更新迭代,儘管得到數字指標的提高,但是對於實際業務的幫助還是不足。
2017年: 結合輿情全業務特點,需要能做到針對品牌、主體的情感監測。提出 Syntax and Ruler-based Doc sentiment analysis的方式,依據可擴充的句法規則以及敏感詞庫進行特定的分析。該方式在敏感精準度指標上是有提升的,但是卻有較低的召回。同時在進行規則擴充時,也比較繁瑣。
2019年上半年: 以Bert為代表的遷移學習誕生,並且可以在下游進行fine-tune,使用較小的訓練資料集,便能取得不錯的成績。進行以輿情業務資料為基礎,構建一個簡易的文字平臺標註平臺,在其上進行訓練資料的標註,構建了一個通用的情感模型分類器。評測指標 F1值為 0.87,後續對 ERNIE1.0 進行嘗試,有兩個百分點的提升。
2019年下半年:主要從輿情的業務問題入手,透過最佳化提取更加精準、貼近業務的情感摘要作為模型輸入,使用定製化模型以及多模型融合方案,聯合對資料進行情感打標。並提出基於情感實體(主體)的負面資訊監測,下述統稱ATSA(aspect-term sentiment analysis),使用 Bert-Sentence Pair 的訓練方式, 將 摘要文字、實體聯合輸入,進行實體的情感傾向性判定。在定點客戶上取得不錯的成績,最後的F1值能達到 0.95。
三、 預訓練語言模型與技術解析
下圖大致概括了語言模型的發展狀況(未完全統計):
在2019年度情感分析實踐中,率先使用預訓練語言模型 Bert,提高了情感分析的準確率。
後來具有更小引數量的ALBERT的提出,使生產環境定製化情感模型成為可能。
這裡就主要介紹BERT以及ALBERT。
1.MLM(Masked LM)
-
80%是採用[mask],my dog is hairy → my dog is [MASK] -
10%是隨機取一個詞來代替mask的詞,my dog is hairy -> my dog is apple -
10%保持不變,my dog is hairy -> my dog is hairy
2.NSP(Next Sentence Prediction)
- Token Embeddings:是詞向量,第一個單詞是CLS標誌,可以用於之後的分類任務。
- Segment Embeddings:用來區別兩種句子,因為預訓練不光做LM還要做以兩個句子為輸入的分類任務。
- Position Embeddings:讓BERT學習到輸入的順序屬性。
ALBERT的全稱是A Lite BERT for Self-supervised Learning of Language Representations(用於語言表徵自監督學習的輕量級BERT),相對於Bert而言,在保證引數量小的情況下,也能保持較高的效能。當然同樣的模型還有 DistilBERT、TinyBERT。
下圖是BERT和ALBERT在訓練速度和效能上的整體比較:
-
ALBERT-xxlarge的表現完全超過BERT-large,同時引數量只有其佔比的70%,但是Bert-large的速度要比ALBERT-xxlarge快了三倍左右。
-
BERT-xlarge的效能相對於Bert-base是低效的,表明大引數模型相對於小引數模型更加難訓練。
在基於預訓練語言模型表徵時,增加模型大小一般可以提升模型在下游任務中的效能。但是透過增加模型大小會帶來以下問題:
-
記憶體問題
-
訓練時間會更長
-
模型退化
在將Bert-large的隱層單元數增加一倍, Bert-xlarge在基準測試上準確率顯著降低。
ALBERT核心目標就
是解決上述問題, 下面就來介紹ALBERT在精簡參上的最佳化。
圖中標明的藍色方框和紅色方框為主要的引數分佈區域:
-
Attention feed-forward block(上圖中藍色實線區域):
-
引數大小: O(12 * L * H * H)
-
L:編碼器層數 eg:12
-
H:隱藏層大小 eg:768
-
引數量佔比:80%
-
最佳化方法:採用引數共享機制
-
Token embedding projection block(上圖中紅色實線區域):
-
引數大小:(V * E)
-
V:詞表大小 eg:30000
-
E:詞嵌入大小 eg:768
-
引數量佔比: 20%
-
最佳化方法:對Embedding進行因式分解
具體引數最佳化如下:
Factorized embedding parameterization(對Embedding因式分解)
ALBERT認為,token embedding是沒有上下文依賴的表述,而隱藏層的輸出值不僅包括了詞本身的意思還包括一些上下文資訊,因此應該讓H>>E,所以ALBERT的詞向量的維度
是小於en
c
oder輸出值維度的。
在NLP任務中,通常詞典都會很大,embedding matrix的大小是
E×V。
ALBERT採用了一種因式分解(Factorized embedding parameterization)的方法來降低引數量。首先把one-hot向量對映到一個低維度的空間,大小為E,然後再對映到一個高維度的空間,當E<<H時引數量減少的很明顯。如下圖所示:
在後續的實驗環境(所有的最佳化彙總後),對 embedding size 的大小進行評估,得出在 E=128時,效能達到最佳。
Cross-layer parameter sharing(跨層引數共享)
下
圖是對BERT-Base Attention分佈的視覺化。
對於一個隨機選擇的句子,我們視覺化來自不同Layer的Head的Attention分佈
。
可以看到,底層的Attention分佈類似於頂層的Attention分佈。
這一事實表明在某種程度上,它們的功能是相似的。
Transformer中,共享引數有多種方案,只共享feed-forward層,只共享attention層,ALBERT結合了上述兩種方案,feed-forward層與attention層都實現引數共享,也就是說共享encoder內的所有引數。但是需要主要的是,這只是減少了引數量,推理時間並沒有減少。如下圖所示:在採用 all-shared模式下,引數量減少70%,效能下降小於3%。
在經過上述的引數最佳化後,整體引數量有了極大的縮減,訓練速度也極大加快。後續作者又在模型變寬和模型變深上做了幾組實驗。如下:
模型變寬
當我們增加 H 大小時,效能會逐漸提高。在H=6144時,效能明顯下降。如下圖所示:
模型變深
在以ALBERT-large為基礎引數,設定不同的layer大小,發現layer=48的效能要差於layer=24的效能,如下圖所示:
一些實驗表示NSP(BERT-style)非但沒有作用,反而會對模型帶來一些損害。作者接著提出SOP(ALBERT-style)的最佳化模式。具體如下:
Inter-sentence coherence loss(句子連貫性)
在ALBERT中,為了去除主題識別的影響,提出了一個新的任務 sentence-order prediction(SOP),SOP的正樣本和NSP的獲取方式是一樣的,負樣本把正樣本的順序反轉即可。SOP因為是在同一個文件中選的,只關注句子的順序並沒有主題方面的影響。並且SOP能解決NSP的任務,但是NSP並不能解決SOP的任務,該任務的新增給最終的結果提升了一個點。
在後續的實驗中,
ALBERT在訓練了100w步之後,模型依舊沒有過擬合,於是乎作者果斷
移除了dropout,沒想到對下游任務的效果竟然有一定
的提升。
當然作者對於增加訓練資料和訓練時長也做了詳盡的對比和測試,這裡不再進行描述。
在最初的 ALBERT釋出時,是隻有中文的。感謝資料工程師徐亮以及所在的團隊,於 2019 年 10 月,開源了首箇中文預訓練的中文版 ALBERT 模型。
專案地址:
四、 情感分析在輿情的應用實踐
▶ 業務調研
1.客戶情感滿意度調查
2.文字作用域(模型輸入文字選擇)調研
這裡將文字作用域分為以下幾個層次,分佈情況如下圖所示:
-
標題:正常文章的標題
-
全文: 標題和正文的統稱
-
情感摘要:依據客戶的輸入特徵詞,從文章中抽取一段摘要;長度在256字元內。
-
關鍵詞周邊:只關注所配置關鍵詞周邊的文字作用域,一般是一句話。
-
主體(實體)詞周邊:依據客戶所配置的品牌詞、主體詞,選取對應的文字作用域。
3.情感判定因素
這裡對判定因素做以下介紹:
-
自然語義:是指符合人們的情感判定標準,像暴力、違禁、反動等言論都是敏感資訊的範疇。比如:"#28天斷食減肥[超話]#美柚說我還有4天就來姨媽了,所以是快要來姨媽了體重就掉的慢甚至不掉了嗎,心塞。" 屬於敏感。
-
主體(實體)情感: 一般涉及到的是 人名、地名、機構名、團體名、產品名、品牌名、”我“、”作者“等; 如果監測主體為美柚,那麼上述文字的情感傾向性就是非敏感。再舉例如下:”墨跡天氣又忘記簽到了,這個記性越來越差“,墨跡天氣是監測主體,那麼屬於非敏感。
-
業務規則: 是指以一種可表示、可量化、可總結、可表達的形式總結知識和規則,已經不符合自然語義的理解範疇。
-
業務規則&自然語義:客戶的負面資訊判定是結合業務規則,並且是符合自然語義判定標準的。
精簡版本的情感架構概覽如下:
接下來會基於此進行講述,大致分為如下幾個層次:
1.輸入層
這裡主要是獲取相應文字輸入,以及客戶的文字作用域規則和檢索詞、主體詞,供下游的文字作用域生成提供對應的條件。
2.文字作用域
依據文字作用域規則,生成對應的模型輸入,請參照上文對文字作用域的闡述。這裡實驗內容針對的是情感摘要。首先將文字進行分句,然後依據對每一個句子和檢索詞進行匹配,透過BM25計算相關性。這裡限制的文字長度在256內。在文字域最佳化後, 對線上的10家客戶進行對比分析,實驗條件如下:
-
客戶數目:10
-
資料分佈:從輿情繫統中按照自然日,為每個客戶選取100條測試資料
-
對比條件:情感摘要、標題
進行對比分析(客戶名稱已脫敏),每個客戶的情感摘要和文字標題效果依次展示。如下圖所示:
可以發現整體效果是有極大提升的。但是也可以看到部分客戶的敏感精準率是偏低的,這個和客戶的敏感分佈有關,大部分的敏感佔比只有總資料量的 10% ~20%,有些甚至更加低。所以面臨一個新的問題,如何提升非均勻分佈的敏感精準度。這個會在下文進行陳述。
3.情感判定因素
由上文的情感因素分佈得知, 情感物件(實體)的因素佔54%,基於實體的情感傾向性判定(ATSA)是一個普適需求。如果這裡直接使用通用情感分析判定(SA),在輿情的使用場景中會存在高召回,低精準的的情況。接下來會對此進行相關解決方案的的論述。
4.模型層
-
通用情感模型
-
相關度模型
對生產環境的埋點日誌分析,發現客戶存在大量的遮蔽操作。選取近一個月遮蔽最多的10個話題進行分析,如下圖所示:
透過調研和分析發現,這些資料雖然命中關鍵詞,但是資料相關度比較低。在情感判定之前引入相關度判定, 對於非相關的資料,一律判定為非敏感。對於精準資料再次進行情感分析判定,大大提升敏感精準率。在工程上選取ALBERT進行模型訓練可以達到部署多個模型的目的。觀測到,單個模型在推理階段,在Gpu(RTX 2080)上佔用的視訊記憶體大約在600MiB,極大節省資源。
部分客戶相關度模型效果如下:
客戶名稱 |
準確率 |
正樣本數量 |
負樣本數量 |
資料來源 |
C1 |
0.95 |
619 |
1141 |
收藏、遮蔽資料 |
C2 |
0.97 |
5085 |
5244 |
收藏、遮蔽資料 |
C3 |
0.93 |
450 |
450 |
收藏、遮蔽資料 |
C4 |
0.94 |
136 |
487 |
收藏、遮蔽資料 |
5.ATSA-面向情感實體的情感傾向性分析
ATSA(aspect-term sentiment analysis) 要解決就是在特定情感實體下的情感傾向性判定問題。這裡主要借鑑《Utilizing BERT for Aspect-Based Sentiment Analysis via Constructing Auxiliary Sentence》文中的思想。這個工作做得非常聰明,它把本來情感計算的常規的單句分類問題,透過加入輔助句子,改造成了句子對匹配任務。很多實驗證明了:BERT是特別適合做句子對匹配類的工作的,所以這種轉換無疑能更充分地發揮BERT的應用優勢。
A公司和B公司的情感傾向性是非敏感的, 而C公司卻是敏感的。要解決這個問題,要面臨兩個問題:
-
實體識別和資訊抽取問題
-
實體級別的情感傾向性判定
在輿情的業務場景中,可以簡化問題,由於情感實體是提前給定的, 所以不需要做實體識別和資訊抽取, 只需要對特定實體的情感傾向性進行判定。整體流程如下:
主要是利用 Bert Sentence-Pair,文字與實體聯合訓練,得到輸出標籤。目前實驗證明,經過這種問題轉換,在保證召回率提升的情況下,準確率和精準率都得到了提高。選取一個客戶進行對比測試,如下所示:
實驗條件 |
實驗方式 |
準確率 |
精準率 |
召回率 |
F1 |
按照自然日取樣,測試樣本為912條,其中敏感資料108條 |
ATSA |
0.95 |
0.8 |
0.85 |
0.82 |
情感摘要 |
0.84 |
0.4 |
0.7 |
0.51 |
上述是一個正負樣本及其不均勻的情況,增加敏感精準率將提高客戶的滿意度。目前的實現的機制還略顯簡單,未來還將持續投入。
6.情感規則引擎
在部分客戶場景中, 他們的業務規則是明確的或者是可窮舉的。這裡會做一些長尾詞挖掘、情感新詞發現等工作來進行輔助, 同時要支援實時的干預機制,快速響應。比如某些客戶的官方微博經常會發很多微博,他們會要求都判定成非敏感。這裡不再做過多介紹。
五、 長期規劃
▶ AI 訓練平臺的構建
Refer:
-
Chi Sun, Luyao Huang, Xipeng Qiu: Utilizing BERT for Aspect-Based Sentiment Analysis via Constructing Auxiliary Sentence. NAACL-HLT (1) 2019: 380-385
-
Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. NAACL-HLT (1) 2019: 4171-4186
-
Yifan Qiao, Chenyan Xiong, Zheng-Hao Liu, Zhiyuan Liu: Understanding the Behaviors of BERT in Ranking. arXiv preprint arXiv:1904.07531 (2019).
-
Zhenzhong Lan, Mingda Chen, Sebastian Goodman, Kevin Gimpel, Piyush Sharma, Radu Soricut:ALBERT: A Lite BERT for Self-supervised Learning of Language Representations.arXiv:1909.11942 [cs.CL]
-
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin:Attention Is All You Need.arXiv:1706.03762 [cs.CL]
-
Linyuan Gong, Di He, Zhuohan Li, Tao Qin, Liwei Wang, Tieyan Liu ; Proceedings of the 36th International Conference on Machine Learning, PMLR 97:2337-2346, 2019:Efficient Training of BERT by Progressively Stacking
-
-
-
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69965230/viewspace-2684327/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 百分點認知智慧實驗室:NLP模型開發平臺在輿情分析中的設計和實踐(下)模型
- 百分點認知智慧實驗室出品:TPU與BERT的邂逅
- 百分點認知智慧實驗室出品:BERT的正確使用姿勢
- 百分點認知智慧實驗室出品:機器翻譯是如何煉成的(上)
- 百分點認知智慧實驗室出品:深度遷移學習十八問遷移學習
- 百分點認知智慧實驗室:智慧校對的技術原理和實踐
- 百分點認知智慧實驗室出品:智慧問答中的對抗攻擊及防禦策略
- 百分點認知智慧實驗室出品:機器翻譯是如何煉成的(下)
- 百分點認知智慧實驗室出品:基於BERT的問題語義等價新模型模型
- 百分點認知智慧實驗室:基於NL2SQL的問答技術和實踐SQL
- 百分點科技感知智慧實驗室:語義分割在水域監控上的應用研究
- 百分點大資料技術團隊:輿情平臺架構實踐與演進大資料架構
- 百分點感知智慧實驗室:語音識別技術發展階段探究
- 中國首個認知智慧國家重點實驗室設立科大訊飛承建
- 之江實驗室:情感計算白皮書
- 文字輿情挖掘的技術探索和實踐
- 《情感分析、挖掘觀點、情感和情緒》1
- 智慧實驗室-通用認證碼識別(Captchio) 2.0.0.80APT
- 深研人工智慧,這些高校實驗室在招碩士/博士/博士後人工智慧
- Uber成立AI實驗室 為研發出“會飛的汽車”AI
- 校園實驗室智慧管理系統開發
- Go pprof 認知到實踐Go
- 伯克利AI實驗室出品:用GAN實現字型風格遷移AI
- ADO品牌電動出行實驗室通過國際公認機構SGS的"QTL實驗室"認證QT
- 智慧駕駛整車在環實驗室 SYNO 解決方案
- 小米武大共建人工智慧實驗室,先期提供1000萬研發經費人工智慧
- 行業分析| 智慧頭盔在快對講上的應用與實踐行業
- Kerberos 身份驗證在 ChunJun 中的落地實踐ROS
- 凹凸實驗室:支撐數千萬消費者的小程式開發實踐
- 百分點資料科學實驗室:白酒零售行業商品搭售方案資料科學行業
- Java上機實踐四實驗二家中的電視Java
- 淺談研發數字化在汽車之家的落地實踐
- puppeteer在開發過程中的實踐
- 精益生產在上海某實驗室中的應用分析
- 滴滴業務研發的精益實踐
- 用機器學習實現情感分析機器學習
- 微服務效能分析|Pyroscope 在 Rainbond 上的實踐分享微服務ROSAI
- 百分點大資料技術團隊:BI嵌入式分析實踐大資料