©原創作者 | 周鵬
體驗與資源連結:
https://github.com/sherzod-hakimov/HASOC-2021---Hate-Speech-Detection
論文:
Combining Textual Features for the Detection of Hateful and Offensive Language
地址:
https://arxiv.org/abs/2112.04803
摘要
自從網路攻擊成為一種攻擊性行為以來,許多網路使用者在日常社交活動中都會受到攻擊性語言的攻擊。
在這篇文章中,我們分析瞭如何結合不同的文字特徵來檢測Twitter上的仇恨或攻擊性帖子。
我們提供了詳細的實驗評估,以瞭解神經網路架構中每個構建塊的影響。所提出的架構是在English Subtask 1A上進行評估的:從TIB-VA團隊下的HASOC-2021所釋出的資料集中識別仇恨、攻擊性和褻瀆性內容。
我們比較了上下文詞嵌入的不同變體,並結合了字元級嵌入和收集的仇恨詞編碼。
01 簡介
一般來說,仇恨言論被定義為一種基於特定特徵,如宗教、種族、出身、性取向、性別、外表、殘疾或疾病、用於表達對目標群體或個人的仇恨的語言。
在本文中,我們分析了結合多種文字特徵來檢測在推特文字中表達的仇恨性、冒犯性或褻瀆性語言的影響。
我們評估了在英語和印度雅利安語(HASOC)挑戰資料集的仇恨言語和攻擊性內容識別上使用我們的方法(https://hasocfire.github.io)。
我們將解決方案提交到English Subtask 1A上:從HASOC- 2021挑戰系列的帖子中識別仇恨、冒犯和褻瀆內容。這項任務包括對一條給定的推文文字進行分類,無論其內容是否是可恨的、冒犯性的還是褻瀆性的語言。
我們提出了一種基於神經網路體系結構的多種文字特徵的組合,並評估了不同的配置。我們的實驗評估是對所有三個資料集進行的:HASOC-2019,HASOC-2020,HASOC-2021。
02 模型體系結構
模型架構是建立在三個文字特性之上的,這些特性結合在一起來預測一個給定的文字是否包含仇恨的、冒犯性的或褻瀆的語言。
神經網路架構如圖1所示。輸入標記被輸入到 BERT、字元和仇恨詞編碼器中,以提取與特徵相關的向量表示。
一旦每個特徵表示被提取出來,輸出就被輸入到單獨的元件中,以獲得一維向量表示。這些向量被連線並輸入到三個不同的塊中,以獲得二進位制類的概率。每個塊由一個線性層、批標準化和一個ReLU啟用函式組成。
下面描述的原始碼和資源將與社群公開共享(
https//github.com/sherzod-hakimov/HASOC-2021---Hate-Speech-Detection)。
接下來,我們將詳細描述文字編碼器。
BERT編碼器:我們使用一個預先訓練過的BERT模型來獲得每個輸入標記的上下文768維單詞向量。
字元編碼器:每個輸入標記都根據英語字元的單熱編碼轉換為向量表示。我們只使用字母(a-z)來獲得一個字元級別的向量序列。
仇恨詞彙編碼器:我們通過結合Gomez等人提供的字典收集了一個仇恨詞彙列表。與額外的線上詞典(https:
//www.noswearing.com/dictionary&https://hatebase.org/)。
我們手動過濾掉了不表達仇恨概念的術語,並獲得了1493個仇恨術語的列表。該列表包含了各種具有不同詞彙變化的術語,以增加在推文中檢測這些術語的覆蓋率 ,例如,bitc*、border jumper、nig**或chin*。該編碼器輸出一個1493維向量,這是一個輸入中的仇恨術語的多熱編碼。
03 實驗設定、挑戰資料集以及模型架構的評估
3.1資料集
我們的模型架構是為HASOC-2021 English Subtask 1A構建的:從中識別仇恨、冒犯性和褻瀆性的內容。
在表1中,我們提供了HASOC-2019、HASOC-2020和HASOC-2021版本的資料點數。這個資料集包括tweet文字作為輸入資料和兩個目標標籤:仇恨和攻擊性(HOF)和不仇恨和不攻擊性(NOT)。2019年和2021年版本的訓練樣本數量在這兩個型別中的分佈並不相同。
為了克服類不平衡的問題,我們將過取樣的方法應用於訓練分割。我們隨機為少數類選擇了一定數量的資料點(HOF for 2019, NOT for 2021),並複製它們以與大多數類的資料點數量相等。
HOF: Hate and Offensive(仇恨和攻擊性), NOT: Not Hate or Offensive(非仇恨和攻擊性)
3.2 資料預處理
來自推特上的工作文字有幾個挑戰。在許多情況下,標記以各種不同的形式來錄入,以節省空間 ,大寫,與數字混合等。
我們應用以下文字預處理步驟來規範化tweet文字:1)刪除話題標 籤、url、使用者標籤,轉發標籤使用Ekphrasis,2)刪除標點,3)將標記轉換為小寫。
3.3 模型引數
我們將提供關於圖1所示的模型體系結構中構建塊的所有引數的詳細資訊。
BERT編碼器:我們實驗了兩種不同版本的BERT模型。第一個變體是bert-base,這是Devlin等人提供的預設模型。第二種變體是由Caselli等人提供的HateBERT。是一個bert基礎模型,對從Reddit中提取的仇恨評論語料庫進行了預訓練。這兩個變數為給定的輸入標記輸出768維向量序列。
遞迴神經網路(RNN)層:我們對不同型別的RNN層進行了實驗:長短期記憶(LSTM)、門控遞迴單元(GRU)和雙向門控遞迴單元(Bi-GRU)。我們還實驗了不同的層尺寸,即 100、200、300。
線性層:模型架構包括四個塊,它們由三個連續的層組成:線性層、批處理規範化和啟用函式(ReLU)。1、2、3、4塊的線性層尺寸分別為512、512、256、128。訓練過程:模型架構的每個配置都使用Adam優化器進行訓練,學習率為0.001,批處理大小為64,最多可進行20次迭代。我們使用90:10的訓練和驗證分割來找到最優的超引數。
實現:模型架構是用Python使用Tensorflow Keras library實現的。原始碼公開享(
https://github.com/sherzod-hakimov/HASOC-2021---Hate-Speech-Detection)。
3.4 結果
我們測試了上述的對所有三個資料集的不同模型配置。結果見表2。資料集English Subtask 1A的官方評價指標是巨集f1分數( Macro F1-score)。
此外,我們還包括了準確性和加權f1分數,因為在資料集的測試分割中,每個類的資料點的數量不平衡的(見表1)。我們包含了具有相應特性的效能最好的模型。
基於初始實驗,與其他模型配置相比,選擇層大小為100的門控迴圈單元(GRU)在個資料集上產生了最高的效能。因此,下表中列出的所有模型配置都使用大小為100的GRU 層。
結果表明,bert基嵌入比HateBERT嵌入具有更大的影響。
另一個重要的觀察結果是,基於仇恨術語(HW)的多熱編碼的特徵對所有資料集都獲得了較高的準確性和加權f1分數。具體來說,包含該特性的每個模型配置都會在HASOC-2020資料集上產生最佳的結果。
我們的方法結合了bert基礎、字元嵌入和仇恨術語的多熱編碼,在HASOC-2021資料集的English Subtask 1A上獲得了巨集f1分數0.77。
我們提交了與TIB-VA團隊相同的模型來參加官方的挑戰。我們的模型排名在第33位,Macro-f1得分為0.76。
評估指標包括準確性(Acc)、MacroF1 分數(M-F1)和加權F1分數(W-F1)。每個資料集的最佳效能模型配置都以粗體突出顯示。BB:從 預先訓練的BERT-base模型中提取的單詞嵌入,HB:從預先訓練的HateBERT模型中提取的單詞嵌入,CH:字元水平嵌入,HW:仇恨單詞的多熱編碼。
我們在圖2中給出了具有不同的BERT模型變數的兩種模型的混淆矩陣:BERT-base(BB)和 HateBERT(HB)。
這兩個模型都使用字元級嵌入(CH)和多熱編碼的仇恨詞(HW)進行訓練。
我們可以觀察到,使用bert-base嵌入的模型(圖2a)做出了更正確的預測(614vs。與其他模型變體相比,在檢測仇恨內容(HOF)方面(圖2b)。
類似的模式也存在於目標類為NOT的情況下,並且該模型預測了HOF,其中具有BB特性的模型所犯的錯誤更少(151vs.188)比其他模型更大。
04 總結
在本文中,我們分析了結合多種文字特徵來檢測仇恨、冒犯和褻瀆語言的模型架構。
我們的實驗結果表明,簡單地使用收集到的1493個仇恨術語的多熱編碼可以獲得顯著的效能。 BERT嵌入、字元嵌入和基於仇恨術語的特徵的組合在English Subtask 1A、HASOC2021資料集上取得了最好的效能。
評估的另一個觀察結果是,相比於預設的預訓練模型變體(bere-base),文字上訓練的BERT模型的變體並沒有改進結果。
閱讀原文連結:https://hasocfire.github.io
私信我領取目標檢測與R-CNN/資料分析的應用/電商資料分析/資料分析在醫療領域的應用/NLP學員專案展示/中文NLP的介紹與實際應用/NLP系列直播課/NLP前沿模型訓練營等乾貨學習資源。