1. 추천 시스템의 이해 (by Tacademy)

AI Scientist를 목표로!·2022년 11월 14일
0

Tacademy의 추천 시스템 영상을 토대로 정리를 진행해 보겠습니다.


추천 시스템 개요

  • 정의
    • 추천시스템은 사용자에게 상품을 제안하는 기술
    • 어떤 상품을 소비할지 다양한 의사결정과 연관되어 있음
  • 목표
    • 어떤 사용자에게 어떤 상품을 어떻게 추천할지이 대해 이해

기존 사례

  • 당근마켓
    • 다른 사람들이 같이 본 상품 추천
  • 카카오 브런치
    • 해당글과 유사한 글 추천
  • 유튜브
    • 딥러닝을 활용해 방대한 양의 데이터 관리를 통해 유사한 영상 추천

추천 시스템의 역사


1. 연관분석

  • 정의
    • Rule 기반 모델로서 상품과 상품 사이에 어떤 연관이 있는지 찾는 알고리즘
      • 얼마나(Frequent)같이 구매가 되는가?
      • A 아이템을 구매하는 사람은 B 아이템을 구매하는가?
    • 어떤 상품들이 장바구니 안에 담기는지 살피는 모습과 비슷하기 때문에 장바구니 분석이라고도 불림
  • 예시
    • 과거 월마트에서 기저귀를 구매할 때 맥주를 같이 구매하는 경향이 크다는 것을 기반으로 둘을 같이 진열하는 전략이 있었음

규칙 평가 지표

  • 지지도

    • 전체 거래 중 A와 B가 동시에 포함된 거래의 비율
  • 신뢰도

    • 품목 A를 구매했을 때, 품목 B를 추가로 구매할 확률
  • 향상도

    • A를 구매했을 때, B를 구매할 가능성에 관한 지표
      - 향상도가 1보다 높다면 A를 구매했을 때 B를 구매할 가능성이 높아짐
      - 향상도가 1보다 작다면 A를 구매했을 때 B를 구매할 가능성이 낮아짐

알고리즘

상품 중 가능한 모든 경우의 수를 탐색해 규칙 평가 지표를 통해 높은 규칙들을 찾아내는 방식

상품이 4개일 경우 경우의 수 : 4C1_4C_1 + 4C2_4C_2 + 4C3_4C_3 + 4C4_4C_4 = 4 + 6 + 4 + 1 = 15

장단점

장점

  • 쉽게 이해 가능
  • 분석 방향 or 목적이 없는 경우 목적 변수가 없어 유용하게 활용 가능
  • 거래 내용에 대한 데이터를 변환없이 그대로 사용 가능
  • 품목이 적을 경우 분석을 위한 계산이 간단

단점

  • 품목수가 증가할 수록 계산량은 기하급수적으로 증가
  • 너무 세분화된 품목을 가지고 규칙을 찾을 경우 의미 없는 분석이 될 가능성 존재
  • 거래량이 적은 항목은 규칙 발견 시 제외될 가능성 존재

2. Apriori

  • 연관분석의 연장선으로 아이템셋의 증가를 줄이기 위한 방법
  • "빈번한 아이템셋은 하위 아이템셋 또한 비번할 것이다"라는 가정을 토대로 아이템셋의 증가를 줄이는 방법

알고리즘

  • K개의 item을 가지고 단일 항목 집단 생성
    • 단일 항목 집단 생성 : 우유 / 양상추 / 기저귀 / 맥주 / 쥬스
  • 단일 항목 집단에서 최소 지지도 이상의 항목만 선택
    • 최소 지지도(예, 0.5) 이상 항목만 선택
    • P(우유) = 0.5 / P(양상추) = 0.75 / P(기저귀) = 0.75 / P(쥬스) = 0.25 / P(맥주) = 0.75 /
  • 위에서 선택된 항목만을 대상으로 2개 항목 집단 생성
    • 2개 항목 집단 생성 : {우유, 양상추}, {우유, 기저귀}, {우유, 맥주}, {양상추, 기저귀}, {양상추, 맥주}, {기저귀, 맥주}
  • 2개 항목집단에서 최소 지지도 혹은 신뢰도 이상의 항목만 선택
    • 최소 지지도(예, 0.5) 이상 항목만 선택
    • {우유, 양상추} : 0.25 / {우유, 기저귀} : 0.5 / {우유, 맥주} : 0.25 / {양상추, 기저귀} : 0.5 / {양상추, 맥주} : 0.75 / {기저귀, 맥주} : 0.5
  • 위 과정을 K개의 k-item frequent set을 생성할 때 까지 반복

장단점

장점

  • 원리가 간단하여 사용자가 쉽게 이해하고 의미 파악 가능
  • 유의한 연관성을 갖는 구매 패턴을 찾아줌

단점

  • 데이터가 클 경우 (=item이 많을 경우) 속도가 느리고 연산량이 많아짐
  • 실제 사용시에 많은 연관 상품들이 나타나는 단점이 있음
  • 연관 상품들이 상관 관계는 의마할 수 있어도 인과 관계는 의미하지 않음

3. FP-Growth

  • Apriori의 속도 측면의 단점을 FP Tree 구조를 통해 속도 개선한 알고리즘
  • 동일하게 발생하는 아이템셋을 찾는데는 좋지만 아이템간의 연관성을 찾는 것은 어려움

알고리즘

  • 모든 거래를 확인하여, 각 아이템마다 지지도를 계산하고 최소 지지도 이상의 아이템만 선택
  • 모든 거래에서 빈도가 높은 아이템 순서대로 순서를 정렬
  • 부모 노드를 중심으로 거래를 자식 노드로 추가해주면서 Tree 생성

  • 새로운 아이템이 나올 경우 부모노드 부터 시작하고, 그렇지 않다면 기존 노드에서 확장

  • 위 과정을 모든 거래에 대해 반복하여 FP Tree를 만들고 최소 지지도 이상의 패턴만 추출

장단점

장점

  • Apriori 알고리즘 보다 빠르고 2번의 탐색만 필요함
  • 후보 item set을 생성할 필요 없이 진행 가능

단점

  • 대용량 데이터셋에서 메모리를 비효율적으로 사용
  • Apriori 알고리즘에 비해 설계에 어려움
  • 지지도의 계산이 FP-Tree가 만들어지고 나서야 계산 가능
profile
딥러닝 지식의 백지에서 깜지까지

0개의 댓글