본문 바로가기
AI

추천시스템 맛보기 3탄

by david100gom 2019. 10. 13.
728x90

협업필터링

  1. 최근접 이웃 협업필터링

    • 친구들에게 물어보는 것과 유사한 방식으로, 사용자가 아이템에 매긴 평점 정보나 상품 구매 이력과 같은 사용자 행동 양식(User Behavior)만을 기반으로 추천을 수행하는 것이 협업 필터링(Collaborative Filtering) 방식이다.

    • 주요 목표는 사용자-아이템 평점 매트릭스와 같은 축적된 사용자 행동 데이터를 기반으로 사용자가 아직 평가하지 않은 아이템을 예측 평가(Predicted Rating)하는 것이다. 협업 필터링은 사용자가 평가한 다른 아이템을 기반으로 사용자가 평가하지 않은 아이템의 예측 평가를 도출하는 방식이다.

    • 사용자-아이템 평점 행렬에서 행(Row)은 개별 사용자, 열(Column)은 개별 아이템으로 구성되며, 사용자 아이디 행, 아이템 아이디 열 위치에 해당하는 값이 평점을 나타내는 형태가 돼야 한다.

    • 일반적으로 이러한 사용자-아이템 평점 행렬은 많은 아이템을 열로 가지는 다차원 행렬이며, 사용자가 아이템에 대한 평점을 매기는 경우가 많지 않기 때문에 희소 행렬 (Sparse Matrix) 특성을 가지고 있다.

    • 최근접 이웃 협업필터링은 메모리(Memory)협업 필터링이라고도 하며, 일반적으로 사용자 기반과 아이템 기반으로 다시 나뉠수 있다.

      • 사용자 기반(User-User) : 당신과 비슷한 고객들이 다음 상품도 구매했다.

      • 아이템 기반(Item-Item) : 이 상품을 선택한 다른 고객들은 다음 상품도 구매했다.

    • 일반적으로 사용자 기반보다는 아이템 기반 협업 필터링이 정확도가 더 높다. 이유는 비슷한 영화(또는 상품)를 좋아(또는 구입)한다고 해서 사람들의 취향이 비슷하다고 판단하기는 어려운 경우가 많기 때문이다. 따라서 최근접 이웃 협업 필터링은 대부분 아이템 기반의 알고리즘을 적용한다.

  2. 잠재 요인 협업 필터링

    • 사용자-아이템 평정 매트릭스속에 숨어 있는 잠재 요인을 추출해 추천 예측을 할 수 있게 하는 기법이다.

    • '잠재 요인'을 기반으로다차원 희소 행렬인 사용자-아이템 행렬 데이터를 저차원 밀집 행렬의 사용자-잠재 요인 행렬과 아이템-잠재 요인 행렬의 전치 행렬(즉, 잠재 요인 - 아이템 행렬)로 분해할 수 있으며, 이렇게 분해된 두 행령의 내적을 통해 새로운 예측 사용자-아이템 평점 행렬 데이터를 맏늘어서 사용자가 아직 평점을 부여하지 않는 아이템에 대한 예측 평점을 생성하는 것이 잠애 요인 협업 필터링 알고리즘의 골자이다.

    • 사용자-아이템 평점 행렬과 같이 다차원의 매트릭스를 저차원의 매트릭스로 분해하는 기법을 행렬 분해(Matrix Factorization) 이라 한다.

    • 행렬 분해

      • 행렬 분해는 다차원의 매트릭스를 저차원 매트릭스로 분해하는 기법으로서 대표적으로 SVD(Singular Vector Decomposition), NMF(Non-Negative Matrix Factorization) 등이 있다. Factorization(분해)은 우리말로 '인수분해'를 말한다. 인수분해는 일반적으로 하나의 복잡한 다항식을 두 개 이상의 좀더 단순한 인수(factor)의 곱으로 분해하는 것을 말한다.

      • 행렬 분해는 주로 SVD(Singular Vector Decompositio) 방식을 이용한다. 하지만 SVD 널(NaN) 값이 없는 행렬에만 적용할 수 있다. 널 값이 있는 경우는 확률적 경사 하강법(Stochastic Gradient Descent, SGD)이나 ALS(Alternating Least Squares)방식을 이용해 SVD를 수행한다. 

      • 확률적 경사 하강법(Stochastic Gradient Descent - SGD)을 이용한 행렬 분해

        • P 와 Q 행렬로 계산된 예측 R 행렬 값이 실제 R 행렬 값과 가장 최소의 오류를 가질수 있도록 반복적인 비용 함수 최적화를 통해 P 와 Q를 유추해 내는 것이다.

 

 

참고 서적 : 파이썬 머신러닝 완벽 가이드  (http://www.yes24.com/Product/Goods/69752484)

 

728x90

'AI' 카테고리의 다른 글

SageMaker : Bring your own Algorithms  (0) 2020.05.24
추천시스템 맛보기 4탄  (0) 2019.10.15
추천시스템 맛보기 2탄  (0) 2019.10.07
추천시스템 맛보기 1탄  (0) 2019.10.03
머신러닝 맛보기 8탄  (0) 2019.05.27
머신러닝 맛보기 7탄  (0) 2019.05.09
머신러닝 맛보기 6탄  (0) 2019.05.02
머신러닝 맛보기 5탄  (0) 2019.04.18

댓글