APEACH – 혐오 발화 평가데이터를 만드는 새로운 방법

안녕하세요, 저는 콘텐츠데이터개발셀에서 양질의 뉴스와 콘텐츠의 품질에 관한 ML모델을 연구 및 개발하고 있는 Kevin(양기창)입니다.

저는 이번에 APEACH라고 하는 혐오성 발화를 평가하는 방법론에 대한 연구를 진행하였고 이번 연구를 진행하면서 만든 평가 데이터 셋과 논문을 공개하였는데요, 이번 연구에 대한 간단한 설명과 몇 가지 후기를 이야기해보고자 합니다.



들어가며

 

이 논문을 작성하게 된 계기는 4년간의 학부 재학 시절부터 지금은 추천팀에서 ML엔지니어로 일하고 있는 joel과 함께 학교 동아리(유어슈)에서 진행한 학내 커뮤니티 개발 프로젝트였습니다.

이 게시판에 들어갈 AI엔진을(https://master-soongsil-bert-base-beep-deploy-jason9693.endpoint.ainize.ai/) 만들면서 실제 서비스에 적용을 해보니 발생했던 근본적으로 부딪혔던 문제가 학습한 모델도 모델이지만, 평가에 대한 기준이 상당히 모호해서 평가에 대한 기준은 무엇인지, 또 학습한 모델들이 과연 좋은 성능을 보이는지 테스트조차 힘들다는 사실을 깨달았습니다.

이에 “평가 셋이라도 제대로 만들어 보자”라는 생각으로 이 연구를 본격적으로 진행하게 되었습니다.

기존의 연구 방식

 

기존에 진행하던 연구들을 하나의 그림으로 요약해 보자면 아래 그림과 텍스트로 정리해 볼 수 있습니다.

  1. 웹상에 있는 데이터를 크롤링하여 수집하거나, 혹은 내부의 텍스트 데이터를 수집.
  2. k명(소수)의 판단자가 각 문장에 대하여 판단을 진행
  3. 각 문장에 대하여 2번에서 판단한 결과를 가지고 다수결로 투표를 하여 가장 주류가 되는 의견으로 판단을 완료

그러나, 이러한 방식에는 몇 가지 문제점이 존재합니다.

첫째, 특정 사이트를 크롤링 하다 보니 다루는 주제가 한정됩니다. (젠더갈등, 정치 등등)

둘째, 최근 자연어 처리 기법에서 많이 사용하는 언어 모델(BERT 혹은 GPT)의 경우, 다양한 웹상의 데이터를 학습하는데 이때 학습한 데이터가 테스트 셋에 사용한 텍스트와 겹칠 가능성이 존재합니다. 둘 다 웹상의 데이터를 수집하여 용도만 다르게 사용한 경우(언어모델 : 모델학습, 테스트 셋 : 평가)이므로, 이는 부정 행위에 대한 문제 제기로부터 자유롭지 못합니다. 사람으로 따지자면 수능 문제에 나올 지문을 수험생이 이미 본 것과 비슷하다고 할 수 있습니다.

셋째, 크롤링 데이터를 사용하기 때문에 최근 많이 이슈가 되는 저작권 문제가 제기될 수도 있습니다.

이에 우리는 평가 셋 만큼은 기존의 방식과는 다른 방식이 필요함을 인지하였고, 다음과 같은 방식으로 접근하면서 연구를 시작하였습니다.

  1. 여러 명이 텍스트를 다양하게 “생성”해볼 수는 없을까? : 소수의 사람들이 텍스트에 대한 판단을 내리기보다는 다양한 계층, 그리고 다양한 도메인의 사람들이 여러 개의 주제에 대한 혐오 발화를 생성해 본다면, 위의 첫 번째 문제 제기를 해결해 볼 수 있지 않을까라는 생각을 하였습니다.
  2. 기존 데이터가 아니라면? : 웹상에 돌아다니는 데이터가 아닌 전혀 웹에는 존재하지 않은 텍스트를 테스트 셋으로써 사용한다면, 모델 평가에 있어서 조금 더 공정한 모델 평가가 되지 않을까 하는 생각을 하게 되었습니다.
  3. 생성한 데이터에 대한 적절한 보상을 할 수 있다면? : 생성한 텍스트에 비례하여 적절한 보상을 하게 하여 저작권 이슈를 탈피해 보면 어떨까 하는 생각을 하게 되었습니다.

문제 구체화 하기

문제를 구체화하기 위하여 위의 세 가지를 아래와 같이 확장하여 보았습니다.

  1. 여러 명이 텍스트를 다양하게 생성해 볼 수는 없을까? ⇒ 불특정 다수(Crowd)가 생성하고, 이러한 개개인의 실수를 방지하기 위하여 보조수단으로써 AI를 추가적으로 활용한다.
  2. 기존 데이터가 아니라면? ⇒ Crowd가 프롬프트(지시사항 & 주제)를 보고 해당 주제에 걸맞은 본인이 생각하는 혐오 발화나 일반 문장을 생성하게끔 한다.
  3. 적절한 보상을 할 수는 없을까? ⇒ Crowd가 작업한 양에 비례하여 보상을 지급하게끔 한다.


이렇게 구체화한 내용을 토대로 우리는 다음과 같이 시스템을 구성해 보았습니다.

APEACH – 시스템

 

위의 세 가지를 모두 반영하기 위하여 우리는 아래와 같이 크게 3가지 부분으로 구성된 수집 시스템을 고안하였습니다.

아래의 시스템을 크게 세 가지 부분으로 나누면 다음과 같습니다.

  1. Pseudo Classifier(판단 보조용 AI) 만들기
  2. 데이터 생성 및 수집, 그리고 피드백 반영
  3. 사후 레이블링

이제 각 부분에 대하여 자세히 알아보도록 합니다.

1. Pseudo Classifier (판단 보조용 분류기)

이 부분은 개별의 Crowd가 데이터를 생성할 때 한 번 더 생성한 텍스트에 대한 판단을 고려하도록 유도하기 위한 “보조 수단” 입니다. 따라서 좋은 성능(정확도)을 보일 필요는 없으며, 데이터 생성에 직접적인 관여는 하지 않습니다.

2. 데이터 생성 및 수집, 그리고 피드백 반영

각각의 Crowd는 프롬프트(토픽이나 카테고리, 아래 그림 참조)로 제시받은 주제에 대하여 본인이 원하는 레이블(혐오성/일반)에 해당하는 문장을 작성합니다. 그 뒤에 작성한 글을 1.에서 만든 분류기에 태워서 예측을 합니다. 여기서 나온 결과에 대하여(그림 참조) 본인이 원래 작성했던 의도와 맞는지 비교하여 맞으면 파란색 버튼을, 그것이 아니라면 회색 버튼(1.의 그림 참조)을 클릭합니다. 그러면 시스템은 이 의도에 맞춰서 레이블을 보정하여 DB(사후 레이블링에 사용할)에 저장을 합니다.

3. 사후 레이블링

2.에서 수집한 데이터를 k 명의 매니저(각주 : 이번 연구에선 연구에 참여한 3명이 진행했습니다)가 기존의 방식처럼 투표 방식으로 크리티컬한 데이터(저작권 위반, 특정인 지칭, 프롬프트의 카테고리와 무관한 데이터)를 걸러내고, 걸러지지 않는 데이터들을 APEACH 데이터로 적재를 합니다.

이때 주의할 점이 있습니다.

매니저는 직접적인 판단(Hate or Not)에 개입하지 않습니다. Crowd Driven이 핵심이기 때문에, 소수에 의해 판단이 왜곡되지 않도록 주의합니다. 또, 자연스러운 데이터를 수집하기 위해 문법 오류는 허용하였습니다.

이 스텝까지 거쳐 수집된 데이터를 최종적으로 공개를 하였습니다.

APEACH – 프롬프트 및 가이드라인

 

Crowd에게 제시할 프롬프트를 선정할 때 어떠한 기준을 가지고 해야 할지 고민을 하였습니다. 그런데 오프라인 커뮤니티들의 CoC(Code of Conduct)를 조사해 보니 생각보다 공통적인 주제들에 대하여 가이드를 하고 있었고 온라인 역시 크게 다르지 않을 것이라는 생각에 그중 상대적으로 가이드라인이 자세히 제시된 Pycon KR의 CoC를 참조하여 10가지 카테고리에 대한 프롬프트 및 가이드라인을 만들었습니다.

여기에 더하여 개인 정보 이슈를 해결하기 위하여 네이버나 카카오 인명사전에 등재되지 않은 인물에 대한 고유명사 사용을 금지하였고, 문맥상 불필요할 경우 가명화 요구 조건(ooo는, xxx가)을 삽입하였습니다.

또한, 웹상에 존재하는 문서를 복붙하는것을 금지하였고, 사후 레이블링시에 검색엔진에 검색하면서 복붙 여부를 검토하였습니다.

생성된 데이터 분포

위 과정을 통하여 생성된 데이터들에 대하여 간단한 통계를 내보았습니다. 예상한 대로 문장 위주의 데이터를 생성하도록 하여 주로 단문 형태의 데이터 셋이 주가 되어 있고, 각 토픽들과 레이블(Hate or Not)에 대하여 상대적으로 균등한 분포를 보임을 확인했습니다.

실험 및 분석

이번 데이터를 생성하면서 몇 가지 실험을 해보았습니다. 이번 섹션에서는 세세한 내용을 모두 설명을 하기보다는 분량상 주요한 몇 가지에 대한 설명을 하도록 하겠습니다.

자세한 내용은 논문의 실험 섹션을 참고해 주세요.

아래 실험들은 가장 많이 사용되는 한국어 혐오성 데이터 셋인 BEEP!과 우리의 데이터 셋(APEACH)를 사용하여 비교를 하였습니다.

정성적(샘플) 분석

도메인 일반화에 대한 사례를 확인해 보기 위하여 BEEP!(기존 혐오 발화 데이터)로 학습한 모델들로 APEACH에서 몇 가지의 데이터를 뽑아서 모델들이 잘 예측한 케이스와 잘 예측을 못한 케이스를 뽑아보았습니다.

  • 잘 예측한 케이스 : 잘 예측한 케이스는 대부분 구어 형태의 커뮤니티에서 흔히 볼 수 있는 형태의 데이터들이었습니다.

  • 잘 예측하지 못한 케이스 : 잘 예측하지 못한 케이스는 대부분 문어체 형태의 데이터 이거나 정중한 형태이지만, 차별적인 표현이 섞여있는 케이스들이었습니다.

위 실험을 통하여 기존의 데이터 셋들은 커뮤니티 스타일이 아닌 텍스트들에 대해서는 잘 예측하지 못함을 보았고, 이를 APEACH 데이터에서는 이러한 텍스트들뿐만 아니라 다양한 스타일의 텍스트들을 평가 요소로써 활용할 수 있음을 확인할 수 있었습니다.

정량적(수치적) 분석

정성적 분석뿐만 아니라 실제 스코어 상으로도 영향을 미치는지 정량적 분석 또한 진행해 보았습니다. 각 언어 모델들 중, 사전학습(Pre-Training)에 사용한 데이터가 BEEP!과 비슷한 도메인(네이버 댓글)을 사용한 모델(=KcBERT)과, 상대적으로 다른 도메인의 데이터로 학습한 모델(SoongsilBERT)을 가지고 사용한 코퍼스와 BEEP! 혹은 APEACH와의 TF-IDF 스코어를 측정하여 그 차이를 재 보았습니다.

결과적으로, APEACH에서는 두 모델의 유사도의 차이가 작았고, BEEP!에서는 그에 반해서 차이가 큰 점을 발견할 수 있었습니다. 이는 APEACH가 사전학습에 사용한 데이터의 도메인에 덜 영향을 받는다고 해석해 볼 수 있습니다.

마치며

이번 연구를 통하여 평가 셋 만큼은 기존의 데이터가 생성하는 도메인, 스타일이나 혹은 더 나아가서 우리가 이번 연구에서 미처 발견하지 못했던 편향을 최대한 덜어낸 상태의 데이터로 평가할 수 있으면 좋겠다는 바람으로 데이터 셋을 공개하였습니다.

또, 문장에 대한 판단은 소수의 판단자가 텍스트를 판단하는 것이 아닌, 불특정 다수가 생각하는 여러 카테고리(소수자, 성별, 정치 등등)에 대한 혐오 표현을 직접 생성하게끔 함으로써, 판단하기 어렵고 비꼬는 형태의 표현들도 생성할 수 있기를 기대하였습니다.

이번에 진행한 연구가 비록 완벽한 프로세스는 아닐지라도, 이후에 고도화될 혐오 표현 연구에 좋은 참고 사례로 기여함으로써 사회와 커뮤니티에 기여하는 연구가 되었으면 좋겠습니다.



Appendix – 연구 허가 및 크라우드 소싱

  • 이 연구는 숭실대학교 IRB위원회로부터 심의 면제를 허가받은 연구입니다.
  • 크라우드 소싱 플랫폼은 Deep Natural AI를 사용하여 연구를 진행하였고, 이번 연구에 사용한 데이터는 모두 카카오의 서비스에 사용되는 데이터와는 전혀 무관한 데이터임을 밝힙니다.
  • 논문: https://arxiv.org/pdf/2202.12459.pdf

Latest Posts