Study/Data Centric

데이터 수집

김 도경 2025. 3. 6. 15:52

데이터 수집 방법 원시 데이터는 기본적으로 아래의 수집 방법들을 통해 수집이 됨

  • 직접 수집
  • 웹사이트로부터 크롤링
  • 오픈 소스 데이터 활용
  • 크라우드 소싱을 통한 데이터 수집

수집하고자 하는 데이터의 특성 및 환경에 따라 서로 다른 방식의 수집 방법이 필요함

따라서, 원하는 데이터를 구축하기 위해 둘 이상의 방식으로 원시 데이터를 수집할 수도 있음

 

기수집된 데이터의 활용

 

수집한 데이터의 양을 늘리는 방법 하나 이상의 방법으로 수집된 데이터를 아래의 방법을 통해 가공하여 양을 늘릴 수 있음

  • 데이터 혼합 (Data Blending)
    - 둘 이상의 소스에서 확보한 데이터를 합쳐서 하나로 사용하는 방법
    - 유사한 종류의 데이터를 합쳐서 하나의 더 큰 데이터로 만드는 방식
    - 여러 종류의 데이터를 합쳐서 새로운 문제에 맞는 데이터를 만드는 방식
  • 데이터 증강 (Data Augmentation)
    - 확보한 데이터를 변형(transform)하여 새로운 데이터를 생성하는 방법
    - 데이터의 도메인에 따라 그에 적합한 데이터 증강 기법들이 다름
  • 데이터 합성 (Data Synthesis)
    - 기존의 데이터를 활용하여 가상의 데이터를 새로이 생성하는 방법
    - 기학습된 딥러닝 모델을 활용하는 경우가 많아짐
직접 수집

 

- 본인을 포함한 주변인들로부터 쉽고 간단한 방법으로 데이터를 수집하는 방법
- 주변에서 흔히 접할 수 있는 기기를 이용한 수집이 가능

  • 이미지/영상 데이터 : 스마트폰, 카메라 등을 통해 찍은 사진, 스캐너를 통해 스캔된 문서 등
  • 텍스트/음성 데이터 : 워드 등을 통해 작성된 문서 파일, 녹음기를 통해 녹음한 음성 파일 등
  • 센서 데이터 : 스마트 워치를 통해 수집된 가속도 센서, GPS 등

직접 수집 방식의 한계 : 원시 데이터를 주변으로부터 직접 수집할 경우 아래와 같은 문제가 발생할 수 있음

  • 수량 ○ 딥러닝 모델을 학습하는 데에 충분한 양의 데이터를 확보하지 못할 수 있음
  • 품질 ○ 일정 수준 이상으로 복잡한 데이터를 수집하는 데에 한계가 있음 ○ 데이터를 수집할 수 있는 수단(기기 등)의 종류가 매우 적음
  • 편향 ○ 주변인이 모집단을 대표하지 못하므로, 데이터에도 편향이 생길 수 있음
  • 전문성 ○ 특정 기준을 만족하는 작업자들을 모집한 게 아니므로 전문성이 떨어질 수 있음
