반응형

 

 

 

2019년 Hate Speech Detection 글 보기!

https://beaver-sohyun.tistory.com/6?category=830784

 

주제 Hate Speech Detection & Hate Map

안녕하세요. 오늘은 저희 팀이 구현할 주제에 대한 정리? 요약? 에 대해 말씀드리려고 합니다. 저희 팀은 총 4명으로 구성된 열정 가득한 작은 비버들로 구성되어있습니다. 처음에는 같은 학과 ��

beaver-sohyun.tistory.com

 

 

2020년 Hate Speech Detection(주제 소개, 관련 연구, 데이터 셋, HAN 모델 설명)

https://beaver-sohyun.tistory.com/40

 

주제 Hate Speech Detection_2020(++ 주제 소개, 관련 연구, 데이터 셋, HAN 모델 설명)

안녕하세요, 작은비버가 작년에 진행했던 Hate Speech Detection 프로젝트를 들고 왔습니다. 이번 연도에는 작년에 진행했던 Hate Speech Detection 연구에 추가로 연구를 진행했습니다. 오늘은 2020년 version,

beaver-sohyun.tistory.com

 

 


실험에 사용된 데이터 셋

Datasets

Source

Class

Count

Hatebase [1]

Twitter

Hate

Offensive

Neither

1,430(5%)

19,190(76%)

4,163(17%)

WaseemA [2]

Twitter

Sexism

Racism

Neither

3,383(20%)

1,972(12%)

11,559(68%)

Stormfront [3]

Online Forum

Hate

Not Hate

Relation

Skip

1,196(11%)

9,507(86%)

168(2%)

73(1%)

Wikipedia Detox [4]

Wikipedia

discussions

Non-attacking

Attacking

102,274(87%)

13,590(13%)

Kaggle [5]

Twitter

Not Insulting

Insulting

1,742(26%)

4,852(74%)

 

[1] https://github.com/t-davidson/hate-speech-and-offensive-language

[2] https://github.com/ZeerakW/hatespeech

[3] https://github.com/Zeerak/hatespeech

[4] https://github.com/ewulczyn/wiki-detox

[5] https://www.kaggle.com/c/detecting-insults-in-social-commentary

 

 

 

연구 방법

딥러닝 알고리즘

  • 알고리즘 : Hierarchical Attention Network
  • 데 이 터 : Hate Speech Datasets
  • 파라미터
    • learning rate : 0.001
    • loss function : Categorical Cross-Entropy
    • optimizer : Adam
    • batch size : 128
    • epoch : early - stopping

 

데이터 셋 비율

  • Training : 80%
  • Validation : 10%
  • Test : 10%

 

 

실험 결과(1)

연구는 HAN 알고리즘을 사용하여 실험을 했고, 데이터는 위에 작성된 Hate Speech Dataset, 파라미터는 위에 작성된 것으로 진행했습니다.

 

데이터셋 별로 SOTA 모델의 train, validation, test 비율이 달랐는데 저희 실험에서는 80, 10, 10로 나누어 진행했습니다.

 

워드 임베딩은 사전 훈련된 Word2vec을 사용합니다.

Hate Speech Dataset을 사용한 HAN 모델의 성능

B : undersampling 기법을 이용 더 많은 데이터를 가진 클래스의 데이터를 제거하여 균형을 맞춘 Balanced Data

ImB : 주어진 데이터셋 그대로 클래스들이 불균형한 Imbalanced Data

Accuracy : 전체 데이터 중에서, 제대로 분류된 데이터의 비율

F1 : PrecisionRecall의 조화 평균,, 데이터 label이 불균형 구조일 때, 모델의 성능을 정확하게 평가 가능

 

 

 

5개의 Hate Speech Dataset을 사용하여 총 두 번의 실험을 진행했습니다.

 

첫 번째 실험은 주어진 데이터셋 그대로 클래스들이 불균형한 Imbalanced Data를 사용합니다.

 

두 번째 실험은 sampling 기법 중 under-sampling 기법을 이용해서 더 많은 데이터를 가진 클래스의 데이터를 제거하여 균형을 맞춘 Balanced Data를 사용하여 실험합니다.

 

imbalance data로 모델을 학습할 경우 accuracy를 통해 모델 성능을 확인할 수 없습니다.

 

모델이 잘못된 분류하는 경우에도 높은 정확도가 계산되기 때문에 성능 평가 지표로 F1을 사용해야 합니다.

 

그래프는 각각의 데이터셋을 Balanced 또는 Imbalacend 하게 실험한 뒤 accuracy F1을 통해 성능을 확인한 그래프입니다.

 

그래프를 보면 Wikipedia data가 Balanced의 Accuracy와 Imbalanced의 F1에서 가장 높은 성능을 보인 것을 볼 수 있습니다. 

 

 

 

