나는 K-Nearest Neighbor 알고리즘에서 Cosine Similarity를 사용하여 사용자 기본 설정을 기반으로 권장 사항을 생성하는 것을 보았습니다. 이 모델에서 주어진 제품에 대한 사용자 등급은 벡터로 취급되며 두 사용자 간의 유사성은 두 벡터 간의 코사인 유사성에 의해 결정됩니다. 사람이 병렬 사용자 환경 설정에 대한 코사인 유사성 계정을 사용하는 방법을 추천 엔진을 설명 할 수 : (예를 들어 http://www.neo4j.org/graphgist?8173017)코사인 유사성 - 권장 사항 엔진의 단점?
내 질문이 무엇입니까? 2 명의 사용자가 완전히 극지방 선호도 설정을 가질 수 있지만 평행 (그러나 다른) 선호도를 갖는 경우 코사인 유사도 1을 생성 할 수 있습니다. 예를 들어 한 사용자가 5 개의 영화를 10 개의 별 중 1 개로 평가하고 다른 사용자가 동일한 5 개의 영화를 10 개의 별 중 10 개로 평가하면 Cosine Similarity는 1이됩니다 (내 생각에 정확하지 않은 것 같습니다) 사용자 유사성 측정). 문제의
예 :
: 우리는 두 사용자의 사용자 환경을 측정하고, 우리는 3 개 제품에 대한 자신의 선호도를 측정하는 경우 , 우리는 두 벡터로 자신의 환경 설정을 저장할 수 있습니다 a = (1,1,1) 및 b = (10,10,10)
그러면 코사인 유사성을 사용하여 서로 얼마나 유사한 지 측정 할 수 있습니다. 그러나이 경우 코사인 유사성은 극성 반대 사용자 선호도를 나타내지 만 1이됩니다.
이것이 바로 내가 찾던 설명, 감사를 많이했다. 숫자를 실행할 때 같은 값을 얻지는 않습니다 ... sim (a, b)에 대해서는 -1의 유사성을 얻습니다. 마찬가지로 sim (a, a1)에 대해서도 유사점은 -.58입니다. – Myclamm