GCP

GCP Recommendations AI를 통해 개인화된 상품 추천 서비스 만들기(2)

Seungwoo Lee 2020. 11. 2. 22:04

지난 편에 이어서 계속

 

지난 편의 Model Creation에 대해 본격적으로 다루어 보겠습니다.

 

12개월 간의 적절한 Data가 준비되었다면 Model을 생성할 수 있습니다.

 

Recommendations AI의 Model 탭 상단 "Create Model" 버튼을 누르면 Model 생성 페이지로 진입할 수 있습니다.

 

 

Model을 생성할 수 있는 "Create Model" 페이지. Model에 대한 다양한 설정을 할 수 있다.

 

 

"Create Model" 페이지에서 생성할 Model Type, Business objective, Advanced option과 함께 Data requirements met?을 볼 수 있습니다.

 

Model Type을 통해 생성할 Model의 type을 지정할 수 있습니다.

 

Recently View를 제외한 모든 Model을 생성 할 수 있으며, Type에 따라 설정할 수 있는 Business objective와 Date requirements가 달라집니다.

 

Recently view Model은 기본적으로 생성되어 있으니 Data에 대한 Test용으로도 사용할 수 있습니다.

 

Business objective를 통해 Model의 학습 목표를 지정할 수 있습니다.

 

Objective는 CTR과 CVR이 있는데, 각각 상품 페이지 방문, 장바구니 추가 값을 추천 상품이 노출된 페이지 값으로 나눈 것을 의미합니다.

 

즉 Model의 Recommendation이 상품 페이지 방문을 유도하는지, 장바구니 추가를 유도하는지 정할 수 있는 Option입니다.

 

우측의 Data requirements met?에서는 import한 Data가 Model Creation 조건을 충족했는지 보여줍니다.

 

제 경험상 위에서 나온 조건 말고도 홈페이지 방문 Data 수가 일정량 이상이 되야 하는 등 보이지 않는 조건이 존재하는 것 같았습니다.

 

 

 

"Create model" 페이지의 Advanced option 탭. Diversification, Price reranking, Tuning preference 를 설정할 수 있다.

 

"Advanced option" 버튼을 눌러 활성화시키면 Result Diversification, Price reranking, Tuning preference 를 설정할 수 있습니다.

 

Result Diversification은 추천 상품 결과의 다양성을 설정할 수 있는 Option입니다.

 

Low에서 High Level로 설정할수록 카테고리당 추천 개수를 크게 제한해 더 다양한 카테고리의 상품을 추천하는 효과가 있습니다.

 

개인적으로 Diversification Level에 따른 추천 결과를 비교해본 결과, None으로 설정했을 때보다 High로 설정했을 때 추천 상품의 단조로움이 덜해진 것을 볼 수 있었습니다.

 

가령 너무 비슷한 제품만을 추천해 사실상 1~2개의 상품만을 추천하는 것이나 다름없었던 현상은 Diversification 설정 이후 확실히 사라졌습니다.

 

Price reranking은 추천 결과를 상품의 가격순으로 정렬해주는 Option입니다.

 

상품 추천으로 수익성을 개선하는데 도움을 줄 수 있는 Option인 것 같지만, 추천의 질은 떨어질 수 있다는 점을 명시해야합니다.

 

Tuning preference는 Model의 Tuning 주기를 설정할 수 있습니다.

 

Recommendations AI의 Model은 생성된 이후에도 새로 들어오는 Data를 통해 지속적으로 학습합니다.

 

학습은 새로 들어오는 User나 Item을 새로 학습하는 Retraining 과정과 변화하는 선호도를 반영해 Hyper parameter를 바꾸는 Tuning 과정으로 나누어집니다.

 

Model이 최대 하루에 한번 새 Data가 들어올 때마다 자동으로 Retraining을 수행하지만, Tuning 과정은 Default값으로 3개월에 한번, 혹은 수동으로 Tuning을 진행하는 Option 중 선택할 수 있습니다.

 

"Create model" 페이지에서 설정을 마친 후 "Create" 버튼을 눌러 Model을 생성할 수 있습니다.

 

 

"Model" 패널에서 생성한 Model의 Type과 설정,상태를 볼 수 있다.

 

