본문 바로가기

AI 기반의 가짜뉴스 판별 서비스

  • 심국보
  • 인천대학교
  • 작품구분일반형
  • 공개여부비공개
  • 카테고리정보, 웹/앱, 생활
  • 등록일2021-11-26
  • 팀원(공동개발자)이승호, 정준호, 이정민, 오지민
  • 출품 경진대회2021년-2학기 산학 캡스톤디자인 경진대회(학생팀 & 멘토 모집)

상세설명

1. 수행배경

  • 한 통계에 따르면,‘가짜 뉴스’에 대해 조사한 결과 한국의 경우 85%의 국민이 가짜뉴스에 속은 경험이 있는 것으로 나타났으며, 특히 최근 코로나 19에 대한 가짜뉴스로 인해 심각한 사회적, 경제적, 심지어 인명피해까지 발생.
  • 영어 기반의 팩트체크 서비스는 다양하게 구현되어 있지만, 한국어를 기반으로 한 팩트체크 서비스는 비기술적(사람이 직접 검증하는 방식) 서비스가 다수.

  • 정형화된 뉴스 기사가 아닌 SNS(카카오톡, 페이스북 등)를 통해 유포되는 비정형적인 가짜뉴스, 가짜정보들을 검증하는 서비스는 없음.

2. 수행기간

  • 2021.3 ~ 2021.11

