패션 이커머스 스타트업을 위한 AI 기반 추천 서비스 웨비나

jiffydev·2021년 4월 7일
3
post-thumbnail

이 포스트는 패션 이커머스 스타트업을 위한 AI 기반 추천 서비스 웨비나를 듣고 정리했습니다.

1. 제품 소개

1-1. Amazon Personalize

쇼핑 이력 바탕으로 개인화된 경험 제공
유사 제품 자동 추천
검색에 도움
기타 마케팅 측면에서도 도움

1-2. Amazon Fraud Detector

전자상거래 증가했지만 부정 거래도 증가.
스타트업에서는 시시각각으로 변화하는 부정 거래에 빠르게 대응하기 어려움, 점검으로 인한 소비자 이탈 우려
Fraud Detector는 잠재적 온라인 사기를 실시간 탐지 & 완전 관리형
머신러닝을 사용하기 때문에 시간&학습 정도에 비례해 정확도 상승
스타트업에서는 직접 사기 탐지 모델 구현에 시간을 쏟을 필요 없음

1-3. Amazon Comprehend

비정형 데이터 속의 유의미한 인사이트를 추출하는 자연어 처리 서비스.
다양한 방식으로 유연하게 추출 가능.
리뷰 등을 분석해 문제점을 빠르게 개선 가능.
감정까지 인덱싱.

1-4. Omnious

Automatic Image Labeling

패션에서의 개인화 추천?
추천에 필요한 dataset: 유저 프로필 / 상품 / 유저 상호작용(시간, like, 리뷰, 장바구니에 담기 등)

패션에서는 특히 상품 데이터가 중요한데, 상품의 metadata(color, print, style, keyword 등)가 있어야 추천을 세분화할 수 있다. + 유저의 관심사 파악하여 더 고도화된 개인화 가능

필요한 정보는 많지만 상품정보의 입력이 어려움. 이를 위한 것이 Omnious Tagger

Omnious Tagger

상품 속성 자동 태깅 기능
web api를 제공하여 상품 이미지를 넘겨주면 태그 정보가 포함된 상품 정보를 리턴

Tagger API

이미지 url POST로 제공하면 상세한 태그 정보를 json으로 받을 수 있음.
confidence 값도 제공되므로, 이를 활용해 필요한 값만 뽑아서 사용할 수도 있음.
이미지와 더불어 상품 정보를 제공할 수도 있음.

Tagger 활용

태그 기준 검색이 가능하므로 detail feature를 활용해 검색할 수 있다.
amazon personalize와 연동하여 개인화 추천 서비스를 고도화할 수 있다.

2. Amazon Personalize

2-1. 추천시스템의 원리와 구축 사례

추천의 정의

추천의 중요성

e-commerce의 중요한 지표: 체류 시간, 이탈율, 구매 전환율
검색과 추천을 비교하면 추천은 새로운 경험/탐험,탐색/발견의 기쁨을 주는 반면 검색은 원하는 결과를 빠르게/정확/신속을 중시한다.

추천 성과 지표

추천에 필요한 데이터 활용 방식

1. collaborative filtering: 유저A에게 A와 구매 내역이 유사한 유저B가 구매한 항목을 추천, 상품이 어떤 상품과 같이 팔렸는지를 분석해서 추천(item-based)
행동 로그만으로 추천 계산 가능, content 분석 필요 없음, 다양하게 적용 가능 but cold start(행동 로그가 부족)문제

  1. content-based filtering:
    내용이 유사한 상품을 기반으로 추천
    컨텐츠 분석만으로 추천 가능, 행동 로그 없이 추천 가능, cold start 문제 완화 but 적용 범위가 제한적(분석이 어려워서)

  2. hybrid: collaborative filtering + content-based filtering

추천 적용 방식
Personalization vs Non-personalization
개인별로 다른 결과를 보여주느냐 동일한 결과를 보여주느냐의 차이

추천 서비스 적용의 어려움..

새로운 요구사항이 들어오면 요구사항 정리부터 시작해서 반복적인 작업이 요구되기 때문에 시간, 비용적인 부담.

Amazon Personalize


추천 서비스 적용의 어려움을 해결하기 위해 제공되는 실시간 개인화 & 추천 서비스.
데이터만 있으면 1~2주만에 추천 서비스 구축이 가능하다.

How it works

  • dataset: 유저 프로필 / 상품 / 유저 상호작용
  • 이러한 데이터셋을 s3에 저장하면 그것을 읽어서 data set group을 생성해 관리하게 됨
  • 알고리즘을 선택하면 training 후 추천 모델을 만들어 주고 api 호출하여 추천 서비스를 사용할 수 있게 됨

