_Han_
나의 개발 노트
_Han_
  • 분류 전체보기 (272)
    • 데이터 엔지니어링 (29)
    • 인프라 (3)
    • 추천시스템 (11)
    • 코딩테스트 (146)
    • 부트캠프 회고 (15)
    • 회고 (4)
    • 자격증 (1)
    • 파이썬 프로그래밍 (6)
    • 통계 (2)
    • Git (21)
    • 유니티2D (33)

최근 글

반응형
hELLO · Designed By 정상우.
_Han_

나의 개발 노트

추천시스템

[추천시스템] 기본 협업 필터링 모델

2022. 11. 21. 19:45
반응형

기본적으로 협업 필터링 모델(Collaborative filtering)은  여러 사용자의 평점을 협업하여 추천합니다.

아래와 같이 영화에 대한 사용자-아이템 평점의 테이블이 있다고 가정하겠습니다.

  다크나이트 인터스텔라 프로메테우스 반지의제왕 ...
사용자A 5 4   5 ...
사용자B 5 5 4 4 ...
사용자C 3 4 3 5 ...
... ... ... .. ... ...

대부분의 사용자는 전세계의 영화 중 극히 일부분만 봤을 것이고 대부분의 평점들이 비어있을것 입니다.

- 이 개념은 영화뿐만 아니라 쇼핑과 같은 다른 데이터에도 적용이 가능합니다.

 

협업필터링의 기본적인 구조는 사용자와 아이템간에 매우 높은 상관관계를 가지고 있어 비어있는 평점을 예측하게 됩니다..

위와 같이 사용자A와 사용자B가 내린 평점을 보면 유사하기 때문에 유사한취향을 가지고 있다고 할 수 있습니다.

현재 사용자A는 프로메테우스라는 영화를 아직보지 않아서 평점을 내리지 않았습니다.

사용자A와 사용자B가 유사하니 평점도 유사할 것이라고 생각할 수 있습니다.

 

위 처럼 협업필터링 대부분은 아이템 간 상관관계나 사용자간 상관관계를 예측에 활용하는데 중점을 둡니다.

일부는 두 상관관계를 모두 사용하기도 하고 지도학습을 통하여 모델을 훈련하기도 합니다.

 

방법

협업필터링에는 흔히 두가지 방법이 쓰입니다.

 

메모리 기반 방법

이 방법은 이웃 기반 협업 필터링으로 알려져있으며 협업필터링의 초기 방법론입니다.

이웃을 기반으로 사용자-아이템 행렬의 평점을 예측합니다.

사용자 기반 협업 필터링

우리가 사용자A에게 추천을 한다고 가정해보면

사용자A와 유사한 성향을 가지고 있는 사용자들의 평점 결과를 통해 추천을 진행할 것 입니다.

사용자A와 유사한 사용자 집단을 정의하고 유사집단의 평가 결과의 가중 평균을 기반으로 사용자A의 비어있는 평점을 예측하게 됩니다.

위처럼 사용자A와 사용자B가 유사하니 사용자B가 내린 프로메테우스 평점을 기반으로 사용자A의 프로메테우스 평점을 예측합니다.

일반적으로는 사용자A와 유사한 사용자 k명을 이용하여 평점을 예측합니다.

- 유사한 사용자를 찾기 위하여 평점 행렬의 행을 통하여 유사도 함수를 계산합니다.

아이템 기반 협업 필터링

사용자A를 통하여 '프로메테우스'라는 타깃아이템의 평점을 예측한다면

먼저 '프로메테우스'와 가장 유사한 아이템 집합 S를 정의해야 합니다.

사용자A가 평가한 아이템 집합 S의 평점은 사용자가 '프로메테우스'를 예측하는데 사용됩니다.

사용자A가 평가한 '다크나이트', '인터스텔라' 영화는 사용자A가 아직 보지 않은 '프로메테우스'라는 영화의 평점을 예측하는 데 사용합니다.

- 유사한 아이템을 찾기 위하여 평점 행렬의 열을 통하여 유사도 함수를 계산합니다.

 

정리

메모리 기반의 장점은 적용하기 간단하고 추천의 결과를 설명하기에 쉽습니다.

하지만 평점의 분포가 고르지 못한 영화가 존재한다면 그 영화의 평점을 예측하기에는 어렵고 사용자A와 유사한 사용자 중에 '프로메테우스' 영화를 평가한 사용자가 없을 수도 있습니다. 즉 평점 예측의 전체를 커버하기에는 어려울 수 있다는 단점이 존재합니다.

 

모델 기반 방법

머신러닝과 데이터 마이닝 기술을 이용한 방법론입니다.

모델을 파라미터를 최적화 하는 방식으로 학습됩니다.

모델의 예시로는 의사 결정 트리, 룰 기반 모델, 베이지안 방법론 그리고 잠재 요인 모델이 있습니다.

반응형

'추천시스템' 카테고리의 다른 글

[추천시스템] 카카오 Mini Reco 기출문제 회고  (2) 2023.01.01
[추천시스템] 이웃 기반 협업필터링 (1) - 사용자 기반  (0) 2022.12.23
[추천시스템] 평점의 종류  (0) 2022.11.29
[추천시스템] 목표  (0) 2022.11.15
[추천시스템] 소개 및 개요  (0) 2022.11.14
    '추천시스템' 카테고리의 다른 글
    • [추천시스템] 이웃 기반 협업필터링 (1) - 사용자 기반
    • [추천시스템] 평점의 종류
    • [추천시스템] 목표
    • [추천시스템] 소개 및 개요
    _Han_
    _Han_
    학습한 것을 기록합니다.

    티스토리툴바