Hayden's Archive

[AI/머신러닝] 협업 필터링(Collaborative_Filtering) 본문

Study/AI & Math

[AI/머신러닝] 협업 필터링(Collaborative_Filtering)

_hayden 2020. 7. 27. 09:30

추천 협업 시스템 -> 근래에 많이 오르내리고 있음.

협업 필터링은 비지도학습. 지도학습은 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)