2022. 2. 24. 16:18ㆍCloud/AWS(Amazon Web Services)
본 개시물은 2022.02.24에 진행된 AWS Innovate의 강의를 "기계학습 전문지식 없이 amazon personalize에서 맞춤형 추천 기능 개발하기"파트를 듣고 직접 정리한 것임을 밝힙니다.
AWS Machine Learning & Artificial Interlligence의 VISOIN
"전세계 모든 데이터 과학자와 개발자가 손쉽게 활용할 수 있는 편리한 인공지능 & 머신러닝 환경을 제공"
우리가 인터넷 서핑을 하다 보면 종종 추천검색어, 추천 상품 등이 나타나곤 한다.우리가 인터넷 서핑을 하다 보면 종종 추천검색어, 추천 상품 등이 나타나곤 한다. 좋아하는 음악을 듣다보면 그 음악과 비슷한, 유사한 음악도 추천을 해 주기도 하며 특정 물건을 구매할 시 이것저것 많이 보여주기도 한다.
이러한 맞춤형 추천은 중요한 것을 넘어서 이제는 필수적인 요소가 되었다. 수없이 많은 정보들 속에서 소비자는 어떤 정보를 선택하는것이 더 좋은 의사결정인 것인가를 고민하게 되었다. 기업에서는 이것을 고객의 호감에 맞게 각각의 개개인의 고객에게 제공하기 위해 많은 노력을 가하고 있다.
이런방법은 추천 알고리즘 이라고 하는데 아이템의 특성에 따라 유사한 아이템으로 분류하는(전통적인)컨텐츠 기반 필터링(Content-based)과 사용자와 아이템간의 상호작용을 통해서 유저가 좋아할 만한 아이템을 추천하는(초 개인화에 조금 더 적절하다) 협업 필터링 2가지의 필터링으로 구분이된다.
여기서 초 개인화 라는 단어가 나타났는데, 전통적인 개인화 서비스와 달리 초 개인화는 모든 고객을 각각 다른 개인으로 입력하여 한 사람 한 사람의 소비의 맥락, 환경을 이해하도록 노력할려고 하는 것 이다. 이와 관련된 맞춤형 웹 데시보드, AI인공지능 등이 지속적으로 개발되고 있으며. bissiness2commuity에서 조사한 바에 의하면 63%정도의 %로 소비자가 개인화를 표준 서비스로 인식하고 있음을 알 수 있다. 아마존의 경우 페이지뷰의 30%정도가 추천을 통해서 제공된다고 한다.
그럼 이런 개념을 도입하기 위해서는 어떻게 해야할까?
실제 비즈니스에 도입하고 유지하는것은 분명 어렵다고 할 수 있다. 빅데이터인 만큼 데이터가 많아야하는데, 신상품을 발주하거나 새롭게 기업을 형성할 경우 이런 데이터를 수집하기가 굉장히 힘들 것 이기 때문이다. 적절한 기술과 전문인력(ML)을 고용하기도 어렵고, 장기간의 개발과 시스템관리, 유지에 대한 많은 비용이 문제가된다.
그렇기에 여기에 AWS에서 제공한 기술인 amazone personalize를 도입하면 된다. 추천시스템을 쉽고 빠르게 구축하여 시간과 리소스를 절약시키는 관리형 서비스이다. 이커머스, 영상 컨텐츠 등 다양한 산업분야에서 활용할 수 있으며 전문 지식이 부족하더라도 클릭 몇번만으로 사용자가 지정하여 ML 모델을 구축하고 교육, 배포 할 수 있는 모든 작업을 지원하고 대규모 솔루션 또한 쉽게 구현할 수 있도록 해 준다. 또한 추천 모델을 쉽게 구축할 수 있다.
알고리즘 자체는 어려울 수 있지만, 사전 구성 레시비(빌트인 레시피)를 활용해서 해결할 수 있다. 파이선, 자바 등의 SDK를 지원하며 API기반의 추천 결과 생성 및 활용을 하여 기존의 마케팅에 쉽게 접목할 수 있다.
보안은 amazone personalize를 사용하는 모든 데이터는 비 공개로 안전하게 암호화되며 아마존에 공유되지 않는다.
전체적인 워크플로우는 3단계로 이루어진다.
1. 데이터입력
2. 솔류션 생성 및 튜닝
3. 추천결과 제공 모델 배포(켐페인)
이제 각각 어떤 개념인지에 대해 알아보도록 하자.
1. 데이터 입력
입력 데이터를 준비하는 과정이다. 각각 user events(interactions), item metadata, user metadata를 준비한다. 이 3가지 종류의 입력 데이터set을 DB의 스키마에 맞춰 AWS S3에 반드시 업로드 해 두어야 한다.
interactions data는 사용자가 클릭하고, 구매하고, 좋아요 표시를 하는 등 유저와 아이템 간의 인터렉션 정보를 제공한다. 개인화 모델링에서 가장 강력한, 필요한, 유일한 데이터 셋이다
item metadata는 알고리즘의 성능을 강화시키기 위한 선택적인 입력값이다. 구체적으로는 가격대, 등의 아이템에 대한 메타 데이터를 제공한다. 이전의 데이터가 없는 경우(cold start)에서 유용하게 사용할 수 있다.
제품명, 시놉시스 등의 비정형 텍스트 데이터가 자주 포함된다. 자연어 기술을 사용해서 정보를 추출한다.
user metadata는 알고리즘의 성능을 강화시키기 위한 선택적 입력값이다. 사용자에 대한 구체적인 정보(접속 환경, 성별, 나이 등)을 제공한다.
이때 반드시 최소 규모의 데이터 셋을 준비해야하는데 인터렉션을 기준으로 최소 1000건이상의 유니크한 데이터를 준비해야한다.
==> 이것만 잘 해도 절반이상은 준비가 완료되었다고 할 수 있다.
2. 솔류션 생성 및 튜닝
이제 빅데이터를 학습할 레서피를 선택해야한다. 다양한 카탈로그 등을 구성할 수 있는 유사제품을 만들 수 있으며 이 과정에서 디테일한 세부적인 조정을 할 수 있다. AWS에서는 2022.02.24기준으로 4가지의 레시피 유형과 10가지의 레시피를 제공하고 있다. 어떤 레시피가 좋을지 잘 모를때도 auto ml을 통해 선택할 수 있다.
레시피유형 | 레시피 |
User_Personalization | user-personalization popularity-count HRNN recipe(legacy) HRNN-Metadata recipe(legacy) HRNN-Colestart recipe(legacy) |
Personalized_Ranking | Personalized-Ranking |
Related_Items | Similar-Items SIMS |
User_Segmentation | Item-Affinity Item-Attribute-Affinity |
user personalization
모든 시나리오에 적합하며 가장 추천되는 알고리즘이다. HRNN 아키텍처는 아마존 ai에서 논문으로 발표했던 내용인데, 실제 사람들이 특정 상품을 보다가 다른 상품을 검색했을때 세선을 반영하여 적절한 모델을 추천해 주는 개념이다.
ex)지난주 까지는 계속 의류만 입력하였으나 오늘, 지금 당장 식품을 검색할 시 식품을 잘 추천을 해 준다.populatrity count는 이름에서 알 수 있듯 가장 인기있는 항목만 추천해준다.
Similar-Items는 소비자의 예측 관심에 따라서 유사제품 카탈로그 를 추천해 줄때 순서대로 추천해준다.
user segmentaion를 사용하면 상품 사용자 상호작용 데이터에 대해 학습해 보다 정교하게 사용자를 세분화 할 수 있다. 마케팅 캠페인에 대해 참여도를 높이고 메시징을통해 유지율을 높일수 있다. 주의점은 다른것들과 달리 json형태의 포멧이다.
이런 다양한 지표를 어떻게 평가할 지도 굉장히 중요하다고 할 수 있다. AWS에서는 디테일한 평가를 위한 지표가 제공되는데 다양한 metrics를 활용해 모델의 성능을 평가할 수 있다. 지표가 높을수록 좋은 모델이다 라고 할 수 있다.
지표 | 설명 |
precision@k | 실제 테스트 데이터와 일치하는 추천 아이템 개수 ----------------------------------(분의, / 와 같음) 추천 아이템 전체 개수 |
MRR@K (Mean Reciprocal Rank) |
모든 쿼리에 대한 상위 25개의 권장 사항에서 첫번째 관련 권장사항의 역 순위 평균 값을 나타낸다. 이 지표는 가장 높은 순위의 단일 권장 사항에 대해 관심이 있는 경우에 적합하다고 할 수 있다. |
NDCG@K (Normalized Discounted Cumulative Gain) |
이상적인 추천 결과로부터 구할 수 있는 최대 가능 스코어를 기준으로 정규화 한, 관련 아이템 순위에 역 로그 가중치를 반영하여 계산한다. |
Coverage | 학습 데이터의 전체 고유한 아이템 수 중에서 실제 쿼리에서 추천한 아이템 수 |
3. 추천결과 제공 모델 배포(켐페인)
솔류션을 지정 및 배포하여 켐페인을 생성할 수 있으며 추천 결과 제공을 할수있다. 비공개 API를 통해 베포하고 유저에게 권장할 수 있다. api형태이며 초단위인 트렌덱션단위tps도 여기에서 결정하게 된다. 켐페인은 솔루션의 버전 업데이트에 따라 자동, 수동을 결정할 수 있다. 자동 방식은 말 그대로 솔루션이 업데이트 될 때마다 가장 최신의 버전으로 솔루션을 자동 업데이트 시키는 방식이며 수동의 경우 updatecampaign을 call하여 수동으로 업데이트 하는 방식을 이야기한다.
또한 켐페인을 생성하면 해당 켐페인의 추천을 AWS안에서 자체적으로 테스트 할 수 도 있다. 실제로 app단에서 호출해서 사용해야 할 텐데 솔루션의 레시피에 따라서 api 도 달라진다.
API 호출은 다음과 같다.
레시피 유형 | API | API 요구 사항 |
USER_PERSONALIZATION | GetRecommendations | userId: 필수 itemId: 사용되지 않음 inputList: 해당 사항 없음 |
PERSONALIZED_RANKING | GetPersonalizedRanking | userId: 필수 itemId: 해당 사항 없음 inputList: itemId 목록 |
RELATED_ITEMS | GetRecommendations | userId: 사용되지 않음 itemId: 필수 inputList: 해당 사항 없음 |
USER_SEGMENTATION | CreateBatchSegmentJob | Batch segmentation job 생성 |
활용예시와 도입 시 고려사항
가공된 정보는 다양하게 활용할 수 있다. 단순 통계 결과뿐 아니라 취향, 과거 구매내역을 반영한 결과를 커스터마이징 할 수 있다. 실시간 추천도 가능하며 실시간으로 사용자가 페이지를 보고있으며 지속적으로 데이터를 전송해 이에 기반한 새로운 페이지를 추천할 수 있다.
도입시 고려사항은 다음과 같다.
GOOD FIT | BAT FIT |
사용자에게 상품을 추천할때 유사 상품 카탈로그를 제공해야할때 개인화 마케팅이 필요할때 개인화 데시보드를 구성할때 |
데이터의 절대적인 양 자체가 작을때(1개~999개-최소1000개는 되어야함) 대부분의 사용자가 익명의 사용자일 경우 단순한 규칙 기반의 추천을 할 경우 |
'Cloud > AWS(Amazon Web Services)' 카테고리의 다른 글
AWS SAA-002 합격 후기 (0) | 2022.07.30 |
---|