brunch

You can make anything
by writing

C.S.Lewis

by 카카오스타일 Aug 31. 2022

좋은 학습 데이터가 정확한 결과를 만든다

인공지능을 넘어서는 인간지능, Data Quality팀 인턴 프로젝트


카카오스타일은 모두가 나만의 스타일을 찾을 수 있도록 지그재그, 포스티, 패션바이카카오 등 다양한 서비스를 운영하고 있습니다. 고객이 보다 쉽고 편리하게 원하는 스타일을 찾을 수 있도록, 각 서비스에서는 개인 맞춤 추천 기능을 제공하고 있는데요. 고객의 취향을 분석하고 좋아할 만한 상품을 보다 정확하게 추천하기 위해 빅데이터와 머신러닝을 활용하고 있습니다. 


머신러닝의 정확도를 높이는 것은 좋은 데이터를 갖추는 것에서부터 시작됩니다. 데이터 퀄리티를 높이기 위해서는 신규 데이터 프로젝트에 필요한 데이터 수집과 모델링에 사용하는 데이터 라벨링이 기본이라고 볼 수 있는데요. 머신러닝은 데이터(input)와 결과값(output)을 이용해 통계에 기반한 로직(규칙)을 찾아내는 것이기 때문에, 머신러닝을 통해 얻고 싶은 로직을 찾기 위해서는 데이터와 결과값의 퀄리티가 중요하게 작용하는 것이죠. 


카카오스타일 데이터 퀄리티 팀은 머신러닝이 잘 작동할 수 있도록 데이터셋을 구축하고, 계속해서 모니터링하며 개선해나가고 있습니다. 고객의 니즈를 파악하고, 적합한 데이터를 갖추고, 대시보드를 제작하는 등 다양한 업무를 수행하며 데이터 품질을 높이고 있는데요. 그 모든 과정을 DQ(Data Quality) 인턴 프로젝트를 통해 소개합니다.  



상품 이미지 데이터 구축 및 학습 


Why

카카오스타일은 다양한 서비스를 통해 패션, 뷰티, 라이프 상품까지 폭넓은 카테고리의 상품을 판매하고 있습니다. 지그재그에만 매일 1만 개 이상의 신상품이 업데이트될 정도이니, 모든 서비스 내 상품 수와 이미지는 매우 많겠죠. 


상품의 종류나 컬러, 스타일 등은 쇼핑에서 아주 중요하게 작용하는 요소입니다. 고객이 특정 조건을 검색했을 때 올바른 결과가 나오기 위해서는 머신러닝 모델에 활용할 수 있는 좋은 데이터셋이 구축되어 있어야 합니다. 이를 위해 ‘상품 이미지 정보 정의 및 라벨링’을 통해 퀄리티 높은 데이터셋을 구축해 의류의 다양한 카테고리와 속성 정보를 분류하는 머신러닝 모델을 개선했습니다. 

바지 - 슬랙스 팬츠 선택 화면 (왼), 티셔츠 검색 후 남색 & 파랑 색상 선택 (오)


이번 프로젝트는 의류의 대 카테고리(상의, 바지, 원피스 등)와 소 카테고리(민소매, 슬랙스), 혹은 베이지나 블루 등의 색상 선택 시 검색과 이미지 기반 매칭 모델 정확도를 높이는 것을 목표로 했습니다. 결국 고객이 더욱 편리하게 서비스를 이용할 수 있도록 하는 것이 최종 목표죠. 


How

의류 카테고리 분류, 넥라인과 컬러 등 고객이 앱 내 검색 시 나오는 상품의 정확도 향상을 위한 작업을 하나의 예시로 들겠습니다. 

시스템 내 ‘티셔츠' 이미지 검색 결과

1) 개선해야 하거나 데이터를 추가해야 할 부분을 파악하기 위해 가장 먼저 기존 1, 2, 3차 카테고리(ex. 1차 카테고리 ‘상의’, 2차 카테고리 ‘티셔츠’, 3차 카테고리 ‘무지 티셔츠/레터링 티셔츠’)에 상품이 제대로 매칭 되어 있는지, 중복이 존재하는지 등 문제점을 분석합니다. 분석 결과 2차 카테고리인 ‘티셔츠'에 블라우스, 원피스, 아우터, 귀걸이 등 다른 카테고리의 상품들이 속해있는 것과 같은 오류 현상을 확인했습니다. 


