2.4.1 분석모형 응용 - 유사도행렬의 계산
행렬의 의미와 곱셈만으로도 단순한 머신 러닝의 추천 알고리즘을 구현할 수 있다. 우선 손님 4명이 제품 5개에 갖는 선호도를 표로 기록하였다고 하자.
▼ 표 2-3 제품별 손님 선호도
|
손님 1 |
손님 2 |
손님 3 |
손님 4 |
소고기 |
5 |
1 |
|
1 |
치킨 |
4 |
|
|
1 |
우유 |
4 |
|
|
|
치즈 |
|
5 |
4 |
4 |
콩 |
|
|
5 |
|
표 2-3은 손님이 제품에 대한 선호도를 1~5 사이의 값으로 기록한 것이며, 값이 비워져 있는 경우는 해당 손님이 그 제품을 아직 사지 않았음을 의미한다. 이 행렬을 유심히 살펴보면 아주 정확하지는 않지만, 손님 사이의 성향이 유사한지 아닌지를 알 수 있다. 예를 들어 손님 2와 4는 소고기와 치즈를 구매했고, 치즈를 좋아한다는 관점에서 유사하다. 물론 손님 4가 구매한 치킨은 아직 손님 2가 구매하지는 않았다. 대체적으로 둘은 유사한 성향을 보이는데, 이 사실을 바탕으로 손님 2에게 ‘당신과 유사한 성향의 손님 4가 치킨을 샀으니, 당신도 구매해보세요!’라고 제안할 수 있고, 이게 바로 머신 러닝의 사용자 기반 협업 필터링(user based collaborative filtering) 추천 기법의 원리이다. 문제는 손님 간의, 물건 간의 이러한 관계를 하나씩 계산할 수 없는 데에 있다. 이 어려움을 해결하기 위해 행렬의 개념을 사용해보자.