2014-12-05 1 views
0

mahout에는 itemsimilarity이라는 항목 기반 협업 필터링을위한 구현 된 방법이 있습니다.항목 기반의 협업 필터링 - 사용자 격리 없음

이론적으로 항목 간의 유사도는 두 항목의 순위가 매겨진 사용자에 대해서만 계산되어야합니다. 테스트를하는 동안 나는 그것이 mahout에서 다르게 작동한다는 것을 깨달았습니다.

아래 예제에서 항목 11과 12 사이의 유사성은 1이지만 마우 아웃 출력은 0.36이어야합니다. 환경과

101  102  0.36602540378443865 

매트릭스 : 그것은 부리는 같다

11 12 
1  1 
2  1 
3 1 1 
4  1 

은 0

로 널 처리

예 1 항목 항목 사이 11-12

유사하다

예 2 항목은 101-103입니다. 항목 사이

비슷한 : 기본으로

101  102  0.2612038749637414 
101  103  0.4340578302732228 
102  103  0.2600070276638468 

매트릭스 : 항목 101 사이

101 102 103 
1  1 0.1 
2  1 0.1 
3  1 0.1 
4 1 1 0.1 
5 1 1 0.1 
6  1 0.1 
7  1 0.1 
8  1 0.1 
9  1 0.1 
10  1 0.1 

비슷한 102 산출 사용자 만 4 및 5 순위 및 아이템 (101)와 동일해야 및 103 (이론에 근거해야 함). 여기서 (101,103)은 (101,102)보다 더 유사하며 그렇게해서는 안됩니다.

두 예제 모두 추가 매개 변수없이 실행되었습니다.

이 문제는 어떻게 든 해결됩니까? 어떤 아이디어?

자료 : http://files.grouplens.org/papers/www10_sarwar.pdf

답변

0

그 사용자는 동일하지 않다. 협업 필터링에는 공동 측정이 있어야하며 동일한 항목이 해당 사용자간에 동등하지 않습니다. 마찬가지로 항목은 동일하지 않으며, 각 항목은 서로 다른 사용자를 가지고 있습니다.

데이터가 0이 아닌 값만 기록되는 "희소 행렬"로 바뀝니다. 나머지는 0 값으로 처리됩니다. 이것은 예상되고 정확합니다. 알고리즘은 0을 선호도가 아니라 부정적인 선호도로 취급합니다.

올바른 일을하고 있습니다.

+0

그래서 항목 간의 유사도는 두 항목을 모두 평가 한 사용자에게만 기반으로 계산됩니까? 내 게시물에 다른 예가 추가되었습니다. 항목 101과 102 사이의 유사성은 사용자 4와 5에 대한 순위와 항목 101과 항목 103에 대한 동일성 (이론에 근거해야 함)을 사용하여 계산해야합니다. 어떻게 (101,103)가 (101,102)보다 더 유사 할 수 있습니까? 그래서 올바른 일을하지 않습니다 ... – herder

관련 문제