데이터 준비

  • Interactions는 추천 계산에 사용되므로 반드시 필요하다.
  • user, items는 데이터 제외 및 추천 결과 fitlering 용도로 사용한다.
  • 입력 데이터는 s3에 csv포맷으로 저장하고, 다음과 같이 첫 행에 column header가 필요하다.
  • 계산을 위해 데이터별로 schema 정의가 필수적이다. 필드 attribute에 필드명과 data type을 명시해야 한다.

필요한 데이터 양

  • 최소 50명의 유저, 50개 상품, 1500 상호작용이 필요.

Use case by Recipes(추천 알고리즘)

  1. user psersonalization
    User-personalization, Popularity-Count(baseline)(cold start해결)
  2. similar items
    SIMS 유사 상품 추천
  3. personalized ranking

좋은 추천이란?
추천 성능 평가 기준: Coverage & Relevance

  • Coverage = 고객의 몇%까지 추천이 완료되었는지.
  • Relevance = 추천의 관련성이 얼마나 높은지
  • Serendipity

    항상 유사한 종류의 상품들만 추천해주는 것이 아니라 다른 종류의 상품도 추천해 주는 것(Keep customers inerested!)

Amazon Personalize 적용 아키텍처

자동화를 위해 aws step functions 도입

  • 실시간 update를 위해 batch형태 뿐만아니라 event tracker 컴포넌트를 활용

Filtering recommendations

  • 학습에 사용할 records 제외: 특정 이벤트 타입만 사용할 경우 / 특정 threshold 값 이상만 사용할 경우

  • Dynamic filter: GetRecommendations / GetPersonalizedRanking
    -> sql문과 유사한 필터링 표현식으로 필터 적용가능

Batch recommendation

많은 수의 사용자에 대한 추천을 한 번에 계산&저장하고 싶은 경우, 배치 기반 알림/메일을 통해 추천 결과를 지속적으로 제공하고 싶은 경우 사용.사용자에게 동일한 추천 결과를 제공해도 되는 경우, 배치 처리가 편리하고 경제적이다.

다만 데이터 양이 많아질수록 학습 시간도 오래 걸리고 API 호출 시간도 오래 걸리므로 비용이 그만큼 증가하게 되므로 잘 비교해서 선택해야 한다.

3. Data Lake

3-1. 추천 시스템을 위한 데이터 분석 시스템 구축

데이터 분석을 위한 사전 지식

데이터 구조

  • structured data: 일반적인 관계형 db의 테이블형태
  • semi-structured data: json 형태
  • unstructured data: 이미지, 영상 등

데이터 온도 스펙트럼

  • 빈도, 데이터 양 등에 따라 hot data<->cold data로 나눌 수 있음
  • hot data=구조적, cold data=비구조적인 경우가 많다.
  • 온도 스펙트럼을 이해한 상태에서 적합한 스토리지를 선택해야 한다.

데이터 파이프라인

  • 데이터 자체의 특성뿐만 아니라 데이터 가공의 측면.
  • 데이터 수집-저장-(ETL)분석-소비의 프로세스를 데이터 파이프라인이라고 한다.
  • 이 때 고려할 점으로, 데이터를 넣었을 때 얼마나 빠른 시간(latency)에 많은 양(troughput)을 얻을 수 있느냐이고 이에 따라 어떤 솔루션을 사용할지 결정한다.

추천 시스템 구축을 위해 필요한 데이터

사용자 행동 로그

  • 상품 상세 페이지 보기, 장바구니 담기, 구매 등..
  • mazon Personalize를 사용해서 데이터를 활용

추천 성과 분석 지표

  • 추천 아이템 노출 횟수, 클릭 횟수, 노출 위치 등..

실시간 분석의 구성요소

스트림 스토리지를 사용하는 이유

  • producer-consumer 연결이 복잡해지는데, 스트림 스토리지를 넣어서 아키텍처를 단순화시킬 수 있다.(decouple)
  • producer 속도가 빨라도 스트림 스토리지가 버퍼 역할을 함으로써 consumer 속도에 맞출 수 있음.

aws에서는 Amazon Kinesis Data Streams와 Amazon Managed Streaming for Kafka(MSK)를 제공하여, 다음과 같은 방식으로 처리한다.

Queue와 유사하지만 offset을 변경하여 처음부터 다시 읽어들일 수도 있는 것이 특징이다.
두 서비스의 차이점은 다음과 같다.

행동 로그 수집을 위한 데이터 분석 아키텍처

추천 성과 분석을 위한 데이터 분석 시스템 확장

