호돌찌의 AI 연구소
article thumbnail

 

보통 Feature는 많이 ML을 하면서 많이 듣게 되지만, Feature Store라는 단어는 생소합니다. 하지만 해외에서 이미 Product 된 것들을 살펴보면 Feature들을 표준화하면서 잘 관리를 하여 성공한 사례들이 있다고 합니다. 이번 글은 우선 우리가 아는 Feature들과 Engineering, Pipeline에 대한 글을 작성하고자 합니다.

 

1. Feature의 정의

Feature는 주 목표로 하는 현상에 대해 개별적으로 측정이 가능한 속성 또는 특징 같은 것을 말합니다. ML model의 input 값입니다. 요약하면 아래 그림과 같습니다. 

 

아래 그림처럼 네비게이션을 예시로 들겠습니다. 보통 최적 경로나 최소 시간 경로 관점에서 길을 알려줍니다. 하지만 운전자 정보, 지도 데이터, 주유소/식당 등의 상점 정보, 통행료, 주행 이력, 무료/유료 도로, 요일별 차이 등 다양한 Feature에 따라서 경로를 추천해줄 수 있습니다. 

 

2. Feature Vector이란?

원본 Raw data를 Feature Engineering을 통해 가공하여 모델이 사용할 수 있는 Feature Vector로 변환합니다. 그 예시는 아래 그림과 같습니다. 이런 범주형 값들이나 숫자 배열을 모델이 알아먹게 바꾸어주어야 합니다. 

 

보통 Feature 들은 여러 DB에 있는 테이블들을 불러와 가공하여 만들어지게 됩니다. Key에 맞게끔 Feature들을 join하여 학습에 맞는 데이터로 만들며, 여기 과정에서 굉장한 공수가 들어가게 됩니다.

 

 

이제 위 그림에서 만든 모델 학습에 들어가기 일보 직전인 테이블로 만들 수 있는 로직이 구성이 되었고, 모델이 완성되었다고 생각해보겠습니다. 이러한 모델을 가지고 새로운 고객이 장바구니에 담은 경우 실제 구매를 할 가능성을 예측이 가능합니다. 하지만 이 기존 ID가 아닌 새로운 고객인 경우 여러 Feature들을 활용을 하여야 합니다. 

 

 

 

 

 

3. ML Pipeline

devops는 쉽게 말하면 개발 과정의 자동화를 뜻합니다. 그림으로는 아래처럼 쉽게 표현이 가능합니다.

 

ML Pipeline에서도 DevOps에서의 code 변경과 같이 데이터나 모델 변경시에 자동화된 Pipeline을 반드시 구축해야 합니다. (예전부터 많이 적었던 글들)

 

회사마다 다르지만, ML Pipeline의 기능에 따라 data Engineer, Data Scientist, ML Engineer 모두 수행하는 R&R이 상이합니다. 

 

위 그림을 기준으로 설명을 하면, 데이터 엔지니어들이 생성하는 Feature들은 각각 다른 대기 시간으로 실행이 됩니다. 

 

그러나 같은 데이터를 두고도 데이터 엔지니어들은 데이터베이스, 숫자형식, 데이터 구조, 문자 형식, Binary, Encoding, 숫자들의 배열 등 각기 다른 관점으로 Feature Engineer를 수행하기 때문에 일정한 Feature Pipeline들이 필요합니다. 따라서 이러한 Feature들을 잘 관리화고 Pipeline화 하게 해주는 오픈 소스 Tool에 대해서 다음 글부터 논의하겠습니다. 

 

 

 


https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

 

 

 

 


profile

호돌찌의 AI 연구소

@hotorch's AI Labs

포스팅이 도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!