본문 바로가기
Data Science/Recommendation System

[Recsys] 추천시스템 알고리즘 - 협업 필터링(Collaborative filtering)

by VAMOSSS 2022. 12. 22.
반응형

 

본 글은 Recommender Systems(Charu C. Aggarwal), 추천 시스템 기법 연구동향 분석(손지은, et al.) 참고하여 정리한 내용들을 바탕으로 작성한 글입니다.

 

협업 필터링

해당 포스팅에서는 추천시스템 알고리즘 중 협업 필터링 방식에 대해 정리해보았다.

 

협업 필터링은 '특정 아이템에 대해 선호도가 유사한 고객들은 다른 아이템에 대해서도 비슷한 선호도를 보일 것'이라는 기본 가정을 바탕으로 사용자 혹은 아이템간 유사도를 기반으로 선호도를 예측하는 방법이다.

 

콘텐츠 기반 접근방식이 사용자와 아이템 정보에만 의존하여 선호도를 예측하는 반면, 협업 필터링은 사용자가 아이템에 대해 평가한 정보를 사용해 선호도를 예측한다. 이것이 가장 큰 차이점이다.

 

즉, 추천대상이 되는 고객과 취향이 비슷한 사용자를 선정하고 그들이 선호하는 아이템을 추천대상 고객에게 추천하기 때문에 추천되는 아이템의 다양성을 보장할 수 있다.

 

아래 그림은 사용자 기반 협업 필터링의 개념을 표현하고 있다.

User-based collaborative filtering

  1. 추천 대상 고객이 선정되면, 구매 이력을 바탕으로 추천 대상 고객과 다른 사용자들 간의 유사도를 측정.
    (구매한 아이템이 일치할수록 취향이 비슷한 것이므로 높은 유사도를 가짐)
  2. 모든 사용자들과 유사도를 측정했을 때 유사도가 가장 높은 사용자를 이웃으로 선택.
  3. 추천 대상 고객과 취향이 가장 비슷한 사용자를 기반으로 추천

아래 그림은 아이템 기반 협업 필터링의 개념을 표현하고 있다.

Item-based collaborative filtering

  1. 추천 대상 아이템을 기준으로 유사한 아이템 선정.
  2. 선정된 아이템은 구매하였으나 추천 대상 아이템은 구매하지 않은 사용자에게 추천 대상 아이템 추천.

협업 필터링의 특징

  • 데이터 희소성(Sparsity)
    • 사용자의 아이템에 대한 만족도를 점수로 나타낸 사용자-아이템 행렬을 사용해 추천 대상 고객의 선호도를 예측.
      (사용자-아이템 행렬 예시 이미지 참고)
    • 데이터의 부족으로 인해 발생하는 문제를 총칭해 데이터 희소성이라 함.
      Cold start
      : 상품의 인기도에 따라 데이터가 편중되거나 아직 평가 값을 입력하지 않은 새로운 사용자가 존재하는 경우, 유사도를 측정할 만한 충분한 데이터가 존재하지 않기 때문에 선호도를 예측하는 것이 불가능
      First rater : 아직 구매가 이루어지지 않아 점수가 존재하지 않을 경우, 누군가가 점수를 주기 전까지는 추천이 이루어질 수 없는 경우
    • 데이터 희소성 문제를 해결하기 위한 다양한 연구 진행중.
      해결 방법 예시) 키워드 추출, 사회연결망 기법 활용, 주요 사용자와 일반 사용자로 분류하는 방법, 특이값 분해(SVD) 등
  • 확장성(Scalability)
    • 최근 사용자-아이템 데이터 셋의 크기가 점점 커지고 있으며, 이에 따라 추천 알고리즘 구현 시 컴퓨터 계산 량이 급증하게 되어 많은 시간과 비용이 소모되는 문제점이 발생하고 있음.
      보통 사용자의 구매행동이 발생하는 즉시 사용자-아이템 행렬이 갱신되며, 대부분의 시스템에서는 이와 같이 실시간으로 갱신되는 정보를 통해 신속하게 새로운 예측 값을 계산하여 고객에게 추천 진행.
    • 즉, 즉각적인 피드백 구조가 유지되기 위해서 알고리즘의 빠른 계산 속도는 매우 중요한 사항임, 그러나 모든 데이터를 사용하여 선호도를 예측하는 방식은 계산량이 많을 뿐만 아니라 예측력의 정확도를 저하시킬 수 있음.
    • 해결 방법 예시) 유사도가 큰 순서대로 N개의 사용자 혹은 아이템만을 선정하여 선호도를 예측하는 방법은 높은 추천 만족도를 지니면서 모든 데이터를 활용한 것보다 빠른 계산 속도를 보임.
  • Grey sheep
    • 협업 필터링 접근 방식은 사람들 취향에 경향과 패턴이 존재하는 가정을 하고 있음
      그렇기에 일관성 없는 의견을 가진 사용자들의 데이터는 경향과 패턴을 파악함에 있어 방해가 되며 예측 정확도를 떨어뜨림
    • 해결 방법 예시) 콘텐츠 기반 접근방식과 협업 필터링을 모두 사용하여 가중 평균값을 예측 값으로 활용하는 방법 제안.
  • Shilling Attack
    • 의도적으로 특정 아이템에 긍정적인 평가점수를 입력해 추천 리스트에 포함되게 하거나 부정적인 평가점수를 입력하여 추천되지 않도록 할 수 있다.
      이처럼 악의적으로 평가점수를 입력하여 추천시스템의 정상적인 작동을 방해하는 행위를 shilling Attack이라 함.
    • 많은 연구를 통해 추천 알고리즘이 평범한 수준의 공격에도 쉽게 노출될 수 있다는 사실이 증명됨.
    • 해결 방법 예시) 조작된 평가점수가 추천 결과에 미치는 영향을 최소화하기 위한 추천시스템 모델 구축 방법 제안, 허위 사용자 탐지 기법에 대한 연구 진행, 기계학습 알고리즘을 통해 비정상적인 행위를 미리 학습한 뒤 공격을 탐지하는 기법

Example of 'user-item' matrix

기억 기반 협업 필터링

기억 기반 협업 필터링 기법은 사용자 기반 협업 필터링아이템 기반 협업 필터링으로 구분할 수 있다.

 

사용자 기반 협업 필터링

  • 사용자가 입력한 선호도 정보를 이용하여 고객과 유사한 성향을 갖는 이웃 사용자 선별
  • 선별된 이웃들이 공통적으로 선호하는 아이템을 고객에게 추천해주는 방식

아이템 기반 협업 필터링

  • 특정 아이템이 기준이 되어, 사용자들에 의해 평가된 점수가 유사한 아이템을 이웃 아이템으로 선정
  • 이웃 아이템을 평가한 점수를 바탕으로 추천 대상 고객이 특정 아이템에 대해 갖게 될 선호도를 예측

기억 기반 협업 필터링은 유사도 측정, 선호도 예측, 상위 N개 아이템 추천 순서로 설명하겠다.

 

1) 유사도 측정

사용자 혹은 아이템간의 유사도를 계산하는 것은 기억 기반 협업 필터링에서 가장 중요한 단계이다.

 

같은 항목에 같은 점수를 준 두 고객이 존재할 경우, 이들의 유사도는 높으며 비슷한 취향을 갖고 있다고 볼 수 있다.

즉, 추천대상 고객과 같은 물건을 구매하거나 선호하는 물건이 같은 고객일수록 높은 유사도를 갖게 된다.

 

대표적인 유사도 측정 척도

  • 피어슨 상관계수(Pearson correlation coefficient)
    • 점수 기반
    • 속성간의 상관성을 계산하여 1에 가까울수록 양의 상관관계, -1에 가까울수록 음의 상관관계가 있으며, 0은 상관관계가 없음을 나타냄
  • 코사인 유사도(Cosine similarity)
    • 점수 기반
    • 내적공간의 두 벡터 간 각도의 코사인 값을 이용하여 두 벡터가 얼마나 유사한지 측정하는 방법
    • 1이면 같은 성향, 0이면 다른 성향
  • 스피어만 순위 상관계수(Spearman's rank correlation coefficient)
    • 순위 기반
    • 사용자 a와 b의 점수를 각각 순위로 변환한 뒤, 차이를 통해 유사도를 측정

유사도 측정 척도들의 식이나 장단점 등 자세한 설명은 스킵하겠습니다.

 

2) 선호도 예측

유사도 측정을 통해 추천 대상 고객과 유사한 사용자를 선택한 후, 이들의 과거 구매 이력을 바탕으로 추천 대상 고객의 취향을 예측할 수 있다.

 

예측 값 얻기 위한 기법

  • 가중합
  • 단순가중평균

 

가중치 부여 방식

  • 추천 대상 고객과 사용자간의 유사도가 높을수록 큰 가중치를 부여
  • TF-IDF
  • 평가시기 고려

 

3) 상위 N개 아이템 추천

아이템 추천 단계에서는 추천 대상 고객의 선호도가 가장 높을 것이라 예상되는 상위 N개의 아이템을 최종적으로 선택하여 추천 대상 고객에게 아이템 목록을 제공한다.

 

아래 그림은 사용자 기반 상위 N개 아이템 추천 기법을 보여 주고 있다.

User-based top-n recommendation algorithm

  • 추천 대상 고객과 유사도 측정
  • K명의 유사한 이웃 선택하고 그들이 구매한 아이템들에 대해 구매 횟수 계산
  • 추천 대상 고객이 구매하지 않은 아이템들 중에서 구매 빈도수가 높은 순서에 따라 상위 N개가 추천

아래 그림은 아이템 기반 상위 N개 아이템 추천 기법을 보여주고 있다.

Item-based top-n recommendation algorithm : Top-n lists of recommended items

여기서 행렬 값은 아이템간의 유사도로써 함께 구매되어질수록 큰 값을 갖게 된다.

Item-based top-n recommendation algorithm : Ranking of recommendation

유사도가 높은 순서대로 K개의 아이템을 선정한 뒤, 다시 아이템-아이템 행렬을 생성한다.

이 때, K개의 아이템은 추천 대상 고객이 구매한 아이템과 구매하지 않은 아이템으로 나누어 각각 행과 열로 구성한다.

 

마지막으로, 유사도가 가장 큰 N개의 아이템이 추천 대상 고객에게 추천된다.

 

모델 기반 협업 필터링

앞서 설명한 기억 기반 협업 필터링 방식은 모델을 구축하지 않고, 추천이 요구될 때마다 휴리스틱(heuristics) 기법을 통해 결과를 도출하는 'lazy learning'이다.

이는 사용자가 설정해야하는 파라미터 개수가 적다는 장점이 있는 반면, 데이터 희소성이나 Grey sheep과 같은 문제점이 나타나고 있다.

 

모델 기반 협업 필터링은 기억 기반 협업 필터링 방식의 과정을 기본으로 하되 군집화, 분류, 예측의 단계에서 기계학습 또는 데이터마이닝 기법을 활용하여 학습데이터를 통해 모델을 구축하여 추천해준다.

 

일반적으로 사용자 선호도를 범주화로 나타내는 데이터에서는 분류모델이 사용되며,
연속형 데이터에서는 회귀모델이나 특이값 분해 기법이 사용된다.

  • 나이브 베이즈 : 베이즈 정리에 이론적 근거를 두고 각 카테고리에 할당 될 확률을 계산하는 방법
  • 군집화 : 개체간의 유사성을 척도로 비슷한 특성을 가진 개체들이 함께 그룹 지어지도록 하는 기법
    • K-Means, DBSCAN, OPTICS 등
  • 차원축소 : 고차원의 행렬을 저차원의 행렬로 축소시키는 기법
    • SVD 등

지역정보, 상황, 사회관계, 시간 등 수많은 정보의 수집이 가능해 짐에 따라 추천시스템에 사용되는 데이터의 변수가 늘어나고 있다.

 

일반적으로 구성변수가 많아질수록 계산의 복잡성이 증가되고 예측 성능과 추천 유효성을 저해할 수 있어 변수에 대한 중요도를 파악하고 추천 성능을 극대화시키는 것이 필요하다.

 

Reference

추천 시스템 기법 연구동향 분석(손지은, et al.)

 

https://wannabenice.tistory.com/42

 

[Recsys] 추천시스템이란?

본 글은 Recommender Systems(Charu C. Aggarwal)라는 책과 다양한 블로그를 참고하여 정리한 내용들을 바탕으로 작성한 글입니다. 추천시스템 추천시스템은 사용자(user)에게 상품(item)을 제안하는 소프트

wannabenice.tistory.com

https://wannabenice.tistory.com/43

 

[Recsys] 추천시스템 - 데이터 형태, 평가지표

본 글은 Recommender Systems(Charu C. Aggarwal)라는 책과 다양한 블로그를 참고하여 정리한 내용들을 바탕으로 작성한 글입니다. 데이터 형태 요즘 다양한 분야에서 추천시스템이 활용되면서 다양한 알

wannabenice.tistory.com

https://wannabenice.tistory.com/44

 

[Recsys] 추천시스템 알고리즘 - 콘텐츠 기반(Content-based)

본 글은 Recommender Systems(Charu C. Aggarwal), 추천 시스템 기법 연구동향 분석(손지은, et al.)을 참고하여 정리한 내용들을 바탕으로 작성한 글입니다. 콘텐츠 기반 접근방식 해당 포스팅에서는 추천시

wannabenice.tistory.com

반응형

댓글