본문 바로가기
Microsoft/Azure ML

Azure ML Train Matchbox Recommender 추천 알고리즘

by AttractiveS 2019. 11. 18.

유튜브알고리즘나한테 이 동영상을 봐보면 어떻냐며...추천해주는데.....

이 것을 하는 방법을 알려 드리겠습니다. Azure ML  Train Matchbox Recommender 박스를 활용하면 

추천알고리즘을 쉽게 만들수가 있는데요.!!!!!

 

 

자!! Azure ML로 만들어 봅시다.!!!!


 

 

items3.csv
0.00MB
ratings3.csv
0.00MB
users3.csv
0.00MB

 


1. 데이터 추가

 

먼저 위에 파일을 다운 받아서 데이터를 마이 데이터에 추가해 봅시다

 

아래 새 실험을 만들때 처럼 + 쁘라스~ 뽁 누르면 여러 메뉴가 나타나는데!!


 

 

 


데이터 셋!! 여기에 데이터를 넣으면 실험실에서 사용할 수 있습니다.


 

 


 

여기에 파일을 집어 넣으면

 


 

 


 

마이 데이터 셋에서 사용가능!!

 


 

 


2. 데이터 구성

 

거기서 위에 준비한  rating, user, item 넣어 줍니다.

 

여기 준비한 자료는 쌤플 데이터에 있는 레스토랑 추천 데이터를 요약한 데이터 입니다.

 

쌤플 데이터에서는 음식점 추천 문제를 예로 사용할 수 있도록

 

 

  • 고객이 평가한 음식점 등급
  • 고객 특징 데이터
  • 음식점 기능 데이터

 

자세하게 기록 되어 있지만 위에 데이터 같은 경우

 

고객과 레스토랑의 특징이 채식, 육식, 둘다 인지로만 분류 되어 있습니다. 


 

고객의 레스토랑 평점

 

고객이 특징
레스토랑의 특징


그래서 위 데이터를 표로 작성해보면 다음과 같은데요.

이렇게 보면 이게 몬가 싶으실텐데요...... 일단 C는 고객이구요.!!! R은 레스토랑입니다.

그리고 M은 고기/육식, V는 채소/채식 M/V는 둘다입니다.

 

가장 왼쪽 맨위에꺼를 해석해 보면

R1 레스토랑은 육식을 다루고 손님은 C2인데 육식을 좋아해서 이 레스토랑에 3점을 준 것입니다.


 

 


그래서 이제 배치을 해야하는데요. 올바른 형식의 데이터를 포함 안하면 오류가.....발생합니다.

그래서 규칙을 지켜야합니다.


3. 데이터 속성 만들기

 

처음꺼는 ( id )

 

  • 첫번째 열에는 사용자 ID가 포함  
  • 두번째 열에는 항목 식별자가 포함 
  • 세번째 열에는 사용자 항목 쌍에 대한 등급이 포함 (등급 값은 숫자 또는 범주형)

 

등급 값이 숫자일 경우 최소 및 최대 정격 값 사이의 차이가

 

100보다 작아야 하며 이상적으로 20보다 커서는 안 됨!!!

 

 

두번째 꺼는 ( user )

 

사용자 기능의 데이터 집합에는 사용자 식별자가 포함되어야 하고

 

사용자 항목 등급 데이터 집합의 첫번째 열에 제공된 것과 동일한 식별자를 사용해야 함

 

나머지 열에는 사용자를 설명하는 기능이 여러개 등등등~

 

 

세번째 꺼는  ( item )

 

항목 기능의 데이터 집합에는 첫번째 열에 항목 식별자가 포함되어야 하고

 

나머지 열에는 항목을 설명하는 기능이 수에 제한 없이 포함될 수 있음..!!!

 


결론 적으로

 

1번은 A, B, 등급 

 

이렇게 데이터가 있으면

 

2번은 A, 속성, 속성, 속성


3번은 B, 속성, 속성, 속성

 

이렇게 만들면 됨



Train Matchbox Recommender, Score Matchbox Recommender 박스를 Studio에 추가하고

 

교육 데이터에 연결합니다.



4. Train Matchbox Recommender 특성

 

Train Matchbox Recommender박스에는 특성이 세가지가 있는데 

 

Number of traits

 

에는 각 user  item에 대해 배워야 할 잠재적 특성 수를 입력합니다.

특성의 수가 많을수록 예측이 더 정확해 지지만 훈련은 더 느려집니다. 특성의 수는 2-20범위가 적당합니다.

 

 

Number of recommendation algorithm iterations

 

 

권장 알고리즘 얼마나 반복 할꺼냐에 대한 수치입니다.

이 수치가 높을수록 예측은 정확하지만 훈련은 느려집니다....

 

특히나 데이터가 엄청 많다면 엄청 늦어질수도..... 일반적으로 반복 횟수는 1-10입니다.

 

Number of training batches

 

데이터를 분할할 배치 수를 입력합니다.

이 값을 기준으로  user item rating 데이터 세트는 교육 중에 여러 부분 나뉩니다.

기본적으로 교육 데이터는 4개의 배치로 분할됩니다.



5. ScoreMatchboxRecommender로 할 수 있는일

그래서 지금 껏 데이터를 모았고 그거를 통해서 무었을 할 수 있냐하면 4가지가 있습니다.

 

