Load To Technical Architect
[AWS] Personalize 본문
AWS Personalize 설명서
https://docs.aws.amazon.com/ko_kr/personalize/latest/dg/what-is-personalize.html
AWS Personalize란?
- Amazon에서 개발하고 운영해온 경험이 녹아있는 개인화 머신러닝 서비스
- 머신러닝 전문가가 아닌 개발자, 엔지니어 등 일반 사용자도 쉽게 머신러닝을 교육하고 배포하여 결괏값을 얻을 수 있음
◎ AWS Personalize 서비스 이해를 위한 요소
1. 머신러닝을 교육시키기 위한 Dataset
※ Dataset은 csv 파일이어야 하며 필수 필드, 예약 필드, 메타데이터 필드가 있음, S3에 업로드하여야 함
1) User-item interaction dataset ( =상호작용 데이터 )
- 머신러닝을 교육시키기 위하여 반드시 필요한 Dataset
- 최대 5개의 메타데이터 필드를 포함 가능
- 최소 1000개 이상의 상호작용 데이터가 필요
- 최소 2개의 상호작용이 있는 25명의 사용자가 필요
- 필수 필드
USER_ID(string), ITEM_ID(string), TIMESTAMP(long)
- 필요한 경우 추가 가능한 필드
예약어 - EVENT_TYPE(string), EVENT_VALUE(float)
2) Item dataset ( = 항목 데이터)
- 항목에 대한 메타데이터를 제공하기 위한 Dataset
- 가격, 색상 등과 같은 정보가 포함
- 최대 50개의 메타데이터 필드를 포함 가능
- 필수 필드
ITEM_ID(string), 최소 1개의 메타데이터 필드
3) User dataset ( = 사용자 데이터)
- 사용자에 대한 메타데이터를 제공하기 위한 Dataset
- 맞춤화 시스템에서 중요한 데이터가 될 수 있는 연령, 성별 및 충성도 멤버십 등의 정보 포함
- 최대 5개의 메타데이터 필드를 포함 가능
- 필수 필드
USER_ID(string), 최소 1개의 메타데이터 필드
2. Recipe를 선택하여 머신러닝을 훈련시키고 Solution 생성
※ AWS Personalize는 6개의 Recipe를 제공함
※ 필자는 머신러닝 전문가가 아니기 때문에 Recipe의 알고리즘은 정확히 모르며
사용해본 경험과 찾아본 정보를 바탕으로 추측만 할 뿐 팩트라고 말할 수 없음
※ 영화 평점 Dataset을 입력하였고 이 Dataset을 바탕으로 머신러닝을 훈련시켰다고 가정함
- 상호작용 데이터 = 사용자(USER_ID), 영화(ITEM_ID), 시간(TIMESTAMP), 평가(EVENT_TYPE), 평점(EVENT_VALUE)
- 항목 데이터 = 영화(ITEM_ID), 장르(GENRES [METADATA]), 주연 배우(Actor [METADATA])
- 사용자 데이터 = 사용자(USER_ID), 성별(GENDER [METADATA]), 나이(AGE [METADATA])
※ Recipe로 훈련 시키는 시간 만큼 과금 됨
1) HRNN
예를 들어
많은 사용자가 최근 타이타닉을 평점 5점 그 다음 영화로 괴물을 평점 5점을 준 상호작용이
Dataset에 기록되어있고 괴물을 보지않은 사용자가 타이타닉을 5점을 준 상호작용이 있다면
AWS Personalize는 이 사용자에게 괴물을 추천 할 것으로 예상 할 수 있음
※ 단순히 상호작용 데이터만을 가지고 머신러닝을 훈련하기 때문에 결괏값이 정확하지 않을 수 있음
2) HRNN Metadata
예를 들어
많은 사용자가 최근 타이타닉을 평점 5점 그 다음 영화로 괴물을 평점 5점을 준 상호작용이
Dataset에 기록되어있고 괴물을 보지 않은 사용자가 타이타닉을 5점을 준 상호작용이 있다면
AWS Personalize가 이 사용자의 성별, 나이, 평가해온 영화들의 장르 등을 분석하여 괴물이 아닌
이 사용자와 유사한 메타데이터의 사용자들이 타이타닉을 평가 한 후 어떤 메타데이터의 영화를 평가했는지
분석하여 영화를 추천 할 것으로 예상 할 수 있음
※ 상호작용 데이터 뿐 아니라 메타데이터까지 같이 교육하여 HRNN보다 더 정확도가 높은 결괏값을 기대 가능
3) HRNN Coldstart
위에서 설명한 HRNN과 조금 다른 레시피, 머신러닝을 훈련 시킬 때 파라미터값을 조절하여 Cold item을 지정함
현재 지정 가능한 Cold item은 '상호작용이 적은 아이템', '파라미터로 지정한 날짜 이내에 상호작용이 있는 아이템'
필자는 이 두 아이템을 신규 아이템(혹은 비인기 아이템)과 '최근 인기있는 아이템' 으로 보고 있음
아주 극단적으로 예를 들면
A는 20대 남자이며 주로 액션, SF, 판타지 영화를 주로 평가,
B는 40대 남자이며 주로 범죄, 스릴러 영화를 주로 평가,
C는 30대 여자이며 주로 드라마, 로맨스 영화를 주로 평가한 데이터가 있고
신작 영화로 액션,판타지,SF / 범죄, 스릴러 / 드라마 로맨스 영화가 있으면
AWS personalize는 각 사용자의 성향에 맞게 새롭게 개봉한 영화들을 추천 할 수 있음
4) Popularity-Count
상호작용이 많은 항목들을 나열하는 레시피
유사 인기리스트 - 핫한 아이템
5) Sims
상호작용 데이터를 바탕으로 A아이템과 유사한 B 아이템을 추천하는 레시피
단순하게 A 아이템의 메타데이터인 장르를 보고 비슷한 장르의 B 아이템을 추천 하는것이 아님
예를 들어 인터스텔라를 평가한 많은 사람들이 어바웃타임을 평가 했다고 가정하면
AWS Personalize는 인터스텔라와 유사한 아이템으로 어바웃타임을 추천할 수 있음
6) Personalized-ranking
항목들을 특정 사용자의 성향에 맞게 재배열하는 레시피
3. 생성된 Solution을 바탕으로 Campaign을 생성하여 배포
※ 솔루션을 선택하고 몇가지 설정 선택 후 Campaign 생성하면 완료
※ Campaign이 생성되고 존재하는 동안 과금됨
◎ 동영상 스트리밍 사이트에 적용 해본다면?
사용자가 처음 홈페이지에 접속했다면 사용자의 성향 파악이 불가능 하므로
먼저 인기 항목을 출력하여 사용자의 성향 분석
이 때 Popularity-Count Recipe를 적용
사용자의 성향을 파악했다면 Hrnn, Hrnn-metadata, Hrnn-coldstart Recipe를 통해 개인화 맞춤 추천
사용자의 성향과 비슷한 사용자들이 본 다른 동영상 추천할 때는 Sims Recipe 사용
추천된 목록을 사용자의 성향에 맞게 다시 재정렬 시킬 때 Personalize-ranking Recipe 사용
◎ Real time recommendation
※ 위에서 설명했듯이 기존 데이터셋을 바탕으로 훈련시키고 개인화된 추천을 받을 수 있음
뒤집어서 생각해보면 계속 기존 데이터를 바탕으로 같은 추천값만 받을 수 있다는 결론이 나옴
※ Recording Events를 이용하면 사용자의 상호작용 (click, rating 등)을 실시간으로 Dataset에 반영하여
실시간 개인화 추천이 가능
※ Recording Events에는 Event tracker, put events 작업 필요
'Cloud > AWS' 카테고리의 다른 글
[AWS] EKS 리소스 사용량을 Cloudwatch Container Insights에서 모니터링 하는 방법 (0) | 2021.11.18 |
---|---|
[AWS] Fluentd를 사용하여 EKS Log를 CloudWatch로 전송하는 방법 (9) | 2021.11.18 |
[AWS] EKS Horizontal Pod Autoscaler ( HPA ) 구성 방법 (0) | 2021.11.18 |
[AWS] EKS Load Balancer Controller 구성 방법 (0) | 2021.11.18 |
[AWS] EC2에 ec2-user가 아닌 다른 사용자로 ssh 연결 (0) | 2021.09.02 |