교육/멋쟁이사자처럼 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-step과 M-step을 계속 반복하면 더 이상 파라미터가 변하지 않는 수렴 상태에 이른다.
- 임의의 값을 설정한 후 그 값을 계산하여 M-step에서 우리가 원하는 값을 찾기 위해 업데이트하는 것으로 Likelihood를 최대화시키는 파라미터를 찾는 것이 목적
군집화 평가 방법
- 실루엣 분석은 각 군집 간의 거리가 얼마나 효율적으로 분리돼 있는지를 나타낸다
- 효율적으로 잘 분리됐다는 것은 다른 군집과의 거리는 떨어져 있고 동일 군집끼리의 데이터는 서로 가깝게 잘 뭉쳐 있다 는 의미
- 군집화가 잘 될수록 개별 군집은 비슷한 정도의 여유공간을 가지고 떨어져 있다.
- 정답 레이블을 모르는 경우 모델 자체를 사용하여 평가를 실루엣 계수 점수가 높을수록 클러스터가 더 잘 정의된 모델과 관련되어 있다