그 후 "Model" 패널에서 생성한 Model의 상황과 상태를 볼 수 있습니다.

 

여기서 특히 주의해서 볼 Status는 Ready to query와 Data status 입니다.

 

Ready to query가 초록색으로 "Yes" 상태가 되면 학습이 완료되어 Placement를 생성해 Prediction을 받을 수 있는 상태가 된 것입니다.

 

Data status가 초록색으로 "OK" 상태가 되어야 Model이 정상적으로 Data를 받아들여 학습을 진행하고 있다는 것입니다.

 

만일 Data status 상태가 주황색으로 "Error"상태가 되면 Data 수가 부족하거나 하는 등의 문제로 학습이 진행되고 있지 않다는 뜻이므로 Log를 확인해 무엇이 문제인지 확인해야 합니다.

 

혹은 Recommendations AI의 "Error" 패널에서 종합적인 Error상태를 확인할 수도 있습니다.

 

 

5. Error panel

 

 

Error 패널에서 종합적인 Recommendations AI의 Error status를 확인할 수 있다.

 

 

Recommendations AI의 Error 패널에서 확인할 수 있는 Error는 Catalog Error, User event Error, Predict Error, Model Error가 있습니다.

 

Catalog와 User event Error는 보통 Data import 때 발생하는 Error로 보통 import한 Data의 Schema가 잘못되었거나 일부 필수적인 정보가 빠진 Data가 import되었을 때 여기서 확인할 수 있습니다.

 

Predict Error는 API Call을 통해 Prediction을 요청할때 잘못된 경로, 구문으로 Request를 보내 Error가 발생했을 때 확인할 수 있습니다.

 

Model Error는 앞서 말한 Model의 학습 진행, Tuning 등의 상황에서 일어난 Error들을 확인할 수 있습니다.

 

 

 

6. Placement Creation

 

Model이 생성되었고 학습이 완료되었다면 API request에 대해 Prediction을 response해주는 Placement를 생성할 수 있습니다.

 

학습이 완료된 Model을 기반으로 Placement를 생성할 수 있다.

 

이제 생성한 Placement로 Prediction preview와 실제 API call을 할 수 있습니다.

 

Prediction preview는 해당 Placement가 어떤 prediction을 돌려주는지 Web console에서 미리 확인할 수 있는 기능입니다.

 

이 기능을 통해 Model이 원하는 방향으로 학습되었는지 확인하고, 이후 재학습을 할지 실제 상품 추천 서비스에 이용할지 결정할 수 있습니다.

 

Prediction preview를 통해 Predict 결과를 미리 볼 수 있다.

 

Visitor ID를 적고 버튼을 누르면 우측에 Prediction을 반환할 List를 보여줍니다.

 

이를 통해 고객 측면에서는 DEMO Presentation을 볼 수 있다는 점, 서비스 제공자 측면에서는 Model이 제대로 학습되었는지 확인할 수 있다는 이점이 있습니다.

 

Preview를 통해 Model이 원하는대로 학습된 것을 확인했으면 이제 Placement에 API request를 보내 상품 추천 결과를 얻을 수 있습니다.

 

추천 결과는 카테고리별, 태그별 Filtering이 가능하고 추천받을 상품의 개수도 정할 수 있기 때문에 고객에게 노출하고자 하는 상품을 자유롭게 설정할 수 있습니다.

 

이제 원하는 Endpoint에서 E-commerce에서 볼 수 있는 맞춤형 상품 추천 서비스를 구현할 수 있습니다.

 

 

7. Recommendations AI 구현 

 

AutoML 제품군 중 하나인 Recommendations AI를 Test해보니 앞으로 ML을 이용할 수 있는 영역이 더 넓어질 수 있을 것이라는 생각이 듭니다.

 

Recommendations AI는 ML을 이용한 상품 추천 서비스를 ML 지식 없이 사용할 수 있게 해주는 Product였지만, 앞으로 더 다양한 기능을 ML 지식 없이도 사용할 수 있게 해주는 Product가 등장할 것이라 의심치 않습니다.

 

이제 중요한 것은 ML으로 어떻게 기능을 구현할 수 있는지가 아닌, ML으로 어떤 것을 구현해야 하는지 아는 지식이 더 필요한 시대가 다가온 것이 아닌가 싶습니다.