SW/추천시스템

추천 시스템 : Top-N Recommender 아키텍처

얇은생각 2020. 7. 26. 07:30
반응형

Top-N 추천

 

추천 시스템 : Top-N Recommender 아키텍처

 

지금까지 살펴본 모든 추천 시스템은 top-N 추천자 시스템이라고 불리는 것입니다. 즉, 임무는 주어진 사람에게 제시 할 가장 좋은 것들의 유한한 목록을 만드는 것입니다. 다음은 Amazon에서 내 음악 권장 사항을 보여 주며 페이지 당 5 개의 결과 중 20 페이지로 구성되어 있음을 알 수 있습니다. 이것은 N이 100 인 상위 N 추천입니다.

보시다시피, 많은 추천 시스템 리서치는 사용자가 아직 평가하지 않았거나 좋지 않은 것에 대한 사용자의 등급을 예측하는 문제에 초점을 맞추려고 하지만 실제 세계에서 추천 시스템이 하는 것과는 매우 다릅니다. 이 위젯에 표시되는 등급이 다른 사용자의 총 평점이며 시스템이 제공 할 것으로 생각하는 등급이 아닌 이유는 고객이 자신의 등급을 예측할 수 있는 능력을 보고 싶지 않기 떄문입니다.

이 과정을 통해 궁극적으로 목표는 사용자에게 찾을 수 있는 최고의 콘텐츠를 이와 같은 최상위 N 목록 형식으로 배치하는 것입니다. 성공은 최고의 추천을 찾는 능력에 달려 있습니다. 따라서 사람들이 싫어할 항목을 예측할 수 있는 능력이 아니라 사람들이 좋아할만한 것들을 찾는 데 집중하는 것이 합리적입니다. 분명하게 들리지만이 점은 많은 연구자들이 놓치고 있습니다.

 

 

 

top-N recommender 아키텍처

 

추천 시스템 : Top-N Recommender 아키텍처

 

여기에 최상위 N 추천 시스템이 작동 할 수있는 한 가지 방법이 있으며 이를 수행 할 수있는 방법이 많이 있지만 일반적으로 각 사용자의 개인적인 관심사를 나타내는 일부 데이터 저장소 (예 : 영화에 대한 평점)를 시작합니다. 실제로 이것은 과거에 구입 한 물건과 같은 암시적 등급입니다.

실제로 이것은 Cassandra 또는 MongoDB와 같은 대규모 분산 NoSQL 데이터 저장소이거나 memcachedor 무언가입니다. 실제로, 이 관심 데이터는 평균 센터링 또는 Z Score와 같은 기술을 사용하여 데이터를 사용자간에 비교할 수 있도록 정규화하지만 실제로는 데이터가 너무 희소하여 효과적으로 정규화됩니다.

첫 번째 단계는 추천 후보를 생성하는 것입니다 후보 생성 단계는 사용자가 이전에 관심을 표명 한 항목을 모두 취하고 집계 동작을 기반으로 해당 항목과 유사한 항목의 다른 데이터 저장소를 참조 할 수 있습니다.

 

예를 들어, 추천한다고 가정 해보겠습니다. 개인 관심사 데이터베이스를 참조하여 과거에 스타 트렉을 좋아했던 것을 볼 수 있습니다. 다른 사람들의 행동을 바탕으로 스타 트렉을 좋아하는 사람들을 알고 있습니다. 스타 트렉에 대한 관심을 바탕으로 Star Wars를 포함하는 추천 후보를 얻을 수 있습니다.

이러한 권장 사항을 작성하는 과정에서 assign은 내가 제출 한 항목의 등급과 항목과 해당 후보 간의 유사성이 얼마나 강한 지에 따라 각 후보자에게 점수를 매깁니다. 점수가 충분하지 않으면 이 단계에서 후보를 필터링 할 수도 있습니다. 많은 후보자가 한 번 이상 나타나고 어떤 식으로든 결합해야하므로 반복적으로 나타나는 과정에서 점수를 높일 수 있습니다.

그 후, 결과 추천 후보를 점수별로 정렬하면 문제를 해결할 수 있습니다. 머신 러닝을 사용하여 최적의 후보 순위를 찾는 방법과 같이 훨씬 복잡한 접근 방식이 있지만, 가장 많이 권장되는 추천 목록에서 첫 번째 추천 목록을 얻습니다. 

이 순위 단계에서는 또한 평가가 많이 사용되거나 인기있는 항목에 대한 결과를 높이는 데 사용할 수 있는 추천 후보에 대한 자세한 정보에 액세스 할 수 있습니다. 이 필터링 단계는 사용자가 이미 본 항목을 권장하지 않기 때문에 사용자가 이미 평가한 항목에 대한 권장 사항을 제거 할 수있는 위치입니다.

여기에서 차단 목록을 적용 할 수도 있습니다. 사용자에게 불쾌감을 줄 수 있는 항목을 삭제하거나 최소 품질 평가 점수 또는 최소 등급 임계 값 미만인 항목을 삭제합니다. 상위 N 추천에 적용하고 필요한 것보다 더 많은 결과가 있는 경우 항목을 잘라낸 다음 필터링 단계의 출력이 사용자에게 제품 추천의 예쁜 위젯이 표시되는 디스플레이 계층으로 전달됩니다.

일반적으로 후보 생성, 순위 지정 및 필터링은 특정 사용자를 위해 페이지를 렌더링하는 과정에서 웹 프런트 엔드가 대화하는 일부 분산 권장 웹 서비스 내에 존재합니다.

 

 

다른 방법

 

추천 시스템 : Top-N Recommender 아키텍처

 

이 다이어그램은 우리가 항목 기반 협업 필터링이라고 부르는 것의 단순화 된 버전입니다. 아마존은 2003 년에 발표 한 것과 동일한 알고리즘입니다. 아키텍처 관점에서 볼 때 실제로 그렇게 복잡하지 않다는 것을 알 수 있습니다.

어려운 부분은 항목 유사성의 데이터베이스를 실제로 구축하는 것입니다. 마법이 발생하는 곳입니다. 후보 생성 단계는 모든 항목에 대해 주어진 사용자에 대한 모든 등급 예측을 검색하는 것이므로 순위는 항목 정렬의 문제이므로 카탈로그에서 모든 단일 항목을 확인해야합니다.

이전 슬라이드에서는 사용자가 실제로 좋아하는 항목으로 시작하여 존재하는 모든 항목을 보지 않고 작업했습니다. 이러한 아키텍처는 사람들이 등급을 예측할 수있는 정확도, 양호 또는 나쁜 정도에 대해 스스로 측정하기를 원하기 때문에, 실제로 현실에서 중점을 두는 것이 옳은 것은 아닙니다. 이 접근법은 전적으로 비합리적이지 않습니다.

반응형