실험 결과(2)

Dataset

Models(others) - SOTA

HAN(ours)

Balanced

/Imbalanced

 

Accuracy

F1

Accuracy

F1

Hatebase¹

Neural Ensemble

0.92

0.91

0.9

0.70

Imbalanced

WaseemA²

LSTM+Random Embedding+GBDT

-

0.93

0.84

0.79

Imbalanced

Stormfront³

BERT

0.82

0.82

0.79

0.79

Balanced

Wikipedia Detox⁴

Context hidden-state + char n-grams

-

0.87

0.95

0.88

Imbalanced

Kaggle5

Stemming + Uni + Bigrams

0.82

0.67

0.81

0.81

Balanced

 

이 표는 각각의 데이터셋에서 최고의 성능을 보인 모델들을 정리하고 그 모델의 실험 조건에 따라서 HAN의 성능을 정리한 표입니다.

 

그 결과 HAN모델이 Wikipedia와 Kaggle Data에서 이전의 SOTA 모델보다 높은 성능을 보였습니다.

 

 

 

실험 결과(3)

데이터 셋

Source

클래스

데이터 수

평균 문장 수

평균 문장 단어 개수

Hatebase¹

Twitter

3

24,783

1.39

10.13

WaseemA²

Twitter

3

16,135

1.80

8.50

Stormfront³

Online Forum

2

10,703

1.11

16.32

Wikipedia Detox⁴

Wikipedia

discussions

2

115,864

4.55

16.00

Kaggle5

Twitter

2

6,594

2.21

15.02

 

[1] https://github.com/t-davidson/hate-speech-and-offensive-language

[2] https://github.com/ZeerakW/hatespeech

[3] https://github.com/Zeerak/hatespeech

[4] https://github.com/ewulczyn/wiki-detox

[5] https://www.kaggle.com/c/detecting-insults-in-social-commentary

 

 

 

데이터들에 대해 데이터 수, 평균 문장 수, 평균 문장 단어 개수 등을 정리해 본 표입니다.

 

그 결과, Wikipedia와 Kaggle Data가 다른 데이터들에 비해 평균 문장 수, 평균 문장 단어의 개수가 많았고, Class가 2개인 데이터로 구성되어있었습니다. 

 

이 말은 평균 문장의 수가 많고, Class가 적을수록 HAN에서 높은 성능을 보인다고 추측할 수 있습니다.

 

동일한 Hatebase와 Waseem에서는 왜 성능이 높게 안 나왔는지 궁금해하실 수도 있습니다.

 

제 추측으로는 Kaggle data가 다른 Twitter으로 구성된 데이터보다 더 긴 tweet으로 구성되어 있어 HAN모델에서 높은 성능을 보인 것으로 생각됩니다. 

 

이렇게 HAN은 짧은 문장보다는 문서 단위 알고리즘에 적합한 모델이라는 것을 알게 되었습니다.

 

 

 

Waseem Word attention visualization

 

<Sexism tweet example>

Sexism tweet example

트윗을 분류하는데 어떤 단어들이 얼마큼의 영향을 주는지에 대해 색의 진함으로 표현

(색이 진할수록 문서를 분류하는데 큰 영향을 준 단어)

 

 

다음은 저희가 실험했던 데이터 셋 중 Waseem data 일부에 대한 시각화 결과입니다.

 

HAN 모델이 Waseem data를 학습하여 트윗을 Sexism, Racism으로 분류할 때, 어떤 단어가 얼마큼 크게 영향을 미쳤는지 시각화해서 볼 수 있습니다.

 

HAN 모델이 Sexism tweet으로 분류한 tweet 중 실제 Class가 Sexism tweet인 Example입니다.

 

"Sexist" 와 같은 단어들이 문장을 Sexism 이라고 판단하는데 큰 영향을 주웠음을 확인할 수 있습니다.

 

 

 

<Racism tweet example>

 

Racism tweet example

 

다음은 Racism tweet으로 분류된 tweet 중 실제 class가 Racism tweet인 예시입니다.

"Muslim, Islam, religion(종교), jewish (유대인), prophet(선지자)" 같은 단어들이 tweet이 Racism이라고 판단하는데 영향을 주웠음을 확인할 수 있습니다.

 

현재까지의 인공지능이 결과만 있고 도출한 결과의 근거를 없었다면 HAN 모델의 attention mechanism 이러한 시각화를 통해 특정 문서가 특정 라벨로 분류되었을 , 근거가 되는 단어나 문장들을 있습니다.

 

이는 explainable AI, 설명 가능한 인공지능 형태입니다.

 

이번 연구를 통해 저희는 HAN모델이 문서 분류뿐만 아니라 혐오 표현 탐지에도 효과가 있다는 것을 확인했습니다.

 

반응형

+ Recent posts