1. 특정 사용자 및 항목에 대한 등급 예측


2. 지정된 사용자에게 항목 추천 

 

3. 지정된 사용자와 관련된 사용자 찾기

 

4. 지정된 항목과 관련된 항목 찾기


 

 


5_1. 등급 예측 Predict ratings

사용자가 특정 항목에 어떻게 반응할지 계산합니다. 예를 들어 첫번째 보시면 C1 고객은 R2레스토랑에가면 3점을 주겠는데 하고 등급을 예측하는 것입니다.

 

 

이미 유저가 레스토랑 등급을 측정했지만 다른 항목들과 연관해서 다시 예측하기도 합니다. 

 


5_2. 지정된 사용자에게 항목 추천 Recommend items

 

가장 활용도가 높은 Recommend items !!!!

 

From Rated Items(점수가 입력되어 있는 항목만)

From unRated Items (점수가 입력되어 있지 않는 항목만 예상하여 집어 넣어!!!)

From All Items (모두다 분석하여 없는 곳을 예상하여 집어 넣어!!!)

 

 

 

 

 

 

From All Items 점수화 되지 않은 항목도 예상하여 유저한테 아이템을 추천해준다!!!!

 



만약에 From Rated Items 옵션을 선택하면 아래 사진처럼 점수화되지 않은 부분은 제외하고 나타내 준다.

 




최대 아이템을 3개로 설정하면 아래처럼 세가지만 추천도 가능하다.

 



또한, Whether to return the predicted ratings of the items along with the labels 체크박스에 체크하면

각 아이템을 추천해 준 이유를 자세히 알려주는데

아이템 마다의 점수를 몇 점 맞았는지 알려준다. 


 

 

C1 손님을 먼저 보면 C1손님은 R2에  3, R3  1, R5  3, R6  2 점수를 주었다. (처음 준 점수)


그리고 위에 C1 손님한테 추천해준 것을 보면

1등 R5

2등 R2

3등 R1

4등 R6

5등 R4


C1 손님은 채식주의이고 R2와 R5 둘다 채식 레스토랑이지만

 

R5를 보면 같은 채식 주의자 손님과 채식,육식같이 하는 손님이 높은 평점을 준 것을 확일 할 수 있다.

 

그래서 R5를 더 먼저 추천 하여 준 것 처럼 그 사람이 측정한 점수 뿐만 아니라 같은 특성을 가진 사람들의 평점과 또 같지 않지만 비슷한 평점을 줬던 사람들 까지 분석해서 추천해 준다.

 


5_3. 지정된 사용자와 관련된 사용자 찾기

 

 

"당신과 같은 사람"을 권장하는 경우 또는 다른 유형의 예측을 기반으로 하는 유사한 사용자 풀을 생성하는 경우

관련 사용자를 찾는 옵션이 유용합니다.

 

지금 여기에서는 레스토랑과 채식 육식 이 정도의 특성으로만 예시를 들고 있지만 

만약에 기업에서 빅데이터를 통해 관련 고객들을 찾아서 각각의 특성에 맞게 이벤트 또는 알람, 메일등..

유사한 고객들을 찾아 그룹화 해서 관리도 가능하다는 것입니다.

 


5_4. 지정된 항목과 관련된 항목 찾기

 

관련 항목을 예측하여 이미 평가된 항목을 기준으로 사용자에 대한 권장 사항을 생성할 수 있습니다.

이것을 통해서는 각 상품의 유사성을 찾아 그룹화 할 수 있습니다. 예를 들어 고객들이 같이 찾은 비슷한 상품을 찾아내서 같이 묶어서 이벤트를 한다던가. 아니면은 매장이라면 같은 위치에 놓아 매출을 늘린다던가를 할 수 있는 것입니다.

 


6. 새로운 사용자에게 항목 추천

 

이미 저장된 유저가 아닌 새로운 유저를 추가해서 알고리즘을 통해 새로운 아이템을 추천해 주고 싶다면
아래 웹 서비스 만들기를 통해 해결 할 수 있습니다!!

 

 

버튼을 누르게 되면 바로 다음과 같이 만들어집니다. 여기서 새로운 유저의 특성도 입력할 수 있게 
input 박스를 하나 더 추가합니다. 

 

 

 

아래와 같이 연결해 주고 

 

 

아래에 웹 서비스 버튼을 눌러주면 다음과 같이 나오는데요.

 

 

 

여기서 엑섹로 이 웹서비스를 받게되면 다음과 같이 나옵니다.

 

 

 

처음 사용한다면 아마 엑셀에서 azure 머시러닝 프로그램을 설치를 하게 됩니다.

 

 

다음 화면을 보게 된다면 먼저 A1에 첫번째 input의 구역을 정하기전에 sample을 먼저 눌러줍니다.

그리고 C1에서는 input2의 sample을 눌러 줍시다.

 

 

그리고 나서 그 안에 있는 내용은 지우고 범위를 아래와 같이 지정해 줍니다. 

 

 

 

그 다음 새로운 사용자의 정보를 각각 작성 후 

output은 A4에 나타 낼 수 있도록 적어주신후 작동을 시켜 주시면 

 

다음과 같이 새로운 고객에게 어떠한 상품을 추천해 주는지를 바로 확인하실 수 있습니다.

 

반응형