크롤링
  • 크롤링 (Crawling); 웹 크롤링(Web Crawling)
    - 인터넷에서 정보를 수집하기 위해 자동화된 방식으로 웹페이지를 탐색하는 과정
    - 마치 거미가 거미줄 위를 돌아다니는 것처럼, 인터넷 망을 돌아다니면서 정보를 수집한다는 의미를 지님 ‘스파이더링(spydering)’
    - 웹 크롤링을 위해 작성된 프로그램을 웹 크롤러(web crawler)라고 함

  • 크롤링의 프로세스
    - 크롤링의 전체적인 흐름은 아래와 같으며, HTML을 수집하고 정제하는 과정에서 발생하는 예외들에 대해 지속적으로 검토해야 함
    1. 웹사이트 구조 파악 : 크롤링할 웹사이트의 계층 구조, URL 패턴, 페이지 간의 관계 등을 파악
    2. 크롤링 도구 선택 : BeautifulSoup, Scrapy, Selenium 등의 파이썬 라이브러리 중 어떤 것을 사용할 것인지 결정
    3. URL 수집 : 크롤링할 웹사이트의 주요 페이지 URL을 수집하여 크롤링할 URL 목록을 구성
    4. HTTP 요청 및 다운로드 : 선택한 크롤링 도구로 대상 URL에 HTTP GET 요청을 보내고 HTML 소스코드를 다운로드
    5. 데이터 추출 : HTML 소스코드를 분석하여 필요한 데이터를 추출
          - 이때, CSS 선택자나 XPath를 사용하여 원하는 HTML 요소를 추출함
    6. 데이터 가공 : 추출한 데이터를 원하는 형태에 맞게 가공함
    7. 데이터 저장 : 가공된 데이터를 크롤링한 데이터를 로컬 파일 또는 데이터베이스에 저장
    8. 4 ~ 7번 과정을 반복

  • 크롤링 시 주의사항
    - 크롤링 전 주의사항
    ● 저작권 등의 권리 침해 여부 확인
    ● API 제공 여부 확인 예) YouTube : 구글에서 제공하는 YouTube Data API를 활용하여 빠르게 다양한 정보를 수집 가능

    - 크롤링 소스코드 작성 시 주의사항
    ● IP 차단 방지 : 지나치게 자주(빠르게) 크롤링할 경우 해당 웹사이트에 대한 공격으로 간주될 수 있음
                      - 이를 방지하기 위해 코드를 일정 시간 동안 일시정지시키는 time sleep 계열 함수를 활용

  • 도메인별 크롤링 수집하고자 하는 데이터의 도메인에 따라 크롤링이 활용되는 빈도가 다름
    - 이미지/영상 … 저작권, 보안, 용량 등의 이슈로 크롤링 하기 가장 어려운 데이터
    - 시계열 … 주식과 같은 데이터는 크롤링 방식으로 수집하는 것이 가장 효과적
    - 텍스트 … 최근 NLP 분야가 LLM 위주로 발전함에 따라 크롤링을 통한 대용량의 텍스트 수집이 흔히 이루어짐

  • 이미지/영상 데이터
    - 크롤링하기 매우 까다로운 데이터
    - 저작권 : 영리적 사용이 가능한 경우가 매우 드물며, 특히 Novel AI가 부상한 이후 상당히 민감한 주제가 됨
    - 보안 : 웹사이트 내에서 html을 통해 해당 파일에 직접 접근하지 못하는 경우가 상당수
    - 크기 : 크롤링을 통해 확보하기에는 각각의 샘플이 차지하는 용량이 큼

    따라서, 저작물에 해당하지 않는 경우나 해당 웹사이트로부터 직접적인 허가를 받은 경우 등에만 크롤링이 가능
    - 저작물에 해당하지 않는 경우 : 상품 사진, 저작권 보호기간을 지난 명화 사진 등
    - 저작물에는 해당하나 특정 조건 하에 허용되는 경우
        - 영화 포스터, 브랜드 로고 (비영리적 목적으로 복제권, 상표권 등을 침해하지 않게 사용하는 경우
        - 정부부처 로고 저작권법 제24조의2 (공공저작물의 자유이용)

  • 시계열 데이터 … 주식 데이터
    - 주식 데이터는 매일 실시간으로 정보가 누적되기 때문에, 오픈 데이터 등을 활용한 수집보다 크롤링 방식을 통해 최신 데이터를 주기적으로 수집하여 누적하는 방식이 효율적
    - 주가 예측 관련 연구들을 살펴보면 특정 벤치마크 데이터셋을 활용하는 방식이 아닌, 기존 연구에서 데이터를 수집 및 전처리한 방법을 재현하여 연구 성과를 비교함

    - 수집 주기 (대체로 일별 시가/종가/고가/저가/거래량을 사용)
    - 학습 및 테스트 데이터 분할 시점 (예. 2022년 12월 31일까지를 학습에 사용)
    - 전처리 방식 (예. 5, 20, 60, 120일 이동평균값을 사용)

  • 텍스트 데이터
    - 웹사이트에 존재하는 텍스트를 크롤링하여 사용하는 경우, 대개 그 특성이 명확하여 특정 태스크에 사용되는 경우가 많음 (LLM을 사전 학습하기 위해 대량의 텍스트를 크롤링하는 경우 제외)

  • HTML (Hyper Text Markup Language)
    - 웹페이지를 표현하기 위해 사용되는 대표적인 마크업 언어(markup language)
    - 아래와 같은 문법을 따르고 있으며, 태그(<>)를 통해 문서의 계층 구조를 표현함
    - 인터넷 브라우저에서 제공하고 있는 ‘개발자 모드’를 통해 확인 가능 (윈도우 : Ctrl + Shift + I / 맥 : Command + Option + I)

  • 파이썬 크롤링 라이브러리 
    - Requests : http 요청(request)을 주고 받기 위해 만들어진 라이브러리
    - BeautifulSoup : requests 등을 통해 받은 html 자료에서 데이터를 추출하는 데에 사용되는 라이브러리
    - Scrapy : 크롤링을 위해 만들어진 프레임워크로, 다양한 기능 및 플러그인을 지원하는 라이브러리
    - Selenium : 웹 자동화 테스트용 도구로, JavaScript를 렌더링하고 동적 페이지를 스크랩할 때 유용한 라이브러리
    - PyQuery : jQuery와 유사한 구문을 사용하여 웹 페이지에서 데이터를 추출하는 파이썬 라이브러리
오픈 소스

 

  • 오픈 소스 소프트웨어 : 누구나 특별한 제한 없이 코드를 보고 사용할 수 있는 오픈 소스 라이선스를 만족하는 소프트웨어
  • 오픈 소스 데이터 :오픈 소스 소프트웨어처럼, 누구나 특별한 제한 없이 접근 및 이용이 가능한 데이터/데이터셋

  • 오픈 소스 데이터의 필요성
    - [ 데이터를 활용하는 입장 ] : 데이터 수집 방법 중 오픈 소스 데이터를 사용하는 것이 가장 쉽고 빠른 방법
          - 다운로드 버튼을 누르기만 하면 바로 사용할 수 있음
          - 사용에 대한 제약이 매우 적은 편
          - 수많은 데이터셋이 이미 공개되어 있음 (ex. Kaggle : 25만 개 이상 (23.09.14 기준))
    - 연구된 모델 간 성능을 비교하기 적합함 : 대부분의 연구는 오픈 소스 데이터를 벤치마크(benchmark)로 활용하고 있음

    [ 데이터를 구축하는 입장 ]
    - 이미 존재하는 오픈 데이터셋을 그 자체로 활용하거나 수집된 방식을 참고함으로써, 자신의 목적에 맞는 데이터를 보다 쉽고 효율적으로 구축할 수 있음

  • 오픈 소스 데이터 플랫폼 (국내)
    - 통계데이터 개방
          - (2007) 국가통계포털(KOSIS, KOrean Statistical Information Service) 홈페이지 오픈
          - (2016) 행정자료이용센터 오픈 → (2020) 통계데이터센터로 명칭 변경

    - 공공데이터 개방
          - (2011) 국가공유자원포털 오픈 → (2013) 공공데이터포털로 명칭 변경
          - (2012~) 서울 열린데이터광장, 식품안전나라 등 다양한 국가기관에서 공공데이터 홈페이지 오픈

    - AI 인프라 구축
          - (2018) AI 허브 홈페이지 오픈
          - (2019~) 매년 인공지능 데이터 구축 사업 진행

  • 오픈 소스 데이터 플랫폼 (해외)
    - Kaggle
          - 데이터 과학 및 머신러닝 관련 대회(competition) 플랫폼
          - 다양한 오픈 소스 데이터셋과 경진 대회를 확인할 수 있으며, 사용자들이 Kaggle 내에서 작성한 노트북도 확인 가능함
    - PapersWithCode
          - 연구 논문과 그에 따른 코드를 함께 제공하는 플랫폼으로, 최신 머신러닝 모델 및 데이터셋에 관한 정보를 확인 가능
    - UCI ML Repo
          - UCI 대학에서 호스팅하는 머신러닝 관련 데이터 저장소로, 전통 머신러닝과 관련한 데이터셋을 한 번에 확인할 수 있음
    - 국가별 공공데이터 포털

 

크라우드소싱
  • 크라우드소싱 (Crowdsourcing) 기업
    - 활동의 일부 과정에서 일반 대중을 참여시키는 것 ⇒ 인공지능 데이터를 구축하는 과정에서 데이터를 수집하거나 라벨링할 때 일반 대중을 작업자로 활용
  • 크라우드 워커 (Crowd Worker)
    - 기업의 업무 용역을 대행 수행하고 그에 상응하는 일정 대가를 받는 일반인 작업자
    - 집 혹은 재택근무 등의 형태로도 업무 수행이 가능하며, 자유롭게 할당된 과제물을 수행하는 경우가 많음

  • 크라우드소싱 프로세스 예시
    - 크라우드웍스
    - 셀렉트스타

  • 국내 크라우드소싱 업체 목록
    - 딥네츄럴 (DeepNatural) 
    - 셀렉스타(SELECTSTAR)
    - 크라우드웍스(Crowdworks)
    - 텍스트넷(TEXTNET)

  • 해외 크라우드소싱 업체 목록
    - Amazon Mechanical Turk (MTurk) @ 미국 
    - Appen Limited @ 호주
    - Clickworker GmbH @ 독일
    - Figure Eight Inc @ 미국
    - Lionbridge AI @ 미국
    - Sama AI @ 미국
    - Scale AI @ 미국

'Study > Data Centric' 카테고리의 다른 글

데이터 수집시 주의사항  (3) 2025.03.06
데이터 구축 기획서  (0) 2025.03.06
데이터 구축 프로세스  (0) 2025.02.18
Data-Centric AI의 미래  (1) 2025.02.18
Data-Centric AI가 산업에 미친 영향  (1) 2025.02.18