2) 위와 같은 방식으로 각 카테고리의 오류 상품(티셔츠가 아니지만 ‘티셔츠' 이미지 검색 시 함께 검색되는 상품들)을 파악하고, 재질 & 형태 & 컬러 측면에서 중복이 발생할 수 있는 부분을 분석해 재정립이 필요한 부분을 나열합니다. 정리한 내용을 토대로 EDA(Exploratory Data Analysis, 탐색적 데이터 분석)를 진행합니다. 이는 데이터의 의미를 해석하고 여러 지표들을 만들어보는 과정으로, 코트와 재킷을 구분하는 새로운 기준, 항공 점퍼와 블루종 등 통합이 필요한 카테고리 정립 등이라고 말씀드릴 수 있겠네요. 

ROI 작업


3) EDA에서 정리한 기준을 토대로, ‘Amazon Sagemaker Ground Truth’를 활용해 ROI 및 태깅 작업을 진행합니다. ROI(Region of Interest) 작업은 머신러닝이 하나의 사진 안에서 아우터, 상의, 신발, 가방 등 상품을 구별할 수 있도록 학습시키는 과정입니다. 사진에서 각 상품을 직접 손으로 표기하고 태깅을 해주면 됩니다. 아우터를 점선으로 연결하고 제대로 표기가 되었다면 그 부분을 ‘아우터'로 태깅해, 추후 머신러닝이 이와 비슷한 상품을 ‘아우터'로 인식할 수 있도록 하는 거죠. 

컬러 라벨링 작업. Amazon Sagemaker Ground Truth(왼), 컬러 EDA 문서(오)

라벨링 역시 중요합니다. 정제된 데이터를 구축하기 위해 작업 화면과 분류 기준이 적혀있는 EDA 문서를 하나의 화면에 두고 작업합니다. 헷갈릴 수 있는 색상 구분 방법, 제외시켜야 하는 색상 등을 사전에 자세하게 정리하고, 작업 화면에 나오는 상품의 컬러를 하나하나 매치해 직접 라벨링 해줍니다.  


4) 이후 학습시킨 모델이 제대로 매칭 되어 나오는지, 머신러닝 모델에 새로운 이미지를 넣었을 때 싱크로율이 높게 나오는지 등을 검수합니다. 검수 후 발견된 오류들을 분석해 2차 라벨링을 진행합니다. 예를 들면, 패턴 분류 모델 검수 과정에서 무지 티셔츠를 그라데이션으로 인식하는 경우, 옷에 음영을 무늬로 인식하는 현상을 발견하고 음영 진 무지 티셔츠 이미지를 2차로 태깅하며 모델을 고도화하는 것이죠. 

알고리즘 성능 비교

실시간 매칭 모델 검수는 데모 앱을 활용해 이미지별 알고리즘 성능을 비교합니다. 예시로, 퍼프소매의 흰색 롱 원피스 이미지에서 두 알고리즘 중 ‘퍼프소매'라는 특징을 잘 잡아내는 것이 무엇인지를 직접 파악하는 것이죠. 이렇게 다양한 케이스에서 어떤 알고리즘의 성능이 더 좋은지를 평가하고, 추후 해당 내용을 활용할 수 있도록 정리합니다. 


so 

(전) : 이미지 영역이 불확실하게 잡힘 (후) : 아우터, 이너, 가방을 구분 할 수 있을 정도로 ROI 추출 성능이 개선

이러한 과정을 통해 ROI 범위가 눈에 띄게 정확해진 것이 보이시나요? 작업을 하기 전, 상의와 하의 등을 명확하지 않게 구분하는 현상이 종종 발견됐는데, ROI 태깅 후 상의, 하의, 아우터, 그리고 넥라인 등의 디테일을 명확하게 구분하는 것을 확인했습니다. 

예시에선 소개하지 못했지만, 위와 같은 방법으로 ‘스타일' 중심으로 상품을 탐색할 수 있는 ‘스타일 필터'도 새롭게 추가됐습니다. 국가별 상황에 따른 스타일 논의, 엑셀을 활용한 스타일/상황 라벨링, 대시보드 구축을 통한 모니터링 과정을 거쳐 새로운 서비스(스타일 필터)를 출시함으로써 고객 쇼핑 편의성을 향상시켰습니다.



쇼핑몰 모델 데이터 구축 및 학습


직접 옷을 입어볼 수 없는 온라인 쇼핑에서 착용샷은 꼭 참고해야 하는 부분인데요. ‘쇼핑몰 모델별 신체 정보를 쉽게 알 수 있다면 고객들이 좀 더 구체적으로 착용 모습을 상상해볼 수 있지 않을까?’라는 생각에서 이번 프로젝트가 시작됐습니다. 


이를 통해 신상품이 업데이트될 때마다 상세 페이지의 이미지에 나타나는 모델의 얼굴과 데이터베이스에 있던 얼굴 이미지를 매칭해 데이터베이스에 저장된 모델의 신체 정보까지 전달하는 기능을 구현했습니다. 해당 기능의 출발점인, 쇼핑몰별 모델의 얼굴과 신체 정보 데이터베이스를 구축하는 ‘모델 정보 추출 작업'을 소개합니다. 


