이 포스트는 패션 이커머스 스타트업을 위한 AI 기반 추천 서비스 웨비나를 듣고 정리했습니다.
쇼핑 이력 바탕으로 개인화된 경험 제공
유사 제품 자동 추천
검색에 도움
기타 마케팅 측면에서도 도움
전자상거래 증가했지만 부정 거래도 증가.
스타트업에서는 시시각각으로 변화하는 부정 거래에 빠르게 대응하기 어려움, 점검으로 인한 소비자 이탈 우려
Fraud Detector는 잠재적 온라인 사기를 실시간 탐지 & 완전 관리형
머신러닝을 사용하기 때문에 시간&학습 정도에 비례해 정확도 상승
스타트업에서는 직접 사기 탐지 모델 구현에 시간을 쏟을 필요 없음
비정형 데이터 속의 유의미한 인사이트를 추출하는 자연어 처리 서비스.
다양한 방식으로 유연하게 추출 가능.
리뷰 등을 분석해 문제점을 빠르게 개선 가능.
감정까지 인덱싱.
패션에서의 개인화 추천?
추천에 필요한 dataset: 유저 프로필 / 상품 / 유저 상호작용(시간, like, 리뷰, 장바구니에 담기 등)
패션에서는 특히 상품 데이터가 중요한데, 상품의 metadata(color, print, style, keyword 등)가 있어야 추천을 세분화할 수 있다. + 유저의 관심사 파악하여 더 고도화된 개인화 가능
필요한 정보는 많지만 상품정보의 입력이 어려움. 이를 위한 것이 Omnious Tagger
상품 속성 자동 태깅 기능
web api를 제공하여 상품 이미지를 넘겨주면 태그 정보가 포함된 상품 정보를 리턴
이미지 url POST로 제공하면 상세한 태그 정보를 json으로 받을 수 있음.
confidence 값도 제공되므로, 이를 활용해 필요한 값만 뽑아서 사용할 수도 있음.
이미지와 더불어 상품 정보를 제공할 수도 있음.
태그 기준 검색이 가능하므로 detail feature를 활용해 검색할 수 있다.
amazon personalize와 연동하여 개인화 추천 서비스를 고도화할 수 있다.
e-commerce의 중요한 지표: 체류 시간, 이탈율, 구매 전환율
검색과 추천을 비교하면 추천은 새로운 경험/탐험,탐색/발견의 기쁨을 주는 반면 검색은 원하는 결과를 빠르게/정확/신속을 중시한다.
추천에 필요한 데이터 활용 방식
1. collaborative filtering: 유저A에게 A와 구매 내역이 유사한 유저B가 구매한 항목을 추천, 상품이 어떤 상품과 같이 팔렸는지를 분석해서 추천(item-based)
행동 로그만으로 추천 계산 가능, content 분석 필요 없음, 다양하게 적용 가능 but cold start(행동 로그가 부족)문제
content-based filtering:
내용이 유사한 상품을 기반으로 추천
컨텐츠 분석만으로 추천 가능, 행동 로그 없이 추천 가능, cold start 문제 완화 but 적용 범위가 제한적(분석이 어려워서)
hybrid: collaborative filtering + content-based filtering
추천 적용 방식
Personalization vs Non-personalization
개인별로 다른 결과를 보여주느냐 동일한 결과를 보여주느냐의 차이
추천 서비스 적용의 어려움..
새로운 요구사항이 들어오면 요구사항 정리부터 시작해서 반복적인 작업이 요구되기 때문에 시간, 비용적인 부담.
추천 서비스 적용의 어려움을 해결하기 위해 제공되는 실시간 개인화 & 추천 서비스.
데이터만 있으면 1~2주만에 추천 서비스 구축이 가능하다.
How it works
데이터 준비
필요한 데이터 양
Use case by Recipes(추천 알고리즘)
좋은 추천이란?
추천 성능 평가 기준: Coverage & Relevance
자동화를 위해 aws step functions 도입
Filtering recommendations
학습에 사용할 records 제외: 특정 이벤트 타입만 사용할 경우 / 특정 threshold 값 이상만 사용할 경우
Dynamic filter: GetRecommendations / GetPersonalizedRanking
-> sql문과 유사한 필터링 표현식으로 필터 적용가능
Batch recommendation
많은 수의 사용자에 대한 추천을 한 번에 계산&저장하고 싶은 경우, 배치 기반 알림/메일을 통해 추천 결과를 지속적으로 제공하고 싶은 경우 사용.사용자에게 동일한 추천 결과를 제공해도 되는 경우, 배치 처리가 편리하고 경제적이다.
다만 데이터 양이 많아질수록 학습 시간도 오래 걸리고 API 호출 시간도 오래 걸리므로 비용이 그만큼 증가하게 되므로 잘 비교해서 선택해야 한다.
데이터 구조
데이터 온도 스펙트럼
데이터 파이프라인
사용자 행동 로그
추천 성과 분석 지표
실시간 분석의 구성요소
스트림 스토리지를 사용하는 이유
aws에서는 Amazon Kinesis Data Streams와 Amazon Managed Streaming for Kafka(MSK)를 제공하여, 다음과 같은 방식으로 처리한다.
Queue와 유사하지만 offset을 변경하여 처음부터 다시 읽어들일 수도 있는 것이 특징이다.
두 서비스의 차이점은 다음과 같다.
추천 성과 분석을 위한 지표
e-commerce: 체류 시간, 이탈율, 구매 전환율
추천 알고리즘 지표
위와 같은 지표들 뿐만아니라 click, impression channel에 대한 데이터도 필요하다.
이렇게 모은 데이터를 시각화 하는 방법으로 Amazon QuickSight가 있다.
내장 모델이 있어, 데이터만 넣으면 성과 분석, 예측, 시각화가 가능하다.
실시간 분석
Athena는 대용량 데이터(cold data)를 처리할 때 유용하므로 hot data같은 데이터를 실시간으로 분석하고자 할 때는 EMR+Flink/Spark, Kinesis Data Analytics, Amazon Elastic Search를 사용할 수 있다.
Data Lake로 S3를 사용할 때의 이점
Lambda Architecture
batch layer <-> speed layer 구분되어 있어, 한 쪽에 장애가 발생해도 분석에 문제가 발생하지 않는다.
Build decoupled systems
데이터수집->저장->처리->저장->분석->결론
각 과정을 독립적으로 처리.
효율적 운영과 보안 측면에서도 안전한 서비스를 선택.
데이터 처리 시 log-centric 방식으로 변경된 내용만 data lake에 넣고 나중에 가져올 때 합치는 방식을 사용(rdbms처럼 내용을 덮어씌우는 것이 아님)
Working backwards: 설계 시 consume(목적)->collect(수단) 방향으로 디자인. 최종적인 데이터 활용 방안을 먼저 고려.
텍스트 데이터 120% 활용하기
사용자 정보를 수집함에 있어, text 데이터도 많은 비중을 차지한다. 그런데 텍스트 데이터는 unstructured data이기 때문에 분석이 어려워 활용하기가 쉽지 않다.
Amazon Comprehend는 Deep Learning 기반의 NLP엔진이 탑재된 완전 관리형 자연언어 처리 서비스로, 개발자가 직접 로직을 구현할 필요 없이 위와 같은 다양한 기능을 사용할 수 있다.
예제를 보면 텍스트를 분석하여 엔티티, key phrase와 더불어 감정까지 추출해 내는 것을 볼 수 있다.
이를 사용해 e-commerce 사이트에서는 사용자의 리뷰를 분석하고 데이터 시각화에 활용할 수 있다.
또한 batch 처리뿐만아니라 실시간으로 분석도 가능하다.
회사 브랜드에 대한 모니터링 측면에서도 SNS 서비스의 자료를 수집해 분석하는 것이 가능하다.
실시간 온라인 사기 거래 탐지
온라인 거래가 급증하면서, 사기 발생 건수도 증가하고 있다. 그에 따라 사기 탐지를 위한 서비스도 필요해지게 되는데, 탐지 rule을 직접 개발한다면 확장이 어렵거니와 새로운 유형이 나타날 때마다 추가/수정이 쉽지 않다.
이를 ML로 자동화하고 싶어도 ML 전문가가 많지 않고, 반복적인 학습을 하기에도 데이터 수집과 평가에 시간이 오래 걸리기에 쉽지 않다.
Amazon Fraud Detector에서는 이런 불편함을 해소하고 회사에 맞춘 모델을 제공할 뿐만아니라 커스텀 모델도 작성할 수 있다.
이처럼 사용자가 구매를 요청했을 때 Amazon Fraud Detector에서 정상적인 거래인지 판단한 결과를 리턴하고, 이를 확인하여 거래를 승인할 수 있다.
Amazon Fraud Detector에서 제공하는 템플릿은, 그동안 아마존이 쌓아온 경험이 누적된 결과이기 때문에 안정적이고 데이터가 많지 않은 초기 e-commerce 회사에도 적용이 가능하다. 또한 데이터가 쌓이게 되면 그 부분도 템플릿에 적용이 가능하다는 것도 장점이다.
모델을 학습시키기 위한 데이터는 위와 같은 양식으로 준비되어야 한다.
어디서 진행한 웨비나인지 알 수 있을까요?