더북(TheBook)

곱하는 과정을 보면 평가행렬에서 각 제품에 대한 손님의 선호도 값과 유사도행렬에서 각 손님들 사이의 유사도 값을 곱하는 것이다. 예를 들어 손님 2의 치킨 선호도를 예측한 값은 손님 4뿐만 아니라 다른 손님과의 유사도를 모두 고려할 수 있고, 그림 2-12에서 노란 박스로 표시된 벡터의 내적과 같이 4 × 0.13 + 0 × 0 + 0 × 0.61 + 1 × 0.97인 1.49가 나온다. 이런 식으로 제품별로 각 손님이 선호하는 값을 계산하면 표 2-5와 같다.

▼ 표 2-5 예측 결과

 

손님 1

손님 2

손님 3

손님 4

소고기

0.41

1.62

1.20

2.37

치킨

0.28

1.49

0.59

1.12

우유

0.00

0.52

0.00

1.12

치즈

1.77

6.32

5.41

7.21

0.00

3.05

0.00

2.95

이 결과를 평가행렬과 비교하면 손님 2는 치킨을 구매하지 않았지만, 계산 결과에 의하면 1.49라는 꽤 높은 값이 나왔으니 앞으로 치킨을 구매하는 것을 추천할 수 있다. 또한, 콩 역시 높은 값이 나와서 콩도 권할 수 있다. 계산 결과가 0 또는 0에 가깝게 나온 경우에는 기준치를 정해서 그보다 작은 경우에는 추천하지 않을 수도 있다.

방금 살펴본 것은 추천 알고리즘을 굉장히 단순화한 예제이지만, 행렬 간의 곱셈이 데이터 분석에 어떻게 효과적으로 사용되는지를 보여주는 대표적인 예이다. 우리가 실제로 사용할 평가표에는 손님 수만 명과 아이템 수백 가지가 있을 수 있으며, 이를 행렬로 표현하여 행렬의 곱셈을 적용한다면 좀 더 쉽게 결과를 얻을 수 있다(물론 소프트웨어를 사용한다는 것을 전제로 한다).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.