[추천 시스템]: 협업 필터링 및 콘텐츠 기반 필터링 개요

1. 소개

"우리는 정보화 시대를 떠나 추천 시대에 진입하고 있습니다."

많은 기계 학습 기술과 마찬가지로 추천 시스템은 사용자의 과거 행동을 기반으로 예측합니다. 추천 시스템은 특히 사용자의 과거 행동, 사회적 관계 및 관심 지점을 기반으로 하는 정보 필터링 시스템입니다. 항목 집합에 대한 사용자 선호도를 예측합니다.

지난 수십 년 동안 Youtube, Amazon, Netflix 및 기타 많은 웹 서비스의 부상으로 추천 시스템은 우리 삶에서 점점 더 많은 위치를 차지했습니다. 전자상거래(구매자가 관심을 가질 만한 아이템을 추천)에서 온라인 광고(적절한 콘텐츠로 사용자의 취향에 맞는 추천)에 이르기까지 추천 시스템은 오늘날 우리 일상에서 피할 수 없습니다. 일반적으로 추천 시스템은 관련 항목을 사용자에게 추천하도록 설계된 알고리즘입니다(항목은 볼 영화, 읽을 텍스트, 구매할 제품 또는 업계에 따라 다른 모든 항목입니다).

추천 시스템은 효율적일 때 막대한 수익을 창출할 수 있고 경쟁사와 차별화되는 방법이기 때문에 일부 산업에서 매우 중요합니다. 추천 시스템의 중요성에 대한 증거로, 몇 년 전 Netflix는 자체 알고리즘보다 더 나은 성능을 제공하고 100만 달러 보너스.

추천 시스템을 구축하기 위해 가장 일반적인 두 가지 접근 방식은 다음과 같습니다.

  • 콘텐츠 기반
  • 협업 필터링

그 중 협업 필터링은 메모리 기반 과 모델 기반 의 두 가지 방법으로 나뉩니다 .다음에는 그 원리와 장점, 단점을 중점적으로 살펴보겠습니다.

2. 콘텐츠 기반 필터링

사용자 상호 작용 및 피드백을 사용하는 대신 콘텐츠 기반 접근 방식은 항목 자체의 특성에 대한 많은 정보를 필요로 합니다. 예를 들어 장르, 연도, 감독, 배우 등과 같은 영화 속성일 수도 있고 자연어 처리를 적용하여 추출한 기사의 텍스트 내용일 수도 있습니다.

  • 속성을 기반으로 항목에 태그 지정
  • 레이블로 유사도 계산

그런 다음 콘텐츠 기반 접근 방식의 아이디어는 사용 가능한 "기능"을 기반으로 관찰된 사용자-항목 상호 작용을 설명하는 모델을 구축하려고 시도하는 것입니다. 예를 들어 여전히 사용자와 영화를 고려하여 젊은 여성은 일부 영화를 더 높게 평가하는 경향이 있고, 젊은 남성은 다른 영화를 더 높게 평가하는 경향이 있다는 사실을 모델링하려고 노력할 것입니다. 그러한 모델을 얻을 수 있다면 사용자에 대한 새로운 예측을 쉽게 할 수 있습니다. 해당 사용자의 프로필(나이, 성별...)을 보고 해당 정보를 기반으로 관련 영화 제안을 결정하기만 하면 됩니다. 따라서 콘텐츠 기반 추천 방식은 정적인 방식이다.

이미지-20220807225313531

콘텐츠 기반 방법은 콜드 스타트 ​​문제 의 영향을 훨씬 덜 받습니다 . 새로운 사용자 또는 항목은 특성(속성)으로 분석할 수 있으므로 이러한 새 엔터티에 대한 관련 권장 사항을 제공할 수 있습니다. 논리적으로 새로운 사용자만 있는 프로젝트나 이전에 없었던 기능에 문제가 있을 수 있지만 시스템이 충분히 오래되면 이런 일이 거의 발생하지 않습니다. , 추천 문제는 종종 분류 문제 (사용자가 항목을 "좋아하는지" 예측) 또는 회귀 문제 (항목에 대한 사용자의 평가 예측)로 변환됩니다. 콘텐츠 평신도의 설명 에 따라 두 경우 모두 우리가 사용할 수 있는 사용자 또는 항목 특성을 기반으로 하는 모델을 설정할 것입니다( 콘텐츠 기반이라고 함).

분류(또는 회귀)가 사용자 특성을 기반으로 하는 경우 접근 방식 . 모델링, 최적화 및 계산은 "항목별로" 수행할 수 있습니다. 이 경우 "각 사용자가 이 항목을 좋아할 확률은 얼마입니까?"라는 질문에 답하기 위해 사용자 특성을 기반으로 모델을 구축하고 학습합니다. (또는 "각 사용자가 이 항목을 얼마나 평가했습니까?"). 일반적으로 항목과 상호 작용하는 많은 사용자가 있으므로 결과 모델은 견고성을 기반으로 합니다. 그러나 학습된 모델의 상호작용이 각 사용자로부터 나온다는 점을 고려할 때 이러한 사용자가 유사한 특성(특징)을 가지고 있더라도 선호도는 다를 수 있습니다. 이것은 이 방법이 더 강력 하지만 이후의 사용자 중심 방법보다 덜 개인적 임을 의미합니다 .

