전통문화대전망 - 전통 미덕 - 협업 필터링 및 분류

협업 필터링 및 분류

[목차]

이 글은 프로그래머 데이터 마이닝 실용 가이드의 주간 요약이다. 주요 내용은 다음과 같습니다.

추천 시스템이란 시스템이 당신의 행동에 따라 당신이 원할 수 있는 다른 물건을 추천하는 것이다. 전자상거래 플랫폼, 음악 플랫폼, 정보 푸시 플랫폼에서 흔히 볼 수 있습니다. 협업 필터링은 단순히 사용자가 관심 있는 정보를 추천하기 위해 비슷한 관심사를 가진 동일한 그룹의 선호도를 이용하는 것입니다. 개인은 협력 메커니즘을 통해 정보 (예: 등급) 에 상당한 수준의 응답을 제공하고 필터링 목적을 기록한 다음 다른 사람이 정보를 필터링할 수 있도록 돕습니다. 추천은 사용자 등급을 기준으로 합니다. 사용자 점수에는 명시적 점수와 암시적 점수의 두 가지 유형이 있습니다. 명시적 점수는 좋아하는 음악 점수와 같이 매일 물품에 대한 점수를 말합니다. 숨겨진 점수는 뉴스 웹 페이지에서 자주 읽는 관련 콘텐츠를 푸시하는 것과 같이 사용자 행동에 대한 지속적인 관찰을 통해 사용자 선호도를 발견하는 방법입니다. 두 분류 방법 모두 각자의 문제가 있다.

일반적으로 공동 필터링의 작동 메커니즘은 두 가지 유형으로 나눌 수 있습니다.

사용자 기반 추천이란 사용자의 행동 선호도에 따라 유사한 사용자를 나누는 것을 말합니다. 비슷한 사용자 집단 간에 한 쪽이 좋아하고 다른 쪽이 싫어하는 물건을 밀어넣다. 핵심은 유사한 사용자 그룹의 구분에 있습니다. 이 권장 방법에는 고유한 한계가 있습니다.

사용자 필터링을 기반으로 한 핵심은 사용자 집단의 구분이지만 실제로는 분류이다.

맨해튼 거리와 유클리드 거리의 세 가지 거리 함수가 있습니다. 여기서는 2D 를 예로 들자면, 더 많은 차원이 이런 식이다.

이중 거리 함수는 다음과 같이 요약할 수 있습니다.

여기서 r= 1 이면 함수는 맨해튼 거리입니다. R=2 인 경우 함수는 유클리드 거리입니다.

알고리즘 구현:

거리 함수를 계산한 후 대상 사용자와 모든 사용자 그룹의 기본 설정을 비교하여 가장 가까운 사용자를 찾아 추천합니다.

사용자 거리 기반 추천에는 사용자 점수 체계의 차이라는 명백한 문제가 있습니다. 예를 들어 극단적인 점수를 받은 사용자는 좋아하는 사람에게 가장 높은 점수를 주고, 싫어하는 사람에게는 가장 낮은 점수를 준다. 그리고 일부 사용자는 종종 극단적 인 점수를 얻지 못합니다. 소위 "등급 평가 절하" 문제. 이 문제의 존재는 거리 기반 점수에 편차를 초래할 수 있다. 피어슨 관련 계수는 이 문제를 완화할 수 있다.

원래 피어슨 관련 계수 공식을 실제로 사용할 때 계산 효율성에 영향을 주는 여러 반복이 있을 수 있습니다. 여기 대략적인 공식이 있습니다.

피어슨 관련 계수에 대한 사용자 판단의 근거는 단순한 사용자 거리가 아니라 사용자의 점수 일관성입니다. [- 1, 1] 사이, 1 에 가까울수록 두 사용자의 점수 일관성이 좋아집니다. 그 도리에 반하여 행하다.

파이썬 구현:

사용자 기반 권장 프로세스의 또 다른 문제는 대부분의 사람들이 선호하는 항목 교차가 너무 적기 때문에 계산된 값이 0 인 많은 특징이 있다는 것입니다. 희소성 문제라고 합니다. 이해하기 좋은 예는 책 내용의 발굴이다. 코사인 유사성은 이 0-0 일치를 무시합니다.

코사인 유사성:

파이썬 구현:

이렇게 많은 평가 계수를 어떻게 취사합니까? 데이터 특성에 따라 다음을 수행합니다.

또 다른 고려 사항은 지금까지의 추천이 단일 사용자를 기반으로 한다는 것입니다. 즉, 한 사용자에 대한 추천 시스템은 다른 사용자를 기반으로 합니다. 몇 가지 문제가 있을 것이다. 예를 들어, 두 사람은 비록 유사성이 높지만, 상대방은 약간의 괴벽이 있고, 괴벽 추천은 불합리하다. 또 다른 예로, 유사성이 높은 경우, 통일계좌 아래의 조작이 같은 사람이 한 것인지, 조작행위가 사용자 본인을 겨냥한 것인지 확신할 수 없다. 예를 들어, 한 사용자가 제품을 선물로 구입하는 것을 고려하는 것은 다른 사람이 선호하는 구매 행위에 근거한 것이며, 이 추천도 적절하지 않다.

