논문 리뷰/추천시스템

[논문 리뷰] “Told You I Didn’t Like It”: Exploiting Uninteresting Items for Effective Collaborative Filtering

sennysideup 2023. 6. 22. 12:39
반응형

논문 : https://pike.psu.edu/publications/icde16.pdf

오역, 오류 등은 댓글로 말씀 부탁드립니다!

Background

1. Collaborative Filtering

  • 구분
    • 기억 기반 : 이웃과의 유사성을 이용해 평점 예측
      • 사용자는 이웃이 선호하는 아이템을 선호할 가능성이 높다는 사실에 기반
    • 모델 기반  : 모델을 이용해 평점 예측
  • 사용 목적
    • 사용자 평점 예측
    • 상위 N개 상품 추천 : 평가하지 않은 아이템에 대한 상대적인 선호를 예측하여 예측값이 높은 N개를 추천
      • 개선 방안 : uninteresting item을 추천 대상에서 제외

2. OCCF Problem

  • sparse한 학습 데이터로 인해 non positive 데이터를 해석하기 어려움
    • negative
    • 라벨링되지 않은 positive

기존 연구 : sparsity problem

미평가 아이템에 대한 해석

  • 사용자는 선호하는 아이템만 해석한다
  • 즉, 미평가 아이템은 선호하지 않는 negative item

sparsity problem 해결 방법

1. PureSVD 이용 : 결측값인 데이터를 전부 0으로 fillna하여 sparsity problem을 해결

  • uninteresting item을 파악하지 않는다 = 추천에서 uninteresting item을 제외하지 않는다

2. 암묵적 정보/간접 정보 이용 : 간접적인 정보로 평점을 예측

  • 추가적인 data(간접적인 정보)의 overhead(간접 비용) 발생
  • 결과적으로 또다른 sparsity problem이 발생함

 

논문

가설 "결측값을 알맞은 값으로 채움으로써 추천의 정확성 및 연산 시간을 개선"

  • 정확성에 악영향을 미치는 sparsity problem
    • ICF(Item base CF) : 다른 item을 기반으로 추천. 적은 item을 사용하면 정확성이 떨어진다
  • 미평가 아이템 중 일부는 uninteresting 아이템
    • 기존 연구와 달리, 미평가 아이템 중 일부는 인지하지 못해서 평가하지 않는 경우에 해당한다
    • 미평가 아이템
      • 인지X
      • 인지하고 구매했으나 평가하지 않음
      • 인지했으나 선호하지 않아 구매하지 않음 : uninteresting
        • 추천 대상에서 제외해야하는 대상
        • uninteresting 여부를 판단하는 것이 관건
  • uninteresting 아이템은 사용 전 선호도가 낮다
    • 기존의 평점 = 사용 후 선호도
    • 평가된 아이템의 사용 전 선호도를 이용해 미평가된 아이템의 사용 전 선호도를 예측할 수 있다
    • 예측된 사용 전 선호도를 토대로 uninteresting 아이템을 구분하여 추천 대상에서 제외해야

선호도 : 사용 전 선호도? 사용 후 선호도?

  • 사용 전 선호도 : 외부적 feature 기반
    • 사용 전에 알 수 있는 정보를 토대로 형성된 선호도
    • 기평가 아이템 : 사용 전 선호도가 높음
    • 미평가 아이템 : 사용 전 선호도가 높지 않음
  • 사용 후 선호도 : 내부적 feature 기반
    • 사용 전에 알 수 없는 정보를 토대로 형성된 선호도
    • 사용 후 선호도 = 평점
  • 아이템 간 관계(벤다이어그램)
    • 선호 item $ \subset $ 관심 item
    • 평가 item $ \subset $ 관심 item
    • 관심 item $ \cap $ 무관심 item = $ \emptyset $
    • 관심 item $ \cup $ 무관심 item = I

아이템 간 유사도

  • 개별 user의 평가에 기반해 계산한다면 부정확
  • augmentation matrix Z 사용 시 많은 user에 기반해 계산하게 된다
    • item 개수가 동일해도 정확성이 높아진다 : 많은 user에 기반하기 때문에
    • SVD : Z 사용 시 user 및 item 간 유사성 포착 성능 향상

프로세스

  1. rating matrix R(사용 후 선호도)를 이용해 사용 전 선호도 matrix P 생성
    • 평가 시 1, 미평가 시 공란
  2. OCCF를 이용해 P에서 공란인 경우, 사용 전 선호도 예측 → $ \hat{P} $ 생성
  3. P를 이용하여 augmentation matrix Z 생성
    • Z : 증강된 사용 후 선호도 matrix
    • 평가되지 않은 경우 중 하위 $\theta$ % 는 0으로 채우기 : zero-injection
      • 하위 $ \theta $ % : uninteresting item
      • $ \theta $ 가 커질수록 0점이 matrix에 많이 포함된다
        • $ \theta $ 가 작은 경우 matrix에 포함되는 0점이 줄어들어 uninteresting item 개념 도입의 이점이 감소한다
      • user마다 uninteresting item 개수가 다를 수 있다
      • uninteresting item을 user 스스로 인식하는 것보다 넓게 규정함
    • 공란인 경우는 CF 기법으로 사용 후 선호도 예측
  4. 상위 N개 상품 추천