프로젝트 특성 을 연구하는 경우 접근 방식 은 사용자 중심입니다 . 모델링, 최적화 및 계산은 "사용자가" 수행할 수 있습니다. 그런 다음 "이 사용자가 각 항목을 좋아할 확률은 얼마입니까?"에 답하기 위해 항목 기능을 기반으로 사용자별로 모델을 학습합니다. 이 시점에서 우리는 각 사용자에 대한 모델을 훈련할 수 있으며, 획득한 모델은 연구된 사용자의 상호 작용만 고려하기 때문에 항목 중심 모델 보다 개인화 됩니다. 그러나 대부분의 경우 사용자는 상대적으로 적은 수의 항목과 상호 작용하므로 우리가 얻은 모델은 항목 중심 모델보다 훨씬 덜 강력합니다.

여기에 이미지 설명 삽입

실용적인 관점에서 볼 때 대부분의 경우 새 사용자에 대한 정보를 얻는 것이(사용자는 너무 많은 질문에 대답하고 싶지 않음) 새 항목에 대한 많은 정보를 얻는 것보다 훨씬 어렵습니다. (이러한 항목을 사용한 사람들은 올바른 사용자에게 자신의 항목을 추천하기 위해 이 정보를 작성하는 데 관심이 있기 때문입니다). 또한 표현하고자 하는 관계의 복잡성에 따라 우리가 구축하는 모델은 단순한 것에서 복잡한 것까지 다양할 수 있습니다. 선형 회귀부터 심층 신경망까지. 마지막으로 콘텐츠 기반 접근 방식은 사용자 중심적이거나 항목 중심적일 수 있다는 점을 언급하겠습니다. 사용자와 항목에 대한 정보는 예를 들어 두 개의 특징 벡터를 쌓고 신경망 아키텍처를 구축하는 것과 같이 우리 모델에서 사용할 수 있습니다.

2.1 항목 중심 베이지안 분류기

먼저 항목 중심 분류의 경우를 살펴보겠습니다. 각 항목에 대해 사용자 기능을 입력으로 사용하고 "좋아요" 또는 "싫어요"를 출력하는 베이지안 분류기를 훈련하려고 합니다. 따라서 분류 작업을 완료하려면
pitem(예: ∣ userfeatures) pitem(싫어 ∣ userfeatures) \frac{p_{item}(like|user_{features})}{p_{item}(dislike|user_{ 기능} )}나는 t e m( d i s l ik e 사용자 _ _f e a tu res _)나는 t e m( l ik e 사용자 _ _f e a tu res _)
주어진 특성을 가진 사용자가 고려 중인 항목을 좋아할 확률과 싫어할 확률 간의 비율입니다. 분류 규칙(단순 임계값 포함)을 정의하는 조건부 확률 비율은 베이지안 공식으로 표현될 수 있습니다.
userfeatures ∣ 싫어함 ) × pitem ( 싫어함 ) \frac{p_{item}(like|user_{features})}{p_{item}(dislike|user_{features})}= \frac{p_{item}(user_{ 기능}| like)\times p_{item}(like)}{p_{item}(user_{features}|싫어요)\times p_{item}(싫어요)}나는 t e m( d i s l ik e 사용자 _ _f e a tu res _)나는 t e m( l ik e 사용자 _ _f e a tu res _)=나는 t e m( 사용자 _ _f e a tu res _d i s l ik e )×나는 t e m( d i s l ik e )나는 t e m( 사용자 _ _f e a tu res _l ik e )×나는 t e m( 좋아요 ) _ _

여기서: pitem (like) p_{item}(like)나는 t e m( e 와 같이 ) 이전 데이터에서 계산할 수 있는 사전 확률입니다.

파이템 ( ⋅ ∣ 좋아요 ) p_{item}(·|like)나는 t e m( l ik e ) 는 베이지안 모델에서 가장 중요한 부분인 조건부 확률이며, 먼저 Naive Bayes는 특성이조건부 독립. 이런 식으로 조건부 확률을 분해할 수 있습니다.

특성이 이산 데이터 인 경우 훈련 샘플의 각 범주에서 각 구분의 빈도를 계산하는 것이 편리한 한 P( userfeaturei ∣ like ) P(user_{feature_i}|like) 를 추정하는 데 사용할 수 있습니다.( 사용자 _ _f e a t u r e나는e ) . _ _

다음 논의는 특성 속성이 연속 값인 경우에 초점을 맞춥니다.

특성이 연속 데이터 인 경우 해당 값은 일반적으로 가우스 분포(정규 분포라고도 함)를 따른다고 가정합니다. 따라서 훈련 샘플의 각 범주에서 특징 항목 분할의 평균과 표준 편차를 계산하고 정규 분포의 공식에 대입하면 필요한 추정값을 얻을 수 있습니다. 평균과 표준편차의 계산은 여기에서 반복되지 않을 것입니다.

논의해야 할 또 다른 문제는 P( userfeaturei ∣ like ) = 0 P(user_{feature_i}|like)=0 일 때입니다.( 사용자 _ _f e a t u r e나는l ik e )=0 어쩌지, 이 현상은 특정 카테고리의 특정 기능 항목 구분이 나타나지 않을 때 발생하며, 이는 분류기의 품질을 크게 떨어뜨리게 됩니다. 이 문제를 해결하기 위해 우리는Laplace 평활화 방법했는데, 그 아이디어는 매우 간단합니다. 결과에 영향을 미치지 않으며, 빈도가 0인 위에서 언급한 난처한 상황을 해결합니다.

이미지-20220808162754857

2.1 사용자 중심 선형 회귀

