자동화된 혐오 발언 탐지를 위한 노력
페이스북, 인스타그램, 스냅챗 등 SNS 서비스가 태동하던 2000년대 초반은 시공간의 제약을 벗어나 사람들을 “연결”해주는 것 그 자체에 먼저 집중하는 시대였다면, 요즘에는 기술의 발달로 인해 사람들의 연결이 쉬워졌고, 정말 다양한 형태의 취미, 정보, 고민, 관심사를 바탕으로 많은 커뮤니티가 생성되었습니다. 커뮤니티 내에서 공유되는 양질의 정보나 커뮤니티 내 사람들의 공통적인 문제는 많은 제품과 서비스를 탄생, 성장시켜왔고요. 제품과 서비스 운영자들은 커뮤니티를 통해서 다양한 사용자의 목소리를 수집하고 피드백을 받으며 사용자들과 유대감을 형성해서 브랜드에 대한 충성도를 높이고 빠른 성장의 핵심 동력으로 삼고자 하는데, 보통 커뮤니티의 규모가 늘어남과 동시에 커뮤니티 내에서 발생하는 문제 또한 커지기 시작합니다. 일대일 관계만 고려하더라도 관계의 수(n2)는 사람들의 수(n)의 제곱 배로 생성되기 때문에 어느 규모를 넘어가면 온라인 커뮤니티 내에서 다양한 사람들의 상호작용을 모두 관리할 수 없는 시점이 옵니다. 이때 커뮤니티 정책에서 벗어나는 offensive language를 자동으로 탐지하여 커뮤니티 관리자가 다양한 상호작용을 효과적으로 정리하고 관리할 수 있게 도와준다면 커뮤니티의 문화가 흔들리지 않고 커뮤니티가 더 크게 성장할 수 있을 것입니다.
그뿐만 아니라 chatGPT, 이루다를 포함한 인공지능 챗봇에 관한 연구와 서비스가 많아지고 있는 가운데, 인공지능이 사회적, 윤리적으로 받아들여지지 않는 발언을 하지 않도록 자동으로 탐지해야 할 필요성도 늘어나고 있습니다.
Offensive language를 자동으로 탐지하기 위해서는 “Offensive language란 무엇인가?”에 대한 정의부터 필요합니다. Offensive language란 hate-speech, bullying, threatening, (sexual) harassment, intimidating, violence 등 좋지 않은 메시지를 표현하는 다양한 용어들을 포함하는 개념입니다.
초창기 연구에서는 이 offensiveness의 구체적인 속성별 (e.g., hate speech인가 아닌가?, bullying인가 아닌가?, aggressive 한가 아닌가? 등) 판단에 초점을 맞춘 데이터 세트가 많이 등장했습니다. 하지만 각 속성 간에 유사한 점이 있다 보니 이를 하나의 typology 내에서 묶으려고 시도하게 됩니다.
BEEP

BEEP도 이런 흐름 속에서 등장한 데이터 세트입니다. 아무것도 없었던 시기에 제작되어 한국어 혐오 발언 연구 개발을 위한 좋은 초석이 되었지만, offensive language 내의 다양한 특성 – hate speech, harassment, bullying 등 – 을 아주 잘 반영한 scheme은 아닙니다. 크게 <어떤 집단에 대한 편견인가 (bias)>와 <혐오 및 공격성의 정도 (hate)>의 두 관점에서 어노테이션 되어있다는 점에서 후술할 OLID의 target과 offensivenss와 어느 정도 유사하다고 볼 수 있지만, 각 기준의 정의가 불완전한 측면이 있습니다. 연예 뉴스 댓글을 기반으로 만들어졌기 때문에 bias의 대상이 되는 그룹 특성이 젠더와 그 외(정치, 나이, 출신 지역, 종교 등)만으로 분류되었고, offensiveness라는 하나의 기준안에서 hate-speech와 harassment, threatening 등을 모두 포함하고자 하여 거꾸로 어떤 특성도 제대로 반영하지 못했습니다. (BEEP 가이드라인) 어노테이션 과정에서 기사 제목의 컨텍스트를 제대로 반영하지 못했다는 것과, 수량이 적다는 단점도 함께 존재했죠.
OLID
OLID는 Offensive Language Identification Dataset 의 약어로, offensive content를 구성하는 다양한 속성을 하나의 annotation scheme을 통해 해결한 데이터 세트입니다. Offensive language에 속하는 구체적인 type에는 hate speech, threatening, bullying 등이 있다고 했는데요, 이들을 별도의 태스크가 아닌 하나의 typology로 보기 위해서는 발화의 대상이 구체적으로 존재하는지 아닌지와 대상이 그룹인지 개인인지가 중요하다는 연구가 있었습니다. hate speech는 특정 그룹을 향한 offensive language로 정의할 수 있고, bullying은 개인을 향한 offensive language, profanity는 발화의 대상이 없는 offensive language의 패턴으로 등장하기도 하니까요.