3. 개발작품 설명

  • 1. 과제내용

     

    딥러닝 기법이 적용된 자연어 처리 알고리즘을 활용하여 가짜 뉴스, 가짜 정보 판독 서비스를 개발한다.

     

    개발 환경

     

    - 본 서비스를 개발하기 위한 주요 IDE로는 파이썬(Python) 3.8을 사용하기 위한 Pycharm 및 Anaconda를 활용하며, 가짜 뉴스 및 기사에 대한 데이터베이스 구축을 위해 AWS의 S3와 RDS를 활용한다. 또한 사용자의 편의성을 최대한으로 높이기 위해, 본 서비스의 형태는 안드로이드 어플리케이션을 채택하며, 이에 따라 Android Studio를 활용한다.

    본 어플리케이션은 사용자가 의문을 갖는 카카오톡 가짜 정보 및 기사를 텍스트 형식으로 입력(Input)을 받는다.

     

     

    사용 알고리즘

     

    - 토픽 모델링 : 토픽 모델링(Topic Modeling)은 기계 학습 및 자연어 처리 분야에서 토픽이라는 문서 집합의 추상적인 주제를 발견하기 위한 통계적 모델 중 하나로, 텍스트 본문의 숨겨진 의미 구조를 발견하기 위해 사용되는 텍스트 마이닝 기법이다. 각 문서에 포함된 용어의 빈도수에 기반하여 유사 문사를 그룹화한 뒤 각 그룹을 대표하는 주요 용어들을 추출함으로써 해당 그룹의 토픽 키워드 집합을 제시하는 방식으로 이루어지며 이 때 사용되는 문서는 문서, 제목, 요약, 본문, 댓글 등을 포함하는 넓은 개념을 의미한다. 본 연구에서는 TF-IDF 알고리즘으로 토픽 모델링을 수행하여 관련 뉴스 데이터를 조회하고, 핵심 키워드를 추출하였다.

     

    -Bi-LSTM : 게이트 기법을 통해 순환 신경 회로망(RNN)의 한계를 극복한 모델인 LSTM을 순방향 뿐 아니라 역방향의 결과를 함께 이용하는 모델이다. 문맥(Context)을 기반으로 하는 연관성 분석에 유리하여 속도를 고려한 다양한 NLP 문제에 널리 활용되고 있다.

    본 서비스는 한글 형태의 카카오톡 가짜 정보와 가짜 뉴스로 알려진 언론사의 기사들을 수집하여 CSV 파일 형식의 DB를 구축하고, 해당 데이터에 대하여 형태소 분석 및 토픽 모델링을 수행한 후  Bi-LSTM 알고리즘 을 활용하여 패턴 분석을 통한 가짜 뉴스의 패턴 정보 추출 및 저장을 수행한다. 또한 AWS를 활용하여 카카오톡 가짜 정보 및 가짜 뉴스 데이터 수집을 자동화하여, 지속적으로 생성되는 새로운 내용의 카카오톡 가짜 정보 및 가짜 뉴스에 대한 신뢰도를 수치로 나타냄으로써, 가짜 정보 및 가짜 뉴스로 인한 개인의 정신적 피해, 금전적 피해 및 집단의 경제적 피해, 사회적 피해를 예방한다.

     

     

    데이터 수집

     

    - 뉴스 데이터의 경우 공신력이 있다고 판단되는 ‘SNU FactCheck’ 사이트를 중점으로 가짜 뉴스 혹은 진짜 뉴스로 판별된 뉴스기사를 수집하였고, 가짜 뉴스 판별 정확도를 향상시키기 위해 진짜, 가짜 뉴스에 대한 네이버 뉴스 댓글을 수집하여 학습 데이터로 사용한다. 카카오톡의 경우 유포되고 있는 가짜 뉴스의 객관성 정도를 판별하기 위해 15만건의 리뷰 데이터를 수집하여 학습 데이터로 사용한다.

     

     

    데이터 전처리(Data preprocessing)

     

    - 데이터를 딥러닝 모델에 학습시키기 위해 전처리하는 과정이다. 수집한 팩트 체크 데이터의 진짜, 가짜뉴스 비율이 20:80으로 데이터 불균형 문제가 발생하여 진짜 뉴스의 비율을 가짜뉴스의 비율에 맞춰주는 over sampling을 진행하였지만, 오버피팅의 문제가 있어 예측결과에 민감한 가짜뉴스 판별 시스템에 부적합하다고 판단되어 가짜뉴스의 비율을 진짜 뉴스의 비율에 맞춰주는 under sampling 작업을 진행한다.

     

     

     

     

    - 기사 또는 카카오톡 텍스트 처리에 있어서 한글의 경우, 조사, 문장기호, 접두사 및 외국어를 제외시켜주어야 한다. 이를 진행하기 위해서 Text를 여러 개의 Token 즉 문장을 단어로 나누는 작업인 Tokenizer 처리를 한다. 불필요한 문자가 제거되었으면 딥러닝 모델에 학습할 수 있는 데이터 형태로 가공하는 단계로 넘어간다.

     

    - 딥러닝 모델이 training 할 때 입력 값으로 주어지는 학습 데이터는 모든 값이 숫자 형태이고, 일정한 크기(column 개수 동일)를 만족해야 한다. 따라서 수집한 팩트체크 뉴스 데이터를 불러와 Tokenizing 및 형태소 분석을 한 후, tokenizer라이브러리의 texts_to_sequences 함수로 텍스트를 숫자로 변환하고 pad_sequence 함수로 정해놓은 일정 크기만큼에서 부족한 부분을 0으로 채우는 padding 작업을 실행하여 전처리를 완료한다. 

     

    모델 학습(Model training)

     

    - 머신러닝 프레임워크인 tensorflow의 high level api인 keras를 사용한다. keras의 Sequential 함수로 Embedding층, Dense층, Bi-LSTM층을 쌓아 Bi-LSTM 딥러닝 모델을 구성한다. Embedding층을 은닉층으로 쌓은 이유는 현재 수집한 뉴스 데이터가 매우 부족하여 워드 임베딩을 진행하였을 때 적절한 성능을 내기 어렵기 때문이다. 따라서 FastText로 위키피디아의 방대한 코퍼스(corpus)를 사전 훈련한 워드 임베딩을 Embedding층으로 쌓아 성능을 향상시켰다.

     

     

    손실함수는 'binary crossentropy', optimizer는 ‘adam’을 사용하여 전처리한 학습데이터로 모델을 학습한다.

     

     

     

     

    카테고리 분류

     

    - 기존 모델의 경우 가짜뉴스를 판별하기에 정확도가 부족하다고 판단하여 전체 뉴스 데이터를 정치, 경제, 사회, 기타 각 카테고리별로 분류하여 학습데이터를 재구성하였습니다. 카테고리 별 학습데이터를 각각 새로운 딥러닝 모델에 학습시켰고, 이렇게 학습된 모델은 각 분야의 가짜뉴스에 대해 기존 모델 대비 정확도가 평균 5% 정도 향상되었다.

     

     

     

    네이버 댓글 학습

     

    - 카테고리 별로 학습 데이터를 분류하여 모델의 성능을 향상 시켰지만, 근본적으로 현재 국내 팩트체크 된 뉴스의 수가 매우 부족하고, 뉴스 데이터만으로는 새로운 뉴스를 판별하기 어렵기 때문에 뉴스 데이터 분석에 더하여 해당 뉴스에 대한 네이버 댓글 반응을 분석하여 기존 가짜 뉴스 판별 모델을 보완하였다. 

     

     

     

    모델 성능 비교

     

    - 다음은 전체 뉴스데이터와 비교하여 카테고리를 세분화 하였을 때, 네이버 댓글을 추가 학습 하였을 때의 모델 성능을 비교한 그래프다. 경제 분야의 경우 뉴스 데이터 중 매우 적은 비율을 차지하기 때문에 딥러닝 모델이 충분히 학습하지 못하여 전체 데이터의 성능이 우수한 것으로 나타났지만, 뉴스 데이터 중 가장 많은 비율을 차지하는 사회, 기타 분야의 경우 모델의 성능이 향상된 것을 볼 수 있다.

     

     

     

     

    카카오톡 가짜뉴스 객관성 판별

     

    - 카카오톡과 같은 SNS에서 유포되는 가짜뉴스들은 인터넷 기사와 달리 주관적이고 감정적인 경향이 있다. 따라서 카카오톡 가짜뉴스를 분석할 때 전의 뉴스 기사 분석에 더하여 15만 건의 리뷰데이터로 학습한 딥러닝 모델로 객관성 정도를 분석하는 작업을 추가로 진행하였다.

     

     

     

    프로세스 효율성 개선

     

    - 하나의 가짜뉴스를 분석하기 위해 실행되는 딥러닝 모델이 많아지면서 웹 서버에 과도한 시간이 소요되는 문제가 발생하였다. 이러한 프로세스의 효율성을 개선하고자 새로운 환경에서 일정 시간마다 자동으로 사용자가 검색한 가짜뉴스 데이터를 분석하여 데이터베이스에 결과를 저장하고, 웹 서버에서 데이터베이스에 저장되어 있는 가짜뉴스 분석 결과를 조회하는 방식을 사용하여 요청 처리시간을 0.01초 단위까지 줄일 수 있었다.

     

     

     

     

