추천시스템

[추천시스템] week2 - 사용자 기반 이웃 모델 (변형)

haerangssa 2025. 4. 13. 17:20

사용자 기반 이웃 모델

{유사도 함수, 예측 함수, 피어그룹 필터링, 롱테일 영향 고려한 피어슨 계수}의 변형

1.  유사도 함수 변형

동시에 평점 매겨진 아이템 수(Iu, Iv 교집합)가 적을 때, sim(u,v) 대신 discountedSim(u,v)를 사용함. 

+ beta : 중복되어야 하는 평균적인 아이템 수 (공통으로 평점 매긴)

+ beta에 비해 공통아이템 수가 적다면, 유사도를 평가하기에 신뢰도가 낮기 때문에 아래와 같은 과정으로 변환함.

디스카운트 텀은 항상 [0,1]의 범위를 갖는다.

예시) 

beta=5, 공통아이템 =1이라면

디스카운트 텀이 min(1,5)/5 = 1/5가 되고, sim(u,v)에 곱해져 전체 유사도 값을 의도적으로 낮춤.

 

+ 그 외 공통 아이템이 beta보다 크다면 (>=5), 디스카운트 텀이 min(5,5)/5 = 1이 되어 기존의 sin(u,v)와 같아짐.

   => 아이템 수가 적을 때만 자동적으로 값이 낮아짐.

 


2.  예측 함수 변형

Mean-Centering 대신 Z-score 활용.

평균 중심화는 단순히 중심만 0으로 맞추는데, 사용자마다의 평점 분포가 다를 수 있기 때문분포의 폭도 보정해야 함.

 

? 사용자마다의 평점 분포가 다르다 ?

  • 어떤 사람은 5~10점, 어떤 사람은 0~6점 안에서만 평점을 매김.  
    ⇒ 단순 mean-centering만 해서는 상대적 강도가 반영되지 않음.

1. 표준편차 계산

 

2. 표준화된 평점 계산 (z-score)

각 data가 평균으로부터 얼만큼의 표준편차만큼 떨어져있는지를 나타냄.

z-score는 평균을 0, 분산을 1로 변환하여, normalization 효과에 아이템 평점의 분산 정도도 가미함. 

그림이 이상하긴 한데 대충 이런 느낌. 분포 고르게 하여 원점으로 이동. (퍼진 정도가 축소된다)

 * 분산(표준편차)은 Data가 많다는 전제 하에 고려한다. Data가 적을 때도 고려하면 값이 튈 수 있음.

 

3. Z-score 이용한 평점 예측 계산

기존
z-score 이용

 


3.  피어그룹 필터링 변형

1. 피어슨 상관 계수 값을 내림차순 정렬 후, top-k 그룹을 설정.

2. top-k 내에서 음의 상관계수를 갖는 비교대상 제외 (혹은 임의의 임계값보다 작은 것)

 

예시로, k=3으로 설정하면 user 5도 비교대상이 됨.

그러나 -0.87은 반대의 경향이 크기 때문에 악영향을 끼치므로 대상에서 제외시킴.

 


4. 롱테일 영향을 고려한 피어슨 계수 변형

많이 평가된 아이템의 영향은 줄이고, 드물게 평가된 아이템의 가중치는 높인다는 아이디어.

 

[롱테일 문제]

  • 어떤 아이템(예: 인기 드라마)은 거의 모든 사용자가 평가함
  • 이런 아이템은 모든 사용자에게 공통된 정보라서 유사도 계산에 도움이 되지 않음
  • 반대로, 비주류 아이템(롱테일)은 취향의 특이성을 드러냄

[해결 방법]

 문서 검색의 IDF (Inverse Document Frequency) 차용

 

  • m: 전체 사용자 수
  • m_: 아이템 j를 평가한 사용자 수
    → 사용자 수가 적을수록 가중치가 증가함. (희소성 있는 아이템 가중치 up)

 

로그 그래프는 처음에 확 커지다가 점점 폭이 줄어드는 형태임. -> 가중치를 적당히 키우겠다는 뜻.