이 문제의 해결은 조별 방법으로 할 수 있다. 원리는 단일 사용자와 비슷하지만 사용자의 일치도는 K 이며, K 개 최적 일치 사용자 중 유사성에 따라 가중치를 항목 권장 조건으로 설정합니다. 이것은 공동 필터링의 k-이웃입니다.

앞서 언급했듯이 사용자 기반 추천에는 프로젝트 기반 필터링으로 완화할 수 있는 복잡하고 희소한 문제가 있습니다. 프로젝트 기반 필터링이란 가장 유사한 프로젝트를 미리 찾아 사용자의 채점 결과와 결합하여 추천을 생성하는 것입니다. 전제는 항목의 유사성을 일치시키고 알고리즘을 찾는 것이다.

여기서 조정은 각 점수 결과에서 사용자의 모든 항목에 대한 평균 점수를 빼서 사용자 점수 시스템의 불일치를 줄이는 것입니다 (점수의 평가 절하 제거).

여기서 U 는 I 와 J 를 동시에 평가한 모든 사용자의 집합을 나타냅니다. 항목 I 에 대한 사용자 u 의 평균 점수에서 모든 항목에 대한 사용자 u 의 점수를 뺀 값을 나타냅니다.

모든 항목의 코사인 유사성을 얻은 후 이 지표를 통해 프로젝트에 대한 사용자의 선호도를 예측할 수 있습니다. 방법은 모든 유사 항목의 유사성에 점수의 합계를 곱하는 것이다.

여기서 p(u, I) 는 사용자 U 가 프로젝트 I 에서 득점한 예측값이고, N 은 사용자 U 의 모든 점수 항목에서 I 점수와 유사한 각 항목입니다. 여기서 유사성은 매트릭스에 N 과 I 가 있는 유사성 점수를 나타냅니다. I 와 N 의 유사성 점수입니다. U 대 N 점수의 결과입니다. 공식이 잘 작동하는 조건은 값이 (-1, 1) 사이이기 때문에 표준화된 개념을 사용해야 합니다.

프로젝트 필터링을 기반으로 하는 또 다른 일반적인 알고리즘은 slope one 알고리즘입니다. 일반적인 원칙은 사용자 U 가 제품 J 의 점수를 예측할 때 모든 항목을 포함하는 2 개의 편차 테이블을 미리 계산한다는 것입니다. U 가 평가한 모든 항목의 점수 합계와 해당 항목과 제품 J 의 편차 () 에 이 두 가지 유형의 항목에 점수를 매긴 사용자 수를 곱하여 제품 I 와 U 를 동시에 평가한 모든 항목에 점수를 매긴 사용자 수로 나누어 점수를 얻습니다. 공식은 다음과 같습니다.

여기서, 사용자 U 가 s 1 의 가중치 알고리즘을 사용하여 제공한 J 항목의 예측값입니다. J 를 제외한 모든 타격이 너무 많은 물품을 가리킨다.

파이썬 구현:

앞의 두 섹션에서 프로젝트 기반 필터링과 사용자 기반 필터링은 사용자가 기존 프로젝트에 점수를 매겨야 한다는 전제 조건입니다. 사실, 만약 새로운 프로젝트가 나타난다면, 그것은 다른 사람의 선호도가 부족하기 때문에 결코 추천되지 않을 것이다. 이것이 추천 시스템에서 이른바 콜드 스타트 ​​문제입니다. 이 문제는 사용자 평가에 기반한 시스템에서 발생할 수 있습니다.

콜드 스타트 문제에 대한 해결 방법 중 하나는 품목 속성 필터링을 기반으로 하는 추천입니다. 즉, 품목 자체의 속성을 요약하고 이러한 속성을 기준으로 추천합니다. 품목 속성을 기준으로 필터링하는 데 문제가 있으며 차원의 불일치이기도 합니다. 차원이 일정하지 않으면 극치가 추천 시스템에 큰 번거로움을 초래할 수 있다. 해결 방안도 간단하다: 규범화. 이 장에서는 z 점수를 사용합니다.

Z-score 를 사용하는 또 다른 문제는 이탈값의 영향을 받기 쉽다는 것이다. 여기서 향상된 표준 점수를 사용하여 이 문제를 완화할 수 있습니다.

언제 정상화될 수 있습니까?

여기서 맨해튼 거리는 프로젝트 속성에 기반한 필터링의 예로 사용됩니다.

이전 장의 마지막 섹션에서 사용자가 항목을 좋아하는지 여부는 실제로 분류자의 생각을 포함합니다. 분류기는 개체의 속성을 사용하여 개체가 속한 그룹 또는 클래스를 결정하는 프로그램입니다. 다음은 또 다른 작은 프로젝트로 간단히 설명하겠습니다.

간단히 말해서, 운동선수의 일부 지표에 근거하여 그 선수가 어떤 종류의 운동선수에 속하는지 판단하는 것이다.

정확도 0.8.