brunch

You can make anything
by writing

C.S.Lewis

by 비즈스프링 Jan 14. 2020

예시와 함께 아마존 추천엔진 이해하기

아이템 기반 필터링 기법을 중심으로

지난 시간에 사용자 기반의 협업 필터링 기법을 이해해 보았습니다.
이번에는 아이템 기반의 협업 필터링 기반을 이해해 보겠습니다.
사용자 기반 필터링(User-based filtering)은 앞서 설명한 바와 같이 추천 대상 고객과 유사한 성향의고객을 찾고 공통적으로 선호하는 아이템을 추천하는 방식으로, 고객별 정확한 추천이 가능하다는 장점이 있습니다.

이번 세션에 볼 아이템 기반 협업 필터링(IBCF, Item Based Collaborative Filtering)은 고객 들의 선호도를 바탕으로 아이템 간의 유사도를 계산하고, 특정 사용자가 어떤 아이템을 구매하거나 좋다고 평가하면 그와 유사한 아이템을 추천해주는 방식입니다.



유사한 아이템을 추천한다는 것? 유사함 이란 무엇일까요?


아마존의 추천 시스템 ‘A9′는 회원들의 소비 패턴을 분석해 구매 가능성이 높은 상품을 추천하게 되는데, ‘A9′ 성능은 전체 판매량 중 추천 시스템을 통해 판매되는 비율이 35%가 될 정도로 높다고 합니다. 그래서 여기서는 Amazon.com이 사용한다는 Cosine Similarity(코사인 유사도) 알고리즘을 예시로 설명하겠습니다.

Cosine Similarity(코사인 유사도)는 두 벡터간 사이의 각도를 구해서 유사도로 사용하는 것입니다. 
아래 삼각형에서 A와 B는 유사도를 계산할 두 벡터이고, 두 벡터의 A와 B의 사잇-각 θ를 코사인으로 구하는 것입니다. 이렇게 구해진 사잇-각의 값이 Cosine Similarity(코사인 유사도)입니다.



두 벡터 A,B에 대한 코사인 유사도 cos(θ)는 벡터의 스칼라곱과 크기로 아래와 같은 공식으로 표현할 수 있습니다. (공식이 어려운 분들은 예시 부터 보셔도 됩니다.)

위 식으로 계산된 코사인 유사도(Cosine Similarity) 값은 -1~1 사이 값을 갖게 되며, 아래와 같이 해석됩니다.


       1) 두 벡터의 방향이 동일한 경우 : 1 ⇒  유사도가 높음
       2) 두 벡터가 90도의 각인 경우 : 0
       3) 두 벡터의 방향이 반대인 경우 : -1 ⇒ 유사도가 낮음 


아이템을 기반 예시로 다시 설명하자면,  

아래는 사용자별 구매 상품을 O,X로 표현한 것입니다.

        – User Koo는 석류 즙,흑 마늘,프로바이오틱스 상품을 구매했습니다.
        – User Lee는 석류 즙,흑 마늘 상품을 구매 했습니다.
        – User Ok는 석류 즙,흑 마늘,밀크씨슬 상품을 구매 했습니다.            

우리는 석류 즙과 다른 상품들 간의 유사도를 계산하기 위해 유사도식에 대입합니다.

석류 즙과 나머지 상품의 유사도 값은 아래와 같이 계산됩니다.

                석류 즙 – 흑 마늘 : 0.67

                석류 즙 – 프로바이오틱스 : 0.41

                석류 즙 – 밀크씨슬 : 0.41   

유사도 값을 활용한다면, 사용자 ‘NEW’ 가 석류 상품을 구매한 후, 쇼핑몰에 재방문하면, 유사도 점수가 가장 높은 ‘흑 마늘’ 부터 추천하게 되는 것입니다.





이와 같은 아이템 기반 추천 알고리즘은,  
온라인 상에서 ‘특정 기사를 본 사람들이 본 뉴스’나 온라인 서점의 ‘이 책을 구매하신 사람들이 함께 구매한 상품입니다’와 같은 방식의 구매한/조회한 아이템 혹은 검색한 아이템을 중심으로 추천합니다. 

여기까지 실시간 추천 알고리즘에 많이 이용되는 두가지 ‘1. 사용자 기반 협업 필터링’과 ‘2.아이템 기반 협업 필터링’에 대해 간략하게 알아보았습니다. 검색엔진 검색어와 문서 유사도, 텍스트 마이닝, 군집화 모델 활용, 상품 추천, 실시간 기사 추천 도서 추천 등 다양한 비즈니스에 활용할 수 있습니다.


어떠신가요?  여러분의 비즈니스에 이용할 수 있는 방법이 떠오르셨나요? 
비즈스프링은 여러분의 비즈니스에 적극 활용할 수 있는 방안을 함께 찾아드리겠습니다.
궁금한 점 있으시면 언제든 연락주세요.


�02-6919-5514 | � ad@bizspring.co.kr

매거진의 이전글 예시와 함께 넷플릭스 추천엔진 이해하기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari