추천 시스템 총정리 : CBF & CF & GNN

기본 용어

종류

Explicit data Implicit data
명확하게 자신의 취향을 나타내는 데이터 취향을 추론할 수 있는 데이터
점수 / 좋아요,구독 / 구매 / 장바구니 담기 click → 머무는 시간, 방문 횟수 / 시청 여부, 시청 시간 / 장바구니 담기

CF (Collaborative Filtering)

  • 가장 보편적으로 많이 알려지고 사용되는 추천 알고리즘이다.
  • 다른 유저의 추천 데이터들을 바탕으로 시스템을 구현한다.
  • 사용자들의 데이터를 바탕으로 추천을 구축한다는 점이 포인트!

  • 기본 가정
    • 사용자로부터 아이템에 대한 명시적/묵시적 평가를 데이터로 구할 수 있다.
    • 사용자들의 평가 데이터에서 취향이 비슷한 사람을 찾아낼 수 있고, 취향이 비슷한 사람들은 선호 패턴이 비슷하다.
  • 유사도 지표

    1) Correlation coefficient (상관계수)

    문자 의미
    $x, y$ 두 사용자(user) (또는 두 아이템(item))
    $r_{x,i}$ 사용자 (x)가 아이템 (i)에 준 평점
    $r_{y,i}$ 사용자 (y)가 아이템 (i)에 준 평점
    $\bar{r}_x$ 사용자 (x)의 평균 평점
    $\bar{r}_y$ 사용자 (y)의 평균 평점
    $I_{xy}$ 사용자 (x)와 (y)가 모두 평가한(공동 평가) 아이템들의 집합

    2) 코사인 유사도

    기호 의미
    $\vec{x}, \vec{y}$ 사용자 (x), 사용자 (y)의 평점 벡터
    $r_{x,i}, r_{y,i}$ 각 사용자가 아이템 (i)에 준 평점
    $I_x$ 사용자 (x)가 평가한 아이템들의 집합
    $I_y$ 사용자 (y)가 평가한 아이템들의 집합
    $I_{xy}$ 두 사용자가 모두 평가한 아이템들의 집합
    $\vec{x} \cdot \vec{y}$ 두 벡터의 내적
    $∥\vec{x}∥$ 사용자 (x)의 평점 벡터 크기(norm)

    3) Tanimoto coefficient - 고전적인 방법이다.

  • 작동 방식
    1. 모든 사용자간의 평가 유사도를 계산한다. 상관계수, 코사인 등 사용

    2. 추천 대상과 다른 사용자들의 유사도를 추출한다.

    3. 추천 대상이 평가하지 않은 모든 아이템에 대해서, 추천 대상의 예상 평가 값을 구한다.
      • 예상 평가값은 다른 사용자의 해당 아이템에 대한 평가와 그 사용자와의 유사도를 가중평균으로 계산한다.
    4. 아이템 중에서 예상 평가값이 가장 높은 N개의 아이템을 추천한다

사용자들의 데이터를 바탕으로 추천을 구축하는데,

하위 항목으로 아이템 기반 필터링(Item-based Filtering) 과

유저 기반 필터링(User-based Filtering) 으로 구분된다.

(A) User-Based (B) Item-Based

1. Item-based Collaborative Filtering(IBCF)

  • 영화 추천 시스템을 예로 들면 유사한 두 영화에 대해 비슷한 평점을 남길 것이라는 생각에서 출발한다.
  • CBF와 동일한 과정이나 유사도를 구하는 과정에서 차이가 있다. =>

  • 아이템간 유사도 사용 → 사용자가 선택한 아이템이 같으면 동일한 추천리스트
  • 장점
    • Robustness가 높음 = Coverage가 높음

      → 사용자가 아이템 하나만 평가하면 추천이 가능하다. 유저가 평가를 많이 안 해도 “그나마 하나라도 평점/클릭한 아이템이 있으면” 그 순간 추천이 가능해진다.

  • 계산 예시

2. User-based Collaborative Filtering(UBCF)

  • 영화 추천 시스템을 예로 들면 유사한 유저는 같은 영화에 대해 비슷한 평점을 남길 것이라는 생각에서 출발한다.
  • 사용자간 유사도 사용 → 사용자별로 개인화된 추천 리스트

  • 계산 예시

