3. Introduction
• 조원익
B.S. in EE/Mathematics (SNU, ’10~’14)
Ph.D. student (SNU ECE, ’14 Autumn~)
• Academic background
EE folk interested in mathematics
Early years in Speech processing lab
• Source separation
• Voice activity & endpoint detection
• Automatic music composition
Currently studying on
• Computational linguistics
• Spoken language processing
2
4. Introduction
• Members (MoonJoY!)
문지형
조원익
이준범
• The topic to be covered:
Korean Corpus of Online News Comments for Toxic Speech Detection
• What is toxic speech in online space?
편견 (social bias)
혐오 표현 (hate speech)
모욕 (insulting)
3
“악성 댓글”
※ This project was performed
as an independent research,
and was not supported by
any of the organizations.
5. Motivation
• 지형 (@ Nov. 2019)
근래 악성댓글로 인한 피해 증가
• e.g., 연예 기사의 경우, 대상에게 정신적 고통 + 불특정 다수에게 피해
댓글란을 없애는 것 – 한 가지 방법이지만 근본적인 해결책은 아닐 수 있음
• 데이터 기반의 AI를 활용해 해결할 수 있지 않을까?
But ...
• 데이터 레이블이 ‘정말로’ 필수적
• 특정 커뮤니티의 댓글이 무조건 혐오?
• Toxic comment이면 욕설 포함?
비슷한 생각을 해본 사람이 없을까?
• 혐오 발언이 어떤 것인가에 대한 고민을 해본 사람
• 대량 코퍼스를 구축하는 것에 대한 필요성을 느낀 사람
4
6. Motivation
• 원익 (@ Jul. 2018)
혐오 표현이 어떤 것인가 vs 어떤 것이 혐오 표현인가
• 끊임없이 누군가가 누군가에게 상처를 입히는 온라인 공간
– 성별 / 종교 / 정치 / 출신성분 / 장애 여부 / 학력 / 빈부 ... etc.
– ㅇㅇ혐오 > 혐오를 혐오? > 혐오가 뭐지?
– ‘기분이 나쁘다‘ > 혐오 표현인가?
» 발화하는 내용 자체에 명백히 어떤 표현이 들어 있는가? (locutionary)
» 화자의 목적이 악의적인가? (illocutionary)
» 접하게 되는 청자가 어떠한 감정을 느끼는가? (perlocutionary)
Pilot study!
• 일단 커뮤니티 몇 개를 골라 베스트 게시물을 모아볼까?
– 야갤, 워마드, 판, 아고라
5
7. Motivation
• 원익 (@ Jul. 2018)
목표:
• 데이터 관찰을 통해 구축 단계의 기준을 세우기
– 여러 커뮤니티에서 나타나는 표현들을 골고루 반영한 가이드라인
• 혐오 표현들을 취합하여 분석할 만한 코퍼스 구축 (not necessarily ML approach)
데이터:
• 다음 아고라 토론 베스트
– 진보 성향의 정치 게시물 위주
• 네이트 판 오늘의 톡
– 일상 생활 소재의 신변잡기적 이야기
• 디씨인사이드 국내야구 갤러리 개념글
– 스포츠, 보수 성향 정치 게시물 및 지역감정
• 워마드 일일베스트
– 젠더, 성적지향성, 정체성 갈등 문제
난점:
• 데이터를 눈과 머리로 확인해야 함!
– 이렇게 Bucket list로 들어가는 듯 했으나,,,
6
8. Motivation
• 지형 + 원익 (@ Jan. 2020)
좋은 동료가 생겼다 + 이대로 끝낼 순 없다
• 지형: 크롤링해 둔 뉴스 댓글을 활용해 보자!
• 원익: 예전에 작성해 둔 레이블링 가이드라인을 참고해 보자!
왜 필요한가?
• 한국어 혐오 표현은 개념의 정립에 집중 / 코퍼스 구축이 필요
• 최근 한국 사회, 특히 온라인 공간의 갈등 – 악성 댓글
• 뉴스 플랫폼 – 다양한 토픽 / 컨텍스트에 대한 독자 반응 확보
• 사회언어학, AI 모두 활용 가능
초기 모델 구상 (but how?)
7
9. Motivation
• 지형 + 원익 (@ Feb. 2020)
다시 한번, 이대로 끝낼 순 없다
• 펀딩이 없다면 직접!
단기 목표
• 데이터 구축하며 논문도 써보자
– 많은 사람들이, 특히 연구자들이 활용할 수 있도록 + 구축에 대한 reference
– SocialNLP @ ACL
– NLP workshop
on social issues
– Data paper track
해야 할 일들
• Data: Crawling > Filtering > Sampling
• Annotation: Guideline > Pilot > Crowdsourcing > Agreement
• Publication: Writing > Editing > Proofreading > Submission!
8
10. Motivation
• 지형 + 원익 + 준범 (@ Mar. 2020)
댓글 분석 및 모델링에 경험이 있는 사람이 더 있으면 좋지 않을까?
• Data: Crawling > Filtering > Sampling
• Annotation: Guideline > Pilot > Crowdsourcing > Agreement
• Publication: Writing > Editing > Proofreading > Submission!
• Modeling: Architecture > Training > Analysis
Left about 2 months!
• 데이터 보며 가이드라인 만들고 수정하기
• 업체 정하고 가이드라인 전달하기
• 파일럿 스터디로 주석자 확보 및 피드백 주기
• 크라우드소싱 태깅 진행 및 IAA 측정
• 논문 작성
• 모델 훈련, 분석 및 토의
9
11. Data construction
• 데이터 레이블링
사실 굉장히 어려운 부분! Why?
• 문제 구성 (task definition)
– 사람마다 다른 언어직관 및 언어경험
– Controversial한 토픽의 경우 debate 필요
• 예산
– 펀딩을 구하기도 어렵고, 받으면 매이게 될 수 있음
– 예산을 초과하지 않는 양 + 모델링 할만한 수량? (예산과의 타협)
– 레이블링될 데이터 자체는 편향되지 않게 잘 샘플링되었나?
• 레이블링 그 자체
– 가이드라인 작성 및 무한 업데이트
– 플랫폼 선정, 어노테이터 선정, IAA 측정
– 좋은 어노테이터 풀 고르기 + 관리작업
10
12. Data construction
• 수집된 뉴스 댓글 데이터
온라인 포털 연예 뉴스 기사
• 두터운 독자층, 타깃이 확실, 관찰되는 갈등이 특정 집단에 치우치지 않음
– 댓글 수집 배포에 문제는 없는가?
기간: Jan. 2018 ~ Feb. 2020
수집 기사 및 댓글
• Raw data:
– 10,403,368 comments from 23,700 articles
• 1,580 articles by stratified sampling
– 특정 기간에 몰리지 않도록
• Top 20 comments
– Downvote 비율을 고려하여 추출
• Removed
– 중복된 comments
– single token comment 나 100자 이상의 comment
• Finally 10K comments were selected randomly within
11
13. Data construction
• 문제 구성
“악성 댓글”
• 편견 / 혐오 표현 / 모욕
– 편견은 무엇인가?
– 혐오는 편견을 동반하는가?
– 혐오와 모욕은 구별할 수 있을까?
• 검출할 요소를 정하는 과정
– 편견(bias)
» ‘이러이러한 사람’은 ‘이러이러한 특징’을 가질 것이다
» 단순한 판단(judgment)과 다를 수 있다
– 혐오 표현(hate speech)
» ‘이러이러한 특징’을 가진 집단에 대한 적대감
» 이는 profanity terms로도 표출될 수 있음
– 모욕(insulting)
» 개인 및 집단의 사회적 체면을 깎을 수 있는 언사
» 많은 profanity terms가 이에 해당함
12
14. Data construction
• 문제 구성
“악성 댓글”
• 편견의 검출 (ternary)
– Gender-related bias
– Other biases
– None
» ‘분류’의 문제에 가까움
» Why concentrated on gender issue?
• 혐오 표현 및 모욕의 검출 (ternary)
– Severe hate or insulting
– Not hateful but offensive or sarcastic
– None
» ‘정도’의 문제에 가까움
» Why formulated as a problem of amount?
13
19. Data construction
• 가이드라인 작성
혐오 표현 및 모욕에 대한 세부 사항 (1) Severe hate or insulting
• 혐오 댓글: 대상을 일정한 특성에 근거해서 섣불리 판단한 후 대상에 대해 적대감
을 드러내는 발언
– 표현의 대상에게 정신적인 고통과 같은 감정 상태를 야기하는 경우에도 해당됨
• 모욕: 대상에 대해 근거없이 비난하거나 깎아내리는 경우
– 대상이 모욕감 혹은 수치감을 느낄 수 있는 발언
• 합리적인 비판은 해당되지 않으며, 단순히 욕설이 등장한다고 해서 모욕이나 혐오
가 느껴지는 것은 아닐 수 있음
18
32. Data construction
• 플랫폼 선정 – 어떤 조건을 만족해야 좋을까? (사전 조사)
예산 설정의 합리성
• VAT의 비율, 플랫폼 사용료
• 태깅 당 책정 금액 (및 어노테이터에게 돌아가는 금액)
• 어떤 것을 태깅 1회로 책정하는가
• 태깅 class 수에 따른 가격 차이
경험 및 어노테이터 풀
• 기존 자연어 데이터 및 유사 데이터 구축 경험이 충분히 많은가
• 어노테이터 풀을 잘 확보하고 있는가
• 태스크를 잘 이해하고 있는가
• 크라우드소싱에서의 노하우를 가지고 있는가
31
33. Data construction
• 플랫폼 선정 – 어떤 정보를 제공해 주면 효율적일까? (사후 인지)
작업 현황 (대기, 진행 중, 제출, 리뷰 대기, 리뷰 진행, 반려, 승인)
작업 통계: 참여 작업자 및 리뷰어 수, 평균 작업 및 리뷰 시간
작업자 연령대별 성별 분포, 작업자 별 현황, 일별 작업자 현황
32
34. Data construction
• 파일럿 연구 – 어떤 작업자가 함께 일하기 좋을까?
어느 정도 이상의 태깅을 진행하였는가? (예컨대 30개)
반려한 샘플들에 대한 피드백이 잘 반영되었는가?
가이드라인과 현격히 차이가 있는, gender나 다른 factors에 대한 기준을 가
지고 있지 않은가?
Tagging을 pass하는 빈도가 너무 높지는 않은가?
,,, 위와 같은 내용을 리뷰어들 (여기서는 저자들) 의 토의를 통해 결정
33
36. Data construction
• 데이터 후처리
전체 어노테이션 완료 후 (8,000개)
• Bias와 Hate/Insulting에서 공통적으로 체크한 내용
– 세 명의 annotator가 모두 다른 tagging을 한 경우
» 리뷰어들의 adjudication을 통해 결정
• Hate/Insulting에서 체크한 내용
– ‘정도’의 문제이기 때문에, (o) 아니면 (x) 만 있는 경우는 다시 체크해볼 필요가 있음
» 역시 리뷰어들의 adjudication을 통해 결정
• 위의 절차를 거치고 합의에 이르지 못하는 경우 (majority voting 불가) discard
Inter-annotator agreement (Krippendorff’s alpha)
• Bias (binary) – 0.767
• Bias (ternary) – 0.492
• Hate (ternary) – 0.496
35
37. Data construction
• 크라우드소싱 – 선정된 작업자들과 함께
데이터 분배
• 10,000 문항에서 659개 discard
• 나머지를 train, valid, test로 활용
데이터 구성
• Test: 974
– Guideline 구축 과정에서 태깅이 진행된 데이터셋 (가장 의도하던 바와 비슷)
• Valid: 471
– 많은 주석자들을 대상으로 한 Pilot study 과정에서 태깅/리뷰/반려/승인의 절차를 거친
데이터셋 (의도하던 바와 대체로 비슷)
• Train: 7,896
– 선정된 주석자들을 대상으로 한 crowd-sourcing으로, 리뷰/반려/승인의 절차를 거치지
는 않았으나, 특정한 케이스들에 대해 adjudication 실시
36
38. Modeling and analysis
• Model architectures
CharCNN
• Hangul character-level
BERT
• SKT KoBERT
BiLSTM
• Uses KoBERT tokenizer
Term matching
• As a baseline
– From two public resources
» https://github.com/doublems/korean-bad-words
» https://github.com/LDNOOBW/List-of-Dirty-Naughty-Obscene-and-Otherwise-
Bad-Words
37
39. Modeling and analysis
• Training and analysis
Training-based approaches 들이 hate speech 검출에 유리하다!
• Bad words 기반의 term matching model들에 비하여
CharCNN 은 `여성’ 키워드 유무에 false alarm이나 omission을 많이 보임
BiLSTM 은 class imbalance를 해소하지 못하고, 모두 none으로 찍어 버림으
로써 precision 및 recall이 낮음
BERT is useful in detecting
both kinds of attribute
• Gender bias를 잘 캐치함
• Semantic representation이
효과적이었을 것으로 추정
• Non-gender bias의 인식은
여전히 어려움
• Future work: two-step
approach toward other bias
38
40. Modeling and analysis
• Training and analysis
BERT is also useful in catching the hate speech
• The augmentation of bias label helps in this process!
39
41. Release and publication
• Model and data release
Annotation guideline
• https://www.notion.so/c1ecb7cc52d446cc93d928d172ef8442
Kaggle competition
• https://www.kaggle.com/c/korean-gender-bias-detection
• https://www.kaggle.com/c/korean-bias-detection/
• https://www.kaggle.com/c/korean-hate-speech-detection/
Github repository
• https://github.com/kocohub/korean-hate-speech
• Paper work
Accepted at SocialNLP
@ACL2020!
• Moon*, Cho*, Lee
• To be presented virtually
• Fully funding-free, but individual financial support from Hyunjoong Kim
40
42. Release and publication
• For easier data importing
Koco package
• https://github.com/inmoonlight/koco
– Library to easily access kocohub datasets
– Kocohub contains KOrean COrpus for natural language processing
» https://github.com/kocohub
41
43. Takeaways
• 처음부터 깔끔하게 만들어진 데이터는 없다
그렇지만 데이터를 만드는 과정에서 그 데이터 자체에 대해 배울 수 있다
• 빡센 코퍼스 구축에는 다양한 고려사항들이 필요
데이터 구축의 합목적성 – 문제 정의는 그 목적을 적합하게 달성하는가?
• e.g., ‘혐오 표현‘을 정의하고 검출하여 얻을 수 있는 사회적 효용은? 역으로, 그런
결과를 가져올 수 있는 정의의 방식은?
많은 부분 예산이 영향을 미치고 타협이 필요하지만, 주어진 예산으로 가장
효율적으로 구축할 수 있는 방법은?
• e.g., 동일한 태깅으로 얼마나 많은 정보를 획득할 수 있을까?
어노테이션 자체에도 리뷰/반려/승인의 절차가 필요하다
• 모든 데이터에 대하여 이렇게 하기 어렵다면 적어도 가능한 adjudication을 위한
기준을 세워야 한다
– e.g., 모든 어노테이션이 다른 경우, ‘정도’의 차이에서 큰 차이가 발생한 경우
42
44. Takeaways
• Thanks for all the colleagues and supporters!
43
Motivation
Pilot studyGuideline
Writing
Modeling
Github
Management
Kaggle
Funding
Proofreading