이제 사용자 중심 회귀의 경우를 고려해 보겠습니다. 각 사용자에 대해 항목 기능을 입력으로 사용하고 해당 항목에 대한 등급을 출력하는 간단한 선형 회귀를 훈련하려고 합니다. 우리는 M을 사용자-항목 상호작용 행렬로, 행렬 X를 학습할 사용자 계수로, 행렬 Y를 주어진 항목 기능으로 표시합니다. 그런 다음 주어진 사용자 i에 대해 다음 최적화 문제를 해결하여 X i X_i 를 학습합니다.엑스나는中的系数
X i = min 1 2 ∑ ( i , j ) [ ( X i ) ( Y j ) T − M ij ] 2 + λ 2 ∑ k ( X ik ) 2 X_i = min\frac{1}{2 }\sum_{(i,j)}[(X_i)(Y_j)^T-M_{ij}]^2+\frac{\lambda}{2}\sum_{k}(X_{ik})^2엑스나는=21( 나는 , j )[( X나는) ( 그리고j)-아이]2+2케이( 엑스)2
참고: i는 고정되어 있으므로 첫 번째 합계는 사용자 i와 관련된 (사용자, 항목) 쌍에만 해당됩니다. 모든 사용자에 대한 모델을 동시에 풀면 최적화 문제는 항목을 고정된 상태로 유지하면서 "교대 행렬 분해"에서 나중에 해결하는 문제와 정확히 동일함을 관찰할 수 있습니다. 이는 모델 기반협업 필터링 방법(예: 행렬 인수분해)과 콘텐츠 기반 방법잠재 모델의 존재를 가정하지만 모델 기반 협업 필터링은 사용자 및 항목 매트릭스를 모두 학습해야 하는 반면 콘텐츠 기반 기반 방법은 사용자 또는 항목의 매트릭스를 학습하기만 하면 됩니다.

이미지-20220808163143037

3. 협업 필터링

  • 협업 필터링은 데이터, 행동 및 좋아하는 것을 통해 나와 유사한 사용자를 찾는 것입니다. 귀하가 관심을 가질 만한 항목 또는 콘텐츠를 추천합니다.
  • 일상 생활에서도 같은 관심사를 가진 친구를 찾아 영화나 음악을 추천할 수 있습니다.

협업 필터링은 동적 접근 방식입니다. 협업 필터링 에는 항목 집합에 대한 사용자의 과거 기본 설정 외에는 다른 것이 필요하지 않습니다. 과거 데이터를 기반으로 하기 때문에 여기에서 핵심 가정은 과거에 좋아했던 사용자가 미래에도 좋아할 것이라는 것입니다. 사용자 선호도 측면에서 일반적으로 두 가지 범주로 표현됩니다. 명시적 등급 은 사용자가 타이타닉의 별 5개 등급과 같이 슬라이딩 척도로 항목을 제공하는 비율입니다. 이것은 사용자가 항목을 얼마나 좋아하는지에 대한 가장 직접적인 피드백입니다. 페이지 조회수, 클릭수, 구매 기록, 음악 트랙 청취 여부 등과 같은 사용자 선호도를 간접적으로 반영하는 암시적 등급 이 기사에서는 추천 시스템을 위한 전통적이고 강력한 도구인 협업 필터링에 대해 자세히 살펴보겠습니다.

추천 시스템을 위한 협업 필터링은 사용자와 항목 간의 기록된 과거 상호 작용만을 기반으로 새로운 추천을 생성하는 방법입니다. 이러한 상호 작용은 User-Item Interaction Matrix 에 저장됩니다 .

이미지-20220807225820675

그런 다음 협업 필터링 방법의 주요 아이디어는 이러한 과거 사용자 항목이 상호 작용 하여 유사한 사용자 및/또는 유사한 항목을 감지하고 이러한 추정된 유사도를 기반으로 예측하는 것입니다.

협업 필터링 알고리즘의 범주는 일반적으로 메모리 기반 방법과 모델 기반 방법이라고 하는 두 가지 하위 범주로 나뉩니다. 메모리 기반 방법은 모델이 없다고 가정하고 기록된 상호 작용 값을 직접 사용하며 기본적으로 가장 가까운 이웃 검색을 기반으로 합니다(예: 관심 사용자 중에서 가장 가까운 사용자를 찾아 해당 사용자 중 가장 인기 있는 항목 추천). 모델 기반 접근 방식은 기본 "생성" 모델 을 가정하여 사용자 항목 상호 작용을 설명하고 이를 발견하여 새로운 예측을 하려고 합니다.

