산학협력 프로젝트, 광고 차단 오토로 돌리기

2023. 6. 28. 15:47광고차단 머신러닝

728x90

1. 오늘의 주제

이번에 진행한 프로젝트는 산학협력 프로젝트입니다!

주제는 '기계 학습을 통한 광고 사이트 자동 차단 프로그램' 입니다.

 

이미 광고 사이트 차단해주는 프로그램 있지 않아요?
AdGuard 라던지...

맞습니다! 사실 저도 이미 잘 사용하고 있는 프로그램이죠.

프로젝트를 하기 전, Project ISL 을 진행하며 구글링을 하다 보니

어쩌다 광고 사이트를 방문하게 되었습니다! AdGuard 이 켜져있었음에도 불구하고!

이걸 누르면?
뜬금 알리 익스프레스...?

AdGuard 가 켜져있었음에도 막아지지 않는 광고사이트...

AdGuard 는 분명 훌륭한 프로그램이 틀림 없습니다. 

크롬 익스텐션 스토어에서 저 숫자의 사용자와 최고의 평점을 지닌 익스텐션은

전체 비율로 따져본다면 결코 많지 않죠.

하지만 이러한 AdGuard 가 막지 못한다고...?

도대체 왜 못 막지 라는 생각을 하다 AdGuard 공식 홈페이지 까지 방문을 했습니다.

 

How ad blocking works | AdGuard Knowledge Base

AdGuard has many ad-blocking products for various platforms, and each product has its own unique features. But what unites them all is that they block ads and trackers. This article describes how ad blocking works from the inside.

adguard.com

이곳에는 AdGuard 가 광고 사이트들을 차단하는 방법에 대해 나와 있는 데,

광고차단 프로그램은 사용자와 개발자들이 만든 규칙 목록(필터) 통해

요청을 차단하거나 페이지의 구조를 수정함으로써 광고와 추적을 차단하게 됩니다.

그리고 AdGuard 는 EasyList 와 같은 오래됨과 동시에 유효함을 입증받은 여러 필터와

자체적으로 제작한 필터를 이용해 광고 사이트를 검열하게 됩니다.

 

이때 여기서 얘기하는 필터는 특정 구문으로 작성된 규칙들의 목록으로,

광고 차단 프로그램이 이해하고 트래픽에서

특정 요소를 차단하거나 페이지를 변경하는 사용합니다.

 

그리고 이러한 규칙들은 

 

AdGuard filters | AdGuard Knowledge Base

This article is about the filters that we develop and that come pre-installed in AdGuard. To check them out, you can download the AdGuard app

adguard.com

이곳에 들어가면 명시가 되어 있습니다.

 

명시가 되어 있기 때문에 광고 사이트주들은

이 규칙들을 보며 매번 새롭게 광고 사이트들을 만들어내고,

AdGuard 는 계속해서 필터링 규칙들을 업데이트 해나가야 하는 구조이죠. 

고치고, 우회하고, 고치고, 우회하고, ....

저는 이게 굉장히 비효율적이라 생각이 들었습니다.

 

분명히 광고 사이트들을 보다 보면
인간인 나의 눈에는 딱 잘라 말 못할 특징이 있는 데...?

 

그러다가 생각한 해결책은 딥러닝이었습니다.

모든 광고 사이트들을 일일히 찾아가며 하기 보다는

AI 모델을 학습시켜 앞으로는 인간이 가르치지 않아도
알아서 잘 잡아내는 모델을 개발할 수는 없을까?

 

라는 의문을 풀어내기 위해 프로젝트를 시작했습니다.

2. 프로젝트의 구조

프로젝트 전반 논리 흐름

프로젝트의 전반적 흐름은 이렇습니다.

 

Google 트렌드

Google 트렌드에서 시간, 위치, 인기도순으로 검색 관심도 탐색

trends.google.co.kr

구글 트렌드에서는

구글 트렌드 엑셀 파일 다운

최근 엑셀 파일들을 다운 받을 수 있도록 지원을 해줍니다.

 

1. 위 키워드들을 조합해서 키워드 셋으로 조합

2. 구글링을 해 url 들을 수집

3-1. url 들에 대해 쿼리를 날려 HTML 문서 저장
3-2.초기 데이터셋의 라벨링을 위해 url 에 직접 접속해 광고 사이트인지 판단, 라벨링

4-1. 문서의 존재하는 자연어들만 추출해서 내부적 특징으로 학습

4-2. 전반적인 HTML 구조의 특징으로 학습

이렇게가 프로젝트의 진행사항입니다!

3. 현재 프로젝트 진척도 (6/28 기준)

현재 진척도

현재는 HTML 문서들을 저장 후 라벨링까지 되었습니다.

오늘 자연어들을 추출하고, 이를 기반으로 해서 학습시키고 있는 데

데이터 양도 많고 여러번 학습을 돌려보고 있는 중이라

구체적은 코드들은 다음 포스팅부터 보여드리도록 하겠습니다!

마무리

언제나 피드백은 환영입니다!

좋아요도 부탁드려요!

728x90