OLID의 구체적인 어노테이션 과정을 보면 단계별로 어노테이션을 수행하도록 구성되어 있죠. 1) 가장 먼저 공격성 유무를 판단하고, 2) 공격성이 있다고 판단되면 공격의 대상이 존재하는지 아닌지를 판단하고, 3) 대상이 존재하는 경우 그 대상이 집단인지 개인인지, 그 외인지를 판단합니다. 이렇게 얻어진 레이블을 활용하면 “집단”을 향한 “공격적인 발언”으로 분류되었을 때 hate speech, “대상이 없는” “공격적인 발언”은 profanity나 swearing, “개인”을 향한 “공격적인 발언”은 cyberbulling으로 판단할 수 있습니다.
KOLD
이번에 소개할 KOLD(Korean Offensive Language Dataset)는 BEEP의 단점을 보완하고, OLID의 hierarchical한 annotation scheme과 HateXplain의 explainability를 모두 반영하면서도 우리나라의 사회*문화적 요인을 고려한 데이터 세트입니다. 총 4만 개의 네이버 뉴스와 유튜브에 달린 댓글로 구성되어있고, 기사와 영상의 제목을 컨텍스트로 활용했습니다.
다시 말해, KOLD에서 개선한 점들은 크게 4가지로 요약해볼 수 있을 것 같아요.
- Hierarchical annotation scheme을 통한 comprehensive 한 offensive language 분류
- 단순히 문장 단위의 판단을 넘어 문장 내의 “어떤” 부분이 판단에 영향을 미쳤는지를 표기한 것
- BEEP은 네이버 연예 뉴스 댓글만을 보고 라벨링을 했다면 KOLD는 댓글이 달린 콘텐츠의 제목을 제공하고 annotation을 진행하여 주어 생략 특징이 보이는 댓글에 대한 정보를 더 정확하게 판단할 수 있었던 것
- 4만 개나 되는 많은 양의 데이터 세트
자세한 내용은 paper에서 확인하실 수 있으므로 여기서는 가장 중요하다고 생각하는 Hierarchical annotation scheme과 논문에서는 다룰 수 없었던 뒷이야기 위주로 다루려고 합니다.

OLID의 annotation scheme은 A) 주어진 텍스트가 offensive 한지 아닌지, B) offensive 하다면 메시지의 대상(target)이 존재하는지, C) 존재한다면 대상이 개인인지, 그룹인지 등을 순차적으로 판단하는 구조입니다. KOLD에서는 이를 변형해서 OLID의 A 단계는 그대로 유지(Level A)한 상태에서 B와 C를 하나의 step (Level B)에서 해결했고, 추가로 대상이 그룹이라면 어떤 그룹에 속하는지(Level C)를 태깅했습니다. Level C는 우리나라 문화권에서 offensive language가 향하는 대상을 구체적으로 파악할 수 있다는 점과 영어 데이터 세트와의 특징과 비교할 수 있다는 점에서 매우 유용한 label이라고 생각했기 때문이죠.
Level C에서는 구체적으로 Target Group과 Target Group Attribute 정보를 제공받습니다. Target Group은 댓글에서 공격하는 대상이 직접적으로 속하는 그룹이고, Target Group Attribution은 Target Group의 공통적인 속성을 나타냅니다. 예를 들어, 정치인 A에 대해 공격하는 텍스트의 경우 Target Group은 해당 정치인이 속한 정당의 색이 되고 Target Group Attribute는 정당(Political Affiliation)이 되겠죠. 영미권과 비교하기 전에 먼저 KOLD 데이터에 등장한 데이터 분포를 살펴봅시다. Table 3은 Level C의 Target Group의 데이터 분포를 정리한 내용입니다.

Table 3을 주의 깊게 보신 분들이라면 아마 곧바로 “왜 Feminist가 Gender & Sexual Orientation이 아닌 Misc. 에 속해있지?”라는 의문을 가지실 것 같아요. 리뷰어 또한 의문을 제기했던 부분이기도 하고, 저자들끼리도 Feminist가 어디에 속하는 것이 좋은지를 치열하게 고민했기 때문에 이 질문이 떠오르는 게 전혀 이상하지 않습니다. 페미니스트란, 페미니즘을 옹호하는 집단을 의미하고, 페미니즘은 양성평등을 위한 여성의 인권 신장을 옹호하는 이데올로기입니다. 페미니즘이 집중하는 대상이 여성이다 보니 이를 옹호하는 분들이 대부분 여성이기에 페미니스트 ~= 여성 집단이라는 prior가 있고, 젠더 이슈라고 했을 때 빠지지 않고 등장하는 키워드이기 때문에 Gender & Sexual Orientation에 속해야 한다고 생각하기 쉬운 것 같습니다.


Target Group의 비율이 높은 순서대로 정렬해보면 영어에서 다루는 Target Group의 분포와 다르다는 것을 확연히 알 수 있습니다 (Table 4). 젠더와 종교에 대한 offensiveness는 공통으로 많았으나, 영미권에서는 인종에 대한 offensiveness가 두드러졌고 우리나라에서는 인종보다도 더 구체적인 민족/국가 단위의 offensiveness가 빈번했습니다. 또 우리나라에서는 특히 정치색에 대한 공격적인 발화가 영미권보다 심했고요. 문화적인 차이는 번역이나 multilingual model로 해결하기는 어려웠습니다. Table 9의 결과가 이를 뒷받침해주고 있죠.
Conclusion
다양한 형태의 취미, 정보, 고민, 관심사를 바탕으로 점점 더 많은 온라인 플랫폼들이 생겨나고 그 안에서 맺는 관계의 수가 커짐에 따라 커뮤니티를 잘 운영하는 것이 커뮤니티 성장에 중요한 부분을 차지하고 있습니다. 또한 인공지능이 점점 더 보편화되는만큼 인공지능이 보여주는 결과에 대한 책임 또한 커지고 있고요. 특히 텍스트를 생성하는 인공지능의 경우, 정보를 더 직접적으로 전달하는 것이니만큼 더 각별한 주의가 필요하겠죠. 이미 OpenAI는 이를 염두에 두고 moderation에도 많은 신경을 써왔습니다. (관련 내용도 곧 블로그를 통해 공개할 예정이니 많은 관심 부탁드려요!)
우리나라에서도 한국어 Language Model에 대한 연구 개발이 활발히 진행되고 있고 인공지능이 점차 보편화되고 있는데요, KOLD가 이런 흐름 속에서 moderation AI 개발에 도움이 되길 바랍니다.