[외부 링크 이미지 전송 실패, 원본 사이트에 안티 리치 메커니즘이 있을 수 있으므로 이미지를 저장하고 직접 업로드하는 것을 권장합니다(img-bNoEE9QB-1659963301314) (https://raw.githubusercontent.com/19973466719/jojo- pic/main/img /20220808205354.png)]

협업 필터링 방법의 주요 이점은 사용자 또는 항목에 대한 정보가 필요하지 않으므로 더 넓은 컨텍스트에서 사용할 수 있다는 것입니다. 또한 사용자가 항목과 더 많이 상호 작용할수록 더 정확한 새 권장 사항이 제공됩니다. 고정된 사용자 및 항목 집합에 대해 시간이 지남에 따라 기록된 새로운 상호 작용은 새로운 정보를 가져오고 시스템을 더욱 효과적으로 만듭니다.

그러나 추천을 하기 위해 과거 상호작용만 고려하기 때문에 협업 필터링은 "콜드 스타트 ​​문제"를 겪는다. 효과적으로 처리할 수 있는 아이템. 이 단점은 새로운 사용자에게 랜덤 아이템 추천 또는 랜덤 유저에게 새로운 아이템 추천(랜덤 전략), 신규 유저에게 인기 아이템 추천 또는 가장 활동적인 유저에게 새로운 아이템 추천(최대 기대 전략), 세트 추천 등 다양한 방법으로 해결할 수 있습니다. 다른 새 사용자의 항목 또는 여러 사용자 그룹의 새 항목(탐색 전략), 또는 마지막으로 사용자 또는 항목에 대한 비협업 필터링 방법의 조기 사용.
아래에서는 두 가지 메모리 기반 방법(사용자-사용자 및 항목-항목)과 한 가지 모델 기반 방법(행렬 분해)의 세 가지 고전적 협업 필터링 방법을 주로 소개합니다.

3.1 메모리 기반 협업 필터링

사용자-사용자 및 항목-항목 접근 방식은 주로 사용자-항목 상호 작용 매트릭스 의 정보만 사용하고 새로운 권장 사항을 생성하는 모델을 가정하지 않는다는 특징이 있습니다.

3.1.1 사용자-사용자

사용자에게 새로운 권장 사항을 제공하기 위해 사용자-사용자 방법은 대략적으로 가장 유사한 "상호작용 프로필"(가장 가까운 이웃)을 가진 사용자를 식별하여 해당 이웃 사이에서 가장 인기 있는 항목을 추천하려고 시도 합니다. 사용자).

평신도의 용어 로 먼저 사용자의 과거 데이터 정보에 따라 사용자를 분류한 다음 같은 범주의 사용자에게 인기 있는 항목을 추천하는 것입니다. 예를 들어, 사용자 A, B, C는 매우 유사합니다. 이제 사용자 A와 B는 종종 제품 D를 구매하지만 사용자 C는 구매한 적이 없습니다. 사용자 C에게 제품 D를 추천할 수 있습니다.

이 접근 방식은 사용자 를 나타내고 항목과의 상호 작용을 기반으로 사용자 간의 거리를 평가하기 때문에 "사용자 중심" 이라고 합니다.

주어진 사용자에게 추천을 하고 싶다고 가정해 봅시다. 첫째, 각 사용자는 서로 다른 항목과 상호작용 벡터(상호작용 행렬의 각 행)로 나타낼 수 있습니다. 그런 다음 관심 있는 사용자와 다른 모든 사용자 간의 "유사성"을 계산할 수 있습니다. 이 유사성 측정은 동일한 항목에 대해 유사한 상호 작용을 하는 두 명의 사용자가 가까운 것으로 간주되어야 합니다. 각 사용자에 대한 유사도가 계산되면 사용자의 k-최근접 이웃을 가져온 다음 그 중에서 가장 인기 있는 항목을 제안할 수 있습니다(참조 사용자가 아직 상호 작용하지 않은 항목만 보기).

사용자 간의 유사도를 계산할 때 "공통 상호 작용"의 수(두 사용자가 공유하는 항목의 수)를 신중하게 고려해야 합니다! 사실, 대부분의 경우 우리는 참조 사용자와 단 한 번만 상호 작용 하지만 이 한 번의 상호 작용에 대해 100% 일치하지만 100번의 상호 상호 작용이 있지만 98번만 있는 사용자보다 더 나은 것으로 간주되는 사람 피하고 싶습니다 . %가 더 유사하게 일치 합니다. 따라서 두 명의 사용자가 동일한 방식(비슷한 평점, 유사한 호버 시간...)으로 많은 공통 항목과 상호 작용하는 경우 유사한 것으로 간주합니다.

이미지

3.1.2 아이템-아이템

사용자에게 새로운 추천을 하기 위해 item-item 방식의 아이디어는 사용자가 이미 "적극적으로" 상호 작용한 항목과 유사한 항목을 찾는 것입니다. 두 항목과 상호 작용하는 대부분의 사용자가 유사한 방식으로 행동하는 경우 두 항목이 유사한 것으로 간주됩니다. 이 접근 방식은 사용자의 상호 작용을 기반으로 항목을 나타내고 해당 항목 간의 거리를 평가하기 때문에 "항목 중심"이라고 합니다.

주어진 사용자에게 추천을 하고 싶다고 가정해 봅시다. 먼저, 우리는 이 사용자의 즐겨찾기 항목을 고려하고 각 사용자와의 상호작용 벡터(상호작용 매트릭스의 "해당 열")로 이를 (다른 모든 항목과 마찬가지로) 나타냅니다. 그런 다음 "최고의 항목"과 다른 모든 항목 간의 유사도를 계산할 수 있습니다. 유사도가 계산되면 관심 있는 사용자에게 추천할 k개의 가장 가까운 이웃 항목을 유지할 수 있습니다.

더 관련성 높은 추천을 얻으려면 사용자가 즐겨찾는 항목뿐만 아니라 **n개의 상위 항목을 고려하여 이 작업을 수행할 수 있습니다. **이 경우 이러한 선호 항목 중 몇 개에 가까운 항목을 추천할 수 있습니다.

이미지

3.1.3 사용자-사용자 및 항목-항목 비교

사용자-사용자 방법은 항목과의 상호 작용 측면에서 유사한 사용자 검색을 기반으로 합니다. 일반적으로 각 사용자는 몇 가지 항목과만 상호 작용하므로 방법이 기록된 상호 작용에 매우 민감합니다(높은 분산). 반면에 최종 추천은 우리가 관심 있는 사용자와 유사한 사용자의 기록된 상호 작용만을 기반으로 하기 때문에 보다 개인화된 결과(낮은 편향)를 얻습니다.
이와 대조적으로 아이템-아이템 접근법은 사용자-아이템 상호작용 측면에서 유사한 아이템 검색을 기반으로 합니다. 일반적으로 많은 사용자가 항목과 상호 작용하기 때문에 이웃 검색은 개별 상호 작용에 훨씬 덜 민감합니다(분산이 낮음). 이에 대응하여 다양한 사용자(참조 사용자와 매우 다른 사용자도 포함)의 상호 작용이 권장 사항에서 고려되어 방법을 덜 개인적으로 만듭니다(더 편향됨). 따라서 이 방법은 사용자-사용자 방법만큼 개인화되지 않고 더 강력합니다.

이미지-20220808001021534

복잡성과 부작용

메모리 기반 협업 필터링의 가장 큰 단점 중 하나는 쉽게 확장되지 않는다는 것입니다. 대규모 시스템의 경우 새로운 권장 사항을 생성하는 데 시간이 많이 걸릴 수 있습니다. 실제로 수백만 명의 사용자와 수백만 개의 항목이 있는 시스템의 경우 가장 가까운 이웃 검색 단계는 신중하게 설계하지 않으면 다루기 어려워질 수 있습니다(KNN 알고리즘의 복잡성은 O(ndk)이며, 여기서 n은 사용자 수, d는 항목 수, k 고려되는 이웃 수). 대형 시스템의 계산을 더 다루기 쉽게 만들기 위해 알고리즘을 설계할 때 상호작용 행렬의 희소성을 활용하거나 근사최근접이웃 방법(ANN)을 사용할 수 있습니다.
대부분의 추천 알고리즘에서는 인기 항목에 대한 "증가 및 성장" 효과를 피하고 소위 "정보 없음" 영역에 사용자를 가두는 것을 방지하기 위해 세심한 주의를 기울여야 합니다. ** 다시 말해서, 우리는 우리 시스템이 점점 더 인기 있는 항목을 추천하는 경향이 있는 것을 원하지 않으며 사용자가 기회 없이 이미 좋아하는 것과 매우 유사한 항목에 대한 추천만 받는 것을 원하지 않습니다. 새로운 아이템을 좋아할 수도 있습니다(추천할 "충분히 가깝지 않기 때문에"). 앞서 언급했듯이 이러한 문제는 대부분의 추천 알고리즘에서 발생할 수 있지만 특히 메모리 기반 협업 필터링 알고리즘에서 발생할 수 있습니다. 사실, 이 현상은 "정규화된" 모델의 부족으로 인해 더 두드러지고 더 자주 관찰될 수 있습니다.

3.2 모델 기반 협업 필터링 방법

모델 기반 협업 필터링 방법은 사용자 항목 상호 작용 정보에만 의존하고 잠재 모델이 이러한 상호 작용을 설명해야 한다고 가정합니다. 예를 들어, Matrix Factorization 은 거대하고 희소한 사용자-항목 상호작용 행렬을 2개의 더 작고 밀도가 높은 행렬의 곱으로 분해하는 것을 포함합니다.

예를 들어 사용자 영화 등급 매트릭스가 있다고 가정합니다. 사용자와 영화 간의 상호 작용을 모델링하기 위해 다음을 가정할 수 있습니다.

  • 영화적 특징이 있습니다.
  • 이러한 기능은 사용자 선호도를 설명하는 데에도 사용할 수 있습니다(사용자는 가치가 높은 기능을 좋아하고 그렇지 않으면 기능 값이 낮음).

이미지-20220808131508796

그러나 우리는 이러한 기능을 우리 모델에 명시적으로 할당하고 싶지 않습니다(나중에 설명할 콘텐츠 기반 방법에 사용할 수 있기 때문에). 대신 시스템이 이러한 유용한 기능을 자체적으로 발견하고 사용자와 항목을 자동으로 나타내도록 하는 것을 선호합니다. 개별적으로 추출된 특징은 주어지는 것이 아니라 학습되기 때문에 수학적 의미는 있지만 직관적인 해석은 불가능합니다. 그러나 이 알고리즘은 결국 인간이 생각할 수 있는 직관적인 분해에 매우 가까운 구조를 생성합니다. 실제로 이러한 분해의 결과는 선호도 측면에서 가까운 사용자와 기능 측면에서 가까운 항목이 잠재 공간에서 가까운 표현으로 귀결된다는 것입니다.

행렬 분해의 수학적 설명

다음으로 우리는 행렬 분해의 수학적 개요를 간략하게 소개할 것입니다. 보다 구체적으로, 우리는 컴퓨터 메모리에 모든 데이터를 동시에 로드하지 않고도 매우 큰 행렬의 분해를 얻을 수 있는 경사하강법을 기반으로 하는 고전적인 반복 방법을 설명합니다.
각 사용자가 특정 항목만 평가한 평가를 포함하는 상호작용 행렬 M(nxm)을 고려해 보겠습니다.

이미지-20220808173423436

그 중 대부분은 사용자가 아직 영화를 평가하지 않았음을 의미하는 None입니다.추천 시스템에서 작업은 무겁고 이 평가 매트릭스는 종종 매우 희소한 매트릭스입니다. 행렬 분해가 하는 일은 행렬에서 누락된 평가를 예측하여 예측된 평가가 사용자의 선호도를 반영할 수 있도록 하는 것입니다. 우리는 이 행렬을 다음과 같이 분해하고자 합니다.
M = XYTM=XY^T=XY _T
여기서 X는사용자 매트릭스(n×l)이고, Y는항목 매트릭스(l×k)입니다.

여기서 l은 사용자 및 항목의 잠재 공간을 나타내는 차원입니다. 따라서 내적이 기존 상호 작용에 가장 가까운 행렬 X와 Y를 검색합니다. M ij M_{ij }아이null이 아닌 경우 "등급 오류"
( X , Y ) = min ∑ M ij ≠ 0 [ M ij − ( X i ) ( Y j ) T ] 2 (X,Y) = min 을 최소화하는 X 및 Y를 찾고 싶습니다. \sum_{M_{ij}\neq0}[M_{ij}-(X_i)(Y_j)^T]^2( X ,그리고 )=아이= 0[ 아이-( 엑스나는) ( 그리고j) ]2 L2 정규화
추가하면다음을 얻습니다.( X , Y ) = min 1 2 ∑ M ij ≠ 0 [ M ij − ( X i ) ( Y j ) T ] 2 + λ 2 ( ∑ i , k ( X ik ) 2 + ∑ j , k ( Y jk ) 2 ) (X,Y) = min\frac{1}{2}\sum_{M_{ij}\neq0}[M_{ij}-(X_i)(Y_j) ^ T]^2+\frac{\lambda}{2}(\sum_{i,k}(X_{ik})^2+\sum_{j,k}(Y_{jk})^2)
( X ,그리고 )=21아이= 0[ 아이-( 엑스나는) ( 그리고j) ]2+2(나는 , 케이( 엑스)2+j , k( 그리고jk)2 )위의 손실 함수
최소화하기만 하면이번에는최적화과정입니다. 점수행렬에서 사용자행렬과 항목행렬을 분해하기 위해서는 왼쪽의 점수행렬 M만 알고 사용자행렬과 항목행렬은 알 수 없다. 사용자 행렬과 항목 행렬을 학습하기 위해 사용자 행렬*항목 행렬과 점수 행렬의 알려진 점수 차이를 최소화(최적화 문제)

행렬 X와 Y는 경사하강법으로 풀 수 있으며 두 가지를 알 수 있습니다. 첫째, 각 단계에서 E의 모든 쌍에 대한 기울기를 계산하는 대신 이러한 쌍의 하위 집합만 고려하여 목적 함수를 "일괄 처리"하여 최적화할 수 있습니다. 둘째, X와 Y의 값을 동시에 업데이트할 필요가 없으며, 각 단계에서 X와 Y에 대해 Gradient descent를 교대로 수행할 수 있습니다. 다음 단계에서 반대 작업을 수행하기 전에 다른 행렬 반복), 다음 결과가 얻어진다고 가정합니다.

