🙏

WIP: 추천 시스템

Tags
추천시스템
Date
2021/05/05

추천 시스템 종류

콘텐츠 기반 필터링 (content based filtering)
협업 필터링 (collaborative filtering)
메모리 기반 (혹은 최 근접 이웃 기반)
사용자 기반
아이템 기반
잠재요인 기반
딥 러닝을 활용한 추천
하이브리드
대체로 위의 두 개의 방법을 많이 사용한다. (콘텐츠, 협업)

콘텐츠 기반 필터링 (content based filtering)

사용자가 특정 아이템을 선호하면 그 아이템과 비슷한 콘텐츠를 추천하는 방식

협업 필터링 (nearest neigbor based collaborative filtering)

사용자가 아이템에 매긴 평가 및 행동 양식을 기반으로 추천을 해주는 시스템

최근접 이웃기반 필터링

사용자 - 아이템 행렬에서 사용자가 아직 평가하지 않은 제품애 대해서 미리 아이템에 대한 평가 예측을 하는 것이 목표다.

사용자 기반 협업 필터링

비슷한 고객들이 ~한 Item 을 소비했다

아이템 기반 협업 필터링

~한 Item 을 소비한 고객들은 다음과 같은 상품들도 구매했다
일반적으로 사용자 기반 필터링 보다는 아이템 기반 필터링이 성능(정확도)이 더 높다고 한다. 성향이 비슷하다고 취향도 비슷하지 않아서일까? 잘 모르겠다.

잠재요인 기반 필터링 (latent based)

사용자 - 아이템 데이터 행렬을 사용해 잠재 요인을 찾아낸다.
사실 collaborative filtering 을 사용하면서 행렬 분해 방법 (matrix factorization) 을 더 많이 사용한다고 함. 공간을 더 잘 활용할 수 있기 때문!
사용자 - 아이템 행렬을 사용자 - 사용자 잠재요인 / 아이템 - 아이템 잠재요인 행렬로 분해할 수 있다.

저장공간 절약이 된다는 말은?

행렬 분해 방법을 사용하지 않으면 사용자(2000) - 아이템(1000) 의 데이터 셋이 있다면 아래와 같이 1000 * 2000 의 파라메터가 필요하다
그러나 maxrix factorization 을 사용하면 위와 같이 파라메터가 줄어드는 것을 볼 수 있다.

참조 링크