4. 활용방안

  • - 사용자 측면 : 왜곡되고 과장된 정보 및 가짜 뉴스로 인해 발생할 수 있는 불필요한 사회적 비용을 줄이고, 세대 간의 갈등으로 인한 정신적 피해 또는 가짜 정보로 인해 발생할 수 있는 금전적, 건강상의 피해 등을 줄일 수 있음.

     

    - 비즈니스 측면 : 본 어플리케이션을 통해 기사 신뢰도가 높게 측정된 언론사는 상대적으로 많은 방문자수(트래픽)을 만들어 잠재적 수익 확보가 가능하므로 향후 B2B 사업 모델 수립 가능성 제시. 위와 같은 비즈니스 모델 수립이 가능하다면, 언론사들은 본 어플리케이션 및 웹사이트에 더 정확한 뉴스 및 팩트체크 정보를 제공하기 위해 노력할 것이며, 이로 인해 건강한 언론 문화 형성 가능.

     

    - 개발자 측면 : 해외에 비해 수집하기 어려운 한국 가짜뉴스 데이터를 본 웹사이트 DB 서비스로 쉽게 접근하여 활용할 수 있음. 인공지능 모델에 바로 사용할 수 있도록 전처리한 데이터 또한 제공하여 개발 편의성 향상.

     

    ㅇ 기대효과

     

    ⦿ 신뢰(Reliability)

     - 일상 생활에서 쉽게 노출되는 여러 가짜뉴스(민간요법, 경제정보, 정치뉴스)를 판독하고, 이에 대한 관련 정보를 쉽게 찾는 시스템을 구축해, 진위여부를 알 수 없는 데이터가 넘치는 현대 사회에서 뉴스에 대한 신뢰도 확보.

     

     - 팩트체크의 정확도 표시 기능 등과 같은 수치와 관련 뉴스를 통하여 뉴스에 대한 객관적 정보를 사용자가 직접 확인하여 어플리케이션의 신뢰도 확보.

     

    ⦿ 개선(Improvement)

     - 글로벌 조사 전문기관인 입소스에서 전세계 25개국을 대상으로 ‘가짜 뉴스’에 대해 조사한 결과, 한국의 경우 85%의 국민이 가짜 뉴스에 속은 경험이 있는 것으로 나타남. 본 어플리케이션을 활용함으로써, 가짜 뉴스로 인한 신뢰도가 떨어지는 인터넷 문화 개선.

     

    ⦿ 예방(Prevention)

     - 장. 노년층이 접하는 잘못되고 과장된 정보와 가짜 뉴스로 인해 발생하는 재정적인 문제, 우울증 등과 같은 정신적, 금전적 피해 예방.

     

    ⦿ 차별성(Differentiation)

    - 알리오올리오(본 애플리케이션) : 딥러닝 기반의 가짜뉴스 판별 서비스

    - SNU 팩트체크 : 기자 또는 전문가가 교차 검증한 가짜뉴스 판별 웹 서비스

    - 팩트체크넷 : 전문가 또는 시민이 참여하는 가짜뉴스 판별 웹 서비스

    - Fight Fake News Nokiye : 텍스트 입력 시 키워드를 기반으로 관련 팩트체크 기사를 출력하는 애플리케이션

소개 영상

소개 슬라이드

기타자료

댓글