이미지-20220808152357549

행렬이 분해되면 더 적은 정보로 새로운 권장 사항을 만들 수 있습니다. 사용자 벡터에 항목 벡터를 곱하면 해당 등급을 추정할 수 있습니다. 사용자 및 항목의 이러한 새로운 표현을 위해 사용자-사용자 및 항목-항목 방법을 사용할 수도 있습니다. (근사) 가장 가까운 이웃 검색은 거대한 희소 벡터에서 수행되지 않고 작은 밀도 벡터에서 수행되므로 일부 근사 기술이 더 많이 사용됩니다. 다루기 쉬운. 영화 추천을 예로 들어 보겠습니다.

사용자 u에 의한 영화 i의 예측 등급 = 사용자 벡터와 항목 벡터의 내적

[외부 링크 이미지 전송 실패, 원본 사이트에 안티 리치 메커니즘이 있을 수 있으므로 이미지를 저장하고 직접 업로드하는 것을 권장합니다(img-lRdWehO3-1659963301320) (https://raw.githubusercontent.com/19973466719/jojo- pic/main/img /20220808205436.png)]

이 두 행렬을 곱하면 각 영화에 대한 각 사용자의 예상 점수를 얻을 수 있으며 점수가 높을수록 사용자가 영화를 좋아할 가능성이 높고 사용자에게 영화를 더 많이 추천할 가치가 있습니다.

마지막으로 우리는 기본 분해의 이 개념이 더 복잡한 모델로 확장될 수 있음을 알 수 있습니다. 예를 들어 더 일반적인 신경망, 가장 먼저 생각할 수 있는 것은 부울 상호작용 행렬입니다. 부울 상호 작용을 재구성하려는 경우 간단한 내적은 잘 수행되지 않습니다. 그러나 이 내적 위에 로지스틱 함수를 추가하면 [0, 1] 값을 갖는 모델을 얻을 수 있으므로 문제를 더 잘 해결할 수 있습니다. 이 경우 최적화할 모델은
min 1 2 ∑ M ij ≠ 0 [ f ( X i , Y j T ) − M ij ] 2 + λ 2 ( ∑ i , k ( X ik 2 ) + ∑ j , k ( Y ik ) 2 ) min\frac{1}{2}\sum_{M_{ij}\neq0}[f(X_i,Y_j^T)-M_{ij}]^2+\frac{\lambda } {2}(\sum_{i,k}(X_{ik}^2)+\sum_{j,k}(Y_{ik})^2)21아이= 0[ 에프 ( X나는,와이제이)-아이]2+2(나는 , 케이( 엑스2)+j , k( 그리고)2 )
여기서 f(.)는 로지스틱 함수입니다. 심층 신경망 모델은 복잡한 추천 시스템에서SOTA

[외부 링크 이미지 전송 실패, 원본 사이트에 안티 리치 메커니즘이 있을 수 있으므로 이미지를 저장하고 직접 업로드하는 것을 권장합니다(img-kKuXnXL8-1659963301321) (https://raw.githubusercontent.com/19973466719/jojo- pic/main/img /20220808205446.png)]

4. 모형, 편향, 분산

앞에서 언급한 방법 간의 주요 차이점에 더 집중해 보겠습니다. 특히 편향과 분산에 대한 효과를 살펴보겠습니다. 메모리 기반 협업 필터링 방법
에서는 잠재 모델이 가정되지 않습니다. 알고리즘은 사용자-항목 상호작용을 직접 처리합니다. 예를 들어 사용자는 항목과의 상호작용으로 표시되고 이러한 표시에 대한 가장 가까운 이웃 검색은 제안을 생성하는 데 사용됩니다. 기본 모델이 가정되지 않기 때문에 이러한 방법은 이론적으로 편향은 낮지만 분산은 높습니다. 모델 기반 협업 필터링 방법 에서는 일부 기본 상호 작용 모델이 가정됩니다. 모델은 자체 사용자 및 항목 표현에서 사용자 항목 상호 작용 값을 재구성하도록 훈련됩니다. 그런 다음 이 모델을 기반으로 새로운 권장 사항을 만들 수 있습니다. 모델에 의해 추출된 사용자 및 항목의 잠재된 표현은 인간이 해석하기 어려운 수학적 의미를 갖습니다. 사용자-항목 상호 작용 모델이 가정되기 때문에 이 방법은 기본 모델을 가정하지 않는 방법보다 이론적으로 더 높은 편향을 갖지만 분산은 더 낮습니다. 마지막으로 콘텐츠 기반 접근 방식 에서는 일부 기본 상호 작용 모델도 가정합니다. 그러나 여기에서 모델은 사용자와 항목 표현을 정의하는 것을 제공합니다. 예를 들어 사용자는 주어진 기능으로 표시되고 우리는 각 항목에 대해 해당 항목을 좋아하거나 싫어하는 사용자 기능을 모델링하려고 시도합니다. 여기서는 모델 기반 필터링 접근 방식을 위해 사용자-항목 상호 작용 모델을 가정합니다. 그러나 모델은 더 제한적이므로(사용자와 항목의 표현이 제공되기 때문에) 이 방법은 가장 높은 편향을 가지지만 가장 낮은 분산을 갖는 경향이 있습니다.

이미지-20220808163815149

5. 추천 시스템 평가

다른 기계 학습 알고리즘과 마찬가지로 추천 시스템의 성능을 평가하여 상황에 가장 적합한 알고리즘을 결정할 수 있어야 합니다. 추천 시스템에 대한 평가 방법은 크게 두 그룹으로 나눌 수 있습니다. 잘 정의된 메트릭에 기반한 평가와 주로 인간의 판단과 만족도 추정에 기반한 평가입니다.

5.1 평가지표에 따른 평가

추천 시스템이 평가 예측 또는 일치 확률과 같은 숫자 값을 출력 하는 모델을 기반으로 하는 경우 평균 제곱 오차(MSE)와 같은 오류 측정을 사용하여 매우 고전적인 방식으로 이러한 출력의 품질을 평가할 수 있습니다. 이 경우 모델은 사용 가능한 상호 작용 데이터의 일부에 대해서만 학습되고 나머지 상호 작용 데이터에 대해 테스트됩니다.

추천 시스템이 값을 예측 하는 모델을 기반으로 하는 경우 이러한 값(임계값 위의 값은 양수, 임계값 미만의 값은 음수)을 이진화 하고 고전적인 임계값을 사용하여 "범주적으로" 평가할 수도 있습니다. 사실, 사용자 항목 과거 상호 작용의 데이터 세트도 이진화되기 때문에(또는 임계값에 의해 이진화될 수 있음) 테스트 데이터 세트(및 정밀도 및 재현율)에 대한 모델 의 이진화된 출력의 정확도를 평가할 수 있습니다.

마지막으로, 이제 추천 목록(예: knn 방법을 기반으로 하는 사용자-사용자 또는 항목-항목)을 반환하는 숫자 기반이 아닌 추천 시스템을 고려 하면 측정항목이 얼마나 많은지와 같은 정밀도를 여전히 정의할 수 있습니다. 견적은 사용자에게 정말 적합합니다. 추천 항목의 비율. 이 정확도를 추정하기 위해 사용자가 상호 작용하지 않은 권장 항목은 고려할 수 없으며 사용자 피드백이 있는 테스트 데이터 세트의 항목만 고려해야 합니다.

5.2 사람 기반 평가

추천 시스템을 설계할 때 우리는 매우 확신하는 추천을 생성하는 모델을 얻는 데 관심이 있을 뿐만 아니라 추천의 다양성 및 해석 가능성과 같은 다른 좋은 속성도 기대할 수 있습니다.
Collaborative Filtering에서 언급했듯이 우리는 이전에 이야기한 정보가 제한된 영역에 사용자를 가두는 것을 방지하고자 합니다. "우연성"의 개념은 모델이 제한된 영역(제안된 다양성)을 생성하는 경향이 있거나 없는 것을 표현하는 데 자주 사용됩니다. 추천 항목 간의 거리를 계산하여 추정할 수 있는 발생 빈도는 제한 영역을 생성하므로 너무 낮지 않아야 하지만 권장 사항을 추천할 때 사용자의 관심도를 충분히 고려하지 않는다는 의미이므로 너무 높아서는 안 됩니다. ** (탐색 및 활용) ** . 악용 : 관심의 과거 콘텐츠를 표시합니다. 탐색 : 다양성을 보여주는 콘텐츠. 따라서 제안된 선택의 다양성을 제공하기 위해 사용자에게 매우 적합하면서도 너무 유사하지 않은 항목을 추천하고자 합니다. 예를 들어 사용자에게 "Start War 1, 2, 3", "Star Wars 1", "Start Trek Into Darkness" 및 "Indiana Jones and the Lost Ark Raiders"를 권장하는 대신 나중에 사용할 수 있습니다 . by us의 시스템은 사용자의 관심을 끌 기회가 적지만 너무 비슷해 보이는 항목 3개를 추천하는 것은 좋은 선택이 아닙니다.
해석 가능성은 추천 알고리즘의 성공을 위한 또 다른 핵심 포인트입니다. 실제로 사용자가 특정 항목에 대해 추천되는 이유를 이해하지 못하면 추천 시스템에 대한 신뢰를 잃는 경향이 있는 것으로 나타났습니다. 따라서 명확하게 설명할 수 있는 모델을 디자인하면 아이템을 추천할 때 작은 문장을 추가할 수 있습니다. ("이 아이템을 좋아한 사람들은 다른 아이템도 좋아했습니다", 이 항목 "관심"……).
마지막으로, 다양성과 해석 가능성은 본질적으로 평가하기 어렵다는 사실 외에도 테스트 데이터 세트에 속하지 않는 권장 사항의 품질을 평가하는 것도 매우 어렵다는 사실을 알 수 있습니다. 새로운 권장 사항이 실제로 사용 가능한지 어떻게 알 수 있습니까? 권장 사항 이전에 관련성이 있었습니까? 이러한 모든 이유로 "실제 조건"에서 모델을 테스트하는 것이 때때로 유용합니다. 추천 시스템의 목표는 행동(영화 감상, 제품 구매, 기사 읽기 등)을 생성하는 것이기 때문에 예상되는 행동을 생성하는 능력을 실제로 평가할 수 있습니다. 예를 들어, 시스템은 A/B 테스트 접근 방식에 따라 생산에 투입되거나 사용자 샘플에서만 테스트될 수 있습니다. 테스트에서 모델에 대해 특정 수준의 신뢰도를 설정해야 합니다. ( α = 0.05 \알파=0.05=0.05 )

6. 요약

첫째, 추천 알고리즘은 두 가지 고전적인 모델로 나눌 수 있습니다. 협업 필터링 방법 (예: 사용자-사용자, 항목-항목 및 행렬 분해) 및 콘텐츠 기반 방법

둘째, 메모리 기반 협업 필터링 방법은 잠재 모델 을 가정하지 않으므로 편향은 낮지만 분산이 높습니다. 낮은 분산, 콘텐츠 기반 접근 방식은 잠재 모델이 사용자 및/또는 항목 특성을 중심으로 구축되어 가장 높은 편향과 가장 낮은 변동을 갖는다고 가정합니다.

셋째, 추천 시스템은 평가하기 어렵습니다. MSE, 정밀도, 재현율 또는 정밀도와 같은 일부 고전적인 메트릭을 사용할 수 있는 경우 다양성(우연성) 및 가용성과 같은 일부 속성을 이러한 방식으로 평가할 수 없다는 점을 기억해야 합니다. 현장 조사( 오프라인 테스트, 소규모 배치 온라인 AB 테스트, 전체 트래픽 온라인 )는 궁극적으로 새로운 추천 시스템을 평가하는 유일한 실제 방법이지만 설정하려면 일정 수준의 신뢰가 필요합니다.

넷째, 우리는 이 소개 기사에서 혼합 방법 에 대해 논의하지 않았다는 점에 유의해야 합니다 . 이러한 방법은 협업 필터링과 콘텐츠 기반 방법을 결합하여 많은 경우 최첨단 방법을 달성하므로 오늘날 많은 대규모 추천 시스템에서 사용됩니다. 하이브리드 방법으로 만든 조합은 주로 두 가지 형태를 취할 수 있습니다. 두 모델(협력 필터링 모델 및 콘텐츠 기반 모델)을 독립적으로 학습하고 제안을 결합할 수 있습니다. 또는 사전 정보(사용자 및 항목에 대한 정보)와 상호 작용 정보를 입력으로 사용하여 두 가지 접근 방식(일반적으로 신경망)을 통합하는 모델을 간단히 구축할 수 있습니다. 읽어 주셔서 감사합니다! 저자는 지식이 제한적이므로 오류가 있는 경우 오류가 우선하며 댓글 영역에서 수정할 수 있습니다.

참조:

딥 러닝 추천 시스템 Zhe Wang
https://medium.com/towards-data-science/introduction-to-recommender-systems-6c66cf15ada

Supongo que te gusta

Origin blog.csdn.net/weixin_45052363/article/details/126235962
Recomendado
Clasificación