교육 소개
home
DEEP DIVE 소개
home

가짜 뉴스 탐지 AI

5 more properties

배경(Problem)

정보화 사회에서 뉴스는 하나의 가장 중요한 정보 중 하나입니다.
단순히 뉴스 조회수를 높히기 위한 기사 혹은 사실과는 다른 내용으로 작성된 기사는 사용자로 하여금 혼란을 야기하고 더 나아가 경제적, 사회적 피해를 입히는 사례 또한 발생했습니다. 이에 뉴스의 내용이 사실인지 판단하는 것은 매우 중요한 일이 되었으나, 아직은 그 방식이 어려워 가짜 뉴스를 판독하지 못한 채 거짓 내용을 진실로 받아들이는 사용자가 많아지는 추세입니다.
이 프로젝트를 통해 뉴스 기사 중 가짜 뉴스를 판독하는 AI를 개발하여 사용자로 하여금 조금 더 질 높고 믿을 수 있는 뉴스 기사를 제공하고자 합니다.

서비스 소개(Solution)

(시연 영상 및 링크를 달기 어려워 글로 남깁니다.) 저희 서비스 자체는 굉장히 간단합니다. 먼저 사용자는 두가지 방식으로 접근이 가능합니다. 바로 홈페이지와 카카오톡 채팅봇입니다.
두 방식 다 탐지를 원하는 가짜뉴스의 url을 입력받습니다. 입력받은 url을 통해 해당 기사의 제목과 본문을 서버가 크롤링하고 크롤링 된 내용을 ai 서버에서 판단하여 해당 기사의 내용이 사실인지 거짓인지, 또 ai가 판단한 결과가 몇 % 확률로 맞는 결과인지에 대해 사용자에게 보여줍니다.

아키텍처 및 핵심 기능

저희 프로젝트의 서비스 기획도 입니다.

활용 라이브러리 및 개발 환경

크롤링 : beutifulsoup / 서버 : Flask, MDB, 구름ide(환경) / DB : Mysql / AI : Python, KoNLPy / 서비스 : 구름 ide, 카카오톡 오픈챗

트러블 슈팅

AI 관련 프로젝트가 기간이 한 달 남짓인 경우 사실 새로운 모델을 만드는 것은 불가능하다고 생각합니다. 이에 저희 팀은 학습할 데이터의 질에 신경 썼으며, 학습에 필요한 tokenizer와 모델의 성능 비교에 힘썼습니다.
우선 데이터 수집 같은 경우, SNU팩트체크 사이트와 Kaggle을 이용하였습니다. SNU 팩트체크 사이트는 서울대 언론정보 연구소에서 운영하는 사이트로써 어느 기사에 대해 다수 언론사가 참여해 교차 검증을 실시하여 해당 기사의 참 거짓 정도를 기재하는 서비스를 하고 있습니다.
이 사이트에서 판단이 보류된 기사는 제외하고 약 3372개의 기사를 크롤링하였습니다. 두번째로는 Kaggle에서 가짜뉴스에 대한 기사를 얻었습니다. Kaggle은 세계 최대의 데이터 과학 커뮤니티로 믿을 수 있는 데이터를 얻을 수 있으며 저희가 얻은 데이터는 Kaggle내 usability점수 10.0, 최근 90일 발행 데이터 중 사용 빈도 1위로 충분히 신뢰도 있는 데이터라고 판단했습니다. 다만 영어로 이루어진 데이터여서 구글 Translation API를 활용해 한국어로 번역하는 과정을 거쳤습니다.
다음은 NLP에서 모델에 데이터를 학습하기 전 전처리 과정인 tokenizer의 성능 비교 였습니다. 저희는 okt, mecab, hannanum, bareun 4가지의 tokenizer를 성능 비교했으며 okt가 성능과 사용 편리함 면에서 선택되었습니다.
마지막으로 모델 선정에 있어 loss와 acc를 비교하며 진행했습니다. 최종적으로 KcBERT, KoBERT, KcELECTRA 3가지 모델에 대해 성능을 비교했으며 KcELECTRA를 채택했습니다.
이 후 성능 개선에 대해 새로운 방안으로 CNN 기법을 적용했습니다. 최종적으로 저희는 약 74,909개의 데이터로 Okt 토크나이저로 전처리 진행 후 CNN + KcELECTRA 모델에 학습을 진행했으며 원하는 수준의 accuracy를 확인하였습니다.

팀 소개

손재혁(팀장) : 프로젝트 총괄 및 발표 제반 자료 조사. 자연어 모델 검토 및 제반 자료 조사 김인배 : 자연어 모델 검토, 데이터 셋 조사 및 모델링 성능 평가 박준모 : 자연어 모델 검토, 웹 서비스 기획 및 AI/구동 서버 개발 김윤지 : 자연어 모델 검토, 카카오 채널 서비스 기획 및 개발