Why

쇼핑몰 모델의 신체 정보는 주로 상품 상세 페이지 최하단에 위치해 있거나 간단하게 제공되는 경우가 많습니다. 착용샷과 모델 신체 정보는 옷을 구매하는데 결정적인 역할을 하기 때문에, 해당 정보를 쉽게 찾을 수 있다거나 본인과 유사한 체형을 가진 모델의 핏을 한눈에 파악할 수 있는 기능을 제공한다면 고객 만족도를 높일 수 있을 거라는 기대감에 해당 프로젝트를 진행하게 됐습니다. 


How

1) 다양한 스토어에서 최대한 많은 정보를 찾을 수 있는 방법을 기획했습니다. 스토어마다 제공하는 모델 정보가 다르기 때문에, 얼굴 이미지를 기준으로 데이터를 수집하는 모델 정보 추출 작업에 어려움이 있었는데요. 보다 효율적으로 많은 데이터를 빠르게 찾기 위해 신상품 업데이트 주기가 짧고, 상품 수나 즐겨찾기가 많아 고객들이 많이 찾는 스토어라면 보다 쉽게 모델 정보를 찾을 수 있을 것이라는 가설을 세웠습니다. 


2) 위 가설에 따라 전략적으로 커버리지를 높이기 위해 TOP 100 스토어들을 우선적으로 작업했습니다. 

각 스토어에서 상품 상세 페이지 내 모델의 얼굴과 신체 정보를 찾고, 해당 정보를 내부 툴에 입력합니다. 

추후에도 스토어와 상품 정보를 파악하기 위해 데이터 쿼리 도구 ‘리대시'를 활용했는데요. 최근 자주 업로드되는 모델은 앞으로도 자주 등장할 가능성이 높다는 가정을 세우고, 최신 상품부터 확인할 수 있도록 상품 판매 여부와 날짜 등을 조건으로 걸어 SQL 쿼리를 작성했습니다. 이는 무작위 추출을 통해 여러 시점에 등록된 상품에서 모델 정보를 추출하기도 용이한 방법입니다. 


3) 데이터가 쌓인 이후에는 정확도를 높이는 보완 작업을 진행했습니다. 정확도를 높이기 위해 다양한 각도의 모델 얼굴 이미지를 찾고자 했죠. 활용할 수 있는 이미지를 뽑아올 수 있는 상품을 찾기 위해 상품 속에서 모델을 찾는 것이 아니라 모델을 먼저 찾고, 그 후에 상품명을 지그재그 시스템에서 매칭 하는 형태로 방법의 전환을 시도했습니다. 이를 통해 원하는 데이터를 더 빠르게 파악해 작업 시간을 단축시켰습니다. 


4) 모델 신체 정보 서비스의 주요 지표와 작업 현황을 한눈에 살펴볼 수 있도록 대시보드를 제작했습니다. 유용한 지표와 그래프를 쉽게 이해하고 활용할 수 있도록 시각화하고, 대시보드를 활용하는 크루가 직접 스토어 순위를 설정해 통계치를 확인할 수 있도록 컨트롤 기능을 추가했습니다. 각 팀별 니즈에 따라 의류 카테고리별 그래프, 이슈를 빠르게 파악할 수 있는 매칭률 추이 그래프 등을 추가하기도 했습니다. 


so

지그재그에 스토어 모델의 신체 정보를 기반으로 검색할 수 있는 ‘키 필터'가 추가됐습니다. 상품 검색 시 키 정보를 추가해 자신의 키와 유사한 모델의 착용 사진을 먼저 볼 수 있는 기능입니다. 특히 실제로 착용했을 때 핏과 기장감이 중요한 바지나 원피스 카테고리에서 유용하게 사용될 수 있는 서비스죠. 최근 필터 사용률을 확인해보니, 새로 추가된 필터 중 ‘키 필터'가 검색 결과 페이지에서 제품 상세 페이지로의 전환율이 가장 높은 것을 확인할 수 있었습니다. 

특정 모델의 착용 사진을 한 번에 모아볼 수 있는 기능도 추가됐습니다. 모델 신체 정보를 알기 위해서는 상품 상세 페이지를 모두 다 살펴봤어야 했지만, 해당 기능을 통해 상품 상세 페이지 상단에서 바로 확인할 수 있게 됐습니다. 




카카오스타일에서는 하나의 기능이 개발되기까지 그 모든 과정을 직접 컨트롤하고 가시적인 결과도 확인할 수 있는 ‘DQ 인턴'을 채용하고 있습니다. 자세한 내용은 아래 링크를 참고해주세요! 

>> https://career.kakaostyle.com/ 



매거진의 이전글 우리의 핵심가치가 제대로 지켜지고 있나요?

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari