프로젝트 개요
- 연세대학교 데이터 사이언스 랩 21-1 모델링 프로젝트
- 기간: 2021년 2월 ~ 2021년 3월
- 팀원: 네명
- 협업 툴: 구글닥스, 깃
- 사용한 Tech stack: Python3, Selemium, BeautifulSoup, BERT, KoBERT, Colab, Jupyter Notebook, Git
왜 내가 모르는 가수가 멜론 차트 1위를 하는걸까?
음원 사재기란, 브로커에게 일정 금액의 돈을 지불한 뒤, 특정 가수의 특정 음원을 연속 재생하여 음악 순위 목록 및 실시간 스트리밍 순위 등을 조작하는 행위입니다. 스트리밍 서비스 사용자의 이용료가 듣는 음원의 아티스트에게 돌아가지 않는다는 점, 차트 형평성에 있어 큰 문제로 화두되었습니다. 이어 2019년 가을 가수 박0씨의 트위터 글과 2020년 1월 그것이 알고싶다의 음원 사재기 폭로로 본격적인 수사 착수에 들어섰고, 현재까지도 음원 사재기 현상의 존재 여부에 대한 논란은 계속되고 있습니다.
저희는 음원 사재기 의혹이 가장 컸던 국내 최대 규모의 스트리밍 사이트인 멜론의 곡 리뷰 분석을 통해 곡의 사재기 여부를 판단하는 모델을 만들어보기로 하였습니다. 양방향 문장 정보를 활용하는 언어 이해 모델인 BERT와 KoBERT를 사용하여 분석을 진행했습니다.
해당 프로젝트는 딥러닝 모델 학습에 의한 결과 제시 및 모델의 정확도 비교분석의 목적을 가지고 있으며, 언급된 가수와 곡들에 대한 사재기 단언이 아님을 강조합니다.
데이터 수집 및 전처리
Training Data: 꾸준히 논란이 되었던 사재기 의혹 가수 5인의 멜론 앨범 리뷰 데이터 2000개 + 사재기 의혹이 없는 가수 4인의 멜론 앨범 리뷰 데이터 2000개를 추천순으로 크롤링하여 각 리뷰들이 사재기 의혹을 제기한다면 1, 사재기에 무관한 리뷰/사재기가 아니라고 말하는 리뷰를 0으로 라벨링하였습니다. 트레이닝의 정확도를 높이기 위해 리뷰 데이터에 한해 초성치환(ㄴㄱ -> 누구, ㄹㅇ -> 진짜 등), 이모티콘 삭제, 스팸성/도배성 리뷰 제거, 리뷰 길이 제한 등의 전처리 과정을 거쳤습니다.
Test Data: 멜론 2019년 연간차트의 1~20위 곡의 각 100개 리뷰를 크롤링 하여 훈련시킨 BERT, KoBERT 모델을 적용시켜 사재기 판별을 진행했습니다. Training Data에서 거친 전처리 과정을 동일하게 진행했습니다. 곡 당 1로 레이블링 된 리뷰의 수가 50개 이상이면 사재기로 판단하였습니다.
BERT란?
모델링
BERT와 KoBERT에 대해 다양한 데이터 인풋과 하이퍼 파라미터 조정으로 Accuracy를 최대화 시키는 작업을 진행했습니다. 학습 결과, 한국어 모델링에 최적화 된 KoBERT가 전반적으로 Multilingual BERT보다 뛰어난 정확도를 냈습니다.
결과
Test Data에 대한 BERT(multilingual)와 KoBERT의 학습 결과를 비교해보았습니다.
- 노란색 박스: KoBERT가 BERT 보다 정확한 판단을 한 곡
- 빨간 박스: 사재기 의혹이 있었기에 BERT, KoBERT 모두 0.5에 가까운 수치를 기록
- 초록색 박스: 사재기 의혹이 가장 컸던 곡들이기에 BERT, KoBERT 모두 높은 수치를 기록
*해당 도표는 개인적인 분석에 의한 결과 제시 및 모델의 정확도 비교분석의 목적을 가지고 있으며, 언급된 가수와 곡들에 대한 사재기 단언이 아님을 강조합니다.
피드백 & 개선할 점
Ups
- 흥미로운 주제 설정 + 자연어 처리를 통해 실용적인 툴을 만들어내는 과정이 흥미로움
- 다양한 모델 적용 및 성능 비교
- 다양한 데이터 전처리를 통해 모델들의 성능을 비교한 점
- 워드클라우드 제시를 통해 시각화한 점
- 깔끔한 딜리버리 및 시각화
Downs
- Train data의 Bias 가능성 - 직접 리뷰들을 라벨링 했다는 점에서 객관성이 떨어질 수 있다.
- 이미 사재기 논란이 제기된 시점에서 작성된 댓글을 사용하다보니 편향된 대중의 생각이 반영되었을 수도 있다.
- 곡을 사재기로 판단하는데에 있어 리뷰 말고도 더 다양한 지표들을 사용했으면 객관성을 개선할 수 있을 것 같다.
'Projects' 카테고리의 다른 글
[python] Leetcode 알고리즘 문제 아카이빙 프로그램 (0) | 2021.12.29 |
---|---|
[EDA Project] 제주도 재난지원금 EDA 프로젝트 (0) | 2021.03.13 |