교육/멋쟁이사자처럼 AI School 7기

TIL 42. 추천시스템, 군집화

삶은돼지고기 2022. 12. 21. 20:11
728x90

추천 시스템 이란?

  • 특정 사용자가 관심을 가질만한 정보를 추천하는 것 , Information filtering의 일종
  • 검색이란 사용자가 입력한 키워드를 기준으로 관련성이 높은 documents를 찾아 사용자에게 제공하는 것
  • 사용자가 의도를 갖고 어떠한 행위를 한다
  • 수많은 데이터 속에서 사용자가 원하는 정보를 찾을 수 있는 방법 - 검색추천
  • 추천은 사용자가 선호하거나 관심가질 것이라고 예측되는 item들을 컴퓨터가 제시해주는 것
  • 공급자가 사용자에게 제시한다는 점

 추천 시스템의 분류

Content-based filtering (CB)

  • item의 feature를 뽑아 사용자가 선호하는 품목과 유사한 아이템을 추천한다. item 자체끼리의 유사성을 비교하는 방법
  • 가장 많이 사용되는 방법은 TF-IDF (자연어처리- 문장을 vector로 표현)
  • item을 하나의 벡터로 표현한 후 Clustering 알고리즘을 통해 item을 몇 종류의 cluster로 나눈다.
  • 유저가 선택한 아이템과 같은 cluster에 있는 다른 아이템을 추천하는 것이다.
  • content-based filtering은 과거의 user가 봤던 유형의 item만 추천하기 때문에 한계가 있다.

Collaborative filtering (CF)

  • user-item의 상호작용 정보를 통해 user가 좋아할 만한 item을 추천하는 방법
  • user-item interaction 정보를 통해 비슷한 사용자를 찾고 그들이 봤던 item을 추천하는 것이다.
  • 비슷한 user들이 서로 어떤 item을 좋아할지 탐색하는 방법이다.
  • CB와 다르게 user나 item 자체의 특성을 추천에 사용하지는 않는다. (아이템 자체의 content를 모른 채 추천하기 때문)
  • 따라서 더 많은 user-item interaction 데이터를 필요로 함
  • KNN, 피어슨 상관계수 등을 사용하여 계산한다.

군집화 Clustering 

  • 비지도 학습에 속하는 알고리즘으로 비슷한 샘플을 하나의 클러스터로 모으는 것
  • 각 객체의 유사성을 측정하여 유사성이 높은 관측치 끼리 묶어 전체 데이터를 몇 개의 군집으로 나누는 것
  • 레이블 된 샘플이 적다면 군집화를 이용하여 클러스터를 만들고 동일한 클러스터에 있는 모든 샘플에 동일한 레이블을 부여하여 모델 성능을 올릴 수 있다.

K-means 군집분석

  • 주어진 샘플 데이터를 k개의 cluster로 묶는 iterative 한 알고리즘
  • 각 클러스터 내 유사도는 높이고, 클러스터 외 유사도는 낮추는 것을 가정한다.
  • 군집 간 거리 차이의 분산을 최대화하는 것을 목적으로 한다.

K-평균 군집분석 작동 원리

  • **EM알고리즘**을 기반으로 기대치ㅣ를 최대화하면서, 임의의 likelihood 를 최대화한다.
  • Uniform distribution으로 초기 파라미터 세터를 입력으로 주고 E-stepM-step을 계속 반복하면 더 이상 파라미터가 변하지 않는 수렴 상태에 이른다.
  • 임의의 값을 설정한 후 그 값을 계산하여 M-step에서 우리가 원하는 값을 찾기 위해 업데이트하는 것으로 Likelihood를 최대화시키는 파라미터를 찾는 것이 목적

군집화 평가 방법

- 실루엣 분석은 각 군집 간의 거리가 얼마나 효율적으로 분리돼 있는지를 나타낸다

- 효율적으로 잘 분리됐다는 것은 다른 군집과의 거리는 떨어져 있고 동일 군집끼리의 데이터는 서로 가깝게 잘 뭉쳐 있다    는 의미

- 군집화가 잘 될수록 개별 군집은 비슷한 정도의 여유공간을 가지고 떨어져 있다.

- 정답 레이블을 모르는 경우 모델 자체를 사용하여 평가를 실루엣 계수 점수가 높을수록 클러스터가 더 잘 정의된 모델과     관련되어 있다