CBF (Content - Based Filtering)

  • 아이템 고유 정보를 기반으로 하는 추천으로 사용자의 상호 작용 정보 없이 추천 수행이 가능하다!
  • IBCF는 특정 컨텐츠에 대해서 다른 유저들이 남긴 평점을 기반으로 유사도를 계산해서 추천을 진행하지만, 내용 기반 추천은 해당 컨텐츠의 내용 자체의 유사도로 추천하는 방식이다.
  • 장점
    • 다른 유저들의 데이터를 필요로 하지 않는다.

      => 새로운 아이템이 추가 됐을 때 Cold Start Problem에서 자유로워진다.

    • 개인의 취향을 고려한 추천이 가능하다.
    • 새로운 아이템이나 대중적이지 않은 아이템도 추천할 수 있다.

      => 아무도 평가하지 않은 새로운 아이템과 인기 없는 아이템도 해당 아이템들의 Feature들만 뽑아낼 수 있다면, CF 구현시 발생하는 No first-rater Problem에서 자유로워진다.

    • 사용자에게 추천하는 이유에 대해 설명할 수 있다.
  • 단점
    • 주변 유저 평가는 영향을 받지 않지만, 아예 처음 유입된 유저는 그에 대한 데이터가 존재하지 않아서 추천할 수 없다.
  • 작동 방식
    1. 아이템 간의 유사도를 계산한다
    2. 추천 대상이 되는 사용자가 선호하는 아이템을 선정
    3. 2번 단계에서 선정된 아이템과 가장 유사도가 높은 N개의 아이템을 찾는다.
    4. 찾은 N개의 아이템을 사용자에게 추천한다.
  • 계산 예시

    이때, 영화끼리의 유사도는 어떻게 구하는가?

아이템끼리의 컨텐츠 유사도 $(sim(i,j))$ - (1) 고전적인 방법

두 아이템간 유사도를 어떻게 정량화 할 것인가?

CBF에서는 유사도를 정량화 하기 위해서 컨텐츠 자체가 가진 특성을 이용한다.

우선, 고전적인 방식부터 알아보자.

  1. 집합 유사도 => 이렇게만 계산하면 복잡한 계산은 하기 힘들어지기 때문에 유사도를 벡터 공간으로 확대한다.

    TF-IDF나 BoW로 아이템을 고차원 벡터로 만들고,

    Cosine similarity(또는 유클리드 거리)로 벡터 간 유사도를 측정할 수 있다.

    (코사인 유사도는 위에 이미 한번 설명했으므로 생략)

  2. Bag-of-Words(BoW)
    • 단어들의 순서는 전혀 고려하지 않고, 단어들의 출현 빈도(frequency)에만 집중하는 텍스트 데이터의 수치화 표현 방법
    • ex
      • 영화 A: “robot saves world”
      • 영화 B: “girl saves world”
      • 영화 C: “robot fights alien”

      BoW는 다음처럼 단어가 등장했는지 여부 또는 등장 횟수로 벡터를 만든다.

      단어 A B C
      robot 1 0 1
      saves 1 1 0
      world 1 1 0
      girl 0 1 0
      fights 0 0 1
      alien 0 0 1

      이제 영화 하나가 6차원 벡터로 표현되는 것!

  3. TF-IDF
    • 문서 집합에서 한 단어가 얼마나 중요한지를 수치적으로 나타낸 가중치이다.
    • 특정 문서에서 중요한 단어만 강조하는 BoW의 개선버전이다.
    • ‘을’, ‘를’, ‘이’, ‘가’와 같은 조사들은 우리가 사용하는 문서들에 많은 부분을 차지하지만 문서의 유의미한 의미는 없다.
    • 이러한 단점을 보완하기 위해 제안된 기법이 ‘TF-IDF’이다.
    • 용어
      • TF(Term Frequency) : 어떤 단어가 특정 문서에 얼마나 많이 쓰였는지의 빈도
      • DF(Document Frequency) : 특정 단어가 나타난 문서의 수
      • IDF(Inverse Document Frequency) : 전체 문서 수 N을 해당 단어의 DF로 나눈 뒤 로그를 취한 값.즉 해당 단어가 얼마나 얼마나 “희귀하게” 쓰였는지를 나타내는 지표

아이템끼리의 컨텐츠 유사도 $(sim(i,j))$ - (2) 최신 방법

현대 CBF는 컨텐츠 내용을 사전 학습 모델로 의미 기반 벡터 임베딩하고, 그 벡터 사이의 코사인 유사도 또는 내적을 사용한다.

  1. Sentence Embedding
    • “문장 의미”를 이해함 → TF-IDF보다 훨씬 고성능이다.
      • TF-IDF 시대에서는 예를 들어 영화 “아이언맨”과 “배트맨”이 로봇/과학, 어둠/부자/복수 등 단어 분포 차이 때문에 유사하지 않다고 나올 수 있었다.
      • 임베딩 기반에서는 “슈퍼히어로 영화”라는 의미가 반영되어 유사도 ↑
    • 모델 예시
      • Sentence-BERT (SBERT)
      • Sentence-T5
      • MPNet embeddings
      • E5-large / bge-large 같은 최신 임베딩 모델
  2. 멀티모달
    • 이미지 ⟷ 텍스트의 의미적 유사도 계산
    • 패션 추천, 인테리어 추천, 음식 추천 등에 많이 사용

딥러닝 기술의 발전으로 추천시스템에도 AI 기술을 적극적으로 활용하고 있다.

그 중에 그래프 기반의 추천시스템을 봐보자.

Graph Based Recommender System

  • 접근 방식
    1. 모든 사용자와 항목에 대해 고품질 임베딩을 생성한다.
    2. 모든 사용자에 대해 임베딩을 사용하여 항목 선호도를 예측합니다.