Experiment

1. OCCF가 사용 전 선호도 예측에 효과적인가

  • error rate : 얼마나 많은 interesting item(기평가 아이템)이 uninteresting item에 포함되었는지
  • $\theta$ 가 커질수록 error rate가 증가한다
  • 추론 방법에 따라 error rate 증가율에 차이가 있다 : UOM > RM > IM > BIM > OCCF
    • OCCF, BIM의 accuracy가 가장 높다

2. uninteresting item으로 분류된 아이템에 사용자가 실제로 불만족하는가

  • $\rho$ : percentile rank. 해당값보다 작은 점수의 비율
    • $\rho$ 가 커질수록 error rate가 증가한다
    • $\rho$ 가 낮을 때는 평가 개수가 적다
    • 사용 전 선호도가 낮은 경우 구매하지 않는다

  • 사용 전 선호도에 따른 평가 점수
    • 4, 5점을 남기는 user보다 1, 2점을 남기는 user가 적다
    • 기평가 item 개수는 bin마다 상이하다
    • $\rho$ ≤ 0.3 : $\rho$ 가 증가할수록 1,2점으로 평가된 item의 상대적 비율이 증가한다
      • 기평가된 item이 적다
    • $\rho$ > 0.3 : $\rho$ 가 증가할수록 1,2점으로 평가된 item의 상대적 비율이 감소한다
    • $\rho$ ≤ 0.9 : 이면 1,2로 평가될 가능성이 높아진다
    • $\rho$ > 0.9 : 이면 4,5로 평가될 가능성이 높아진다
  • 사용 전 만족도가 낮으면 사용 후 만족도가 낮다
  • 사용자는 대부분의 item에 대해 uninterest

3. $\theta$ 에 따라 성능이 어떻게 변화하는가

  • $\theta$ : zero - injection 되는 개수를 제어하기 때문에 accuracy에 큰 영향을 미친다
    • $\theta$ = 0 : 기존 ICF, SVD의 성능을 나타냄
    • $\theta$ = 99.7 : SVD가 아닌 OCCF만의 성능을 나타냄
      • OCCF : uninteresting item을 찾는 데에는 효과적이지만 최종 item 추천은 효과적이지 않음 — 사용 후 만족도인 평점을 무시하기 때문
    • 10 ≤ $\theta$ ≤ 90 : $\theta$ 가 커질수록 accuracy가 증가한다
      • $\theta$≥ 90일 때는 $\theta$가 커질수록 accuracy가 감소한다
      • 해당 구간에서는 sparsity problem이 이미 해결됨 : 어떤 값을 써도 무방하다

  • $\rho$ ≥ 80 일 때는 error rate가 커진다

4. 논문에서 제안한 방법 적용 시 기존 CF의 성능이 얼마나 향상되는가

  • 모든 CF 기법의 성능이 개선된다
  • PureSVD : 기존 CF 방법 중 가장 성능이 좋다
    • 논문 방법 적용 시 성능 개선폭이 작다
      • 이미 모든 결측값을 0으로 fillna 했기 때문에 개선폭이 작다
      • 단, uninterest 여부에 관계없이 fillna 했던 이전과 달리 uninterest 여부 고려 시 성능이 개선된다
  • SVD : 논문 방법 적용 시 성능이 가장 높다
  • SVD ++ : 긍부정 여부를 판단하기 위해 SVD 적용
    • 논문 방법 적용 시 성능 개선폭이 작다
      • 이미 평가된 경우는 긍정, 미평가된 경우는 부정으로 평가하기 때문
      • 단, uninterest 여부에 관계없이 fillna 했던 이전과 달리 uninterest 여부 고려 시 성능이 개선된다

5. 논문에서 제안한 방법 적용 시 기존 CF의 연산 시간이 얼마나 줄어드는가

  • 사전연산 시 소요 시간은 증가하고 추천 아이템 선정의 소요시간은 줄어든다
  • SVD
    • 사전연산 : P, Z matrix로 SVD 모델을 구축
      • 2개 모델을 구축해야하기 때문에 사전연산 시간 증가
    • 추천 아이템 선정
      • uninteresting item을 추천 아이템의 후보에서 제거 → 연산 횟수 감소
      • $\theta$ 가 증가할수록 추천 시간 감소
  • ICF
    • 사전연산 : item 간 유사도 계산
      • 결측값도 연산에 포함하기 때문에 사전연산 시간 증가
    • 추천 아이템 선정
      • $\theta$ ≥ 20% 일 때 $\theta$가 증가할수록 더 많은 평점을 이용해 예측하므로 선정 시간 증가
      • $\theta$ ≥ 70% 일 때 추천 시간 감소
  • 온라인으로 추천 아이템을 선정하는 것이 오프라인으로 사전 연산을 진행하는 것보다 중요하기 때문에 시간이 절약된다고 볼 수 있다

 

결론

  • 기존의 CF 방법에 논문에서 제안한 방법 적용 가능
  • 추천 대상이 감소하기 때문에 연산 비용 절약 가능
  • augmentation matrix를 이용해 sparsity 문제를 해결하고 정확성을 개선할 수 있다