Data/추천시스템

인기도, 연관규칙분석, tf-idf 컨텐츠 기반 시스템

빛날희- 2022. 3. 23. 18:21

해당 포스팅은 NAVER BOOSTCAMP RECSYS 트랙의 교육자료와 강의를 참고하여 정리한 글입니다.


본 포스팅에선 기본적인 추천 시스템인 인기도 기반, 연관규칙분석 기반, tf-idf 컨텐츠 기반 시스템에 대해 정리하였다.

 

인기도 기반 추천

  • 통계적으로 가장 인기있는 아이템을 추천한다. 데이터가 없는 서비스 런칭 초반에 많이 사용되는 시스템이다.
  • 인기도의 척도: 조회수, 평균 평점, 리뷰 개수, 좋아요 싫어요 수 등
  • 스코어
    • Most Popular: 조회수가 가장 많은 아이템을 추천 ex) 뉴스 추천
    • Highly Rated: 평균 평점이 가장 높은 아이템 추천 ex) 맛집 추천
    • 추천하려는 task에 맞게 스코어를 설정하는 것이 중요하다.

 

 

 

연관분석

1. 연관규칙 분석(장바구니 분석)

  • 상품 구매, 조회 등 하나의 연속된 거래들 사이의 규칙을 발견하기 위해 적용한다.
  • 한 상품과 같이 등장하는 다른 상품간의 규칙을 찾는 분석이다.
    • 규칙: {condition} -> {result}
    • 연관규칙: 특정 사건과 함께 빈번하게 발생하는 또 다른 사건의 규칙을 의미한다.
    • Item set: antecedent와 consequent를 구성하는 상품들의 집합으로, 두 집합은 서로소 집합으로 서로 겹치는 아이템이 없어야 한다.
  • 빈발 집합
    • support count: 전체 transaction data에서 itemset이 등장하는 횟수
    • support: itemset이 전체 transaction data에서 등장하는 비율
    • frequent itemset: 유저가 지정한 minimum support 값 이상의 itemset을 의미한다.

 

 

2. 연관규칙의 척도
x -> y가 존재할 때

  • support: x,y를 모두 포함하는 transaction의 비율로 전체 transaction에 대한 itemset의 확률값이 좋은 규칙을 찾거나 불필요한 연산을 줄일때 사용된다.
  • confidence: x가 포함된 transaction가운데 y도 포함하는 transaction의 비율 -> 값이 높을 수록 추천하기에 좋은 관계
  • lift: (x가 포함된 transaction가운데 y가 등장할 확률-> confidence) / (y가 등장할 확률) -> 1보다 작으면 음의 상관관계, 크면 양의 상관관계를 가진다.
  • item 수가 많아질수록 가능한 itemset의 수가 기하급수적으로 많아지기 때문에 유의미한 규칙만 사용해야한다.
    • minimum을 정해 의미없는 rule을 필터링한다.
    • lift값으로 내림차순 정렬하여 의미있는 rule을 평가한다.

 

 

3. 연관규칙의 탐색

  • Mining Association Rules: 주어진 트랜잭션 가운데 minimum을 만족하는 모든 연관규칙을 찾는다.
    • Brute-force approach: 가능한 모든 연관규칙을 나열해 모두 prunning -> 굉장한 연산량과 시간이 필요
  • 효율적인 association rule mining을 위해 Frequent itemset Generation(minimum support이상의 모든 itemset생성) 후 Rule generation(minimum confidence이상의 association rule 생성)을 수행한다.
    • Frequent itemset generation
      • Apriori 알고리즘: 가지치기로 탐색해야하는 m을 줄인다.
      • Direct Hashing & Pruning: itemset의 크기가 커짐에 따라 전체 n개 transaction보다 적은 개수를 탐색한다.
      • FP-Growth: 후보 itemset과 transaction을 저장해 모든 조합에 대해 탐색하지 않고 탐색 횟수를 줄인다.

 

 

 

tf-idf 컨텐츠 기반 추천

1. TF-IDF를 활용한 컨텐츠 기반 추천

  • 유저 x가 과거에 선호한 아이템과 비슷한 아이템을 추천
  • 비슷함의 정의는 아이템에 따라 달라진다.
  • 장점
    • 다른 유저 데이터가 필요없다.
    • 아이템의 특징만 고려하기 때문에 새로운 아이템이나 인기도가 낮은 아이템을 추천할 수 있다.
    • 왜 해당 아이템이 추천되었는지 설명이 가능하다.
  • 단점
    • 아이템이 어떤 것으로 이뤄져있는지에 따라 적합한 피처를 찾는 것이 어렵다.
    • 한 분야의 추천 결과만 계속 나올 수 있다.
    • 아이템 정보만을 사용하기 때문에 다른 유저 데이터 활용할 수 없다.

 

2. Item Profile

  • 추천 대상이되는 아이템의 feature로 구성된 item profile을 만들어야한다.
    • 문서의 경우 중요 단어의 집합으로 표현할 수 있다.
    • 중요 단어를 나타내기 위해 tf-idf를 사용한다.
  • 아이템이 가진 다양한 속성을 표현할 수 있는 가장 편한 형태는 vector형태이다.
  • tf - idf: 단어 w가 문서 d에 많이 등장하면서 (tf) 전체 문서에선 적게 등장하는 단어(idf)라면 단어 w는 문서 d를 설명하는 중요한 feature이다.

 

3. User Profile기반 추천하기

  • 각 유저의 item list안에 있는 item의 vector를 통합하면 user profile이 된다.
    • simple: 유저가 선호한 item vector들의 평균값을 사용
    • variant: 선호도 값을 가중 평균하여 정규화한 평균값을 사용
  • Cosine similarity: 두 벡터의 각도를 이용해 구할 수 있는 유사도로, 두 벡터가 가르키는 방향이 얼마나 유사한지를 의미한다.
    • 유저 벡터 u와 아이템 벡터 i에 대해 cosine similarity를 계산한다. 유사도가 클수록 해당 아이템과 유저와의 관련성이 높다.

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

추천시스템이란?  (0) 2022.03.23