Hayden's Archive
[AI/머신러닝] 협업 필터링(Collaborative_Filtering) 본문
추천 협업 시스템 -> 근래에 많이 오르내리고 있음.
협업 필터링은 비지도학습. 지도학습은 Feature와 Label을 같이 주지만 비지도학습은 Feature만 준다. 이 때의 데이터는 그룹 데이터. Clustering, Grooping된 데이터.
넷플릭스가 성장하게 된 가장 큰 배경 -> AI 기술, 그 중에서도 추천 협업 시스템.
참고1 : 1boon.kakao.com/scientist/700
참고2 : www.epnc.co.kr/news/articleView.html?idxno=83033
아이템 기반 추천(Item Based Recommendation)
영화들끼리의 유사도를 측정한 것을 바탕으로 사용자가 본 영화들을 바탕으로 영화들 사이의 유사도 검증 -> 그 사람이 보지 않은 영화 중에서 동일한 유사도를 가진 영화를 추천
사용자 기반 추천(User Based Recommendation)
사용자끼리의 유사도를 측정할 수도 있음. 비슷한 취향의 사람이 평점을 높게 준 영화를 추천해줄 수 있음. 평점 확보가 어려울 경우 구매한 이력, 조회한 이력을 가지고 유사도 알고리즘을 돌림.
출처 : https://www.samsungsemiconstory.com/2265
아이템 기반과 사용자 기반 둘 다 로직은 은데, 데이터 확보를 더 수월하게 할 수 있는 게 아이템 기반. 사용자 기반은 데이터 확보가 어려움. 사용자가 방대해지면 그룹핑하면서 퍼져나가는 데 있어 계산이 복잡해짐. 사용자가 평점을 안 매기면 그만큼 데이터가 희소해짐. |
명시적 정보(Explicit Ratings) - 사용자가 상품에 내린 직접적인 평가 데이터(평점)
=> 장점 : 사용자로부터 얻을 수 있는 가장 정확한 평점 / 단점 : 대충 평가할 수도 있어서 정확하지 않을 수 있고, 평점 수가 충분하지 않음
암시적 정보(Implicit Ratings) - 사용자 행동을 통해 추론한 상품에 대한 간접적인 평가 데이터(구매한 이력, 조회한 이력)
=> 장점 : 평점을 쉽게 많이 수집할 수 있음 / 단점 : 내가 마음에 없는 거라도 찔러볼 수 있어서 명확하지 않을 수도 있음
유사도(Similarity) 구하기
참고 : http://www.jidum.com/jidums/view.do?jidumId=1087
1. 코사인 유사도(Cosine Similarity)
코사인 유사도는 방향성을 가지고 측정.
코사인 유사도는 두 벡터 간의 코사인 각도를 이용하여 구할 수 있는 두 벡터의 유사도를 의미. 두 벡터의 방향이 완전한 동일한 경우 1, 90도의 각을 이루면 0, 180도의 반대 방향을 가지면 -1의 값을 가짐.
관련 코드(사용자 기반) : https://hayden-archive.tistory.com/309
관련 코드(상품 기반) : https://hayden-archive.tistory.com/310
2. 피어슨 상관계수(Pearson Correlation Coefficient)
3. 유클리디안 거리(Euclidean Distance)