추천 성과 분석을 위한 지표
e-commerce: 체류 시간, 이탈율, 구매 전환율

추천 알고리즘 지표

  • coverage, CTR(click-through rate)(= relevance + serendipity)

위와 같은 지표들 뿐만아니라 click, impression channel에 대한 데이터도 필요하다.
이렇게 모은 데이터를 시각화 하는 방법으로 Amazon QuickSight가 있다.
내장 모델이 있어, 데이터만 넣으면 성과 분석, 예측, 시각화가 가능하다.

실시간 분석

Athena는 대용량 데이터(cold data)를 처리할 때 유용하므로 hot data같은 데이터를 실시간으로 분석하고자 할 때는 EMR+Flink/Spark, Kinesis Data Analytics, Amazon Elastic Search를 사용할 수 있다.

Data Lake로 S3를 사용할 때의 이점

  • 다른 빅데이터 프레임워크(Spark, Presto 등)을 지원.
  • storage와 compute를 분리 가능하다.
  • 안정성(durability. nine-elevens99.999999999%)
  • 적은 비용.

Lambda Architecture
batch layer <-> speed layer 구분되어 있어, 한 쪽에 장애가 발생해도 분석에 문제가 발생하지 않는다.

Architectural Principles

Build decoupled systems

  • 데이터수집->저장->처리->저장->분석->결론
    각 과정을 독립적으로 처리.

  • 효율적 운영과 보안 측면에서도 안전한 서비스를 선택.

  • 데이터 처리 시 log-centric 방식으로 변경된 내용만 data lake에 넣고 나중에 가져올 때 합치는 방식을 사용(rdbms처럼 내용을 덮어씌우는 것이 아님)

  • Working backwards: 설계 시 consume(목적)->collect(수단) 방향으로 디자인. 최종적인 데이터 활용 방안을 먼저 고려.

4. Amazon Comprehend & Amazon Fraud Detector

4-1. Smart한 E-commerce 사이트 만들기

Amazon Comprehend

텍스트 데이터 120% 활용하기
사용자 정보를 수집함에 있어, text 데이터도 많은 비중을 차지한다. 그런데 텍스트 데이터는 unstructured data이기 때문에 분석이 어려워 활용하기가 쉽지 않다.


Amazon Comprehend는 Deep Learning 기반의 NLP엔진이 탑재된 완전 관리형 자연언어 처리 서비스로, 개발자가 직접 로직을 구현할 필요 없이 위와 같은 다양한 기능을 사용할 수 있다.

예제를 보면 텍스트를 분석하여 엔티티, key phrase와 더불어 감정까지 추출해 내는 것을 볼 수 있다.

이를 사용해 e-commerce 사이트에서는 사용자의 리뷰를 분석하고 데이터 시각화에 활용할 수 있다.
또한 batch 처리뿐만아니라 실시간으로 분석도 가능하다.

회사 브랜드에 대한 모니터링 측면에서도 SNS 서비스의 자료를 수집해 분석하는 것이 가능하다.

Amazon Fraud Detector

실시간 온라인 사기 거래 탐지
온라인 거래가 급증하면서, 사기 발생 건수도 증가하고 있다. 그에 따라 사기 탐지를 위한 서비스도 필요해지게 되는데, 탐지 rule을 직접 개발한다면 확장이 어렵거니와 새로운 유형이 나타날 때마다 추가/수정이 쉽지 않다.
이를 ML로 자동화하고 싶어도 ML 전문가가 많지 않고, 반복적인 학습을 하기에도 데이터 수집과 평가에 시간이 오래 걸리기에 쉽지 않다.

Amazon Fraud Detector에서는 이런 불편함을 해소하고 회사에 맞춘 모델을 제공할 뿐만아니라 커스텀 모델도 작성할 수 있다.


이처럼 사용자가 구매를 요청했을 때 Amazon Fraud Detector에서 정상적인 거래인지 판단한 결과를 리턴하고, 이를 확인하여 거래를 승인할 수 있다.

Amazon Fraud Detector에서 제공하는 템플릿은, 그동안 아마존이 쌓아온 경험이 누적된 결과이기 때문에 안정적이고 데이터가 많지 않은 초기 e-commerce 회사에도 적용이 가능하다. 또한 데이터가 쌓이게 되면 그 부분도 템플릿에 적용이 가능하다는 것도 장점이다.


모델을 학습시키기 위한 데이터는 위와 같은 양식으로 준비되어야 한다.

profile
잘 & 열심히 살고싶은 개발자

1개의 댓글

comment-user-thumbnail
2021년 8월 3일

어디서 진행한 웨비나인지 알 수 있을까요?

답글 달기